diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ac72fd36e5..e749aeba85 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -136,6 +136,7 @@ jobs: cargo clippy -p test_alternate_success_code && cargo clippy -p test_arch && cargo clippy -p test_arch_feature && + cargo clippy -p test_bcrypt && cargo clippy -p test_bstr && cargo clippy -p test_cfg_generic && cargo clippy -p test_class_factory && diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index aad56b8d39..d65c4a4c9a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -119,6 +119,7 @@ jobs: cargo test --target ${{ matrix.target }} -p test_alternate_success_code && cargo test --target ${{ matrix.target }} -p test_arch && cargo test --target ${{ matrix.target }} -p test_arch_feature && + cargo test --target ${{ matrix.target }} -p test_bcrypt && cargo test --target ${{ matrix.target }} -p test_bstr && cargo test --target ${{ matrix.target }} -p test_cfg_generic && cargo test --target ${{ matrix.target }} -p test_class_factory && @@ -126,8 +127,8 @@ jobs: cargo test --target ${{ matrix.target }} -p test_component_client && cargo test --target ${{ matrix.target }} -p test_const_fields && cargo test --target ${{ matrix.target }} -p test_core && - cargo test --target ${{ matrix.target }} -p test_data_object && cargo clean && + cargo test --target ${{ matrix.target }} -p test_data_object && cargo test --target ${{ matrix.target }} -p test_debug && cargo test --target ${{ matrix.target }} -p test_deprecated && cargo test --target ${{ matrix.target }} -p test_dispatch && diff --git a/crates/libs/bindgen/src/gen.rs b/crates/libs/bindgen/src/gen.rs index d36ea56444..f817c0f5a7 100644 --- a/crates/libs/bindgen/src/gen.rs +++ b/crates/libs/bindgen/src/gen.rs @@ -922,23 +922,23 @@ impl<'a> Gen<'a> { _ => { let name = self.param_name(param.def); match param.array_info { - ArrayInfo::Fixed(fixed) if fixed > 0 && self.reader.param_free_with(param.def).is_none() => { - if self.reader.param_flags(param.def).output() { - quote! { ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(#name)), } + ArrayInfo::Fixed(_) | ArrayInfo::RelativeLen(_) | ArrayInfo::RelativeByteLen(_) => { + let flags = self.reader.param_flags(param.def); + let map = if flags.optional() { + quote! { #name.as_deref().map_or(::core::ptr::null(), |slice|slice.as_ptr()) } } else { - quote! { ::core::mem::transmute(::windows::core::as_ptr_or_null(#name)), } - } - } - ArrayInfo::RelativeLen(_) => { - if self.reader.param_flags(param.def).output() { - quote! { ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(#name)), } - } else { - quote! { ::core::mem::transmute(::windows::core::as_ptr_or_null(#name)), } - } + quote! { #name.as_ptr() } + }; + quote! { ::core::mem::transmute(#map), } } ArrayInfo::RelativePtr(relative) => { let name = self.param_name(params[relative].def); - quote! { #name.len() as _, } + let flags = self.reader.param_flags(params[relative].def); + if flags.optional() { + quote! { #name.as_deref().map_or(0, |slice|slice.len() as _), } + } else { + quote! { #name.len() as _, } + } } _ => { if self.reader.signature_param_input_value(param) { @@ -986,14 +986,16 @@ impl<'a> Gen<'a> { let ty = param.ty.deref(); let ty = self.type_default_name(&ty); let len = Literal::u32_unsuffixed(fixed as _); - let ty = if self.reader.param_flags(param.def).output() { quote! { &mut [#ty; #len] } } else { quote! { &[#ty; #len] } }; - - tokens.combine("e! { #name: #ty, }); + if self.reader.param_flags(param.def).optional() { + tokens.combine("e! { #name: ::core::option::Option<#ty>, }); + } else { + tokens.combine("e! { #name: #ty, }); + } continue; } } @@ -1006,8 +1008,25 @@ impl<'a> Gen<'a> { } else { quote! { &[#ty] } }; + if self.reader.param_flags(param.def).optional() { + tokens.combine("e! { #name: ::core::option::Option<#ty>, }); + } else { + tokens.combine("e! { #name: #ty, }); + } + continue; + } - tokens.combine("e! { #name: #ty, }); + if let ArrayInfo::RelativeByteLen(_) = param.array_info { + let ty = if self.reader.param_flags(param.def).output() { + quote! { &mut [u8] } + } else { + quote! { &[u8] } + }; + if self.reader.param_flags(param.def).optional() { + tokens.combine("e! { #name: ::core::option::Option<#ty>, }); + } else { + tokens.combine("e! { #name: #ty, }); + } continue; } @@ -1022,7 +1041,7 @@ impl<'a> Gen<'a> { continue; } - if param.ty.is_pointer() && !param.ty.is_void() { + if param.ty.is_pointer() && !param.ty.is_void() && param.array_info != ArrayInfo::Removed { let param_flags = self.reader.param_flags(param.def); let kind = self.type_default_name(¶m.ty.deref()); let kind = if param_flags.output() { diff --git a/crates/libs/bindgen/src/replacements/bstr.rs b/crates/libs/bindgen/src/replacements/bstr.rs index f06131fbe9..4c3cf8ee8c 100644 --- a/crates/libs/bindgen/src/replacements/bstr.rs +++ b/crates/libs/bindgen/src/replacements/bstr.rs @@ -26,7 +26,7 @@ pub fn gen() -> TokenStream { return Self(::core::ptr::null_mut()); } - unsafe { SysAllocStringLen(value) } + unsafe { SysAllocStringLen(Some(value)) } } pub fn as_wide(&self) -> &[u16] { diff --git a/crates/libs/metadata/src/reader/mod.rs b/crates/libs/metadata/src/reader/mod.rs index 48289aca23..16cab25e0c 100644 --- a/crates/libs/metadata/src/reader/mod.rs +++ b/crates/libs/metadata/src/reader/mod.rs @@ -45,6 +45,7 @@ tables! { pub enum ArrayInfo { Fixed(usize), RelativeLen(usize), + RelativeByteLen(usize), RelativePtr(usize), None, Removed, @@ -543,13 +544,20 @@ impl<'a> Reader<'a> { for position in 0..params.len() { // Point len params back to the corresponding ptr params. - if let ArrayInfo::RelativeLen(relative) = params[position].array_info { - // The len params must be input only. - if !self.param_flags(params[relative].def).output() && position != relative { - params[relative].array_info = ArrayInfo::RelativePtr(position); - } else { + match params[position].array_info { + ArrayInfo::RelativeLen(relative) | ArrayInfo::RelativeByteLen(relative) => { + // The len params must be input only. + if !self.param_flags(params[relative].def).output() && position != relative && !params[relative].ty.is_pointer() { + params[relative].array_info = ArrayInfo::RelativePtr(position); + } else { + params[position].array_info = ArrayInfo::Removed; + } + } + // TODO: workaround for https://github.com/microsoft/win32metadata/issues/1014 + ArrayInfo::Fixed(fixed) if fixed == 0 || self.param_free_with(params[position].def).is_some() => { params[position].array_info = ArrayInfo::Removed; } + _ => {} } } @@ -557,8 +565,11 @@ impl<'a> Reader<'a> { // Finds sets of ptr params pointing at the same len param. for (position, param) in params.iter().enumerate() { - if let ArrayInfo::RelativeLen(relative) = param.array_info { - sets.entry(relative).or_default().push(position); + match param.array_info { + ArrayInfo::RelativeLen(relative) | ArrayInfo::RelativeByteLen(relative) => { + sets.entry(relative).or_default().push(position); + } + _ => {} } } @@ -629,14 +640,24 @@ impl<'a> Reader<'a> { } pub fn param_array_info(&self, row: Param) -> ArrayInfo { for attribute in self.param_attributes(row) { - if self.attribute_name(attribute) == "NativeArrayInfoAttribute" { - for (_, value) in self.attribute_args(attribute) { - match value { - Value::I16(value) => return ArrayInfo::RelativeLen(value as _), - Value::I32(value) => return ArrayInfo::Fixed(value as _), - _ => {} + match self.attribute_name(attribute) { + "NativeArrayInfoAttribute" => { + for (_, value) in self.attribute_args(attribute) { + match value { + Value::I16(value) => return ArrayInfo::RelativeLen(value as _), + Value::I32(value) => return ArrayInfo::Fixed(value as _), + _ => {} + } } } + "MemorySizeAttribute" => { + for (_, value) in self.attribute_args(attribute) { + if let Value::I16(value) = value { + return ArrayInfo::RelativeByteLen(value as _); + } + } + } + _ => {} } } ArrayInfo::None diff --git a/crates/libs/windows/src/Windows/Win32/AI/MachineLearning/DirectML/mod.rs b/crates/libs/windows/src/Windows/Win32/AI/MachineLearning/DirectML/mod.rs index e1137189e6..c7943b05a8 100644 --- a/crates/libs/windows/src/Windows/Win32/AI/MachineLearning/DirectML/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/AI/MachineLearning/DirectML/mod.rs @@ -7094,8 +7094,8 @@ impl IDMLBindingTable { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, datasize: &mut u32, data: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(datasize), ::core::mem::transmute(data)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, data: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(data)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, data: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), data.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, data: P0) -> ::windows::core::Result<()> where @@ -7116,11 +7116,11 @@ impl IDMLBindingTable { let mut result__ = ::core::option::Option::None; (::windows::core::Interface::vtable(self).base__.GetDevice)(::windows::core::Interface::as_raw(self), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } - pub unsafe fn BindInputs(&self, bindings: &[DML_BINDING_DESC]) { - (::windows::core::Interface::vtable(self).BindInputs)(::windows::core::Interface::as_raw(self), bindings.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(bindings))) + pub unsafe fn BindInputs(&self, bindings: ::core::option::Option<&[DML_BINDING_DESC]>) { + (::windows::core::Interface::vtable(self).BindInputs)(::windows::core::Interface::as_raw(self), bindings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(bindings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn BindOutputs(&self, bindings: &[DML_BINDING_DESC]) { - (::windows::core::Interface::vtable(self).BindOutputs)(::windows::core::Interface::as_raw(self), bindings.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(bindings))) + pub unsafe fn BindOutputs(&self, bindings: ::core::option::Option<&[DML_BINDING_DESC]>) { + (::windows::core::Interface::vtable(self).BindOutputs)(::windows::core::Interface::as_raw(self), bindings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(bindings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn BindTemporaryResource(&self, binding: ::core::option::Option<&DML_BINDING_DESC>) { (::windows::core::Interface::vtable(self).BindTemporaryResource)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(binding)) @@ -7219,8 +7219,8 @@ impl IDMLCommandRecorder { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, datasize: &mut u32, data: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(datasize), ::core::mem::transmute(data)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, data: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(data)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, data: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), data.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, data: P0) -> ::windows::core::Result<()> where @@ -7333,8 +7333,8 @@ impl IDMLCompiledOperator { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, datasize: &mut u32, data: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(datasize), ::core::mem::transmute(data)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, data: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(data)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, data: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), data.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, data: P0) -> ::windows::core::Result<()> where @@ -7525,8 +7525,8 @@ impl IDMLDevice { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, datasize: &mut u32, data: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(datasize), ::core::mem::transmute(data)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, data: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(data)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, data: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), data.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, data: P0) -> ::windows::core::Result<()> where @@ -7540,8 +7540,8 @@ impl IDMLDevice { { (::windows::core::Interface::vtable(self).base__.SetName)(::windows::core::Interface::as_raw(self), name.into()).ok() } - pub unsafe fn CheckFeatureSupport(&self, feature: DML_FEATURE, featurequerydatasize: u32, featurequerydata: *const ::core::ffi::c_void, featuresupportdatasize: u32, featuresupportdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, featurequerydatasize, ::core::mem::transmute(featurequerydata), featuresupportdatasize, ::core::mem::transmute(featuresupportdata)).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: DML_FEATURE, featurequerydata: ::core::option::Option<&[u8]>, featuresupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, featurequerydata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(featurequerydata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), featuresupportdata.len() as _, ::core::mem::transmute(featuresupportdata.as_ptr())).ok() } pub unsafe fn CreateOperator(&self, desc: &DML_OPERATOR_DESC, result__: *mut ::core::option::Option) -> ::windows::core::Result<()> where @@ -7556,12 +7556,12 @@ impl IDMLDevice { { (::windows::core::Interface::vtable(self).CompileOperator)(::windows::core::Interface::as_raw(self), op.into().abi(), flags, &::IID, result__ as *mut _ as *mut _).ok() } - pub unsafe fn CreateOperatorInitializer(&self, operators: &[::core::option::Option]) -> ::windows::core::Result + pub unsafe fn CreateOperatorInitializer(&self, operators: ::core::option::Option<&[::core::option::Option]>) -> ::windows::core::Result where T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).CreateOperatorInitializer)(::windows::core::Interface::as_raw(self), operators.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(operators)), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).CreateOperatorInitializer)(::windows::core::Interface::as_raw(self), operators.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(operators.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateCommandRecorder(&self) -> ::windows::core::Result where @@ -7580,10 +7580,10 @@ impl IDMLDevice { (::windows::core::Interface::vtable(self).CreateBindingTable)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(desc), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn GetDeviceRemovedReason(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDeviceRemovedReason)(::windows::core::Interface::as_raw(self)).ok() @@ -7671,8 +7671,8 @@ impl IDMLDevice1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, datasize: &mut u32, data: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(datasize), ::core::mem::transmute(data)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, data: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(data)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, data: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), data.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, data: P0) -> ::windows::core::Result<()> where @@ -7686,8 +7686,8 @@ impl IDMLDevice1 { { (::windows::core::Interface::vtable(self).base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into()).ok() } - pub unsafe fn CheckFeatureSupport(&self, feature: DML_FEATURE, featurequerydatasize: u32, featurequerydata: *const ::core::ffi::c_void, featuresupportdatasize: u32, featuresupportdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, featurequerydatasize, ::core::mem::transmute(featurequerydata), featuresupportdatasize, ::core::mem::transmute(featuresupportdata)).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: DML_FEATURE, featurequerydata: ::core::option::Option<&[u8]>, featuresupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, featurequerydata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(featurequerydata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), featuresupportdata.len() as _, ::core::mem::transmute(featuresupportdata.as_ptr())).ok() } pub unsafe fn CreateOperator(&self, desc: &DML_OPERATOR_DESC, result__: *mut ::core::option::Option) -> ::windows::core::Result<()> where @@ -7702,12 +7702,12 @@ impl IDMLDevice1 { { (::windows::core::Interface::vtable(self).base__.CompileOperator)(::windows::core::Interface::as_raw(self), op.into().abi(), flags, &::IID, result__ as *mut _ as *mut _).ok() } - pub unsafe fn CreateOperatorInitializer(&self, operators: &[::core::option::Option]) -> ::windows::core::Result + pub unsafe fn CreateOperatorInitializer(&self, operators: ::core::option::Option<&[::core::option::Option]>) -> ::windows::core::Result where T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.CreateOperatorInitializer)(::windows::core::Interface::as_raw(self), operators.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(operators)), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.CreateOperatorInitializer)(::windows::core::Interface::as_raw(self), operators.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(operators.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateCommandRecorder(&self) -> ::windows::core::Result where @@ -7726,10 +7726,10 @@ impl IDMLDevice1 { (::windows::core::Interface::vtable(self).base__.CreateBindingTable)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(desc), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn GetDeviceRemovedReason(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetDeviceRemovedReason)(::windows::core::Interface::as_raw(self)).ok() @@ -7826,8 +7826,8 @@ impl IDMLDeviceChild { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, datasize: &mut u32, data: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(datasize), ::core::mem::transmute(data)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, data: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(data)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, data: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), data.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, data: P0) -> ::windows::core::Result<()> where @@ -7912,8 +7912,8 @@ impl IDMLDispatchable { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, datasize: &mut u32, data: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(datasize), ::core::mem::transmute(data)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, data: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(data)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, data: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), data.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, data: P0) -> ::windows::core::Result<()> where @@ -8033,8 +8033,8 @@ impl IDMLObject { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, datasize: &mut u32, data: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(datasize), ::core::mem::transmute(data)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, data: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(data)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, data: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), data.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, data: P0) -> ::windows::core::Result<()> where @@ -8100,8 +8100,8 @@ impl IDMLOperator { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, datasize: &mut u32, data: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(datasize), ::core::mem::transmute(data)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, data: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(data)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, data: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), data.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, data: P0) -> ::windows::core::Result<()> where @@ -8200,8 +8200,8 @@ impl IDMLOperatorInitializer { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, datasize: &mut u32, data: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(datasize), ::core::mem::transmute(data)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, data: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(data)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, data: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), data.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, data: P0) -> ::windows::core::Result<()> where @@ -8227,8 +8227,8 @@ impl IDMLOperatorInitializer { (::windows::core::Interface::vtable(self).base__.GetBindingProperties)(::windows::core::Interface::as_raw(self), &mut result__); result__ } - pub unsafe fn Reset(&self, operators: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self), operators.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(operators))).ok() + pub unsafe fn Reset(&self, operators: ::core::option::Option<&[::core::option::Option]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self), operators.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(operators.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -8339,8 +8339,8 @@ impl IDMLPageable { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, datasize: &mut u32, data: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(datasize), ::core::mem::transmute(data)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, data: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(data)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, data: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), data.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, data: P0) -> ::windows::core::Result<()> where diff --git a/crates/libs/windows/src/Windows/Win32/AI/MachineLearning/WinML/mod.rs b/crates/libs/windows/src/Windows/Win32/AI/MachineLearning/WinML/mod.rs index e12557b19d..db987b0c5a 100644 --- a/crates/libs/windows/src/Windows/Win32/AI/MachineLearning/WinML/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/AI/MachineLearning/WinML/mod.rs @@ -26,7 +26,7 @@ impl IMLOperatorAttributes { where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetStringAttributeElement)(::windows::core::Interface::as_raw(self), name.into(), elementindex, attributeelement.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(attributeelement))).ok() + (::windows::core::Interface::vtable(self).GetStringAttributeElement)(::windows::core::Interface::as_raw(self), name.into(), elementindex, attributeelement.len() as _, ::core::mem::transmute(attributeelement.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -135,7 +135,7 @@ impl IMLOperatorKernelContext { } pub unsafe fn GetOutputTensor(&self, outputindex: u32, dimensionsizes: &[u32]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetOutputTensor)(::windows::core::Interface::as_raw(self), outputindex, dimensionsizes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(dimensionsizes)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetOutputTensor)(::windows::core::Interface::as_raw(self), outputindex, dimensionsizes.len() as _, ::core::mem::transmute(dimensionsizes.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetOutputTensor2(&self, outputindex: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -222,7 +222,7 @@ impl IMLOperatorKernelCreationContext { where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).base__.GetStringAttributeElement)(::windows::core::Interface::as_raw(self), name.into(), elementindex, attributeelement.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(attributeelement))).ok() + (::windows::core::Interface::vtable(self).base__.GetStringAttributeElement)(::windows::core::Interface::as_raw(self), name.into(), elementindex, attributeelement.len() as _, ::core::mem::transmute(attributeelement.as_ptr())).ok() } pub unsafe fn GetInputCount(&self) -> u32 { (::windows::core::Interface::vtable(self).GetInputCount)(::windows::core::Interface::as_raw(self)) @@ -376,12 +376,12 @@ pub struct IMLOperatorKernelFactory_Vtbl { #[repr(transparent)] pub struct IMLOperatorRegistry(::windows::core::IUnknown); impl IMLOperatorRegistry { - pub unsafe fn RegisterOperatorSetSchema<'a, P0, P1>(&self, operatorsetid: &MLOperatorSetId, baselineversion: i32, schema: &[*const MLOperatorSchemaDescription], typeinferrer: P0, shapeinferrer: P1) -> ::windows::core::Result<()> + pub unsafe fn RegisterOperatorSetSchema<'a, P0, P1>(&self, operatorsetid: &MLOperatorSetId, baselineversion: i32, schema: ::core::option::Option<&[*const MLOperatorSchemaDescription]>, typeinferrer: P0, shapeinferrer: P1) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMLOperatorTypeInferrer>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IMLOperatorShapeInferrer>>, { - (::windows::core::Interface::vtable(self).RegisterOperatorSetSchema)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(operatorsetid), baselineversion, ::core::mem::transmute(::windows::core::as_ptr_or_null(schema)), schema.len() as _, typeinferrer.into().abi(), shapeinferrer.into().abi()).ok() + (::windows::core::Interface::vtable(self).RegisterOperatorSetSchema)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(operatorsetid), baselineversion, ::core::mem::transmute(schema.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), schema.as_deref().map_or(0, |slice| slice.len() as _), typeinferrer.into().abi(), shapeinferrer.into().abi()).ok() } pub unsafe fn RegisterOperatorKernel<'a, P0, P1>(&self, operatorkernel: &MLOperatorKernelDescription, operatorkernelfactory: P0, shapeinferrer: P1) -> ::windows::core::Result<()> where @@ -461,7 +461,7 @@ impl IMLOperatorShapeInferenceContext { where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).base__.GetStringAttributeElement)(::windows::core::Interface::as_raw(self), name.into(), elementindex, attributeelement.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(attributeelement))).ok() + (::windows::core::Interface::vtable(self).base__.GetStringAttributeElement)(::windows::core::Interface::as_raw(self), name.into(), elementindex, attributeelement.len() as _, ::core::mem::transmute(attributeelement.as_ptr())).ok() } pub unsafe fn GetInputCount(&self) -> u32 { (::windows::core::Interface::vtable(self).GetInputCount)(::windows::core::Interface::as_raw(self)) @@ -484,7 +484,7 @@ impl IMLOperatorShapeInferenceContext { (::windows::core::Interface::vtable(self).GetInputTensorDimensionCount)(::windows::core::Interface::as_raw(self), inputindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetInputTensorShape(&self, inputindex: u32, dimensions: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetInputTensorShape)(::windows::core::Interface::as_raw(self), inputindex, dimensions.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dimensions))).ok() + (::windows::core::Interface::vtable(self).GetInputTensorShape)(::windows::core::Interface::as_raw(self), inputindex, dimensions.len() as _, ::core::mem::transmute(dimensions.as_ptr())).ok() } pub unsafe fn SetOutputTensorShape(&self, outputindex: u32, dimensioncount: u32, dimensions: &u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetOutputTensorShape)(::windows::core::Interface::as_raw(self), outputindex, dimensioncount, ::core::mem::transmute(dimensions)).ok() @@ -613,7 +613,7 @@ impl IMLOperatorTensor { (::windows::core::Interface::vtable(self).GetDimensionCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetShape(&self, dimensions: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetShape)(::windows::core::Interface::as_raw(self), dimensions.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dimensions))).ok() + (::windows::core::Interface::vtable(self).GetShape)(::windows::core::Interface::as_raw(self), dimensions.len() as _, ::core::mem::transmute(dimensions.as_ptr())).ok() } pub unsafe fn GetTensorDataType(&self) -> MLOperatorTensorDataType { (::windows::core::Interface::vtable(self).GetTensorDataType)(::windows::core::Interface::as_raw(self)) @@ -687,7 +687,7 @@ impl IMLOperatorTensorShapeDescription { (::windows::core::Interface::vtable(self).GetInputTensorDimensionCount)(::windows::core::Interface::as_raw(self), inputindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetInputTensorShape(&self, inputindex: u32, dimensions: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetInputTensorShape)(::windows::core::Interface::as_raw(self), inputindex, dimensions.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dimensions))).ok() + (::windows::core::Interface::vtable(self).GetInputTensorShape)(::windows::core::Interface::as_raw(self), inputindex, dimensions.len() as _, ::core::mem::transmute(dimensions.as_ptr())).ok() } pub unsafe fn HasOutputShapeDescription(&self) -> bool { (::windows::core::Interface::vtable(self).HasOutputShapeDescription)(::windows::core::Interface::as_raw(self)) @@ -697,7 +697,7 @@ impl IMLOperatorTensorShapeDescription { (::windows::core::Interface::vtable(self).GetOutputTensorDimensionCount)(::windows::core::Interface::as_raw(self), outputindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetOutputTensorShape(&self, outputindex: u32, dimensions: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOutputTensorShape)(::windows::core::Interface::as_raw(self), outputindex, dimensions.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dimensions))).ok() + (::windows::core::Interface::vtable(self).GetOutputTensorShape)(::windows::core::Interface::as_raw(self), outputindex, dimensions.len() as _, ::core::mem::transmute(dimensions.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -773,7 +773,7 @@ impl IMLOperatorTypeInferenceContext { where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).base__.GetStringAttributeElement)(::windows::core::Interface::as_raw(self), name.into(), elementindex, attributeelement.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(attributeelement))).ok() + (::windows::core::Interface::vtable(self).base__.GetStringAttributeElement)(::windows::core::Interface::as_raw(self), name.into(), elementindex, attributeelement.len() as _, ::core::mem::transmute(attributeelement.as_ptr())).ok() } pub unsafe fn GetInputCount(&self) -> u32 { (::windows::core::Interface::vtable(self).GetInputCount)(::windows::core::Interface::as_raw(self)) diff --git a/crates/libs/windows/src/Windows/Win32/Data/RightsManagement/mod.rs b/crates/libs/windows/src/Windows/Win32/Data/RightsManagement/mod.rs index 5bbfcea1f2..0b9739dc7a 100644 --- a/crates/libs/windows/src/Windows/Win32/Data/RightsManagement/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Data/RightsManagement/mod.rs @@ -42,7 +42,7 @@ where } #[doc = "*Required features: `\"Win32_Data_RightsManagement\"`*"] #[inline] -pub unsafe fn DRMAcquireIssuanceLicenseTemplate<'a, P0>(hclient: u32, uflags: u32, pvreserved: *mut ::core::ffi::c_void, pwsztemplateids: &[::windows::core::PWSTR], wszurl: P0, pvcontext: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> +pub unsafe fn DRMAcquireIssuanceLicenseTemplate<'a, P0>(hclient: u32, uflags: u32, pvreserved: *mut ::core::ffi::c_void, pwsztemplateids: ::core::option::Option<&[::windows::core::PWSTR]>, wszurl: P0, pvcontext: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -50,7 +50,7 @@ where extern "system" { fn DRMAcquireIssuanceLicenseTemplate(hclient: u32, uflags: u32, pvreserved: *mut ::core::ffi::c_void, ctemplates: u32, pwsztemplateids: *const ::windows::core::PWSTR, wszurl: ::windows::core::PCWSTR, pvcontext: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - DRMAcquireIssuanceLicenseTemplate(hclient, uflags, ::core::mem::transmute(pvreserved), pwsztemplateids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pwsztemplateids)), wszurl.into(), ::core::mem::transmute(pvcontext)).ok() + DRMAcquireIssuanceLicenseTemplate(hclient, uflags, ::core::mem::transmute(pvreserved), pwsztemplateids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pwsztemplateids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), wszurl.into(), ::core::mem::transmute(pvcontext)).ok() } #[doc = "*Required features: `\"Win32_Data_RightsManagement\"`*"] #[inline] @@ -243,7 +243,7 @@ pub unsafe fn DRMConstructCertificateChain(rgwszcertificates: &[::windows::core: extern "system" { fn DRMConstructCertificateChain(ccertificates: u32, rgwszcertificates: *const ::windows::core::PWSTR, pcchain: *mut u32, wszchain: ::windows::core::PWSTR) -> ::windows::core::HRESULT; } - DRMConstructCertificateChain(rgwszcertificates.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgwszcertificates)), ::core::mem::transmute(pcchain), ::core::mem::transmute(wszchain)).ok() + DRMConstructCertificateChain(rgwszcertificates.len() as _, ::core::mem::transmute(rgwszcertificates.as_ptr()), ::core::mem::transmute(pcchain), ::core::mem::transmute(wszchain)).ok() } #[doc = "*Required features: `\"Win32_Data_RightsManagement\"`*"] #[inline] @@ -339,7 +339,7 @@ where #[doc = "*Required features: `\"Win32_Data_RightsManagement\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn DRMCreateRight<'a, P0>(wszrightname: P0, pstfrom: &mut super::super::Foundation::SYSTEMTIME, pstuntil: &mut super::super::Foundation::SYSTEMTIME, cextendedinfo: u32, pwszextendedinfoname: ::core::option::Option<&::windows::core::PWSTR>, pwszextendedinfovalue: ::core::option::Option<&::windows::core::PWSTR>, phright: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn DRMCreateRight<'a, P0>(wszrightname: P0, pstfrom: &mut super::super::Foundation::SYSTEMTIME, pstuntil: &mut super::super::Foundation::SYSTEMTIME, cextendedinfo: u32, pwszextendedinfoname: *const ::windows::core::PWSTR, pwszextendedinfovalue: *const ::windows::core::PWSTR, phright: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -791,7 +791,7 @@ where } #[doc = "*Required features: `\"Win32_Data_RightsManagement\"`*"] #[inline] -pub unsafe fn DRMGetSignedIssuanceLicenseEx<'a, P0>(henv: u32, hissuancelicense: u32, uflags: u32, pbsymkey: ::core::option::Option<&u8>, cbsymkey: u32, wszsymkeytype: P0, pvreserved: *const ::core::ffi::c_void, henablingprincipal: u32, hboundlicenseclc: u32, pfncallback: DRMCALLBACK, pvcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<()> +pub unsafe fn DRMGetSignedIssuanceLicenseEx<'a, P0>(henv: u32, hissuancelicense: u32, uflags: u32, pbsymkey: ::core::option::Option<&[u8]>, wszsymkeytype: P0, pvreserved: *const ::core::ffi::c_void, henablingprincipal: u32, hboundlicenseclc: u32, pfncallback: DRMCALLBACK, pvcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -799,7 +799,7 @@ where extern "system" { fn DRMGetSignedIssuanceLicenseEx(henv: u32, hissuancelicense: u32, uflags: u32, pbsymkey: *const u8, cbsymkey: u32, wszsymkeytype: ::windows::core::PCWSTR, pvreserved: *const ::core::ffi::c_void, henablingprincipal: u32, hboundlicenseclc: u32, pfncallback: *mut ::core::ffi::c_void, pvcontext: *const ::core::ffi::c_void) -> ::windows::core::HRESULT; } - DRMGetSignedIssuanceLicenseEx(henv, hissuancelicense, uflags, ::core::mem::transmute(pbsymkey), cbsymkey, wszsymkeytype.into(), ::core::mem::transmute(pvreserved), henablingprincipal, hboundlicenseclc, ::core::mem::transmute(pfncallback), ::core::mem::transmute(pvcontext)).ok() + DRMGetSignedIssuanceLicenseEx(henv, hissuancelicense, uflags, ::core::mem::transmute(pbsymkey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbsymkey.as_deref().map_or(0, |slice| slice.len() as _), wszsymkeytype.into(), ::core::mem::transmute(pvreserved), henablingprincipal, hboundlicenseclc, ::core::mem::transmute(pfncallback), ::core::mem::transmute(pvcontext)).ok() } #[doc = "*Required features: `\"Win32_Data_RightsManagement\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Data/Xml/MsXml/mod.rs b/crates/libs/windows/src/Windows/Win32/Data/Xml/MsXml/mod.rs index 1db9a26d13..1844e943ca 100644 --- a/crates/libs/windows/src/Windows/Win32/Data/Xml/MsXml/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Data/Xml/MsXml/mod.rs @@ -17197,7 +17197,7 @@ impl IXMLHTTPRequest2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetCookie<'a, P0, P1>(&self, pwszurl: P0, pwszname: P1, dwflags: u32, pccookies: &mut u32, ppcookies: &mut *mut XHR_COOKIE) -> ::windows::core::Result<()> + pub unsafe fn GetCookie<'a, P0, P1>(&self, pwszurl: P0, pwszname: P1, dwflags: u32, pccookies: &mut u32, ppcookies: *mut *mut XHR_COOKIE) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -17425,7 +17425,7 @@ impl IXMLHTTPRequest3 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetCookie<'a, P0, P1>(&self, pwszurl: P0, pwszname: P1, dwflags: u32, pccookies: &mut u32, ppcookies: &mut *mut XHR_COOKIE) -> ::windows::core::Result<()> + pub unsafe fn GetCookie<'a, P0, P1>(&self, pwszurl: P0, pwszname: P1, dwflags: u32, pccookies: &mut u32, ppcookies: *mut *mut XHR_COOKIE) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -17443,7 +17443,7 @@ impl IXMLHTTPRequest3 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetClientCertificate)(::windows::core::Interface::as_raw(self), pbclientcertificatehash.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbclientcertificatehash)), pwszpin.into()).ok() + (::windows::core::Interface::vtable(self).SetClientCertificate)(::windows::core::Interface::as_raw(self), pbclientcertificatehash.len() as _, ::core::mem::transmute(pbclientcertificatehash.as_ptr()), pwszpin.into()).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -17548,13 +17548,13 @@ impl IXMLHTTPRequest3Callback { where P0: ::std::convert::Into<::windows::core::InParam<'a, IXMLHTTPRequest3>>, { - (::windows::core::Interface::vtable(self).OnServerCertificateReceived)(::windows::core::Interface::as_raw(self), pxhr.into().abi(), dwcertificateerrors, rgservercertificatechain.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgservercertificatechain))).ok() + (::windows::core::Interface::vtable(self).OnServerCertificateReceived)(::windows::core::Interface::as_raw(self), pxhr.into().abi(), dwcertificateerrors, rgservercertificatechain.len() as _, ::core::mem::transmute(rgservercertificatechain.as_ptr())).ok() } pub unsafe fn OnClientCertificateRequested<'a, P0>(&self, pxhr: P0, rgpwszissuerlist: &[*const u16]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IXMLHTTPRequest3>>, { - (::windows::core::Interface::vtable(self).OnClientCertificateRequested)(::windows::core::Interface::as_raw(self), pxhr.into().abi(), rgpwszissuerlist.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpwszissuerlist))).ok() + (::windows::core::Interface::vtable(self).OnClientCertificateRequested)(::windows::core::Interface::as_raw(self), pxhr.into().abi(), rgpwszissuerlist.len() as _, ::core::mem::transmute(rgpwszissuerlist.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/Data/Xml/XmlLite/mod.rs b/crates/libs/windows/src/Windows/Win32/Data/Xml/XmlLite/mod.rs index 5f9fe970af..3104fe4d55 100644 --- a/crates/libs/windows/src/Windows/Win32/Data/Xml/XmlLite/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Data/Xml/XmlLite/mod.rs @@ -175,7 +175,7 @@ impl IXmlReader { (::windows::core::Interface::vtable(self).GetValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcwchvalue)).ok() } pub unsafe fn ReadValueChunk(&self, pwchbuffer: &mut [u16], pcwchread: &mut u32) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).ReadValueChunk)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwchbuffer)), pwchbuffer.len() as _, ::core::mem::transmute(pcwchread)) + (::windows::core::Interface::vtable(self).ReadValueChunk)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwchbuffer.as_ptr()), pwchbuffer.len() as _, ::core::mem::transmute(pcwchread)) } pub unsafe fn GetBaseUri(&self, ppwszbaseuri: ::core::option::Option<&mut ::windows::core::PWSTR>, pcwchbaseuri: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetBaseUri)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppwszbaseuri), ::core::mem::transmute(pcwchbaseuri)).ok() @@ -383,8 +383,8 @@ impl IXmlWriter { pub unsafe fn WriteCharEntity(&self, wch: u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WriteCharEntity)(::windows::core::Interface::as_raw(self), wch).ok() } - pub unsafe fn WriteChars(&self, pwch: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteChars)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pwch)), pwch.len() as _).ok() + pub unsafe fn WriteChars(&self, pwch: ::core::option::Option<&[u16]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).WriteChars)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwch.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pwch.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn WriteComment<'a, P0>(&self, pwszcomment: P0) -> ::windows::core::Result<()> where @@ -475,8 +475,8 @@ impl IXmlWriter { { (::windows::core::Interface::vtable(self).WriteRaw)(::windows::core::Interface::as_raw(self), pwszdata.into()).ok() } - pub unsafe fn WriteRawChars(&self, pwch: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteRawChars)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pwch)), pwch.len() as _).ok() + pub unsafe fn WriteRawChars(&self, pwch: ::core::option::Option<&[u16]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).WriteRawChars)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwch.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pwch.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn WriteStartDocument(&self, standalone: XmlStandalone) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WriteStartDocument)(::windows::core::Interface::as_raw(self), standalone).ok() @@ -612,8 +612,8 @@ impl IXmlWriterLite { { (::windows::core::Interface::vtable(self).WriteAttributes)(::windows::core::Interface::as_raw(self), preader.into().abi(), fwritedefaultattributes.into()).ok() } - pub unsafe fn WriteAttributeString(&self, pwszqname: &[u16], pwszvalue: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteAttributeString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pwszqname)), pwszqname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pwszvalue)), pwszvalue.len() as _).ok() + pub unsafe fn WriteAttributeString(&self, pwszqname: &[u16], pwszvalue: ::core::option::Option<&[u16]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).WriteAttributeString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszqname.as_ptr()), pwszqname.len() as _, ::core::mem::transmute(pwszvalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pwszvalue.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn WriteCData<'a, P0>(&self, pwsztext: P0) -> ::windows::core::Result<()> where @@ -624,8 +624,8 @@ impl IXmlWriterLite { pub unsafe fn WriteCharEntity(&self, wch: u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WriteCharEntity)(::windows::core::Interface::as_raw(self), wch).ok() } - pub unsafe fn WriteChars(&self, pwch: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteChars)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pwch)), pwch.len() as _).ok() + pub unsafe fn WriteChars(&self, pwch: ::core::option::Option<&[u16]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).WriteChars)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwch.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pwch.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn WriteComment<'a, P0>(&self, pwszcomment: P0) -> ::windows::core::Result<()> where @@ -646,13 +646,13 @@ impl IXmlWriterLite { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).WriteElementString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pwszqname)), pwszqname.len() as _, pwszvalue.into()).ok() + (::windows::core::Interface::vtable(self).WriteElementString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszqname.as_ptr()), pwszqname.len() as _, pwszvalue.into()).ok() } pub unsafe fn WriteEndDocument(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WriteEndDocument)(::windows::core::Interface::as_raw(self)).ok() } pub unsafe fn WriteEndElement(&self, pwszqname: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteEndElement)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pwszqname)), pwszqname.len() as _).ok() + (::windows::core::Interface::vtable(self).WriteEndElement)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszqname.as_ptr()), pwszqname.len() as _).ok() } pub unsafe fn WriteEntityRef<'a, P0>(&self, pwszname: P0) -> ::windows::core::Result<()> where @@ -661,7 +661,7 @@ impl IXmlWriterLite { (::windows::core::Interface::vtable(self).WriteEntityRef)(::windows::core::Interface::as_raw(self), pwszname.into()).ok() } pub unsafe fn WriteFullEndElement(&self, pwszqname: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteFullEndElement)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pwszqname)), pwszqname.len() as _).ok() + (::windows::core::Interface::vtable(self).WriteFullEndElement)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszqname.as_ptr()), pwszqname.len() as _).ok() } pub unsafe fn WriteName<'a, P0>(&self, pwszname: P0) -> ::windows::core::Result<()> where @@ -706,14 +706,14 @@ impl IXmlWriterLite { { (::windows::core::Interface::vtable(self).WriteRaw)(::windows::core::Interface::as_raw(self), pwszdata.into()).ok() } - pub unsafe fn WriteRawChars(&self, pwch: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteRawChars)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pwch)), pwch.len() as _).ok() + pub unsafe fn WriteRawChars(&self, pwch: ::core::option::Option<&[u16]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).WriteRawChars)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwch.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pwch.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn WriteStartDocument(&self, standalone: XmlStandalone) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WriteStartDocument)(::windows::core::Interface::as_raw(self), standalone).ok() } pub unsafe fn WriteStartElement(&self, pwszqname: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteStartElement)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pwszqname)), pwszqname.len() as _).ok() + (::windows::core::Interface::vtable(self).WriteStartElement)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszqname.as_ptr()), pwszqname.len() as _).ok() } pub unsafe fn WriteString<'a, P0>(&self, pwsztext: P0) -> ::windows::core::Result<()> where diff --git a/crates/libs/windows/src/Windows/Win32/Devices/AllJoyn/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/AllJoyn/mod.rs index 3b55beb556..bd4a07d2b1 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/AllJoyn/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/AllJoyn/mod.rs @@ -152,7 +152,7 @@ where #[doc = "*Required features: `\"Win32_Devices_AllJoyn\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AllJoynReceiveFromBus<'a, P0>(connectedbushandle: P0, buffer: *mut ::core::ffi::c_void, bytestoread: u32, bytestransferred: ::core::option::Option<&mut u32>, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn AllJoynReceiveFromBus<'a, P0>(connectedbushandle: P0, buffer: ::core::option::Option<&mut [u8]>, bytestransferred: ::core::option::Option<&mut u32>, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -160,12 +160,12 @@ where extern "system" { fn AllJoynReceiveFromBus(connectedbushandle: super::super::Foundation::HANDLE, buffer: *mut ::core::ffi::c_void, bytestoread: u32, bytestransferred: *mut u32, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - AllJoynReceiveFromBus(connectedbushandle.into(), ::core::mem::transmute(buffer), bytestoread, ::core::mem::transmute(bytestransferred), ::core::mem::transmute(reserved)) + AllJoynReceiveFromBus(connectedbushandle.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(bytestransferred), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_AllJoyn\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AllJoynSendToBus<'a, P0>(connectedbushandle: P0, buffer: *const ::core::ffi::c_void, bytestowrite: u32, bytestransferred: ::core::option::Option<&mut u32>, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn AllJoynSendToBus<'a, P0>(connectedbushandle: P0, buffer: ::core::option::Option<&[u8]>, bytestransferred: ::core::option::Option<&mut u32>, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -173,7 +173,7 @@ where extern "system" { fn AllJoynSendToBus(connectedbushandle: super::super::Foundation::HANDLE, buffer: *const ::core::ffi::c_void, bytestowrite: u32, bytestransferred: *mut u32, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - AllJoynSendToBus(connectedbushandle.into(), ::core::mem::transmute(buffer), bytestowrite, ::core::mem::transmute(bytestransferred), ::core::mem::transmute(reserved)) + AllJoynSendToBus(connectedbushandle.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(bytestransferred), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_AllJoyn\"`*"] pub const QCC_FALSE: u32 = 0u32; diff --git a/crates/libs/windows/src/Windows/Win32/Devices/BiometricFramework/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/BiometricFramework/mod.rs index 89ff2ac7f0..0dbc388566 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/BiometricFramework/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/BiometricFramework/mod.rs @@ -5152,7 +5152,7 @@ where #[doc = "*Required features: `\"Win32_Devices_BiometricFramework\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WinBioAsyncOpenSession<'a, P0, P1>(factor: u32, pooltype: WINBIO_POOL, flags: u32, unitarray: &[u32], databaseid: ::core::option::Option<&::windows::core::GUID>, notificationmethod: WINBIO_ASYNC_NOTIFICATION_METHOD, targetwindow: P0, messagecode: u32, callbackroutine: PWINBIO_ASYNC_COMPLETION_CALLBACK, userdata: *const ::core::ffi::c_void, asynchronousopen: P1) -> ::windows::core::Result +pub unsafe fn WinBioAsyncOpenSession<'a, P0, P1>(factor: u32, pooltype: WINBIO_POOL, flags: u32, unitarray: ::core::option::Option<&[u32]>, databaseid: ::core::option::Option<&::windows::core::GUID>, notificationmethod: WINBIO_ASYNC_NOTIFICATION_METHOD, targetwindow: P0, messagecode: u32, callbackroutine: PWINBIO_ASYNC_COMPLETION_CALLBACK, userdata: *const ::core::ffi::c_void, asynchronousopen: P1) -> ::windows::core::Result where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -5162,7 +5162,7 @@ where fn WinBioAsyncOpenSession(factor: u32, pooltype: WINBIO_POOL, flags: u32, unitarray: *const u32, unitcount: usize, databaseid: *const ::windows::core::GUID, notificationmethod: WINBIO_ASYNC_NOTIFICATION_METHOD, targetwindow: super::super::Foundation::HWND, messagecode: u32, callbackroutine: *mut ::core::ffi::c_void, userdata: *const ::core::ffi::c_void, asynchronousopen: super::super::Foundation::BOOL, sessionhandle: *mut u32) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - WinBioAsyncOpenSession(factor, pooltype, flags, ::core::mem::transmute(::windows::core::as_ptr_or_null(unitarray)), unitarray.len() as _, ::core::mem::transmute(databaseid), notificationmethod, targetwindow.into(), messagecode, ::core::mem::transmute(callbackroutine), ::core::mem::transmute(userdata), asynchronousopen.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + WinBioAsyncOpenSession(factor, pooltype, flags, ::core::mem::transmute(unitarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), unitarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(databaseid), notificationmethod, targetwindow.into(), messagecode, ::core::mem::transmute(callbackroutine), ::core::mem::transmute(userdata), asynchronousopen.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Devices_BiometricFramework\"`*"] #[inline] @@ -5211,21 +5211,21 @@ pub unsafe fn WinBioCloseSession(sessionhandle: u32) -> ::windows::core::Result< } #[doc = "*Required features: `\"Win32_Devices_BiometricFramework\"`*"] #[inline] -pub unsafe fn WinBioControlUnit(sessionhandle: u32, unitid: u32, component: WINBIO_COMPONENT, controlcode: u32, sendbuffer: &u8, sendbuffersize: usize, receivebuffer: &mut u8, receivebuffersize: usize, receivedatasize: &mut usize, operationstatus: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { +pub unsafe fn WinBioControlUnit(sessionhandle: u32, unitid: u32, component: WINBIO_COMPONENT, controlcode: u32, sendbuffer: &[u8], receivebuffer: &mut [u8], receivedatasize: &mut usize, operationstatus: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinBioControlUnit(sessionhandle: u32, unitid: u32, component: WINBIO_COMPONENT, controlcode: u32, sendbuffer: *const u8, sendbuffersize: usize, receivebuffer: *mut u8, receivebuffersize: usize, receivedatasize: *mut usize, operationstatus: *mut u32) -> ::windows::core::HRESULT; } - WinBioControlUnit(sessionhandle, unitid, component, controlcode, ::core::mem::transmute(sendbuffer), sendbuffersize, ::core::mem::transmute(receivebuffer), receivebuffersize, ::core::mem::transmute(receivedatasize), ::core::mem::transmute(operationstatus)).ok() + WinBioControlUnit(sessionhandle, unitid, component, controlcode, ::core::mem::transmute(sendbuffer.as_ptr()), sendbuffer.len() as _, ::core::mem::transmute(receivebuffer.as_ptr()), receivebuffer.len() as _, ::core::mem::transmute(receivedatasize), ::core::mem::transmute(operationstatus)).ok() } #[doc = "*Required features: `\"Win32_Devices_BiometricFramework\"`*"] #[inline] -pub unsafe fn WinBioControlUnitPrivileged(sessionhandle: u32, unitid: u32, component: WINBIO_COMPONENT, controlcode: u32, sendbuffer: &u8, sendbuffersize: usize, receivebuffer: &mut u8, receivebuffersize: usize, receivedatasize: &mut usize, operationstatus: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { +pub unsafe fn WinBioControlUnitPrivileged(sessionhandle: u32, unitid: u32, component: WINBIO_COMPONENT, controlcode: u32, sendbuffer: &[u8], receivebuffer: &mut [u8], receivedatasize: &mut usize, operationstatus: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinBioControlUnitPrivileged(sessionhandle: u32, unitid: u32, component: WINBIO_COMPONENT, controlcode: u32, sendbuffer: *const u8, sendbuffersize: usize, receivebuffer: *mut u8, receivebuffersize: usize, receivedatasize: *mut usize, operationstatus: *mut u32) -> ::windows::core::HRESULT; } - WinBioControlUnitPrivileged(sessionhandle, unitid, component, controlcode, ::core::mem::transmute(sendbuffer), sendbuffersize, ::core::mem::transmute(receivebuffer), receivebuffersize, ::core::mem::transmute(receivedatasize), ::core::mem::transmute(operationstatus)).ok() + WinBioControlUnitPrivileged(sessionhandle, unitid, component, controlcode, ::core::mem::transmute(sendbuffer.as_ptr()), sendbuffer.len() as _, ::core::mem::transmute(receivebuffer.as_ptr()), receivebuffer.len() as _, ::core::mem::transmute(receivedatasize), ::core::mem::transmute(operationstatus)).ok() } #[doc = "*Required features: `\"Win32_Devices_BiometricFramework\"`*"] #[inline] @@ -5476,13 +5476,13 @@ pub unsafe fn WinBioMonitorPresence(sessionhandle: u32, unitid: u32) -> ::window } #[doc = "*Required features: `\"Win32_Devices_BiometricFramework\"`*"] #[inline] -pub unsafe fn WinBioOpenSession(factor: u32, pooltype: WINBIO_POOL, flags: u32, unitarray: &[u32], databaseid: ::core::option::Option<&::windows::core::GUID>) -> ::windows::core::Result { +pub unsafe fn WinBioOpenSession(factor: u32, pooltype: WINBIO_POOL, flags: u32, unitarray: ::core::option::Option<&[u32]>, databaseid: ::core::option::Option<&::windows::core::GUID>) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinBioOpenSession(factor: u32, pooltype: WINBIO_POOL, flags: u32, unitarray: *const u32, unitcount: usize, databaseid: *const ::windows::core::GUID, sessionhandle: *mut u32) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - WinBioOpenSession(factor, pooltype, flags, ::core::mem::transmute(::windows::core::as_ptr_or_null(unitarray)), unitarray.len() as _, ::core::mem::transmute(databaseid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + WinBioOpenSession(factor, pooltype, flags, ::core::mem::transmute(unitarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), unitarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(databaseid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Devices_BiometricFramework\"`*"] #[inline] @@ -5531,21 +5531,21 @@ pub unsafe fn WinBioRemoveCredential(identity: WINBIO_IDENTITY, r#type: WINBIO_C } #[doc = "*Required features: `\"Win32_Devices_BiometricFramework\"`*"] #[inline] -pub unsafe fn WinBioSetCredential(r#type: WINBIO_CREDENTIAL_TYPE, credential: &u8, credentialsize: usize, format: WINBIO_CREDENTIAL_FORMAT) -> ::windows::core::Result<()> { +pub unsafe fn WinBioSetCredential(r#type: WINBIO_CREDENTIAL_TYPE, credential: &[u8], format: WINBIO_CREDENTIAL_FORMAT) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinBioSetCredential(r#type: WINBIO_CREDENTIAL_TYPE, credential: *const u8, credentialsize: usize, format: WINBIO_CREDENTIAL_FORMAT) -> ::windows::core::HRESULT; } - WinBioSetCredential(r#type, ::core::mem::transmute(credential), credentialsize, format).ok() + WinBioSetCredential(r#type, ::core::mem::transmute(credential.as_ptr()), credential.len() as _, format).ok() } #[doc = "*Required features: `\"Win32_Devices_BiometricFramework\"`*"] #[inline] -pub unsafe fn WinBioSetProperty(sessionhandle: u32, propertytype: u32, propertyid: u32, unitid: u32, identity: ::core::option::Option<&WINBIO_IDENTITY>, subfactor: u8, propertybuffer: *const ::core::ffi::c_void, propertybuffersize: usize) -> ::windows::core::Result<()> { +pub unsafe fn WinBioSetProperty(sessionhandle: u32, propertytype: u32, propertyid: u32, unitid: u32, identity: ::core::option::Option<&WINBIO_IDENTITY>, subfactor: u8, propertybuffer: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinBioSetProperty(sessionhandle: u32, propertytype: u32, propertyid: u32, unitid: u32, identity: *const WINBIO_IDENTITY, subfactor: u8, propertybuffer: *const ::core::ffi::c_void, propertybuffersize: usize) -> ::windows::core::HRESULT; } - WinBioSetProperty(sessionhandle, propertytype, propertyid, unitid, ::core::mem::transmute(identity), subfactor, ::core::mem::transmute(propertybuffer), propertybuffersize).ok() + WinBioSetProperty(sessionhandle, propertytype, propertyid, unitid, ::core::mem::transmute(identity), subfactor, ::core::mem::transmute(propertybuffer.as_ptr()), propertybuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_BiometricFramework\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/Devices/Bluetooth/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/Bluetooth/mod.rs index 6bbfc999be..50b989672b 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/Bluetooth/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/Bluetooth/mod.rs @@ -2338,7 +2338,7 @@ pub const BasicPrintingServiceClassID_UUID16: u32 = 4386u32; #[doc = "*Required features: `\"Win32_Devices_Bluetooth\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BluetoothAuthenticateDevice<'a, P0, P1>(hwndparent: P0, hradio: P1, pbtbi: &mut BLUETOOTH_DEVICE_INFO, pszpasskey: &[u16]) -> u32 +pub unsafe fn BluetoothAuthenticateDevice<'a, P0, P1>(hwndparent: P0, hradio: P1, pbtbi: &mut BLUETOOTH_DEVICE_INFO, pszpasskey: ::core::option::Option<&[u16]>) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -2347,7 +2347,7 @@ where extern "system" { fn BluetoothAuthenticateDevice(hwndparent: super::super::Foundation::HWND, hradio: super::super::Foundation::HANDLE, pbtbi: *mut BLUETOOTH_DEVICE_INFO, pszpasskey: ::windows::core::PCWSTR, ulpasskeylength: u32) -> u32; } - BluetoothAuthenticateDevice(hwndparent.into(), hradio.into(), ::core::mem::transmute(pbtbi), ::core::mem::transmute(::windows::core::as_ptr_or_null(pszpasskey)), pszpasskey.len() as _) + BluetoothAuthenticateDevice(hwndparent.into(), hradio.into(), ::core::mem::transmute(pbtbi), ::core::mem::transmute(pszpasskey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszpasskey.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Devices_Bluetooth\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2375,7 +2375,7 @@ where extern "system" { fn BluetoothAuthenticateMultipleDevices(hwndparent: super::super::Foundation::HWND, hradio: super::super::Foundation::HANDLE, cdevices: u32, rgbtdi: *mut BLUETOOTH_DEVICE_INFO) -> u32; } - BluetoothAuthenticateMultipleDevices(hwndparent.into(), hradio.into(), rgbtdi.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgbtdi))) + BluetoothAuthenticateMultipleDevices(hwndparent.into(), hradio.into(), rgbtdi.len() as _, ::core::mem::transmute(rgbtdi.as_ptr())) } #[doc = "*Required features: `\"Win32_Devices_Bluetooth\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2421,7 +2421,7 @@ where #[doc = "*Required features: `\"Win32_Devices_Bluetooth\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BluetoothEnumerateInstalledServices<'a, P0>(hradio: P0, pbtdi: &BLUETOOTH_DEVICE_INFO, pcserviceinout: &mut u32, pguidservices: ::core::option::Option<&mut ::windows::core::GUID>) -> u32 +pub unsafe fn BluetoothEnumerateInstalledServices<'a, P0>(hradio: P0, pbtdi: &BLUETOOTH_DEVICE_INFO, pcserviceinout: &mut u32, pguidservices: *mut ::windows::core::GUID) -> u32 where P0: ::std::convert::Into, { @@ -2546,7 +2546,7 @@ where #[doc = "*Required features: `\"Win32_Devices_Bluetooth\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BluetoothGATTGetCharacteristics<'a, P0>(hdevice: P0, service: ::core::option::Option<&BTH_LE_GATT_SERVICE>, characteristicsbuffer: &mut [BTH_LE_GATT_CHARACTERISTIC], characteristicsbufferactual: &mut u16, flags: u32) -> ::windows::core::Result<()> +pub unsafe fn BluetoothGATTGetCharacteristics<'a, P0>(hdevice: P0, service: ::core::option::Option<&BTH_LE_GATT_SERVICE>, characteristicsbuffer: ::core::option::Option<&mut [BTH_LE_GATT_CHARACTERISTIC]>, characteristicsbufferactual: &mut u16, flags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2554,7 +2554,7 @@ where extern "system" { fn BluetoothGATTGetCharacteristics(hdevice: super::super::Foundation::HANDLE, service: *const BTH_LE_GATT_SERVICE, characteristicsbuffercount: u16, characteristicsbuffer: *mut BTH_LE_GATT_CHARACTERISTIC, characteristicsbufferactual: *mut u16, flags: u32) -> ::windows::core::HRESULT; } - BluetoothGATTGetCharacteristics(hdevice.into(), ::core::mem::transmute(service), characteristicsbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(characteristicsbuffer)), ::core::mem::transmute(characteristicsbufferactual), flags).ok() + BluetoothGATTGetCharacteristics(hdevice.into(), ::core::mem::transmute(service), characteristicsbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(characteristicsbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(characteristicsbufferactual), flags).ok() } #[doc = "*Required features: `\"Win32_Devices_Bluetooth\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2572,7 +2572,7 @@ where #[doc = "*Required features: `\"Win32_Devices_Bluetooth\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BluetoothGATTGetDescriptors<'a, P0>(hdevice: P0, characteristic: &BTH_LE_GATT_CHARACTERISTIC, descriptorsbuffer: &mut [BTH_LE_GATT_DESCRIPTOR], descriptorsbufferactual: &mut u16, flags: u32) -> ::windows::core::Result<()> +pub unsafe fn BluetoothGATTGetDescriptors<'a, P0>(hdevice: P0, characteristic: &BTH_LE_GATT_CHARACTERISTIC, descriptorsbuffer: ::core::option::Option<&mut [BTH_LE_GATT_DESCRIPTOR]>, descriptorsbufferactual: &mut u16, flags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2580,12 +2580,12 @@ where extern "system" { fn BluetoothGATTGetDescriptors(hdevice: super::super::Foundation::HANDLE, characteristic: *const BTH_LE_GATT_CHARACTERISTIC, descriptorsbuffercount: u16, descriptorsbuffer: *mut BTH_LE_GATT_DESCRIPTOR, descriptorsbufferactual: *mut u16, flags: u32) -> ::windows::core::HRESULT; } - BluetoothGATTGetDescriptors(hdevice.into(), ::core::mem::transmute(characteristic), descriptorsbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(descriptorsbuffer)), ::core::mem::transmute(descriptorsbufferactual), flags).ok() + BluetoothGATTGetDescriptors(hdevice.into(), ::core::mem::transmute(characteristic), descriptorsbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(descriptorsbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(descriptorsbufferactual), flags).ok() } #[doc = "*Required features: `\"Win32_Devices_Bluetooth\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BluetoothGATTGetIncludedServices<'a, P0>(hdevice: P0, parentservice: ::core::option::Option<&BTH_LE_GATT_SERVICE>, includedservicesbuffer: &mut [BTH_LE_GATT_SERVICE], includedservicesbufferactual: &mut u16, flags: u32) -> ::windows::core::Result<()> +pub unsafe fn BluetoothGATTGetIncludedServices<'a, P0>(hdevice: P0, parentservice: ::core::option::Option<&BTH_LE_GATT_SERVICE>, includedservicesbuffer: ::core::option::Option<&mut [BTH_LE_GATT_SERVICE]>, includedservicesbufferactual: &mut u16, flags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2593,12 +2593,12 @@ where extern "system" { fn BluetoothGATTGetIncludedServices(hdevice: super::super::Foundation::HANDLE, parentservice: *const BTH_LE_GATT_SERVICE, includedservicesbuffercount: u16, includedservicesbuffer: *mut BTH_LE_GATT_SERVICE, includedservicesbufferactual: *mut u16, flags: u32) -> ::windows::core::HRESULT; } - BluetoothGATTGetIncludedServices(hdevice.into(), ::core::mem::transmute(parentservice), includedservicesbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(includedservicesbuffer)), ::core::mem::transmute(includedservicesbufferactual), flags).ok() + BluetoothGATTGetIncludedServices(hdevice.into(), ::core::mem::transmute(parentservice), includedservicesbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(includedservicesbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(includedservicesbufferactual), flags).ok() } #[doc = "*Required features: `\"Win32_Devices_Bluetooth\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BluetoothGATTGetServices<'a, P0>(hdevice: P0, servicesbuffer: &mut [BTH_LE_GATT_SERVICE], servicesbufferactual: &mut u16, flags: u32) -> ::windows::core::Result<()> +pub unsafe fn BluetoothGATTGetServices<'a, P0>(hdevice: P0, servicesbuffer: ::core::option::Option<&mut [BTH_LE_GATT_SERVICE]>, servicesbufferactual: &mut u16, flags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2606,7 +2606,7 @@ where extern "system" { fn BluetoothGATTGetServices(hdevice: super::super::Foundation::HANDLE, servicesbuffercount: u16, servicesbuffer: *mut BTH_LE_GATT_SERVICE, servicesbufferactual: *mut u16, flags: u32) -> ::windows::core::HRESULT; } - BluetoothGATTGetServices(hdevice.into(), servicesbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(servicesbuffer)), ::core::mem::transmute(servicesbufferactual), flags).ok() + BluetoothGATTGetServices(hdevice.into(), servicesbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(servicesbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(servicesbufferactual), flags).ok() } #[doc = "*Required features: `\"Win32_Devices_Bluetooth\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2750,51 +2750,51 @@ pub unsafe fn BluetoothRemoveDevice(paddress: &BLUETOOTH_ADDRESS) -> u32 { #[doc = "*Required features: `\"Win32_Devices_Bluetooth\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BluetoothSdpEnumAttributes(psdpstream: &u8, cbstreamsize: u32, pfncallback: PFN_BLUETOOTH_ENUM_ATTRIBUTES_CALLBACK, pvparam: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL { +pub unsafe fn BluetoothSdpEnumAttributes(psdpstream: &[u8], pfncallback: PFN_BLUETOOTH_ENUM_ATTRIBUTES_CALLBACK, pvparam: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn BluetoothSdpEnumAttributes(psdpstream: *const u8, cbstreamsize: u32, pfncallback: *mut ::core::ffi::c_void, pvparam: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - BluetoothSdpEnumAttributes(::core::mem::transmute(psdpstream), cbstreamsize, ::core::mem::transmute(pfncallback), ::core::mem::transmute(pvparam)) + BluetoothSdpEnumAttributes(::core::mem::transmute(psdpstream.as_ptr()), psdpstream.len() as _, ::core::mem::transmute(pfncallback), ::core::mem::transmute(pvparam)) } #[doc = "*Required features: `\"Win32_Devices_Bluetooth\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BluetoothSdpGetAttributeValue(precordstream: &u8, cbrecordlength: u32, usattributeid: u16, pattributedata: &mut SDP_ELEMENT_DATA) -> u32 { +pub unsafe fn BluetoothSdpGetAttributeValue(precordstream: &[u8], usattributeid: u16, pattributedata: &mut SDP_ELEMENT_DATA) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn BluetoothSdpGetAttributeValue(precordstream: *const u8, cbrecordlength: u32, usattributeid: u16, pattributedata: *mut SDP_ELEMENT_DATA) -> u32; } - BluetoothSdpGetAttributeValue(::core::mem::transmute(precordstream), cbrecordlength, usattributeid, ::core::mem::transmute(pattributedata)) + BluetoothSdpGetAttributeValue(::core::mem::transmute(precordstream.as_ptr()), precordstream.len() as _, usattributeid, ::core::mem::transmute(pattributedata)) } #[doc = "*Required features: `\"Win32_Devices_Bluetooth\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BluetoothSdpGetContainerElementData(pcontainerstream: &u8, cbcontainerlength: u32, pelement: &mut isize, pdata: &mut SDP_ELEMENT_DATA) -> u32 { +pub unsafe fn BluetoothSdpGetContainerElementData(pcontainerstream: &[u8], pelement: &mut isize, pdata: &mut SDP_ELEMENT_DATA) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn BluetoothSdpGetContainerElementData(pcontainerstream: *const u8, cbcontainerlength: u32, pelement: *mut isize, pdata: *mut SDP_ELEMENT_DATA) -> u32; } - BluetoothSdpGetContainerElementData(::core::mem::transmute(pcontainerstream), cbcontainerlength, ::core::mem::transmute(pelement), ::core::mem::transmute(pdata)) + BluetoothSdpGetContainerElementData(::core::mem::transmute(pcontainerstream.as_ptr()), pcontainerstream.len() as _, ::core::mem::transmute(pelement), ::core::mem::transmute(pdata)) } #[doc = "*Required features: `\"Win32_Devices_Bluetooth\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BluetoothSdpGetElementData(psdpstream: &u8, cbsdpstreamlength: u32, pdata: &mut SDP_ELEMENT_DATA) -> u32 { +pub unsafe fn BluetoothSdpGetElementData(psdpstream: &[u8], pdata: &mut SDP_ELEMENT_DATA) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn BluetoothSdpGetElementData(psdpstream: *const u8, cbsdpstreamlength: u32, pdata: *mut SDP_ELEMENT_DATA) -> u32; } - BluetoothSdpGetElementData(::core::mem::transmute(psdpstream), cbsdpstreamlength, ::core::mem::transmute(pdata)) + BluetoothSdpGetElementData(::core::mem::transmute(psdpstream.as_ptr()), psdpstream.len() as _, ::core::mem::transmute(pdata)) } #[doc = "*Required features: `\"Win32_Devices_Bluetooth\"`*"] #[inline] -pub unsafe fn BluetoothSdpGetString(precordstream: &u8, cbrecordlength: u32, pstringdata: ::core::option::Option<&SDP_STRING_TYPE_DATA>, usstringoffset: u16, pszstring: ::windows::core::PWSTR, pcchstringlength: &mut u32) -> u32 { +pub unsafe fn BluetoothSdpGetString(precordstream: &[u8], pstringdata: ::core::option::Option<&SDP_STRING_TYPE_DATA>, usstringoffset: u16, pszstring: ::windows::core::PWSTR, pcchstringlength: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn BluetoothSdpGetString(precordstream: *const u8, cbrecordlength: u32, pstringdata: *const SDP_STRING_TYPE_DATA, usstringoffset: u16, pszstring: ::windows::core::PWSTR, pcchstringlength: *mut u32) -> u32; } - BluetoothSdpGetString(::core::mem::transmute(precordstream), cbrecordlength, ::core::mem::transmute(pstringdata), usstringoffset, ::core::mem::transmute(pszstring), ::core::mem::transmute(pcchstringlength)) + BluetoothSdpGetString(::core::mem::transmute(precordstream.as_ptr()), precordstream.len() as _, ::core::mem::transmute(pstringdata), usstringoffset, ::core::mem::transmute(pszstring), ::core::mem::transmute(pcchstringlength)) } #[doc = "*Required features: `\"Win32_Devices_Bluetooth\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Devices/Communication/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/Communication/mod.rs index 09677a65f0..9d06472cd8 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/Communication/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/Communication/mod.rs @@ -671,7 +671,7 @@ where #[doc = "*Required features: `\"Win32_Devices_Communication\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetCommConfig<'a, P0>(hcommdev: P0, lpcc: ::core::option::Option<&mut COMMCONFIG>, lpdwsize: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetCommConfig<'a, P0>(hcommdev: P0, lpcc: *mut COMMCONFIG, lpdwsize: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -714,7 +714,7 @@ pub unsafe fn GetCommPorts(lpportnumbers: &mut [u32], puportnumbersfound: &mut u extern "system" { fn GetCommPorts(lpportnumbers: *mut u32, uportnumberscount: u32, puportnumbersfound: *mut u32) -> u32; } - GetCommPorts(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpportnumbers)), lpportnumbers.len() as _, ::core::mem::transmute(puportnumbersfound)) + GetCommPorts(::core::mem::transmute(lpportnumbers.as_ptr()), lpportnumbers.len() as _, ::core::mem::transmute(puportnumbersfound)) } #[doc = "*Required features: `\"Win32_Devices_Communication\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -758,7 +758,7 @@ where #[doc = "*Required features: `\"Win32_Devices_Communication\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetDefaultCommConfigA<'a, P0>(lpszname: P0, lpcc: &mut COMMCONFIG, lpdwsize: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetDefaultCommConfigA<'a, P0>(lpszname: P0, lpcc: *mut COMMCONFIG, lpdwsize: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -771,7 +771,7 @@ where #[doc = "*Required features: `\"Win32_Devices_Communication\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetDefaultCommConfigW<'a, P0>(lpszname: P0, lpcc: &mut COMMCONFIG, lpdwsize: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetDefaultCommConfigW<'a, P0>(lpszname: P0, lpcc: *mut COMMCONFIG, lpdwsize: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1478,7 +1478,7 @@ where #[doc = "*Required features: `\"Win32_Devices_Communication\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetCommConfig<'a, P0>(hcommdev: P0, lpcc: &COMMCONFIG, dwsize: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetCommConfig<'a, P0>(hcommdev: P0, lpcc: &[u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1486,7 +1486,7 @@ where extern "system" { fn SetCommConfig(hcommdev: super::super::Foundation::HANDLE, lpcc: *const COMMCONFIG, dwsize: u32) -> super::super::Foundation::BOOL; } - SetCommConfig(hcommdev.into(), ::core::mem::transmute(lpcc), dwsize) + SetCommConfig(hcommdev.into(), ::core::mem::transmute(lpcc.as_ptr()), lpcc.len() as _) } #[doc = "*Required features: `\"Win32_Devices_Communication\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1530,7 +1530,7 @@ where #[doc = "*Required features: `\"Win32_Devices_Communication\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetDefaultCommConfigA<'a, P0>(lpszname: P0, lpcc: &COMMCONFIG, dwsize: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetDefaultCommConfigA<'a, P0>(lpszname: P0, lpcc: &[u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -1538,12 +1538,12 @@ where extern "system" { fn SetDefaultCommConfigA(lpszname: ::windows::core::PCSTR, lpcc: *const COMMCONFIG, dwsize: u32) -> super::super::Foundation::BOOL; } - SetDefaultCommConfigA(lpszname.into(), ::core::mem::transmute(lpcc), dwsize) + SetDefaultCommConfigA(lpszname.into(), ::core::mem::transmute(lpcc.as_ptr()), lpcc.len() as _) } #[doc = "*Required features: `\"Win32_Devices_Communication\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetDefaultCommConfigW<'a, P0>(lpszname: P0, lpcc: &COMMCONFIG, dwsize: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetDefaultCommConfigW<'a, P0>(lpszname: P0, lpcc: &[u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1551,7 +1551,7 @@ where extern "system" { fn SetDefaultCommConfigW(lpszname: ::windows::core::PCWSTR, lpcc: *const COMMCONFIG, dwsize: u32) -> super::super::Foundation::BOOL; } - SetDefaultCommConfigW(lpszname.into(), ::core::mem::transmute(lpcc), dwsize) + SetDefaultCommConfigW(lpszname.into(), ::core::mem::transmute(lpcc.as_ptr()), lpcc.len() as _) } #[doc = "*Required features: `\"Win32_Devices_Communication\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Devices/DeviceAccess/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/DeviceAccess/mod.rs index 717af65fdd..35859c10c8 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/DeviceAccess/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/DeviceAccess/mod.rs @@ -169,14 +169,14 @@ pub struct ICreateDeviceAccessAsync_Vtbl { #[repr(transparent)] pub struct IDeviceIoControl(::windows::core::IUnknown); impl IDeviceIoControl { - pub unsafe fn DeviceIoControlSync(&self, iocontrolcode: u32, inputbuffer: &[u8], outputbuffer: &mut [u8], bytesreturned: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DeviceIoControlSync)(::windows::core::Interface::as_raw(self), iocontrolcode, ::core::mem::transmute(::windows::core::as_ptr_or_null(inputbuffer)), inputbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(outputbuffer)), outputbuffer.len() as _, ::core::mem::transmute(bytesreturned)).ok() + pub unsafe fn DeviceIoControlSync(&self, iocontrolcode: u32, inputbuffer: ::core::option::Option<&[u8]>, outputbuffer: ::core::option::Option<&mut [u8]>, bytesreturned: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).DeviceIoControlSync)(::windows::core::Interface::as_raw(self), iocontrolcode, ::core::mem::transmute(inputbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), inputbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(outputbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), outputbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(bytesreturned)).ok() } - pub unsafe fn DeviceIoControlAsync<'a, P0>(&self, iocontrolcode: u32, inputbuffer: &[u8], outputbuffer: &mut [u8], requestcompletioncallback: P0, cancelcontext: ::core::option::Option<&mut usize>) -> ::windows::core::Result<()> + pub unsafe fn DeviceIoControlAsync<'a, P0>(&self, iocontrolcode: u32, inputbuffer: ::core::option::Option<&[u8]>, outputbuffer: ::core::option::Option<&mut [u8]>, requestcompletioncallback: P0, cancelcontext: ::core::option::Option<&mut usize>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDeviceRequestCompletionCallback>>, { - (::windows::core::Interface::vtable(self).DeviceIoControlAsync)(::windows::core::Interface::as_raw(self), iocontrolcode, ::core::mem::transmute(::windows::core::as_ptr_or_null(inputbuffer)), inputbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(outputbuffer)), outputbuffer.len() as _, requestcompletioncallback.into().abi(), ::core::mem::transmute(cancelcontext)).ok() + (::windows::core::Interface::vtable(self).DeviceIoControlAsync)(::windows::core::Interface::as_raw(self), iocontrolcode, ::core::mem::transmute(inputbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), inputbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(outputbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), outputbuffer.as_deref().map_or(0, |slice| slice.len() as _), requestcompletioncallback.into().abi(), ::core::mem::transmute(cancelcontext)).ok() } pub unsafe fn CancelOperation(&self, cancelcontext: usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CancelOperation)(::windows::core::Interface::as_raw(self), cancelcontext).ok() diff --git a/crates/libs/windows/src/Windows/Win32/Devices/DeviceAndDriverInstallation/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/DeviceAndDriverInstallation/mod.rs index 101fb1eee6..55d420727f 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/DeviceAndDriverInstallation/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/DeviceAndDriverInstallation/mod.rs @@ -331,21 +331,21 @@ pub unsafe fn CM_Add_Range(ullstartvalue: u64, ullendvalue: u64, rlh: usize, ulf } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Add_Res_Des(prdresdes: ::core::option::Option<&mut usize>, lclogconf: usize, resourceid: u32, resourcedata: *const ::core::ffi::c_void, resourcelen: u32, ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Add_Res_Des(prdresdes: ::core::option::Option<&mut usize>, lclogconf: usize, resourceid: u32, resourcedata: &[u8], ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Add_Res_Des(prdresdes: *mut usize, lclogconf: usize, resourceid: u32, resourcedata: *const ::core::ffi::c_void, resourcelen: u32, ulflags: u32) -> CONFIGRET; } - CM_Add_Res_Des(::core::mem::transmute(prdresdes), lclogconf, resourceid, ::core::mem::transmute(resourcedata), resourcelen, ulflags) + CM_Add_Res_Des(::core::mem::transmute(prdresdes), lclogconf, resourceid, ::core::mem::transmute(resourcedata.as_ptr()), resourcedata.len() as _, ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Add_Res_Des_Ex(prdresdes: ::core::option::Option<&mut usize>, lclogconf: usize, resourceid: u32, resourcedata: *const ::core::ffi::c_void, resourcelen: u32, ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Add_Res_Des_Ex(prdresdes: ::core::option::Option<&mut usize>, lclogconf: usize, resourceid: u32, resourcedata: &[u8], ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Add_Res_Des_Ex(prdresdes: *mut usize, lclogconf: usize, resourceid: u32, resourcedata: *const ::core::ffi::c_void, resourcelen: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Add_Res_Des_Ex(::core::mem::transmute(prdresdes), lclogconf, resourceid, ::core::mem::transmute(resourcedata), resourcelen, ulflags, hmachine) + CM_Add_Res_Des_Ex(::core::mem::transmute(prdresdes), lclogconf, resourceid, ::core::mem::transmute(resourcedata.as_ptr()), resourcedata.len() as _, ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] pub const CM_CDFLAGS_DRIVER: u32 = 1u32; @@ -754,22 +754,22 @@ pub unsafe fn CM_Delete_Range(ullstartvalue: u64, ullendvalue: u64, rlh: usize, #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CM_Detect_Resource_Conflict(dndevinst: u32, resourceid: u32, resourcedata: *const ::core::ffi::c_void, resourcelen: u32, pbconflictdetected: &mut super::super::Foundation::BOOL, ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Detect_Resource_Conflict(dndevinst: u32, resourceid: u32, resourcedata: &[u8], pbconflictdetected: &mut super::super::Foundation::BOOL, ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Detect_Resource_Conflict(dndevinst: u32, resourceid: u32, resourcedata: *const ::core::ffi::c_void, resourcelen: u32, pbconflictdetected: *mut super::super::Foundation::BOOL, ulflags: u32) -> CONFIGRET; } - CM_Detect_Resource_Conflict(dndevinst, resourceid, ::core::mem::transmute(resourcedata), resourcelen, ::core::mem::transmute(pbconflictdetected), ulflags) + CM_Detect_Resource_Conflict(dndevinst, resourceid, ::core::mem::transmute(resourcedata.as_ptr()), resourcedata.len() as _, ::core::mem::transmute(pbconflictdetected), ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CM_Detect_Resource_Conflict_Ex(dndevinst: u32, resourceid: u32, resourcedata: *const ::core::ffi::c_void, resourcelen: u32, pbconflictdetected: &mut super::super::Foundation::BOOL, ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Detect_Resource_Conflict_Ex(dndevinst: u32, resourceid: u32, resourcedata: &[u8], pbconflictdetected: &mut super::super::Foundation::BOOL, ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Detect_Resource_Conflict_Ex(dndevinst: u32, resourceid: u32, resourcedata: *const ::core::ffi::c_void, resourcelen: u32, pbconflictdetected: *mut super::super::Foundation::BOOL, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Detect_Resource_Conflict_Ex(dndevinst, resourceid, ::core::mem::transmute(resourcedata), resourcelen, ::core::mem::transmute(pbconflictdetected), ulflags, hmachine) + CM_Detect_Resource_Conflict_Ex(dndevinst, resourceid, ::core::mem::transmute(resourcedata.as_ptr()), resourcedata.len() as _, ::core::mem::transmute(pbconflictdetected), ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -1110,7 +1110,7 @@ pub unsafe fn CM_Get_Class_Name_ExW(classguid: &::windows::core::GUID, buffer: : #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Get_Class_PropertyW(classguid: &::windows::core::GUID, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: ::core::option::Option<&mut u8>, propertybuffersize: &mut u32, ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Get_Class_PropertyW(classguid: &::windows::core::GUID, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: *mut u8, propertybuffersize: &mut u32, ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Get_Class_PropertyW(classguid: *const ::windows::core::GUID, propertykey: *const super::Properties::DEVPROPKEY, propertytype: *mut u32, propertybuffer: *mut u8, propertybuffersize: *mut u32, ulflags: u32) -> CONFIGRET; @@ -1120,7 +1120,7 @@ pub unsafe fn CM_Get_Class_PropertyW(classguid: &::windows::core::GUID, property #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Get_Class_Property_ExW(classguid: &::windows::core::GUID, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: ::core::option::Option<&mut u8>, propertybuffersize: &mut u32, ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Get_Class_Property_ExW(classguid: &::windows::core::GUID, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: *mut u8, propertybuffersize: &mut u32, ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Get_Class_Property_ExW(classguid: *const ::windows::core::GUID, propertykey: *const super::Properties::DEVPROPKEY, propertytype: *mut u32, propertybuffer: *mut u8, propertybuffersize: *mut u32, ulflags: u32, hmachine: isize) -> CONFIGRET; @@ -1130,7 +1130,7 @@ pub unsafe fn CM_Get_Class_Property_ExW(classguid: &::windows::core::GUID, prope #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Get_Class_Property_Keys(classguid: &::windows::core::GUID, propertykeyarray: ::core::option::Option<&mut super::Properties::DEVPROPKEY>, propertykeycount: &mut u32, ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Get_Class_Property_Keys(classguid: &::windows::core::GUID, propertykeyarray: *mut super::Properties::DEVPROPKEY, propertykeycount: &mut u32, ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Get_Class_Property_Keys(classguid: *const ::windows::core::GUID, propertykeyarray: *mut super::Properties::DEVPROPKEY, propertykeycount: *mut u32, ulflags: u32) -> CONFIGRET; @@ -1140,7 +1140,7 @@ pub unsafe fn CM_Get_Class_Property_Keys(classguid: &::windows::core::GUID, prop #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Get_Class_Property_Keys_Ex(classguid: &::windows::core::GUID, propertykeyarray: ::core::option::Option<&mut super::Properties::DEVPROPKEY>, propertykeycount: &mut u32, ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Get_Class_Property_Keys_Ex(classguid: &::windows::core::GUID, propertykeyarray: *mut super::Properties::DEVPROPKEY, propertykeycount: &mut u32, ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Get_Class_Property_Keys_Ex(classguid: *const ::windows::core::GUID, propertykeyarray: *mut super::Properties::DEVPROPKEY, propertykeycount: *mut u32, ulflags: u32, hmachine: isize) -> CONFIGRET; @@ -1234,7 +1234,7 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Get_DevNode_PropertyW(dndevinst: u32, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: ::core::option::Option<&mut u8>, propertybuffersize: &mut u32, ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Get_DevNode_PropertyW(dndevinst: u32, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: *mut u8, propertybuffersize: &mut u32, ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Get_DevNode_PropertyW(dndevinst: u32, propertykey: *const super::Properties::DEVPROPKEY, propertytype: *mut u32, propertybuffer: *mut u8, propertybuffersize: *mut u32, ulflags: u32) -> CONFIGRET; @@ -1244,7 +1244,7 @@ pub unsafe fn CM_Get_DevNode_PropertyW(dndevinst: u32, propertykey: &super::Prop #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Get_DevNode_Property_ExW(dndevinst: u32, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: ::core::option::Option<&mut u8>, propertybuffersize: &mut u32, ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Get_DevNode_Property_ExW(dndevinst: u32, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: *mut u8, propertybuffersize: &mut u32, ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Get_DevNode_Property_ExW(dndevinst: u32, propertykey: *const super::Properties::DEVPROPKEY, propertytype: *mut u32, propertybuffer: *mut u8, propertybuffersize: *mut u32, ulflags: u32, hmachine: isize) -> CONFIGRET; @@ -1254,7 +1254,7 @@ pub unsafe fn CM_Get_DevNode_Property_ExW(dndevinst: u32, propertykey: &super::P #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Get_DevNode_Property_Keys(dndevinst: u32, propertykeyarray: ::core::option::Option<&mut super::Properties::DEVPROPKEY>, propertykeycount: &mut u32, ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Get_DevNode_Property_Keys(dndevinst: u32, propertykeyarray: *mut super::Properties::DEVPROPKEY, propertykeycount: &mut u32, ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Get_DevNode_Property_Keys(dndevinst: u32, propertykeyarray: *mut super::Properties::DEVPROPKEY, propertykeycount: *mut u32, ulflags: u32) -> CONFIGRET; @@ -1264,7 +1264,7 @@ pub unsafe fn CM_Get_DevNode_Property_Keys(dndevinst: u32, propertykeyarray: ::c #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Get_DevNode_Property_Keys_Ex(dndevinst: u32, propertykeyarray: ::core::option::Option<&mut super::Properties::DEVPROPKEY>, propertykeycount: &mut u32, ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Get_DevNode_Property_Keys_Ex(dndevinst: u32, propertykeyarray: *mut super::Properties::DEVPROPKEY, propertykeycount: &mut u32, ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Get_DevNode_Property_Keys_Ex(dndevinst: u32, propertykeyarray: *mut super::Properties::DEVPROPKEY, propertykeycount: *mut u32, ulflags: u32, hmachine: isize) -> CONFIGRET; @@ -1332,7 +1332,7 @@ pub unsafe fn CM_Get_Device_IDA(dndevinst: u32, buffer: &mut [u8], ulflags: u32) extern "system" { fn CM_Get_Device_IDA(dndevinst: u32, buffer: ::windows::core::PSTR, bufferlen: u32, ulflags: u32) -> CONFIGRET; } - CM_Get_Device_IDA(dndevinst, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ulflags) + CM_Get_Device_IDA(dndevinst, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -1341,7 +1341,7 @@ pub unsafe fn CM_Get_Device_IDW(dndevinst: u32, buffer: &mut [u16], ulflags: u32 extern "system" { fn CM_Get_Device_IDW(dndevinst: u32, buffer: ::windows::core::PWSTR, bufferlen: u32, ulflags: u32) -> CONFIGRET; } - CM_Get_Device_IDW(dndevinst, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ulflags) + CM_Get_Device_IDW(dndevinst, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -1350,7 +1350,7 @@ pub unsafe fn CM_Get_Device_ID_ExA(dndevinst: u32, buffer: &mut [u8], ulflags: u extern "system" { fn CM_Get_Device_ID_ExA(dndevinst: u32, buffer: ::windows::core::PSTR, bufferlen: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Get_Device_ID_ExA(dndevinst, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ulflags, hmachine) + CM_Get_Device_ID_ExA(dndevinst, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -1359,7 +1359,7 @@ pub unsafe fn CM_Get_Device_ID_ExW(dndevinst: u32, buffer: &mut [u16], ulflags: extern "system" { fn CM_Get_Device_ID_ExW(dndevinst: u32, buffer: ::windows::core::PWSTR, bufferlen: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Get_Device_ID_ExW(dndevinst, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ulflags, hmachine) + CM_Get_Device_ID_ExW(dndevinst, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -1371,7 +1371,7 @@ where extern "system" { fn CM_Get_Device_ID_ListA(pszfilter: ::windows::core::PCSTR, buffer: ::windows::core::PSTR, bufferlen: u32, ulflags: u32) -> CONFIGRET; } - CM_Get_Device_ID_ListA(pszfilter.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ulflags) + CM_Get_Device_ID_ListA(pszfilter.into(), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -1383,7 +1383,7 @@ where extern "system" { fn CM_Get_Device_ID_ListW(pszfilter: ::windows::core::PCWSTR, buffer: ::windows::core::PWSTR, bufferlen: u32, ulflags: u32) -> CONFIGRET; } - CM_Get_Device_ID_ListW(pszfilter.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ulflags) + CM_Get_Device_ID_ListW(pszfilter.into(), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -1395,7 +1395,7 @@ where extern "system" { fn CM_Get_Device_ID_List_ExA(pszfilter: ::windows::core::PCSTR, buffer: ::windows::core::PSTR, bufferlen: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Get_Device_ID_List_ExA(pszfilter.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ulflags, hmachine) + CM_Get_Device_ID_List_ExA(pszfilter.into(), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -1407,7 +1407,7 @@ where extern "system" { fn CM_Get_Device_ID_List_ExW(pszfilter: ::windows::core::PCWSTR, buffer: ::windows::core::PWSTR, bufferlen: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Get_Device_ID_List_ExW(pszfilter.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ulflags, hmachine) + CM_Get_Device_ID_List_ExW(pszfilter.into(), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -1530,7 +1530,7 @@ pub unsafe fn CM_Get_Device_Interface_ListA(interfaceclassguid: &::windows::core extern "system" { fn CM_Get_Device_Interface_ListA(interfaceclassguid: *const ::windows::core::GUID, pdeviceid: *const i8, buffer: ::windows::core::PSTR, bufferlen: u32, ulflags: u32) -> CONFIGRET; } - CM_Get_Device_Interface_ListA(::core::mem::transmute(interfaceclassguid), ::core::mem::transmute(pdeviceid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ulflags) + CM_Get_Device_Interface_ListA(::core::mem::transmute(interfaceclassguid), ::core::mem::transmute(pdeviceid), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -1539,7 +1539,7 @@ pub unsafe fn CM_Get_Device_Interface_ListW(interfaceclassguid: &::windows::core extern "system" { fn CM_Get_Device_Interface_ListW(interfaceclassguid: *const ::windows::core::GUID, pdeviceid: *const u16, buffer: ::windows::core::PWSTR, bufferlen: u32, ulflags: u32) -> CONFIGRET; } - CM_Get_Device_Interface_ListW(::core::mem::transmute(interfaceclassguid), ::core::mem::transmute(pdeviceid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ulflags) + CM_Get_Device_Interface_ListW(::core::mem::transmute(interfaceclassguid), ::core::mem::transmute(pdeviceid), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -1548,7 +1548,7 @@ pub unsafe fn CM_Get_Device_Interface_List_ExA(interfaceclassguid: &::windows::c extern "system" { fn CM_Get_Device_Interface_List_ExA(interfaceclassguid: *const ::windows::core::GUID, pdeviceid: *const i8, buffer: ::windows::core::PSTR, bufferlen: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Get_Device_Interface_List_ExA(::core::mem::transmute(interfaceclassguid), ::core::mem::transmute(pdeviceid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ulflags, hmachine) + CM_Get_Device_Interface_List_ExA(::core::mem::transmute(interfaceclassguid), ::core::mem::transmute(pdeviceid), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -1557,7 +1557,7 @@ pub unsafe fn CM_Get_Device_Interface_List_ExW(interfaceclassguid: &::windows::c extern "system" { fn CM_Get_Device_Interface_List_ExW(interfaceclassguid: *const ::windows::core::GUID, pdeviceid: *const u16, buffer: ::windows::core::PWSTR, bufferlen: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Get_Device_Interface_List_ExW(::core::mem::transmute(interfaceclassguid), ::core::mem::transmute(pdeviceid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ulflags, hmachine) + CM_Get_Device_Interface_List_ExW(::core::mem::transmute(interfaceclassguid), ::core::mem::transmute(pdeviceid), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -1598,7 +1598,7 @@ pub unsafe fn CM_Get_Device_Interface_List_Size_ExW(pullen: &mut u32, interfacec #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Get_Device_Interface_PropertyW<'a, P0>(pszdeviceinterface: P0, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: ::core::option::Option<&mut u8>, propertybuffersize: &mut u32, ulflags: u32) -> CONFIGRET +pub unsafe fn CM_Get_Device_Interface_PropertyW<'a, P0>(pszdeviceinterface: P0, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: *mut u8, propertybuffersize: &mut u32, ulflags: u32) -> CONFIGRET where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1611,7 +1611,7 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Get_Device_Interface_Property_ExW<'a, P0>(pszdeviceinterface: P0, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: ::core::option::Option<&mut u8>, propertybuffersize: &mut u32, ulflags: u32, hmachine: isize) -> CONFIGRET +pub unsafe fn CM_Get_Device_Interface_Property_ExW<'a, P0>(pszdeviceinterface: P0, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: *mut u8, propertybuffersize: &mut u32, ulflags: u32, hmachine: isize) -> CONFIGRET where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1624,7 +1624,7 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Get_Device_Interface_Property_KeysW<'a, P0>(pszdeviceinterface: P0, propertykeyarray: ::core::option::Option<&mut super::Properties::DEVPROPKEY>, propertykeycount: &mut u32, ulflags: u32) -> CONFIGRET +pub unsafe fn CM_Get_Device_Interface_Property_KeysW<'a, P0>(pszdeviceinterface: P0, propertykeyarray: *mut super::Properties::DEVPROPKEY, propertykeycount: &mut u32, ulflags: u32) -> CONFIGRET where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1637,7 +1637,7 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Get_Device_Interface_Property_Keys_ExW<'a, P0>(pszdeviceinterface: P0, propertykeyarray: ::core::option::Option<&mut super::Properties::DEVPROPKEY>, propertykeycount: &mut u32, ulflags: u32, hmachine: isize) -> CONFIGRET +pub unsafe fn CM_Get_Device_Interface_Property_Keys_ExW<'a, P0>(pszdeviceinterface: P0, propertykeyarray: *mut super::Properties::DEVPROPKEY, propertykeycount: &mut u32, ulflags: u32, hmachine: isize) -> CONFIGRET where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1831,21 +1831,21 @@ pub unsafe fn CM_Get_Parent_Ex(pdndevinst: &mut u32, dndevinst: u32, ulflags: u3 } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Get_Res_Des_Data(rdresdes: usize, buffer: *mut ::core::ffi::c_void, bufferlen: u32, ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Get_Res_Des_Data(rdresdes: usize, buffer: &mut [u8], ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Get_Res_Des_Data(rdresdes: usize, buffer: *mut ::core::ffi::c_void, bufferlen: u32, ulflags: u32) -> CONFIGRET; } - CM_Get_Res_Des_Data(rdresdes, ::core::mem::transmute(buffer), bufferlen, ulflags) + CM_Get_Res_Des_Data(rdresdes, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Get_Res_Des_Data_Ex(rdresdes: usize, buffer: *mut ::core::ffi::c_void, bufferlen: u32, ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Get_Res_Des_Data_Ex(rdresdes: usize, buffer: &mut [u8], ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Get_Res_Des_Data_Ex(rdresdes: usize, buffer: *mut ::core::ffi::c_void, bufferlen: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Get_Res_Des_Data_Ex(rdresdes, ::core::mem::transmute(buffer), bufferlen, ulflags, hmachine) + CM_Get_Res_Des_Data_Ex(rdresdes, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -2077,21 +2077,21 @@ pub unsafe fn CM_Merge_Range_List(rlhold1: usize, rlhold2: usize, rlhnew: usize, } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Modify_Res_Des(prdresdes: &mut usize, rdresdes: usize, resourceid: u32, resourcedata: *const ::core::ffi::c_void, resourcelen: u32, ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Modify_Res_Des(prdresdes: &mut usize, rdresdes: usize, resourceid: u32, resourcedata: &[u8], ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Modify_Res_Des(prdresdes: *mut usize, rdresdes: usize, resourceid: u32, resourcedata: *const ::core::ffi::c_void, resourcelen: u32, ulflags: u32) -> CONFIGRET; } - CM_Modify_Res_Des(::core::mem::transmute(prdresdes), rdresdes, resourceid, ::core::mem::transmute(resourcedata), resourcelen, ulflags) + CM_Modify_Res_Des(::core::mem::transmute(prdresdes), rdresdes, resourceid, ::core::mem::transmute(resourcedata.as_ptr()), resourcedata.len() as _, ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Modify_Res_Des_Ex(prdresdes: &mut usize, rdresdes: usize, resourceid: u32, resourcedata: *const ::core::ffi::c_void, resourcelen: u32, ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Modify_Res_Des_Ex(prdresdes: &mut usize, rdresdes: usize, resourceid: u32, resourcedata: &[u8], ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Modify_Res_Des_Ex(prdresdes: *mut usize, rdresdes: usize, resourceid: u32, resourcedata: *const ::core::ffi::c_void, resourcelen: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Modify_Res_Des_Ex(::core::mem::transmute(prdresdes), rdresdes, resourceid, ::core::mem::transmute(resourcedata), resourcelen, ulflags, hmachine) + CM_Modify_Res_Des_Ex(::core::mem::transmute(prdresdes), rdresdes, resourceid, ::core::mem::transmute(resourcedata.as_ptr()), resourcedata.len() as _, ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -2792,57 +2792,57 @@ pub const CM_QUERY_REMOVE_UI_NOT_OK: u32 = 1u32; pub const CM_QUERY_REMOVE_UI_OK: u32 = 0u32; #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Query_And_Remove_SubTreeA(dnancestor: u32, pvetotype: ::core::option::Option<&mut PNP_VETO_TYPE>, pszvetoname: &mut [u8], ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Query_And_Remove_SubTreeA(dnancestor: u32, pvetotype: ::core::option::Option<&mut PNP_VETO_TYPE>, pszvetoname: ::core::option::Option<&mut [u8]>, ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Query_And_Remove_SubTreeA(dnancestor: u32, pvetotype: *mut PNP_VETO_TYPE, pszvetoname: ::windows::core::PSTR, ulnamelength: u32, ulflags: u32) -> CONFIGRET; } - CM_Query_And_Remove_SubTreeA(dnancestor, ::core::mem::transmute(pvetotype), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszvetoname)), pszvetoname.len() as _, ulflags) + CM_Query_And_Remove_SubTreeA(dnancestor, ::core::mem::transmute(pvetotype), ::core::mem::transmute(pszvetoname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszvetoname.as_deref().map_or(0, |slice| slice.len() as _), ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Query_And_Remove_SubTreeW(dnancestor: u32, pvetotype: ::core::option::Option<&mut PNP_VETO_TYPE>, pszvetoname: &mut [u16], ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Query_And_Remove_SubTreeW(dnancestor: u32, pvetotype: ::core::option::Option<&mut PNP_VETO_TYPE>, pszvetoname: ::core::option::Option<&mut [u16]>, ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Query_And_Remove_SubTreeW(dnancestor: u32, pvetotype: *mut PNP_VETO_TYPE, pszvetoname: ::windows::core::PWSTR, ulnamelength: u32, ulflags: u32) -> CONFIGRET; } - CM_Query_And_Remove_SubTreeW(dnancestor, ::core::mem::transmute(pvetotype), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszvetoname)), pszvetoname.len() as _, ulflags) + CM_Query_And_Remove_SubTreeW(dnancestor, ::core::mem::transmute(pvetotype), ::core::mem::transmute(pszvetoname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszvetoname.as_deref().map_or(0, |slice| slice.len() as _), ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Query_And_Remove_SubTree_ExA(dnancestor: u32, pvetotype: ::core::option::Option<&mut PNP_VETO_TYPE>, pszvetoname: &mut [u8], ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Query_And_Remove_SubTree_ExA(dnancestor: u32, pvetotype: ::core::option::Option<&mut PNP_VETO_TYPE>, pszvetoname: ::core::option::Option<&mut [u8]>, ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Query_And_Remove_SubTree_ExA(dnancestor: u32, pvetotype: *mut PNP_VETO_TYPE, pszvetoname: ::windows::core::PSTR, ulnamelength: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Query_And_Remove_SubTree_ExA(dnancestor, ::core::mem::transmute(pvetotype), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszvetoname)), pszvetoname.len() as _, ulflags, hmachine) + CM_Query_And_Remove_SubTree_ExA(dnancestor, ::core::mem::transmute(pvetotype), ::core::mem::transmute(pszvetoname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszvetoname.as_deref().map_or(0, |slice| slice.len() as _), ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Query_And_Remove_SubTree_ExW(dnancestor: u32, pvetotype: ::core::option::Option<&mut PNP_VETO_TYPE>, pszvetoname: &mut [u16], ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Query_And_Remove_SubTree_ExW(dnancestor: u32, pvetotype: ::core::option::Option<&mut PNP_VETO_TYPE>, pszvetoname: ::core::option::Option<&mut [u16]>, ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Query_And_Remove_SubTree_ExW(dnancestor: u32, pvetotype: *mut PNP_VETO_TYPE, pszvetoname: ::windows::core::PWSTR, ulnamelength: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Query_And_Remove_SubTree_ExW(dnancestor, ::core::mem::transmute(pvetotype), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszvetoname)), pszvetoname.len() as _, ulflags, hmachine) + CM_Query_And_Remove_SubTree_ExW(dnancestor, ::core::mem::transmute(pvetotype), ::core::mem::transmute(pszvetoname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszvetoname.as_deref().map_or(0, |slice| slice.len() as _), ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Query_Arbitrator_Free_Data(pdata: *mut ::core::ffi::c_void, datalen: u32, dndevinst: u32, resourceid: u32, ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Query_Arbitrator_Free_Data(pdata: &mut [u8], dndevinst: u32, resourceid: u32, ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Query_Arbitrator_Free_Data(pdata: *mut ::core::ffi::c_void, datalen: u32, dndevinst: u32, resourceid: u32, ulflags: u32) -> CONFIGRET; } - CM_Query_Arbitrator_Free_Data(::core::mem::transmute(pdata), datalen, dndevinst, resourceid, ulflags) + CM_Query_Arbitrator_Free_Data(::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, dndevinst, resourceid, ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Query_Arbitrator_Free_Data_Ex(pdata: *mut ::core::ffi::c_void, datalen: u32, dndevinst: u32, resourceid: u32, ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Query_Arbitrator_Free_Data_Ex(pdata: &mut [u8], dndevinst: u32, resourceid: u32, ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Query_Arbitrator_Free_Data_Ex(pdata: *mut ::core::ffi::c_void, datalen: u32, dndevinst: u32, resourceid: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Query_Arbitrator_Free_Data_Ex(::core::mem::transmute(pdata), datalen, dndevinst, resourceid, ulflags, hmachine) + CM_Query_Arbitrator_Free_Data_Ex(::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, dndevinst, resourceid, ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -2882,12 +2882,12 @@ pub unsafe fn CM_Query_Remove_SubTree_Ex(dnancestor: u32, ulflags: u32, hmachine } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Query_Resource_Conflict_List(pclconflictlist: &mut usize, dndevinst: u32, resourceid: u32, resourcedata: *const ::core::ffi::c_void, resourcelen: u32, ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Query_Resource_Conflict_List(pclconflictlist: &mut usize, dndevinst: u32, resourceid: u32, resourcedata: &[u8], ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Query_Resource_Conflict_List(pclconflictlist: *mut usize, dndevinst: u32, resourceid: u32, resourcedata: *const ::core::ffi::c_void, resourcelen: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Query_Resource_Conflict_List(::core::mem::transmute(pclconflictlist), dndevinst, resourceid, ::core::mem::transmute(resourcedata), resourcelen, ulflags, hmachine) + CM_Query_Resource_Conflict_List(::core::mem::transmute(pclconflictlist), dndevinst, resourceid, ::core::mem::transmute(resourcedata.as_ptr()), resourcedata.len() as _, ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] pub const CM_REENUMERATE_ASYNCHRONOUS: u32 = 4u32; @@ -3055,39 +3055,39 @@ pub unsafe fn CM_Remove_SubTree_Ex(dnancestor: u32, ulflags: u32, hmachine: isiz } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Request_Device_EjectA(dndevinst: u32, pvetotype: ::core::option::Option<&mut PNP_VETO_TYPE>, pszvetoname: &mut [u8], ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Request_Device_EjectA(dndevinst: u32, pvetotype: ::core::option::Option<&mut PNP_VETO_TYPE>, pszvetoname: ::core::option::Option<&mut [u8]>, ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Request_Device_EjectA(dndevinst: u32, pvetotype: *mut PNP_VETO_TYPE, pszvetoname: ::windows::core::PSTR, ulnamelength: u32, ulflags: u32) -> CONFIGRET; } - CM_Request_Device_EjectA(dndevinst, ::core::mem::transmute(pvetotype), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszvetoname)), pszvetoname.len() as _, ulflags) + CM_Request_Device_EjectA(dndevinst, ::core::mem::transmute(pvetotype), ::core::mem::transmute(pszvetoname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszvetoname.as_deref().map_or(0, |slice| slice.len() as _), ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Request_Device_EjectW(dndevinst: u32, pvetotype: ::core::option::Option<&mut PNP_VETO_TYPE>, pszvetoname: &mut [u16], ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Request_Device_EjectW(dndevinst: u32, pvetotype: ::core::option::Option<&mut PNP_VETO_TYPE>, pszvetoname: ::core::option::Option<&mut [u16]>, ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Request_Device_EjectW(dndevinst: u32, pvetotype: *mut PNP_VETO_TYPE, pszvetoname: ::windows::core::PWSTR, ulnamelength: u32, ulflags: u32) -> CONFIGRET; } - CM_Request_Device_EjectW(dndevinst, ::core::mem::transmute(pvetotype), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszvetoname)), pszvetoname.len() as _, ulflags) + CM_Request_Device_EjectW(dndevinst, ::core::mem::transmute(pvetotype), ::core::mem::transmute(pszvetoname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszvetoname.as_deref().map_or(0, |slice| slice.len() as _), ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Request_Device_Eject_ExA(dndevinst: u32, pvetotype: ::core::option::Option<&mut PNP_VETO_TYPE>, pszvetoname: &mut [u8], ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Request_Device_Eject_ExA(dndevinst: u32, pvetotype: ::core::option::Option<&mut PNP_VETO_TYPE>, pszvetoname: ::core::option::Option<&mut [u8]>, ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Request_Device_Eject_ExA(dndevinst: u32, pvetotype: *mut PNP_VETO_TYPE, pszvetoname: ::windows::core::PSTR, ulnamelength: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Request_Device_Eject_ExA(dndevinst, ::core::mem::transmute(pvetotype), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszvetoname)), pszvetoname.len() as _, ulflags, hmachine) + CM_Request_Device_Eject_ExA(dndevinst, ::core::mem::transmute(pvetotype), ::core::mem::transmute(pszvetoname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszvetoname.as_deref().map_or(0, |slice| slice.len() as _), ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Request_Device_Eject_ExW(dndevinst: u32, pvetotype: ::core::option::Option<&mut PNP_VETO_TYPE>, pszvetoname: &mut [u16], ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Request_Device_Eject_ExW(dndevinst: u32, pvetotype: ::core::option::Option<&mut PNP_VETO_TYPE>, pszvetoname: ::core::option::Option<&mut [u16]>, ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Request_Device_Eject_ExW(dndevinst: u32, pvetotype: *mut PNP_VETO_TYPE, pszvetoname: ::windows::core::PWSTR, ulnamelength: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Request_Device_Eject_ExW(dndevinst, ::core::mem::transmute(pvetotype), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszvetoname)), pszvetoname.len() as _, ulflags, hmachine) + CM_Request_Device_Eject_ExW(dndevinst, ::core::mem::transmute(pvetotype), ::core::mem::transmute(pszvetoname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszvetoname.as_deref().map_or(0, |slice| slice.len() as _), ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -3176,40 +3176,40 @@ pub const CM_SET_HW_PROF_FLAGS_UI_NOT_OK: u32 = 1u32; #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Set_Class_PropertyW(classguid: &::windows::core::GUID, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&u8>, propertybuffersize: u32, ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Set_Class_PropertyW(classguid: &::windows::core::GUID, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&[u8]>, ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Set_Class_PropertyW(classguid: *const ::windows::core::GUID, propertykey: *const super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: *const u8, propertybuffersize: u32, ulflags: u32) -> CONFIGRET; } - CM_Set_Class_PropertyW(::core::mem::transmute(classguid), ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer), propertybuffersize, ulflags) + CM_Set_Class_PropertyW(::core::mem::transmute(classguid), ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Set_Class_Property_ExW(classguid: &::windows::core::GUID, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&u8>, propertybuffersize: u32, ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Set_Class_Property_ExW(classguid: &::windows::core::GUID, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&[u8]>, ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Set_Class_Property_ExW(classguid: *const ::windows::core::GUID, propertykey: *const super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: *const u8, propertybuffersize: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Set_Class_Property_ExW(::core::mem::transmute(classguid), ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer), propertybuffersize, ulflags, hmachine) + CM_Set_Class_Property_ExW(::core::mem::transmute(classguid), ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Set_Class_Registry_PropertyA(classguid: &::windows::core::GUID, ulproperty: u32, buffer: *const ::core::ffi::c_void, ullength: u32, ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Set_Class_Registry_PropertyA(classguid: &::windows::core::GUID, ulproperty: u32, buffer: ::core::option::Option<&[u8]>, ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Set_Class_Registry_PropertyA(classguid: *const ::windows::core::GUID, ulproperty: u32, buffer: *const ::core::ffi::c_void, ullength: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Set_Class_Registry_PropertyA(::core::mem::transmute(classguid), ulproperty, ::core::mem::transmute(buffer), ullength, ulflags, hmachine) + CM_Set_Class_Registry_PropertyA(::core::mem::transmute(classguid), ulproperty, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Set_Class_Registry_PropertyW(classguid: &::windows::core::GUID, ulproperty: u32, buffer: *const ::core::ffi::c_void, ullength: u32, ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Set_Class_Registry_PropertyW(classguid: &::windows::core::GUID, ulproperty: u32, buffer: ::core::option::Option<&[u8]>, ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Set_Class_Registry_PropertyW(classguid: *const ::windows::core::GUID, ulproperty: u32, buffer: *const ::core::ffi::c_void, ullength: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Set_Class_Registry_PropertyW(::core::mem::transmute(classguid), ulproperty, ::core::mem::transmute(buffer), ullength, ulflags, hmachine) + CM_Set_Class_Registry_PropertyW(::core::mem::transmute(classguid), ulproperty, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -3232,63 +3232,63 @@ pub unsafe fn CM_Set_DevNode_Problem_Ex(dndevinst: u32, ulproblem: u32, ulflags: #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Set_DevNode_PropertyW(dndevinst: u32, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&u8>, propertybuffersize: u32, ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Set_DevNode_PropertyW(dndevinst: u32, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&[u8]>, ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Set_DevNode_PropertyW(dndevinst: u32, propertykey: *const super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: *const u8, propertybuffersize: u32, ulflags: u32) -> CONFIGRET; } - CM_Set_DevNode_PropertyW(dndevinst, ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer), propertybuffersize, ulflags) + CM_Set_DevNode_PropertyW(dndevinst, ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Set_DevNode_Property_ExW(dndevinst: u32, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&u8>, propertybuffersize: u32, ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Set_DevNode_Property_ExW(dndevinst: u32, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&[u8]>, ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Set_DevNode_Property_ExW(dndevinst: u32, propertykey: *const super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: *const u8, propertybuffersize: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Set_DevNode_Property_ExW(dndevinst, ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer), propertybuffersize, ulflags, hmachine) + CM_Set_DevNode_Property_ExW(dndevinst, ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Set_DevNode_Registry_PropertyA(dndevinst: u32, ulproperty: u32, buffer: *const ::core::ffi::c_void, ullength: u32, ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Set_DevNode_Registry_PropertyA(dndevinst: u32, ulproperty: u32, buffer: ::core::option::Option<&[u8]>, ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Set_DevNode_Registry_PropertyA(dndevinst: u32, ulproperty: u32, buffer: *const ::core::ffi::c_void, ullength: u32, ulflags: u32) -> CONFIGRET; } - CM_Set_DevNode_Registry_PropertyA(dndevinst, ulproperty, ::core::mem::transmute(buffer), ullength, ulflags) + CM_Set_DevNode_Registry_PropertyA(dndevinst, ulproperty, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Set_DevNode_Registry_PropertyW(dndevinst: u32, ulproperty: u32, buffer: *const ::core::ffi::c_void, ullength: u32, ulflags: u32) -> CONFIGRET { +pub unsafe fn CM_Set_DevNode_Registry_PropertyW(dndevinst: u32, ulproperty: u32, buffer: ::core::option::Option<&[u8]>, ulflags: u32) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Set_DevNode_Registry_PropertyW(dndevinst: u32, ulproperty: u32, buffer: *const ::core::ffi::c_void, ullength: u32, ulflags: u32) -> CONFIGRET; } - CM_Set_DevNode_Registry_PropertyW(dndevinst, ulproperty, ::core::mem::transmute(buffer), ullength, ulflags) + CM_Set_DevNode_Registry_PropertyW(dndevinst, ulproperty, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Set_DevNode_Registry_Property_ExA(dndevinst: u32, ulproperty: u32, buffer: *const ::core::ffi::c_void, ullength: u32, ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Set_DevNode_Registry_Property_ExA(dndevinst: u32, ulproperty: u32, buffer: ::core::option::Option<&[u8]>, ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Set_DevNode_Registry_Property_ExA(dndevinst: u32, ulproperty: u32, buffer: *const ::core::ffi::c_void, ullength: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Set_DevNode_Registry_Property_ExA(dndevinst, ulproperty, ::core::mem::transmute(buffer), ullength, ulflags, hmachine) + CM_Set_DevNode_Registry_Property_ExA(dndevinst, ulproperty, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] -pub unsafe fn CM_Set_DevNode_Registry_Property_ExW(dndevinst: u32, ulproperty: u32, buffer: *const ::core::ffi::c_void, ullength: u32, ulflags: u32, hmachine: isize) -> CONFIGRET { +pub unsafe fn CM_Set_DevNode_Registry_Property_ExW(dndevinst: u32, ulproperty: u32, buffer: ::core::option::Option<&[u8]>, ulflags: u32, hmachine: isize) -> CONFIGRET { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CM_Set_DevNode_Registry_Property_ExW(dndevinst: u32, ulproperty: u32, buffer: *const ::core::ffi::c_void, ullength: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Set_DevNode_Registry_Property_ExW(dndevinst, ulproperty, ::core::mem::transmute(buffer), ullength, ulflags, hmachine) + CM_Set_DevNode_Registry_Property_ExW(dndevinst, ulproperty, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Set_Device_Interface_PropertyW<'a, P0>(pszdeviceinterface: P0, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&u8>, propertybuffersize: u32, ulflags: u32) -> CONFIGRET +pub unsafe fn CM_Set_Device_Interface_PropertyW<'a, P0>(pszdeviceinterface: P0, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&[u8]>, ulflags: u32) -> CONFIGRET where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -3296,12 +3296,12 @@ where extern "system" { fn CM_Set_Device_Interface_PropertyW(pszdeviceinterface: ::windows::core::PCWSTR, propertykey: *const super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: *const u8, propertybuffersize: u32, ulflags: u32) -> CONFIGRET; } - CM_Set_Device_Interface_PropertyW(pszdeviceinterface.into(), ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer), propertybuffersize, ulflags) + CM_Set_Device_Interface_PropertyW(pszdeviceinterface.into(), ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), ulflags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn CM_Set_Device_Interface_Property_ExW<'a, P0>(pszdeviceinterface: P0, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&u8>, propertybuffersize: u32, ulflags: u32, hmachine: isize) -> CONFIGRET +pub unsafe fn CM_Set_Device_Interface_Property_ExW<'a, P0>(pszdeviceinterface: P0, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&[u8]>, ulflags: u32, hmachine: isize) -> CONFIGRET where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -3309,7 +3309,7 @@ where extern "system" { fn CM_Set_Device_Interface_Property_ExW(pszdeviceinterface: ::windows::core::PCWSTR, propertykey: *const super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: *const u8, propertybuffersize: u32, ulflags: u32, hmachine: isize) -> CONFIGRET; } - CM_Set_Device_Interface_Property_ExW(pszdeviceinterface.into(), ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer), propertybuffersize, ulflags, hmachine) + CM_Set_Device_Interface_Property_ExW(pszdeviceinterface.into(), ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), ulflags, hmachine) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -11992,7 +11992,7 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupCopyErrorA<'a, P0, P1, P2, P3, P4, P5>(hwndparent: P0, dialogtitle: P1, diskname: P2, pathtosource: P3, sourcefile: P4, targetpathfile: P5, win32errorcode: u32, style: u32, pathbuffer: &mut [u8], pathrequiredsize: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn SetupCopyErrorA<'a, P0, P1, P2, P3, P4, P5>(hwndparent: P0, dialogtitle: P1, diskname: P2, pathtosource: P3, sourcefile: P4, targetpathfile: P5, win32errorcode: u32, style: u32, pathbuffer: ::core::option::Option<&mut [u8]>, pathrequiredsize: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -12005,12 +12005,12 @@ where extern "system" { fn SetupCopyErrorA(hwndparent: super::super::Foundation::HWND, dialogtitle: ::windows::core::PCSTR, diskname: ::windows::core::PCSTR, pathtosource: ::windows::core::PCSTR, sourcefile: ::windows::core::PCSTR, targetpathfile: ::windows::core::PCSTR, win32errorcode: u32, style: u32, pathbuffer: ::windows::core::PSTR, pathbuffersize: u32, pathrequiredsize: *mut u32) -> u32; } - SetupCopyErrorA(hwndparent.into(), dialogtitle.into(), diskname.into(), pathtosource.into(), sourcefile.into(), targetpathfile.into(), win32errorcode, style, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pathbuffer)), pathbuffer.len() as _, ::core::mem::transmute(pathrequiredsize)) + SetupCopyErrorA(hwndparent.into(), dialogtitle.into(), diskname.into(), pathtosource.into(), sourcefile.into(), targetpathfile.into(), win32errorcode, style, ::core::mem::transmute(pathbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pathbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathrequiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupCopyErrorW<'a, P0, P1, P2, P3, P4, P5>(hwndparent: P0, dialogtitle: P1, diskname: P2, pathtosource: P3, sourcefile: P4, targetpathfile: P5, win32errorcode: u32, style: u32, pathbuffer: &mut [u16], pathrequiredsize: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn SetupCopyErrorW<'a, P0, P1, P2, P3, P4, P5>(hwndparent: P0, dialogtitle: P1, diskname: P2, pathtosource: P3, sourcefile: P4, targetpathfile: P5, win32errorcode: u32, style: u32, pathbuffer: ::core::option::Option<&mut [u16]>, pathrequiredsize: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -12023,12 +12023,12 @@ where extern "system" { fn SetupCopyErrorW(hwndparent: super::super::Foundation::HWND, dialogtitle: ::windows::core::PCWSTR, diskname: ::windows::core::PCWSTR, pathtosource: ::windows::core::PCWSTR, sourcefile: ::windows::core::PCWSTR, targetpathfile: ::windows::core::PCWSTR, win32errorcode: u32, style: u32, pathbuffer: ::windows::core::PWSTR, pathbuffersize: u32, pathrequiredsize: *mut u32) -> u32; } - SetupCopyErrorW(hwndparent.into(), dialogtitle.into(), diskname.into(), pathtosource.into(), sourcefile.into(), targetpathfile.into(), win32errorcode, style, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pathbuffer)), pathbuffer.len() as _, ::core::mem::transmute(pathrequiredsize)) + SetupCopyErrorW(hwndparent.into(), dialogtitle.into(), diskname.into(), pathtosource.into(), sourcefile.into(), targetpathfile.into(), win32errorcode, style, ::core::mem::transmute(pathbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pathbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathrequiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupCopyOEMInfA<'a, P0, P1>(sourceinffilename: P0, oemsourcemedialocation: P1, oemsourcemediatype: OEM_SOURCE_MEDIA_TYPE, copystyle: u32, destinationinffilename: &mut [u8], requiredsize: ::core::option::Option<&mut u32>, destinationinffilenamecomponent: ::core::option::Option<&mut ::windows::core::PSTR>) -> super::super::Foundation::BOOL +pub unsafe fn SetupCopyOEMInfA<'a, P0, P1>(sourceinffilename: P0, oemsourcemedialocation: P1, oemsourcemediatype: OEM_SOURCE_MEDIA_TYPE, copystyle: u32, destinationinffilename: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>, destinationinffilenamecomponent: ::core::option::Option<&mut ::windows::core::PSTR>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -12037,12 +12037,12 @@ where extern "system" { fn SetupCopyOEMInfA(sourceinffilename: ::windows::core::PCSTR, oemsourcemedialocation: ::windows::core::PCSTR, oemsourcemediatype: OEM_SOURCE_MEDIA_TYPE, copystyle: u32, destinationinffilename: ::windows::core::PSTR, destinationinffilenamesize: u32, requiredsize: *mut u32, destinationinffilenamecomponent: *mut ::windows::core::PSTR) -> super::super::Foundation::BOOL; } - SetupCopyOEMInfA(sourceinffilename.into(), oemsourcemedialocation.into(), oemsourcemediatype, copystyle, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(destinationinffilename)), destinationinffilename.len() as _, ::core::mem::transmute(requiredsize), ::core::mem::transmute(destinationinffilenamecomponent)) + SetupCopyOEMInfA(sourceinffilename.into(), oemsourcemedialocation.into(), oemsourcemediatype, copystyle, ::core::mem::transmute(destinationinffilename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), destinationinffilename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize), ::core::mem::transmute(destinationinffilenamecomponent)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupCopyOEMInfW<'a, P0, P1>(sourceinffilename: P0, oemsourcemedialocation: P1, oemsourcemediatype: OEM_SOURCE_MEDIA_TYPE, copystyle: u32, destinationinffilename: &mut [u16], requiredsize: ::core::option::Option<&mut u32>, destinationinffilenamecomponent: ::core::option::Option<&mut ::windows::core::PWSTR>) -> super::super::Foundation::BOOL +pub unsafe fn SetupCopyOEMInfW<'a, P0, P1>(sourceinffilename: P0, oemsourcemedialocation: P1, oemsourcemediatype: OEM_SOURCE_MEDIA_TYPE, copystyle: u32, destinationinffilename: ::core::option::Option<&mut [u16]>, requiredsize: ::core::option::Option<&mut u32>, destinationinffilenamecomponent: ::core::option::Option<&mut ::windows::core::PWSTR>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -12051,7 +12051,7 @@ where extern "system" { fn SetupCopyOEMInfW(sourceinffilename: ::windows::core::PCWSTR, oemsourcemedialocation: ::windows::core::PCWSTR, oemsourcemediatype: OEM_SOURCE_MEDIA_TYPE, copystyle: u32, destinationinffilename: ::windows::core::PWSTR, destinationinffilenamesize: u32, requiredsize: *mut u32, destinationinffilenamecomponent: *mut ::windows::core::PWSTR) -> super::super::Foundation::BOOL; } - SetupCopyOEMInfW(sourceinffilename.into(), oemsourcemedialocation.into(), oemsourcemediatype, copystyle, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(destinationinffilename)), destinationinffilename.len() as _, ::core::mem::transmute(requiredsize), ::core::mem::transmute(destinationinffilenamecomponent)) + SetupCopyOEMInfW(sourceinffilename.into(), oemsourcemedialocation.into(), oemsourcemediatype, copystyle, ::core::mem::transmute(destinationinffilename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), destinationinffilename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize), ::core::mem::transmute(destinationinffilenamecomponent)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -12171,17 +12171,17 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiBuildClassInfoList(flags: u32, classguidlist: &mut [::windows::core::GUID], requiredsize: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn SetupDiBuildClassInfoList(flags: u32, classguidlist: ::core::option::Option<&mut [::windows::core::GUID]>, requiredsize: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupDiBuildClassInfoList(flags: u32, classguidlist: *mut ::windows::core::GUID, classguidlistsize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiBuildClassInfoList(flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classguidlist)), classguidlist.len() as _, ::core::mem::transmute(requiredsize)) + SetupDiBuildClassInfoList(flags, ::core::mem::transmute(classguidlist.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), classguidlist.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiBuildClassInfoListExA<'a, P0>(flags: u32, classguidlist: &mut [::windows::core::GUID], requiredsize: &mut u32, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiBuildClassInfoListExA<'a, P0>(flags: u32, classguidlist: ::core::option::Option<&mut [::windows::core::GUID]>, requiredsize: &mut u32, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -12189,12 +12189,12 @@ where extern "system" { fn SetupDiBuildClassInfoListExA(flags: u32, classguidlist: *mut ::windows::core::GUID, classguidlistsize: u32, requiredsize: *mut u32, machinename: ::windows::core::PCSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiBuildClassInfoListExA(flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classguidlist)), classguidlist.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) + SetupDiBuildClassInfoListExA(flags, ::core::mem::transmute(classguidlist.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), classguidlist.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiBuildClassInfoListExW<'a, P0>(flags: u32, classguidlist: &mut [::windows::core::GUID], requiredsize: &mut u32, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiBuildClassInfoListExW<'a, P0>(flags: u32, classguidlist: ::core::option::Option<&mut [::windows::core::GUID]>, requiredsize: &mut u32, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -12202,7 +12202,7 @@ where extern "system" { fn SetupDiBuildClassInfoListExW(flags: u32, classguidlist: *mut ::windows::core::GUID, classguidlistsize: u32, requiredsize: *mut u32, machinename: ::windows::core::PCWSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiBuildClassInfoListExW(flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classguidlist)), classguidlist.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) + SetupDiBuildClassInfoListExW(flags, ::core::mem::transmute(classguidlist.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), classguidlist.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12267,7 +12267,7 @@ where extern "system" { fn SetupDiClassGuidsFromNameA(classname: ::windows::core::PCSTR, classguidlist: *mut ::windows::core::GUID, classguidlistsize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiClassGuidsFromNameA(classname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classguidlist)), classguidlist.len() as _, ::core::mem::transmute(requiredsize)) + SetupDiClassGuidsFromNameA(classname.into(), ::core::mem::transmute(classguidlist.as_ptr()), classguidlist.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12281,7 +12281,7 @@ where extern "system" { fn SetupDiClassGuidsFromNameExA(classname: ::windows::core::PCSTR, classguidlist: *mut ::windows::core::GUID, classguidlistsize: u32, requiredsize: *mut u32, machinename: ::windows::core::PCSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiClassGuidsFromNameExA(classname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classguidlist)), classguidlist.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) + SetupDiClassGuidsFromNameExA(classname.into(), ::core::mem::transmute(classguidlist.as_ptr()), classguidlist.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12295,7 +12295,7 @@ where extern "system" { fn SetupDiClassGuidsFromNameExW(classname: ::windows::core::PCWSTR, classguidlist: *mut ::windows::core::GUID, classguidlistsize: u32, requiredsize: *mut u32, machinename: ::windows::core::PCWSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiClassGuidsFromNameExW(classname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classguidlist)), classguidlist.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) + SetupDiClassGuidsFromNameExW(classname.into(), ::core::mem::transmute(classguidlist.as_ptr()), classguidlist.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12308,7 +12308,7 @@ where extern "system" { fn SetupDiClassGuidsFromNameW(classname: ::windows::core::PCWSTR, classguidlist: *mut ::windows::core::GUID, classguidlistsize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiClassGuidsFromNameW(classname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classguidlist)), classguidlist.len() as _, ::core::mem::transmute(requiredsize)) + SetupDiClassGuidsFromNameW(classname.into(), ::core::mem::transmute(classguidlist.as_ptr()), classguidlist.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12318,7 +12318,7 @@ pub unsafe fn SetupDiClassNameFromGuidA(classguid: &::windows::core::GUID, class extern "system" { fn SetupDiClassNameFromGuidA(classguid: *const ::windows::core::GUID, classname: ::windows::core::PSTR, classnamesize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiClassNameFromGuidA(::core::mem::transmute(classguid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classname)), classname.len() as _, ::core::mem::transmute(requiredsize)) + SetupDiClassNameFromGuidA(::core::mem::transmute(classguid), ::core::mem::transmute(classname.as_ptr()), classname.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12331,7 +12331,7 @@ where extern "system" { fn SetupDiClassNameFromGuidExA(classguid: *const ::windows::core::GUID, classname: ::windows::core::PSTR, classnamesize: u32, requiredsize: *mut u32, machinename: ::windows::core::PCSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiClassNameFromGuidExA(::core::mem::transmute(classguid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classname)), classname.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) + SetupDiClassNameFromGuidExA(::core::mem::transmute(classguid), ::core::mem::transmute(classname.as_ptr()), classname.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12344,7 +12344,7 @@ where extern "system" { fn SetupDiClassNameFromGuidExW(classguid: *const ::windows::core::GUID, classname: ::windows::core::PWSTR, classnamesize: u32, requiredsize: *mut u32, machinename: ::windows::core::PCWSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiClassNameFromGuidExW(::core::mem::transmute(classguid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classname)), classname.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) + SetupDiClassNameFromGuidExW(::core::mem::transmute(classguid), ::core::mem::transmute(classname.as_ptr()), classname.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12354,7 +12354,7 @@ pub unsafe fn SetupDiClassNameFromGuidW(classguid: &::windows::core::GUID, class extern "system" { fn SetupDiClassNameFromGuidW(classguid: *const ::windows::core::GUID, classname: ::windows::core::PWSTR, classnamesize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiClassNameFromGuidW(::core::mem::transmute(classguid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classname)), classname.len() as _, ::core::mem::transmute(requiredsize)) + SetupDiClassNameFromGuidW(::core::mem::transmute(classguid), ::core::mem::transmute(classname.as_ptr()), classname.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] @@ -12676,27 +12676,27 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] #[inline] -pub unsafe fn SetupDiGetActualModelsSectionA(context: &INFCONTEXT, alternateplatforminfo: ::core::option::Option<&SP_ALTPLATFORM_INFO_V2>, infsectionwithext: &mut [u8], requiredsize: ::core::option::Option<&mut u32>, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL { +pub unsafe fn SetupDiGetActualModelsSectionA(context: &INFCONTEXT, alternateplatforminfo: ::core::option::Option<&SP_ALTPLATFORM_INFO_V2>, infsectionwithext: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupDiGetActualModelsSectionA(context: *const INFCONTEXT, alternateplatforminfo: *const SP_ALTPLATFORM_INFO_V2, infsectionwithext: ::windows::core::PSTR, infsectionwithextsize: u32, requiredsize: *mut u32, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiGetActualModelsSectionA(::core::mem::transmute(context), ::core::mem::transmute(alternateplatforminfo), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(infsectionwithext)), infsectionwithext.len() as _, ::core::mem::transmute(requiredsize), ::core::mem::transmute(reserved)) + SetupDiGetActualModelsSectionA(::core::mem::transmute(context), ::core::mem::transmute(alternateplatforminfo), ::core::mem::transmute(infsectionwithext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), infsectionwithext.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] #[inline] -pub unsafe fn SetupDiGetActualModelsSectionW(context: &INFCONTEXT, alternateplatforminfo: ::core::option::Option<&SP_ALTPLATFORM_INFO_V2>, infsectionwithext: &mut [u16], requiredsize: ::core::option::Option<&mut u32>, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL { +pub unsafe fn SetupDiGetActualModelsSectionW(context: &INFCONTEXT, alternateplatforminfo: ::core::option::Option<&SP_ALTPLATFORM_INFO_V2>, infsectionwithext: ::core::option::Option<&mut [u16]>, requiredsize: ::core::option::Option<&mut u32>, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupDiGetActualModelsSectionW(context: *const INFCONTEXT, alternateplatforminfo: *const SP_ALTPLATFORM_INFO_V2, infsectionwithext: ::windows::core::PWSTR, infsectionwithextsize: u32, requiredsize: *mut u32, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiGetActualModelsSectionW(::core::mem::transmute(context), ::core::mem::transmute(alternateplatforminfo), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(infsectionwithext)), infsectionwithext.len() as _, ::core::mem::transmute(requiredsize), ::core::mem::transmute(reserved)) + SetupDiGetActualModelsSectionW(::core::mem::transmute(context), ::core::mem::transmute(alternateplatforminfo), ::core::mem::transmute(infsectionwithext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), infsectionwithext.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiGetActualSectionToInstallA<'a, P0>(infhandle: *const ::core::ffi::c_void, infsectionname: P0, infsectionwithext: &mut [u8], requiredsize: ::core::option::Option<&mut u32>, extension: ::core::option::Option<&mut ::windows::core::PSTR>) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetActualSectionToInstallA<'a, P0>(infhandle: *const ::core::ffi::c_void, infsectionname: P0, infsectionwithext: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>, extension: ::core::option::Option<&mut ::windows::core::PSTR>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -12704,12 +12704,12 @@ where extern "system" { fn SetupDiGetActualSectionToInstallA(infhandle: *const ::core::ffi::c_void, infsectionname: ::windows::core::PCSTR, infsectionwithext: ::windows::core::PSTR, infsectionwithextsize: u32, requiredsize: *mut u32, extension: *mut ::windows::core::PSTR) -> super::super::Foundation::BOOL; } - SetupDiGetActualSectionToInstallA(::core::mem::transmute(infhandle), infsectionname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(infsectionwithext)), infsectionwithext.len() as _, ::core::mem::transmute(requiredsize), ::core::mem::transmute(extension)) + SetupDiGetActualSectionToInstallA(::core::mem::transmute(infhandle), infsectionname.into(), ::core::mem::transmute(infsectionwithext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), infsectionwithext.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize), ::core::mem::transmute(extension)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] #[inline] -pub unsafe fn SetupDiGetActualSectionToInstallExA<'a, P0>(infhandle: *const ::core::ffi::c_void, infsectionname: P0, alternateplatforminfo: ::core::option::Option<&SP_ALTPLATFORM_INFO_V2>, infsectionwithext: &mut [u8], requiredsize: ::core::option::Option<&mut u32>, extension: ::core::option::Option<&mut ::windows::core::PSTR>, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetActualSectionToInstallExA<'a, P0>(infhandle: *const ::core::ffi::c_void, infsectionname: P0, alternateplatforminfo: ::core::option::Option<&SP_ALTPLATFORM_INFO_V2>, infsectionwithext: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>, extension: ::core::option::Option<&mut ::windows::core::PSTR>, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -12717,12 +12717,12 @@ where extern "system" { fn SetupDiGetActualSectionToInstallExA(infhandle: *const ::core::ffi::c_void, infsectionname: ::windows::core::PCSTR, alternateplatforminfo: *const SP_ALTPLATFORM_INFO_V2, infsectionwithext: ::windows::core::PSTR, infsectionwithextsize: u32, requiredsize: *mut u32, extension: *mut ::windows::core::PSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiGetActualSectionToInstallExA(::core::mem::transmute(infhandle), infsectionname.into(), ::core::mem::transmute(alternateplatforminfo), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(infsectionwithext)), infsectionwithext.len() as _, ::core::mem::transmute(requiredsize), ::core::mem::transmute(extension), ::core::mem::transmute(reserved)) + SetupDiGetActualSectionToInstallExA(::core::mem::transmute(infhandle), infsectionname.into(), ::core::mem::transmute(alternateplatforminfo), ::core::mem::transmute(infsectionwithext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), infsectionwithext.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize), ::core::mem::transmute(extension), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] #[inline] -pub unsafe fn SetupDiGetActualSectionToInstallExW<'a, P0>(infhandle: *const ::core::ffi::c_void, infsectionname: P0, alternateplatforminfo: ::core::option::Option<&SP_ALTPLATFORM_INFO_V2>, infsectionwithext: &mut [u16], requiredsize: ::core::option::Option<&mut u32>, extension: ::core::option::Option<&mut ::windows::core::PWSTR>, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetActualSectionToInstallExW<'a, P0>(infhandle: *const ::core::ffi::c_void, infsectionname: P0, alternateplatforminfo: ::core::option::Option<&SP_ALTPLATFORM_INFO_V2>, infsectionwithext: ::core::option::Option<&mut [u16]>, requiredsize: ::core::option::Option<&mut u32>, extension: ::core::option::Option<&mut ::windows::core::PWSTR>, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -12730,12 +12730,12 @@ where extern "system" { fn SetupDiGetActualSectionToInstallExW(infhandle: *const ::core::ffi::c_void, infsectionname: ::windows::core::PCWSTR, alternateplatforminfo: *const SP_ALTPLATFORM_INFO_V2, infsectionwithext: ::windows::core::PWSTR, infsectionwithextsize: u32, requiredsize: *mut u32, extension: *mut ::windows::core::PWSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiGetActualSectionToInstallExW(::core::mem::transmute(infhandle), infsectionname.into(), ::core::mem::transmute(alternateplatforminfo), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(infsectionwithext)), infsectionwithext.len() as _, ::core::mem::transmute(requiredsize), ::core::mem::transmute(extension), ::core::mem::transmute(reserved)) + SetupDiGetActualSectionToInstallExW(::core::mem::transmute(infhandle), infsectionname.into(), ::core::mem::transmute(alternateplatforminfo), ::core::mem::transmute(infsectionwithext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), infsectionwithext.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize), ::core::mem::transmute(extension), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiGetActualSectionToInstallW<'a, P0>(infhandle: *const ::core::ffi::c_void, infsectionname: P0, infsectionwithext: &mut [u16], requiredsize: ::core::option::Option<&mut u32>, extension: ::core::option::Option<&mut ::windows::core::PWSTR>) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetActualSectionToInstallW<'a, P0>(infhandle: *const ::core::ffi::c_void, infsectionname: P0, infsectionwithext: ::core::option::Option<&mut [u16]>, requiredsize: ::core::option::Option<&mut u32>, extension: ::core::option::Option<&mut ::windows::core::PWSTR>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -12743,7 +12743,7 @@ where extern "system" { fn SetupDiGetActualSectionToInstallW(infhandle: *const ::core::ffi::c_void, infsectionname: ::windows::core::PCWSTR, infsectionwithext: ::windows::core::PWSTR, infsectionwithextsize: u32, requiredsize: *mut u32, extension: *mut ::windows::core::PWSTR) -> super::super::Foundation::BOOL; } - SetupDiGetActualSectionToInstallW(::core::mem::transmute(infhandle), infsectionname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(infsectionwithext)), infsectionwithext.len() as _, ::core::mem::transmute(requiredsize), ::core::mem::transmute(extension)) + SetupDiGetActualSectionToInstallW(::core::mem::transmute(infhandle), infsectionname.into(), ::core::mem::transmute(infsectionwithext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), infsectionwithext.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize), ::core::mem::transmute(extension)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12763,7 +12763,7 @@ pub unsafe fn SetupDiGetClassDescriptionA(classguid: &::windows::core::GUID, cla extern "system" { fn SetupDiGetClassDescriptionA(classguid: *const ::windows::core::GUID, classdescription: ::windows::core::PSTR, classdescriptionsize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetClassDescriptionA(::core::mem::transmute(classguid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classdescription)), classdescription.len() as _, ::core::mem::transmute(requiredsize)) + SetupDiGetClassDescriptionA(::core::mem::transmute(classguid), ::core::mem::transmute(classdescription.as_ptr()), classdescription.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12776,7 +12776,7 @@ where extern "system" { fn SetupDiGetClassDescriptionExA(classguid: *const ::windows::core::GUID, classdescription: ::windows::core::PSTR, classdescriptionsize: u32, requiredsize: *mut u32, machinename: ::windows::core::PCSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiGetClassDescriptionExA(::core::mem::transmute(classguid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classdescription)), classdescription.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) + SetupDiGetClassDescriptionExA(::core::mem::transmute(classguid), ::core::mem::transmute(classdescription.as_ptr()), classdescription.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12789,7 +12789,7 @@ where extern "system" { fn SetupDiGetClassDescriptionExW(classguid: *const ::windows::core::GUID, classdescription: ::windows::core::PWSTR, classdescriptionsize: u32, requiredsize: *mut u32, machinename: ::windows::core::PCWSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiGetClassDescriptionExW(::core::mem::transmute(classguid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classdescription)), classdescription.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) + SetupDiGetClassDescriptionExW(::core::mem::transmute(classguid), ::core::mem::transmute(classdescription.as_ptr()), classdescription.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12799,7 +12799,7 @@ pub unsafe fn SetupDiGetClassDescriptionW(classguid: &::windows::core::GUID, cla extern "system" { fn SetupDiGetClassDescriptionW(classguid: *const ::windows::core::GUID, classdescription: ::windows::core::PWSTR, classdescriptionsize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetClassDescriptionW(::core::mem::transmute(classguid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classdescription)), classdescription.len() as _, ::core::mem::transmute(requiredsize)) + SetupDiGetClassDescriptionW(::core::mem::transmute(classguid), ::core::mem::transmute(classdescription.as_ptr()), classdescription.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls", feature = "Win32_UI_WindowsAndMessaging"))] @@ -12940,7 +12940,7 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiGetClassInstallParamsA<'a, P0>(deviceinfoset: P0, deviceinfodata: ::core::option::Option<&SP_DEVINFO_DATA>, classinstallparams: ::core::option::Option<&mut SP_CLASSINSTALL_HEADER>, classinstallparamssize: u32, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetClassInstallParamsA<'a, P0>(deviceinfoset: P0, deviceinfodata: ::core::option::Option<&SP_DEVINFO_DATA>, classinstallparams: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -12948,12 +12948,12 @@ where extern "system" { fn SetupDiGetClassInstallParamsA(deviceinfoset: HDEVINFO, deviceinfodata: *const SP_DEVINFO_DATA, classinstallparams: *mut SP_CLASSINSTALL_HEADER, classinstallparamssize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetClassInstallParamsA(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(classinstallparams), classinstallparamssize, ::core::mem::transmute(requiredsize)) + SetupDiGetClassInstallParamsA(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(classinstallparams.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), classinstallparams.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiGetClassInstallParamsW<'a, P0>(deviceinfoset: P0, deviceinfodata: ::core::option::Option<&SP_DEVINFO_DATA>, classinstallparams: ::core::option::Option<&mut SP_CLASSINSTALL_HEADER>, classinstallparamssize: u32, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetClassInstallParamsW<'a, P0>(deviceinfoset: P0, deviceinfodata: ::core::option::Option<&SP_DEVINFO_DATA>, classinstallparams: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -12961,12 +12961,12 @@ where extern "system" { fn SetupDiGetClassInstallParamsW(deviceinfoset: HDEVINFO, deviceinfodata: *const SP_DEVINFO_DATA, classinstallparams: *mut SP_CLASSINSTALL_HEADER, classinstallparamssize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetClassInstallParamsW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(classinstallparams), classinstallparamssize, ::core::mem::transmute(requiredsize)) + SetupDiGetClassInstallParamsW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(classinstallparams.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), classinstallparams.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`*"] #[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] #[inline] -pub unsafe fn SetupDiGetClassPropertyExW<'a, P0>(classguid: &::windows::core::GUID, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: ::core::option::Option<&mut u8>, propertybuffersize: u32, requiredsize: ::core::option::Option<&mut u32>, flags: u32, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetClassPropertyExW<'a, P0>(classguid: &::windows::core::GUID, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>, flags: u32, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -12974,22 +12974,22 @@ where extern "system" { fn SetupDiGetClassPropertyExW(classguid: *const ::windows::core::GUID, propertykey: *const super::Properties::DEVPROPKEY, propertytype: *mut u32, propertybuffer: *mut u8, propertybuffersize: u32, requiredsize: *mut u32, flags: u32, machinename: ::windows::core::PCWSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiGetClassPropertyExW(::core::mem::transmute(classguid), ::core::mem::transmute(propertykey), ::core::mem::transmute(propertytype), ::core::mem::transmute(propertybuffer), propertybuffersize, ::core::mem::transmute(requiredsize), flags, machinename.into(), ::core::mem::transmute(reserved)) + SetupDiGetClassPropertyExW(::core::mem::transmute(classguid), ::core::mem::transmute(propertykey), ::core::mem::transmute(propertytype), ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize), flags, machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`*"] #[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] #[inline] -pub unsafe fn SetupDiGetClassPropertyKeys(classguid: &::windows::core::GUID, propertykeyarray: &mut [super::Properties::DEVPROPKEY], requiredpropertykeycount: ::core::option::Option<&mut u32>, flags: u32) -> super::super::Foundation::BOOL { +pub unsafe fn SetupDiGetClassPropertyKeys(classguid: &::windows::core::GUID, propertykeyarray: ::core::option::Option<&mut [super::Properties::DEVPROPKEY]>, requiredpropertykeycount: ::core::option::Option<&mut u32>, flags: u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupDiGetClassPropertyKeys(classguid: *const ::windows::core::GUID, propertykeyarray: *mut super::Properties::DEVPROPKEY, propertykeycount: u32, requiredpropertykeycount: *mut u32, flags: u32) -> super::super::Foundation::BOOL; } - SetupDiGetClassPropertyKeys(::core::mem::transmute(classguid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(propertykeyarray)), propertykeyarray.len() as _, ::core::mem::transmute(requiredpropertykeycount), flags) + SetupDiGetClassPropertyKeys(::core::mem::transmute(classguid), ::core::mem::transmute(propertykeyarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertykeyarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredpropertykeycount), flags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`*"] #[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] #[inline] -pub unsafe fn SetupDiGetClassPropertyKeysExW<'a, P0>(classguid: &::windows::core::GUID, propertykeyarray: &mut [super::Properties::DEVPROPKEY], requiredpropertykeycount: ::core::option::Option<&mut u32>, flags: u32, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetClassPropertyKeysExW<'a, P0>(classguid: &::windows::core::GUID, propertykeyarray: ::core::option::Option<&mut [super::Properties::DEVPROPKEY]>, requiredpropertykeycount: ::core::option::Option<&mut u32>, flags: u32, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -12997,22 +12997,22 @@ where extern "system" { fn SetupDiGetClassPropertyKeysExW(classguid: *const ::windows::core::GUID, propertykeyarray: *mut super::Properties::DEVPROPKEY, propertykeycount: u32, requiredpropertykeycount: *mut u32, flags: u32, machinename: ::windows::core::PCWSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiGetClassPropertyKeysExW(::core::mem::transmute(classguid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(propertykeyarray)), propertykeyarray.len() as _, ::core::mem::transmute(requiredpropertykeycount), flags, machinename.into(), ::core::mem::transmute(reserved)) + SetupDiGetClassPropertyKeysExW(::core::mem::transmute(classguid), ::core::mem::transmute(propertykeyarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertykeyarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredpropertykeycount), flags, machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`*"] #[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] #[inline] -pub unsafe fn SetupDiGetClassPropertyW(classguid: &::windows::core::GUID, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: ::core::option::Option<&mut u8>, propertybuffersize: u32, requiredsize: ::core::option::Option<&mut u32>, flags: u32) -> super::super::Foundation::BOOL { +pub unsafe fn SetupDiGetClassPropertyW(classguid: &::windows::core::GUID, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>, flags: u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupDiGetClassPropertyW(classguid: *const ::windows::core::GUID, propertykey: *const super::Properties::DEVPROPKEY, propertytype: *mut u32, propertybuffer: *mut u8, propertybuffersize: u32, requiredsize: *mut u32, flags: u32) -> super::super::Foundation::BOOL; } - SetupDiGetClassPropertyW(::core::mem::transmute(classguid), ::core::mem::transmute(propertykey), ::core::mem::transmute(propertytype), ::core::mem::transmute(propertybuffer), propertybuffersize, ::core::mem::transmute(requiredsize), flags) + SetupDiGetClassPropertyW(::core::mem::transmute(classguid), ::core::mem::transmute(propertykey), ::core::mem::transmute(propertytype), ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize), flags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiGetClassRegistryPropertyA<'a, P0>(classguid: &::windows::core::GUID, property: u32, propertyregdatatype: ::core::option::Option<&mut u32>, propertybuffer: &mut u8, propertybuffersize: u32, requiredsize: ::core::option::Option<&mut u32>, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetClassRegistryPropertyA<'a, P0>(classguid: &::windows::core::GUID, property: u32, propertyregdatatype: ::core::option::Option<&mut u32>, propertybuffer: &mut [u8], requiredsize: ::core::option::Option<&mut u32>, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -13020,12 +13020,12 @@ where extern "system" { fn SetupDiGetClassRegistryPropertyA(classguid: *const ::windows::core::GUID, property: u32, propertyregdatatype: *mut u32, propertybuffer: *mut u8, propertybuffersize: u32, requiredsize: *mut u32, machinename: ::windows::core::PCSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiGetClassRegistryPropertyA(::core::mem::transmute(classguid), property, ::core::mem::transmute(propertyregdatatype), ::core::mem::transmute(propertybuffer), propertybuffersize, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) + SetupDiGetClassRegistryPropertyA(::core::mem::transmute(classguid), property, ::core::mem::transmute(propertyregdatatype), ::core::mem::transmute(propertybuffer.as_ptr()), propertybuffer.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiGetClassRegistryPropertyW<'a, P0>(classguid: &::windows::core::GUID, property: u32, propertyregdatatype: ::core::option::Option<&mut u32>, propertybuffer: &mut u8, propertybuffersize: u32, requiredsize: ::core::option::Option<&mut u32>, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetClassRegistryPropertyW<'a, P0>(classguid: &::windows::core::GUID, property: u32, propertyregdatatype: ::core::option::Option<&mut u32>, propertybuffer: &mut [u8], requiredsize: ::core::option::Option<&mut u32>, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -13033,12 +13033,12 @@ where extern "system" { fn SetupDiGetClassRegistryPropertyW(classguid: *const ::windows::core::GUID, property: u32, propertyregdatatype: *mut u32, propertybuffer: *mut u8, propertybuffersize: u32, requiredsize: *mut u32, machinename: ::windows::core::PCWSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiGetClassRegistryPropertyW(::core::mem::transmute(classguid), property, ::core::mem::transmute(propertyregdatatype), ::core::mem::transmute(propertybuffer), propertybuffersize, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) + SetupDiGetClassRegistryPropertyW(::core::mem::transmute(classguid), property, ::core::mem::transmute(propertyregdatatype), ::core::mem::transmute(propertybuffer.as_ptr()), propertybuffer.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiGetCustomDevicePropertyA<'a, P0, P1>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, custompropertyname: P1, flags: u32, propertyregdatatype: ::core::option::Option<&mut u32>, propertybuffer: &mut u8, propertybuffersize: u32, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetCustomDevicePropertyA<'a, P0, P1>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, custompropertyname: P1, flags: u32, propertyregdatatype: ::core::option::Option<&mut u32>, propertybuffer: &mut [u8], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -13047,12 +13047,12 @@ where extern "system" { fn SetupDiGetCustomDevicePropertyA(deviceinfoset: HDEVINFO, deviceinfodata: *const SP_DEVINFO_DATA, custompropertyname: ::windows::core::PCSTR, flags: u32, propertyregdatatype: *mut u32, propertybuffer: *mut u8, propertybuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetCustomDevicePropertyA(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), custompropertyname.into(), flags, ::core::mem::transmute(propertyregdatatype), ::core::mem::transmute(propertybuffer), propertybuffersize, ::core::mem::transmute(requiredsize)) + SetupDiGetCustomDevicePropertyA(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), custompropertyname.into(), flags, ::core::mem::transmute(propertyregdatatype), ::core::mem::transmute(propertybuffer.as_ptr()), propertybuffer.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiGetCustomDevicePropertyW<'a, P0, P1>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, custompropertyname: P1, flags: u32, propertyregdatatype: ::core::option::Option<&mut u32>, propertybuffer: &mut u8, propertybuffersize: u32, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetCustomDevicePropertyW<'a, P0, P1>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, custompropertyname: P1, flags: u32, propertyregdatatype: ::core::option::Option<&mut u32>, propertybuffer: &mut [u8], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -13061,7 +13061,7 @@ where extern "system" { fn SetupDiGetCustomDevicePropertyW(deviceinfoset: HDEVINFO, deviceinfodata: *const SP_DEVINFO_DATA, custompropertyname: ::windows::core::PCWSTR, flags: u32, propertyregdatatype: *mut u32, propertybuffer: *mut u8, propertybuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetCustomDevicePropertyW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), custompropertyname.into(), flags, ::core::mem::transmute(propertyregdatatype), ::core::mem::transmute(propertybuffer), propertybuffersize, ::core::mem::transmute(requiredsize)) + SetupDiGetCustomDevicePropertyW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), custompropertyname.into(), flags, ::core::mem::transmute(propertyregdatatype), ::core::mem::transmute(propertybuffer.as_ptr()), propertybuffer.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13131,7 +13131,7 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiGetDeviceInstanceIdA<'a, P0>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, deviceinstanceid: &mut [u8], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetDeviceInstanceIdA<'a, P0>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, deviceinstanceid: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13139,12 +13139,12 @@ where extern "system" { fn SetupDiGetDeviceInstanceIdA(deviceinfoset: HDEVINFO, deviceinfodata: *const SP_DEVINFO_DATA, deviceinstanceid: ::windows::core::PSTR, deviceinstanceidsize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetDeviceInstanceIdA(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(deviceinstanceid)), deviceinstanceid.len() as _, ::core::mem::transmute(requiredsize)) + SetupDiGetDeviceInstanceIdA(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(deviceinstanceid.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), deviceinstanceid.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiGetDeviceInstanceIdW<'a, P0>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, deviceinstanceid: &mut [u16], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetDeviceInstanceIdW<'a, P0>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, deviceinstanceid: ::core::option::Option<&mut [u16]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13152,7 +13152,7 @@ where extern "system" { fn SetupDiGetDeviceInstanceIdW(deviceinfoset: HDEVINFO, deviceinfodata: *const SP_DEVINFO_DATA, deviceinstanceid: ::windows::core::PWSTR, deviceinstanceidsize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetDeviceInstanceIdW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(deviceinstanceid)), deviceinstanceid.len() as _, ::core::mem::transmute(requiredsize)) + SetupDiGetDeviceInstanceIdW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(deviceinstanceid.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), deviceinstanceid.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13170,7 +13170,7 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiGetDeviceInterfaceDetailA<'a, P0>(deviceinfoset: P0, deviceinterfacedata: &SP_DEVICE_INTERFACE_DATA, deviceinterfacedetaildata: ::core::option::Option<&mut SP_DEVICE_INTERFACE_DETAIL_DATA_A>, deviceinterfacedetaildatasize: u32, requiredsize: ::core::option::Option<&mut u32>, deviceinfodata: ::core::option::Option<&mut SP_DEVINFO_DATA>) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetDeviceInterfaceDetailA<'a, P0>(deviceinfoset: P0, deviceinterfacedata: &SP_DEVICE_INTERFACE_DATA, deviceinterfacedetaildata: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>, deviceinfodata: ::core::option::Option<&mut SP_DEVINFO_DATA>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13178,12 +13178,12 @@ where extern "system" { fn SetupDiGetDeviceInterfaceDetailA(deviceinfoset: HDEVINFO, deviceinterfacedata: *const SP_DEVICE_INTERFACE_DATA, deviceinterfacedetaildata: *mut SP_DEVICE_INTERFACE_DETAIL_DATA_A, deviceinterfacedetaildatasize: u32, requiredsize: *mut u32, deviceinfodata: *mut SP_DEVINFO_DATA) -> super::super::Foundation::BOOL; } - SetupDiGetDeviceInterfaceDetailA(deviceinfoset.into(), ::core::mem::transmute(deviceinterfacedata), ::core::mem::transmute(deviceinterfacedetaildata), deviceinterfacedetaildatasize, ::core::mem::transmute(requiredsize), ::core::mem::transmute(deviceinfodata)) + SetupDiGetDeviceInterfaceDetailA(deviceinfoset.into(), ::core::mem::transmute(deviceinterfacedata), ::core::mem::transmute(deviceinterfacedetaildata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), deviceinterfacedetaildata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize), ::core::mem::transmute(deviceinfodata)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiGetDeviceInterfaceDetailW<'a, P0>(deviceinfoset: P0, deviceinterfacedata: &SP_DEVICE_INTERFACE_DATA, deviceinterfacedetaildata: ::core::option::Option<&mut SP_DEVICE_INTERFACE_DETAIL_DATA_W>, deviceinterfacedetaildatasize: u32, requiredsize: ::core::option::Option<&mut u32>, deviceinfodata: ::core::option::Option<&mut SP_DEVINFO_DATA>) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetDeviceInterfaceDetailW<'a, P0>(deviceinfoset: P0, deviceinterfacedata: &SP_DEVICE_INTERFACE_DATA, deviceinterfacedetaildata: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>, deviceinfodata: ::core::option::Option<&mut SP_DEVINFO_DATA>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13191,12 +13191,12 @@ where extern "system" { fn SetupDiGetDeviceInterfaceDetailW(deviceinfoset: HDEVINFO, deviceinterfacedata: *const SP_DEVICE_INTERFACE_DATA, deviceinterfacedetaildata: *mut SP_DEVICE_INTERFACE_DETAIL_DATA_W, deviceinterfacedetaildatasize: u32, requiredsize: *mut u32, deviceinfodata: *mut SP_DEVINFO_DATA) -> super::super::Foundation::BOOL; } - SetupDiGetDeviceInterfaceDetailW(deviceinfoset.into(), ::core::mem::transmute(deviceinterfacedata), ::core::mem::transmute(deviceinterfacedetaildata), deviceinterfacedetaildatasize, ::core::mem::transmute(requiredsize), ::core::mem::transmute(deviceinfodata)) + SetupDiGetDeviceInterfaceDetailW(deviceinfoset.into(), ::core::mem::transmute(deviceinterfacedata), ::core::mem::transmute(deviceinterfacedetaildata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), deviceinterfacedetaildata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize), ::core::mem::transmute(deviceinfodata)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`*"] #[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] #[inline] -pub unsafe fn SetupDiGetDeviceInterfacePropertyKeys<'a, P0>(deviceinfoset: P0, deviceinterfacedata: &SP_DEVICE_INTERFACE_DATA, propertykeyarray: &mut [super::Properties::DEVPROPKEY], requiredpropertykeycount: ::core::option::Option<&mut u32>, flags: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetDeviceInterfacePropertyKeys<'a, P0>(deviceinfoset: P0, deviceinterfacedata: &SP_DEVICE_INTERFACE_DATA, propertykeyarray: ::core::option::Option<&mut [super::Properties::DEVPROPKEY]>, requiredpropertykeycount: ::core::option::Option<&mut u32>, flags: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13204,12 +13204,12 @@ where extern "system" { fn SetupDiGetDeviceInterfacePropertyKeys(deviceinfoset: HDEVINFO, deviceinterfacedata: *const SP_DEVICE_INTERFACE_DATA, propertykeyarray: *mut super::Properties::DEVPROPKEY, propertykeycount: u32, requiredpropertykeycount: *mut u32, flags: u32) -> super::super::Foundation::BOOL; } - SetupDiGetDeviceInterfacePropertyKeys(deviceinfoset.into(), ::core::mem::transmute(deviceinterfacedata), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(propertykeyarray)), propertykeyarray.len() as _, ::core::mem::transmute(requiredpropertykeycount), flags) + SetupDiGetDeviceInterfacePropertyKeys(deviceinfoset.into(), ::core::mem::transmute(deviceinterfacedata), ::core::mem::transmute(propertykeyarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertykeyarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredpropertykeycount), flags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`*"] #[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] #[inline] -pub unsafe fn SetupDiGetDeviceInterfacePropertyW<'a, P0>(deviceinfoset: P0, deviceinterfacedata: &SP_DEVICE_INTERFACE_DATA, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: ::core::option::Option<&mut u8>, propertybuffersize: u32, requiredsize: ::core::option::Option<&mut u32>, flags: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetDeviceInterfacePropertyW<'a, P0>(deviceinfoset: P0, deviceinterfacedata: &SP_DEVICE_INTERFACE_DATA, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>, flags: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13217,12 +13217,12 @@ where extern "system" { fn SetupDiGetDeviceInterfacePropertyW(deviceinfoset: HDEVINFO, deviceinterfacedata: *const SP_DEVICE_INTERFACE_DATA, propertykey: *const super::Properties::DEVPROPKEY, propertytype: *mut u32, propertybuffer: *mut u8, propertybuffersize: u32, requiredsize: *mut u32, flags: u32) -> super::super::Foundation::BOOL; } - SetupDiGetDeviceInterfacePropertyW(deviceinfoset.into(), ::core::mem::transmute(deviceinterfacedata), ::core::mem::transmute(propertykey), ::core::mem::transmute(propertytype), ::core::mem::transmute(propertybuffer), propertybuffersize, ::core::mem::transmute(requiredsize), flags) + SetupDiGetDeviceInterfacePropertyW(deviceinfoset.into(), ::core::mem::transmute(deviceinterfacedata), ::core::mem::transmute(propertykey), ::core::mem::transmute(propertytype), ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize), flags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`*"] #[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] #[inline] -pub unsafe fn SetupDiGetDevicePropertyKeys<'a, P0>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, propertykeyarray: &mut [super::Properties::DEVPROPKEY], requiredpropertykeycount: ::core::option::Option<&mut u32>, flags: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetDevicePropertyKeys<'a, P0>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, propertykeyarray: ::core::option::Option<&mut [super::Properties::DEVPROPKEY]>, requiredpropertykeycount: ::core::option::Option<&mut u32>, flags: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13230,12 +13230,12 @@ where extern "system" { fn SetupDiGetDevicePropertyKeys(deviceinfoset: HDEVINFO, deviceinfodata: *const SP_DEVINFO_DATA, propertykeyarray: *mut super::Properties::DEVPROPKEY, propertykeycount: u32, requiredpropertykeycount: *mut u32, flags: u32) -> super::super::Foundation::BOOL; } - SetupDiGetDevicePropertyKeys(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(propertykeyarray)), propertykeyarray.len() as _, ::core::mem::transmute(requiredpropertykeycount), flags) + SetupDiGetDevicePropertyKeys(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(propertykeyarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertykeyarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredpropertykeycount), flags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`*"] #[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] #[inline] -pub unsafe fn SetupDiGetDevicePropertyW<'a, P0>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: ::core::option::Option<&mut u8>, propertybuffersize: u32, requiredsize: ::core::option::Option<&mut u32>, flags: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetDevicePropertyW<'a, P0>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, propertykey: &super::Properties::DEVPROPKEY, propertytype: &mut u32, propertybuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>, flags: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13243,12 +13243,12 @@ where extern "system" { fn SetupDiGetDevicePropertyW(deviceinfoset: HDEVINFO, deviceinfodata: *const SP_DEVINFO_DATA, propertykey: *const super::Properties::DEVPROPKEY, propertytype: *mut u32, propertybuffer: *mut u8, propertybuffersize: u32, requiredsize: *mut u32, flags: u32) -> super::super::Foundation::BOOL; } - SetupDiGetDevicePropertyW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(propertykey), ::core::mem::transmute(propertytype), ::core::mem::transmute(propertybuffer), propertybuffersize, ::core::mem::transmute(requiredsize), flags) + SetupDiGetDevicePropertyW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(propertykey), ::core::mem::transmute(propertytype), ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize), flags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiGetDeviceRegistryPropertyA<'a, P0>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, property: u32, propertyregdatatype: ::core::option::Option<&mut u32>, propertybuffer: ::core::option::Option<&mut u8>, propertybuffersize: u32, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetDeviceRegistryPropertyA<'a, P0>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, property: u32, propertyregdatatype: ::core::option::Option<&mut u32>, propertybuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13256,12 +13256,12 @@ where extern "system" { fn SetupDiGetDeviceRegistryPropertyA(deviceinfoset: HDEVINFO, deviceinfodata: *const SP_DEVINFO_DATA, property: u32, propertyregdatatype: *mut u32, propertybuffer: *mut u8, propertybuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetDeviceRegistryPropertyA(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), property, ::core::mem::transmute(propertyregdatatype), ::core::mem::transmute(propertybuffer), propertybuffersize, ::core::mem::transmute(requiredsize)) + SetupDiGetDeviceRegistryPropertyA(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), property, ::core::mem::transmute(propertyregdatatype), ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiGetDeviceRegistryPropertyW<'a, P0>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, property: u32, propertyregdatatype: ::core::option::Option<&mut u32>, propertybuffer: ::core::option::Option<&mut u8>, propertybuffersize: u32, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetDeviceRegistryPropertyW<'a, P0>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, property: u32, propertyregdatatype: ::core::option::Option<&mut u32>, propertybuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13269,12 +13269,12 @@ where extern "system" { fn SetupDiGetDeviceRegistryPropertyW(deviceinfoset: HDEVINFO, deviceinfodata: *const SP_DEVINFO_DATA, property: u32, propertyregdatatype: *mut u32, propertybuffer: *mut u8, propertybuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetDeviceRegistryPropertyW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), property, ::core::mem::transmute(propertyregdatatype), ::core::mem::transmute(propertybuffer), propertybuffersize, ::core::mem::transmute(requiredsize)) + SetupDiGetDeviceRegistryPropertyW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), property, ::core::mem::transmute(propertyregdatatype), ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiGetDriverInfoDetailA<'a, P0>(deviceinfoset: P0, deviceinfodata: ::core::option::Option<&SP_DEVINFO_DATA>, driverinfodata: &SP_DRVINFO_DATA_V2_A, driverinfodetaildata: ::core::option::Option<&mut SP_DRVINFO_DETAIL_DATA_A>, driverinfodetaildatasize: u32, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetDriverInfoDetailA<'a, P0>(deviceinfoset: P0, deviceinfodata: ::core::option::Option<&SP_DEVINFO_DATA>, driverinfodata: &SP_DRVINFO_DATA_V2_A, driverinfodetaildata: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13282,12 +13282,12 @@ where extern "system" { fn SetupDiGetDriverInfoDetailA(deviceinfoset: HDEVINFO, deviceinfodata: *const SP_DEVINFO_DATA, driverinfodata: *const SP_DRVINFO_DATA_V2_A, driverinfodetaildata: *mut SP_DRVINFO_DETAIL_DATA_A, driverinfodetaildatasize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetDriverInfoDetailA(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(driverinfodata), ::core::mem::transmute(driverinfodetaildata), driverinfodetaildatasize, ::core::mem::transmute(requiredsize)) + SetupDiGetDriverInfoDetailA(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(driverinfodata), ::core::mem::transmute(driverinfodetaildata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), driverinfodetaildata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiGetDriverInfoDetailW<'a, P0>(deviceinfoset: P0, deviceinfodata: ::core::option::Option<&SP_DEVINFO_DATA>, driverinfodata: &SP_DRVINFO_DATA_V2_W, driverinfodetaildata: ::core::option::Option<&mut SP_DRVINFO_DETAIL_DATA_W>, driverinfodetaildatasize: u32, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiGetDriverInfoDetailW<'a, P0>(deviceinfoset: P0, deviceinfodata: ::core::option::Option<&SP_DEVINFO_DATA>, driverinfodata: &SP_DRVINFO_DATA_V2_W, driverinfodetaildata: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13295,7 +13295,7 @@ where extern "system" { fn SetupDiGetDriverInfoDetailW(deviceinfoset: HDEVINFO, deviceinfodata: *const SP_DEVINFO_DATA, driverinfodata: *const SP_DRVINFO_DATA_V2_W, driverinfodetaildata: *mut SP_DRVINFO_DETAIL_DATA_W, driverinfodetaildatasize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetDriverInfoDetailW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(driverinfodata), ::core::mem::transmute(driverinfodetaildata), driverinfodetaildatasize, ::core::mem::transmute(requiredsize)) + SetupDiGetDriverInfoDetailW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(driverinfodata), ::core::mem::transmute(driverinfodetaildata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), driverinfodetaildata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13331,7 +13331,7 @@ pub unsafe fn SetupDiGetHwProfileFriendlyNameA(hwprofile: u32, friendlyname: &mu extern "system" { fn SetupDiGetHwProfileFriendlyNameA(hwprofile: u32, friendlyname: ::windows::core::PSTR, friendlynamesize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetHwProfileFriendlyNameA(hwprofile, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(friendlyname)), friendlyname.len() as _, ::core::mem::transmute(requiredsize)) + SetupDiGetHwProfileFriendlyNameA(hwprofile, ::core::mem::transmute(friendlyname.as_ptr()), friendlyname.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13344,7 +13344,7 @@ where extern "system" { fn SetupDiGetHwProfileFriendlyNameExA(hwprofile: u32, friendlyname: ::windows::core::PSTR, friendlynamesize: u32, requiredsize: *mut u32, machinename: ::windows::core::PCSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiGetHwProfileFriendlyNameExA(hwprofile, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(friendlyname)), friendlyname.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) + SetupDiGetHwProfileFriendlyNameExA(hwprofile, ::core::mem::transmute(friendlyname.as_ptr()), friendlyname.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13357,7 +13357,7 @@ where extern "system" { fn SetupDiGetHwProfileFriendlyNameExW(hwprofile: u32, friendlyname: ::windows::core::PWSTR, friendlynamesize: u32, requiredsize: *mut u32, machinename: ::windows::core::PCWSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiGetHwProfileFriendlyNameExW(hwprofile, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(friendlyname)), friendlyname.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) + SetupDiGetHwProfileFriendlyNameExW(hwprofile, ::core::mem::transmute(friendlyname.as_ptr()), friendlyname.len() as _, ::core::mem::transmute(requiredsize), machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13367,7 +13367,7 @@ pub unsafe fn SetupDiGetHwProfileFriendlyNameW(hwprofile: u32, friendlyname: &mu extern "system" { fn SetupDiGetHwProfileFriendlyNameW(hwprofile: u32, friendlyname: ::windows::core::PWSTR, friendlynamesize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetHwProfileFriendlyNameW(hwprofile, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(friendlyname)), friendlyname.len() as _, ::core::mem::transmute(requiredsize)) + SetupDiGetHwProfileFriendlyNameW(hwprofile, ::core::mem::transmute(friendlyname.as_ptr()), friendlyname.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13377,7 +13377,7 @@ pub unsafe fn SetupDiGetHwProfileList(hwprofilelist: &mut [u32], requiredsize: & extern "system" { fn SetupDiGetHwProfileList(hwprofilelist: *mut u32, hwprofilelistsize: u32, requiredsize: *mut u32, currentlyactiveindex: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetHwProfileList(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(hwprofilelist)), hwprofilelist.len() as _, ::core::mem::transmute(requiredsize), ::core::mem::transmute(currentlyactiveindex)) + SetupDiGetHwProfileList(::core::mem::transmute(hwprofilelist.as_ptr()), hwprofilelist.len() as _, ::core::mem::transmute(requiredsize), ::core::mem::transmute(currentlyactiveindex)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13390,7 +13390,7 @@ where extern "system" { fn SetupDiGetHwProfileListExA(hwprofilelist: *mut u32, hwprofilelistsize: u32, requiredsize: *mut u32, currentlyactiveindex: *mut u32, machinename: ::windows::core::PCSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiGetHwProfileListExA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(hwprofilelist)), hwprofilelist.len() as _, ::core::mem::transmute(requiredsize), ::core::mem::transmute(currentlyactiveindex), machinename.into(), ::core::mem::transmute(reserved)) + SetupDiGetHwProfileListExA(::core::mem::transmute(hwprofilelist.as_ptr()), hwprofilelist.len() as _, ::core::mem::transmute(requiredsize), ::core::mem::transmute(currentlyactiveindex), machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13403,7 +13403,7 @@ where extern "system" { fn SetupDiGetHwProfileListExW(hwprofilelist: *mut u32, hwprofilelistsize: u32, requiredsize: *mut u32, currentlyactiveindex: *mut u32, machinename: ::windows::core::PCWSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiGetHwProfileListExW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(hwprofilelist)), hwprofilelist.len() as _, ::core::mem::transmute(requiredsize), ::core::mem::transmute(currentlyactiveindex), machinename.into(), ::core::mem::transmute(reserved)) + SetupDiGetHwProfileListExW(::core::mem::transmute(hwprofilelist.as_ptr()), hwprofilelist.len() as _, ::core::mem::transmute(requiredsize), ::core::mem::transmute(currentlyactiveindex), machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13416,7 +13416,7 @@ where extern "system" { fn SetupDiGetINFClassA(infname: ::windows::core::PCSTR, classguid: *mut ::windows::core::GUID, classname: ::windows::core::PSTR, classnamesize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetINFClassA(infname.into(), ::core::mem::transmute(classguid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classname)), classname.len() as _, ::core::mem::transmute(requiredsize)) + SetupDiGetINFClassA(infname.into(), ::core::mem::transmute(classguid), ::core::mem::transmute(classname.as_ptr()), classname.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13429,7 +13429,7 @@ where extern "system" { fn SetupDiGetINFClassW(infname: ::windows::core::PCWSTR, classguid: *mut ::windows::core::GUID, classname: ::windows::core::PWSTR, classnamesize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupDiGetINFClassW(infname.into(), ::core::mem::transmute(classguid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(classname)), classname.len() as _, ::core::mem::transmute(requiredsize)) + SetupDiGetINFClassW(infname.into(), ::core::mem::transmute(classguid), ::core::mem::transmute(classname.as_ptr()), classname.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13834,7 +13834,7 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiSetClassInstallParamsA<'a, P0>(deviceinfoset: P0, deviceinfodata: ::core::option::Option<&SP_DEVINFO_DATA>, classinstallparams: ::core::option::Option<&SP_CLASSINSTALL_HEADER>, classinstallparamssize: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiSetClassInstallParamsA<'a, P0>(deviceinfoset: P0, deviceinfodata: ::core::option::Option<&SP_DEVINFO_DATA>, classinstallparams: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13842,12 +13842,12 @@ where extern "system" { fn SetupDiSetClassInstallParamsA(deviceinfoset: HDEVINFO, deviceinfodata: *const SP_DEVINFO_DATA, classinstallparams: *const SP_CLASSINSTALL_HEADER, classinstallparamssize: u32) -> super::super::Foundation::BOOL; } - SetupDiSetClassInstallParamsA(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(classinstallparams), classinstallparamssize) + SetupDiSetClassInstallParamsA(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(classinstallparams.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), classinstallparams.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiSetClassInstallParamsW<'a, P0>(deviceinfoset: P0, deviceinfodata: ::core::option::Option<&SP_DEVINFO_DATA>, classinstallparams: ::core::option::Option<&SP_CLASSINSTALL_HEADER>, classinstallparamssize: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiSetClassInstallParamsW<'a, P0>(deviceinfoset: P0, deviceinfodata: ::core::option::Option<&SP_DEVINFO_DATA>, classinstallparams: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13855,12 +13855,12 @@ where extern "system" { fn SetupDiSetClassInstallParamsW(deviceinfoset: HDEVINFO, deviceinfodata: *const SP_DEVINFO_DATA, classinstallparams: *const SP_CLASSINSTALL_HEADER, classinstallparamssize: u32) -> super::super::Foundation::BOOL; } - SetupDiSetClassInstallParamsW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(classinstallparams), classinstallparamssize) + SetupDiSetClassInstallParamsW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(classinstallparams.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), classinstallparams.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`*"] #[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] #[inline] -pub unsafe fn SetupDiSetClassPropertyExW<'a, P0>(classguid: &::windows::core::GUID, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&u8>, propertybuffersize: u32, flags: u32, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiSetClassPropertyExW<'a, P0>(classguid: &::windows::core::GUID, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&[u8]>, flags: u32, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -13868,22 +13868,22 @@ where extern "system" { fn SetupDiSetClassPropertyExW(classguid: *const ::windows::core::GUID, propertykey: *const super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: *const u8, propertybuffersize: u32, flags: u32, machinename: ::windows::core::PCWSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiSetClassPropertyExW(::core::mem::transmute(classguid), ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer), propertybuffersize, flags, machinename.into(), ::core::mem::transmute(reserved)) + SetupDiSetClassPropertyExW(::core::mem::transmute(classguid), ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), flags, machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`*"] #[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] #[inline] -pub unsafe fn SetupDiSetClassPropertyW(classguid: &::windows::core::GUID, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&u8>, propertybuffersize: u32, flags: u32) -> super::super::Foundation::BOOL { +pub unsafe fn SetupDiSetClassPropertyW(classguid: &::windows::core::GUID, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&[u8]>, flags: u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupDiSetClassPropertyW(classguid: *const ::windows::core::GUID, propertykey: *const super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: *const u8, propertybuffersize: u32, flags: u32) -> super::super::Foundation::BOOL; } - SetupDiSetClassPropertyW(::core::mem::transmute(classguid), ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer), propertybuffersize, flags) + SetupDiSetClassPropertyW(::core::mem::transmute(classguid), ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), flags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiSetClassRegistryPropertyA<'a, P0>(classguid: &::windows::core::GUID, property: u32, propertybuffer: ::core::option::Option<&u8>, propertybuffersize: u32, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiSetClassRegistryPropertyA<'a, P0>(classguid: &::windows::core::GUID, property: u32, propertybuffer: ::core::option::Option<&[u8]>, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -13891,12 +13891,12 @@ where extern "system" { fn SetupDiSetClassRegistryPropertyA(classguid: *const ::windows::core::GUID, property: u32, propertybuffer: *const u8, propertybuffersize: u32, machinename: ::windows::core::PCSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiSetClassRegistryPropertyA(::core::mem::transmute(classguid), property, ::core::mem::transmute(propertybuffer), propertybuffersize, machinename.into(), ::core::mem::transmute(reserved)) + SetupDiSetClassRegistryPropertyA(::core::mem::transmute(classguid), property, ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiSetClassRegistryPropertyW<'a, P0>(classguid: &::windows::core::GUID, property: u32, propertybuffer: ::core::option::Option<&u8>, propertybuffersize: u32, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiSetClassRegistryPropertyW<'a, P0>(classguid: &::windows::core::GUID, property: u32, propertybuffer: ::core::option::Option<&[u8]>, machinename: P0, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -13904,7 +13904,7 @@ where extern "system" { fn SetupDiSetClassRegistryPropertyW(classguid: *const ::windows::core::GUID, property: u32, propertybuffer: *const u8, propertybuffersize: u32, machinename: ::windows::core::PCWSTR, reserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetupDiSetClassRegistryPropertyW(::core::mem::transmute(classguid), property, ::core::mem::transmute(propertybuffer), propertybuffersize, machinename.into(), ::core::mem::transmute(reserved)) + SetupDiSetClassRegistryPropertyW(::core::mem::transmute(classguid), property, ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), machinename.into(), ::core::mem::transmute(reserved)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13948,7 +13948,7 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`*"] #[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] #[inline] -pub unsafe fn SetupDiSetDeviceInterfacePropertyW<'a, P0>(deviceinfoset: P0, deviceinterfacedata: &SP_DEVICE_INTERFACE_DATA, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&u8>, propertybuffersize: u32, flags: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiSetDeviceInterfacePropertyW<'a, P0>(deviceinfoset: P0, deviceinterfacedata: &SP_DEVICE_INTERFACE_DATA, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&[u8]>, flags: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13956,12 +13956,12 @@ where extern "system" { fn SetupDiSetDeviceInterfacePropertyW(deviceinfoset: HDEVINFO, deviceinterfacedata: *const SP_DEVICE_INTERFACE_DATA, propertykey: *const super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: *const u8, propertybuffersize: u32, flags: u32) -> super::super::Foundation::BOOL; } - SetupDiSetDeviceInterfacePropertyW(deviceinfoset.into(), ::core::mem::transmute(deviceinterfacedata), ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer), propertybuffersize, flags) + SetupDiSetDeviceInterfacePropertyW(deviceinfoset.into(), ::core::mem::transmute(deviceinterfacedata), ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), flags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`*"] #[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] #[inline] -pub unsafe fn SetupDiSetDevicePropertyW<'a, P0>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&u8>, propertybuffersize: u32, flags: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiSetDevicePropertyW<'a, P0>(deviceinfoset: P0, deviceinfodata: &SP_DEVINFO_DATA, propertykey: &super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: ::core::option::Option<&[u8]>, flags: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13969,12 +13969,12 @@ where extern "system" { fn SetupDiSetDevicePropertyW(deviceinfoset: HDEVINFO, deviceinfodata: *const SP_DEVINFO_DATA, propertykey: *const super::Properties::DEVPROPKEY, propertytype: u32, propertybuffer: *const u8, propertybuffersize: u32, flags: u32) -> super::super::Foundation::BOOL; } - SetupDiSetDevicePropertyW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer), propertybuffersize, flags) + SetupDiSetDevicePropertyW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), ::core::mem::transmute(propertykey), propertytype, ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _), flags) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiSetDeviceRegistryPropertyA<'a, P0>(deviceinfoset: P0, deviceinfodata: &mut SP_DEVINFO_DATA, property: u32, propertybuffer: ::core::option::Option<&u8>, propertybuffersize: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiSetDeviceRegistryPropertyA<'a, P0>(deviceinfoset: P0, deviceinfodata: &mut SP_DEVINFO_DATA, property: u32, propertybuffer: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13982,12 +13982,12 @@ where extern "system" { fn SetupDiSetDeviceRegistryPropertyA(deviceinfoset: HDEVINFO, deviceinfodata: *mut SP_DEVINFO_DATA, property: u32, propertybuffer: *const u8, propertybuffersize: u32) -> super::super::Foundation::BOOL; } - SetupDiSetDeviceRegistryPropertyA(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), property, ::core::mem::transmute(propertybuffer), propertybuffersize) + SetupDiSetDeviceRegistryPropertyA(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), property, ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupDiSetDeviceRegistryPropertyW<'a, P0>(deviceinfoset: P0, deviceinfodata: &mut SP_DEVINFO_DATA, property: u32, propertybuffer: ::core::option::Option<&u8>, propertybuffersize: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetupDiSetDeviceRegistryPropertyW<'a, P0>(deviceinfoset: P0, deviceinfodata: &mut SP_DEVINFO_DATA, property: u32, propertybuffer: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13995,7 +13995,7 @@ where extern "system" { fn SetupDiSetDeviceRegistryPropertyW(deviceinfoset: HDEVINFO, deviceinfodata: *mut SP_DEVINFO_DATA, property: u32, propertybuffer: *const u8, propertybuffersize: u32) -> super::super::Foundation::BOOL; } - SetupDiSetDeviceRegistryPropertyW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), property, ::core::mem::transmute(propertybuffer), propertybuffersize) + SetupDiSetDeviceRegistryPropertyW(deviceinfoset.into(), ::core::mem::transmute(deviceinfodata), property, ::core::mem::transmute(propertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertybuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14096,22 +14096,22 @@ pub unsafe fn SetupDuplicateDiskSpaceListW(diskspace: *const ::core::ffi::c_void #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupEnumInfSectionsA(infhandle: *const ::core::ffi::c_void, index: u32, buffer: &mut [u8], sizeneeded: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn SetupEnumInfSectionsA(infhandle: *const ::core::ffi::c_void, index: u32, buffer: ::core::option::Option<&mut [u8]>, sizeneeded: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupEnumInfSectionsA(infhandle: *const ::core::ffi::c_void, index: u32, buffer: ::windows::core::PSTR, size: u32, sizeneeded: *mut u32) -> super::super::Foundation::BOOL; } - SetupEnumInfSectionsA(::core::mem::transmute(infhandle), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(sizeneeded)) + SetupEnumInfSectionsA(::core::mem::transmute(infhandle), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(sizeneeded)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupEnumInfSectionsW(infhandle: *const ::core::ffi::c_void, index: u32, buffer: &mut [u16], sizeneeded: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn SetupEnumInfSectionsW(infhandle: *const ::core::ffi::c_void, index: u32, buffer: ::core::option::Option<&mut [u16]>, sizeneeded: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupEnumInfSectionsW(infhandle: *const ::core::ffi::c_void, index: u32, buffer: ::windows::core::PWSTR, size: u32, sizeneeded: *mut u32) -> super::super::Foundation::BOOL; } - SetupEnumInfSectionsW(::core::mem::transmute(infhandle), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(sizeneeded)) + SetupEnumInfSectionsW(::core::mem::transmute(infhandle), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(sizeneeded)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[repr(transparent)] @@ -14220,7 +14220,7 @@ pub unsafe fn SetupFreeSourceListA(list: &mut [*mut ::windows::core::PSTR]) -> s extern "system" { fn SetupFreeSourceListA(list: *mut *mut ::windows::core::PSTR, count: u32) -> super::super::Foundation::BOOL; } - SetupFreeSourceListA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(list)), list.len() as _) + SetupFreeSourceListA(::core::mem::transmute(list.as_ptr()), list.len() as _) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14230,7 +14230,7 @@ pub unsafe fn SetupFreeSourceListW(list: &mut [*mut ::windows::core::PWSTR]) -> extern "system" { fn SetupFreeSourceListW(list: *mut *mut ::windows::core::PWSTR, count: u32) -> super::super::Foundation::BOOL; } - SetupFreeSourceListW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(list)), list.len() as _) + SetupFreeSourceListW(::core::mem::transmute(list.as_ptr()), list.len() as _) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14255,12 +14255,12 @@ pub unsafe fn SetupGetBackupInformationW(queuehandle: *const ::core::ffi::c_void #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetBinaryField(context: &INFCONTEXT, fieldindex: u32, returnbuffer: ::core::option::Option<&mut u8>, returnbuffersize: u32, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn SetupGetBinaryField(context: &INFCONTEXT, fieldindex: u32, returnbuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupGetBinaryField(context: *const INFCONTEXT, fieldindex: u32, returnbuffer: *mut u8, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetBinaryField(::core::mem::transmute(context), fieldindex, ::core::mem::transmute(returnbuffer), returnbuffersize, ::core::mem::transmute(requiredsize)) + SetupGetBinaryField(::core::mem::transmute(context), fieldindex, ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -14286,7 +14286,7 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetFileCompressionInfoExA<'a, P0>(sourcefilename: P0, actualsourcefilenamebuffer: &[u8], requiredbufferlen: ::core::option::Option<&mut u32>, sourcefilesize: &mut u32, targetfilesize: &mut u32, compressiontype: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn SetupGetFileCompressionInfoExA<'a, P0>(sourcefilename: P0, actualsourcefilenamebuffer: ::core::option::Option<&[u8]>, requiredbufferlen: ::core::option::Option<&mut u32>, sourcefilesize: &mut u32, targetfilesize: &mut u32, compressiontype: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -14294,12 +14294,12 @@ where extern "system" { fn SetupGetFileCompressionInfoExA(sourcefilename: ::windows::core::PCSTR, actualsourcefilenamebuffer: ::windows::core::PCSTR, actualsourcefilenamebufferlen: u32, requiredbufferlen: *mut u32, sourcefilesize: *mut u32, targetfilesize: *mut u32, compressiontype: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetFileCompressionInfoExA(sourcefilename.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(actualsourcefilenamebuffer)), actualsourcefilenamebuffer.len() as _, ::core::mem::transmute(requiredbufferlen), ::core::mem::transmute(sourcefilesize), ::core::mem::transmute(targetfilesize), ::core::mem::transmute(compressiontype)) + SetupGetFileCompressionInfoExA(sourcefilename.into(), ::core::mem::transmute(actualsourcefilenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), actualsourcefilenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredbufferlen), ::core::mem::transmute(sourcefilesize), ::core::mem::transmute(targetfilesize), ::core::mem::transmute(compressiontype)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetFileCompressionInfoExW<'a, P0>(sourcefilename: P0, actualsourcefilenamebuffer: &[u16], requiredbufferlen: ::core::option::Option<&mut u32>, sourcefilesize: &mut u32, targetfilesize: &mut u32, compressiontype: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn SetupGetFileCompressionInfoExW<'a, P0>(sourcefilename: P0, actualsourcefilenamebuffer: ::core::option::Option<&[u16]>, requiredbufferlen: ::core::option::Option<&mut u32>, sourcefilesize: &mut u32, targetfilesize: &mut u32, compressiontype: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -14307,7 +14307,7 @@ where extern "system" { fn SetupGetFileCompressionInfoExW(sourcefilename: ::windows::core::PCWSTR, actualsourcefilenamebuffer: ::windows::core::PCWSTR, actualsourcefilenamebufferlen: u32, requiredbufferlen: *mut u32, sourcefilesize: *mut u32, targetfilesize: *mut u32, compressiontype: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetFileCompressionInfoExW(sourcefilename.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(actualsourcefilenamebuffer)), actualsourcefilenamebuffer.len() as _, ::core::mem::transmute(requiredbufferlen), ::core::mem::transmute(sourcefilesize), ::core::mem::transmute(targetfilesize), ::core::mem::transmute(compressiontype)) + SetupGetFileCompressionInfoExW(sourcefilename.into(), ::core::mem::transmute(actualsourcefilenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), actualsourcefilenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredbufferlen), ::core::mem::transmute(sourcefilesize), ::core::mem::transmute(targetfilesize), ::core::mem::transmute(compressiontype)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -14353,7 +14353,7 @@ where extern "system" { fn SetupGetInfDriverStoreLocationA(filename: ::windows::core::PCSTR, alternateplatforminfo: *const SP_ALTPLATFORM_INFO_V2, localename: ::windows::core::PCSTR, returnbuffer: ::windows::core::PSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetInfDriverStoreLocationA(filename.into(), ::core::mem::transmute(alternateplatforminfo), localename.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetInfDriverStoreLocationA(filename.into(), ::core::mem::transmute(alternateplatforminfo), localename.into(), ::core::mem::transmute(returnbuffer.as_ptr()), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] @@ -14367,12 +14367,12 @@ where extern "system" { fn SetupGetInfDriverStoreLocationW(filename: ::windows::core::PCWSTR, alternateplatforminfo: *const SP_ALTPLATFORM_INFO_V2, localename: ::windows::core::PCWSTR, returnbuffer: ::windows::core::PWSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetInfDriverStoreLocationW(filename.into(), ::core::mem::transmute(alternateplatforminfo), localename.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetInfDriverStoreLocationW(filename.into(), ::core::mem::transmute(alternateplatforminfo), localename.into(), ::core::mem::transmute(returnbuffer.as_ptr()), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetInfFileListA<'a, P0>(directorypath: P0, infstyle: u32, returnbuffer: &mut [u8], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupGetInfFileListA<'a, P0>(directorypath: P0, infstyle: u32, returnbuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -14380,7 +14380,7 @@ where extern "system" { fn SetupGetInfFileListA(directorypath: ::windows::core::PCSTR, infstyle: u32, returnbuffer: ::windows::core::PSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetInfFileListA(directorypath.into(), infstyle, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetInfFileListA(directorypath.into(), infstyle, ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14393,27 +14393,27 @@ where extern "system" { fn SetupGetInfFileListW(directorypath: ::windows::core::PCWSTR, infstyle: u32, returnbuffer: ::windows::core::PWSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetInfFileListW(directorypath.into(), infstyle, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetInfFileListW(directorypath.into(), infstyle, ::core::mem::transmute(returnbuffer.as_ptr()), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetInfInformationA(infspec: *const ::core::ffi::c_void, searchcontrol: u32, returnbuffer: ::core::option::Option<&mut SP_INF_INFORMATION>, returnbuffersize: u32, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn SetupGetInfInformationA(infspec: *const ::core::ffi::c_void, searchcontrol: u32, returnbuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupGetInfInformationA(infspec: *const ::core::ffi::c_void, searchcontrol: u32, returnbuffer: *mut SP_INF_INFORMATION, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetInfInformationA(::core::mem::transmute(infspec), searchcontrol, ::core::mem::transmute(returnbuffer), returnbuffersize, ::core::mem::transmute(requiredsize)) + SetupGetInfInformationA(::core::mem::transmute(infspec), searchcontrol, ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetInfInformationW(infspec: *const ::core::ffi::c_void, searchcontrol: u32, returnbuffer: ::core::option::Option<&mut SP_INF_INFORMATION>, returnbuffersize: u32, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn SetupGetInfInformationW(infspec: *const ::core::ffi::c_void, searchcontrol: u32, returnbuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupGetInfInformationW(infspec: *const ::core::ffi::c_void, searchcontrol: u32, returnbuffer: *mut SP_INF_INFORMATION, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetInfInformationW(::core::mem::transmute(infspec), searchcontrol, ::core::mem::transmute(returnbuffer), returnbuffersize, ::core::mem::transmute(requiredsize)) + SetupGetInfInformationW(::core::mem::transmute(infspec), searchcontrol, ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14426,7 +14426,7 @@ where extern "system" { fn SetupGetInfPublishedNameA(driverstorelocation: ::windows::core::PCSTR, returnbuffer: ::windows::core::PSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetInfPublishedNameA(driverstorelocation.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetInfPublishedNameA(driverstorelocation.into(), ::core::mem::transmute(returnbuffer.as_ptr()), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14439,7 +14439,7 @@ where extern "system" { fn SetupGetInfPublishedNameW(driverstorelocation: ::windows::core::PCWSTR, returnbuffer: ::windows::core::PWSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetInfPublishedNameW(driverstorelocation.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetInfPublishedNameW(driverstorelocation.into(), ::core::mem::transmute(returnbuffer.as_ptr()), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14504,7 +14504,7 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetLineTextA<'a, P0, P1>(context: ::core::option::Option<&INFCONTEXT>, infhandle: *const ::core::ffi::c_void, section: P0, key: P1, returnbuffer: &mut [u8], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupGetLineTextA<'a, P0, P1>(context: ::core::option::Option<&INFCONTEXT>, infhandle: *const ::core::ffi::c_void, section: P0, key: P1, returnbuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -14513,12 +14513,12 @@ where extern "system" { fn SetupGetLineTextA(context: *const INFCONTEXT, infhandle: *const ::core::ffi::c_void, section: ::windows::core::PCSTR, key: ::windows::core::PCSTR, returnbuffer: ::windows::core::PSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetLineTextA(::core::mem::transmute(context), ::core::mem::transmute(infhandle), section.into(), key.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetLineTextA(::core::mem::transmute(context), ::core::mem::transmute(infhandle), section.into(), key.into(), ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetLineTextW<'a, P0, P1>(context: ::core::option::Option<&INFCONTEXT>, infhandle: *const ::core::ffi::c_void, section: P0, key: P1, returnbuffer: &mut [u16], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupGetLineTextW<'a, P0, P1>(context: ::core::option::Option<&INFCONTEXT>, infhandle: *const ::core::ffi::c_void, section: P0, key: P1, returnbuffer: ::core::option::Option<&mut [u16]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -14527,27 +14527,27 @@ where extern "system" { fn SetupGetLineTextW(context: *const INFCONTEXT, infhandle: *const ::core::ffi::c_void, section: ::windows::core::PCWSTR, key: ::windows::core::PCWSTR, returnbuffer: ::windows::core::PWSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetLineTextW(::core::mem::transmute(context), ::core::mem::transmute(infhandle), section.into(), key.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetLineTextW(::core::mem::transmute(context), ::core::mem::transmute(infhandle), section.into(), key.into(), ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetMultiSzFieldA(context: &INFCONTEXT, fieldindex: u32, returnbuffer: &mut [u8], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn SetupGetMultiSzFieldA(context: &INFCONTEXT, fieldindex: u32, returnbuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupGetMultiSzFieldA(context: *const INFCONTEXT, fieldindex: u32, returnbuffer: ::windows::core::PSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetMultiSzFieldA(::core::mem::transmute(context), fieldindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetMultiSzFieldA(::core::mem::transmute(context), fieldindex, ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetMultiSzFieldW(context: &INFCONTEXT, fieldindex: u32, returnbuffer: &mut [u16], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn SetupGetMultiSzFieldW(context: &INFCONTEXT, fieldindex: u32, returnbuffer: ::core::option::Option<&mut [u16]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupGetMultiSzFieldW(context: *const INFCONTEXT, fieldindex: u32, returnbuffer: ::windows::core::PWSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetMultiSzFieldW(::core::mem::transmute(context), fieldindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetMultiSzFieldW(::core::mem::transmute(context), fieldindex, ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14562,7 +14562,7 @@ pub unsafe fn SetupGetNonInteractiveMode() -> super::super::Foundation::BOOL { #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetSourceFileLocationA<'a, P0>(infhandle: *const ::core::ffi::c_void, infcontext: ::core::option::Option<&INFCONTEXT>, filename: P0, sourceid: &mut u32, returnbuffer: &mut [u8], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupGetSourceFileLocationA<'a, P0>(infhandle: *const ::core::ffi::c_void, infcontext: ::core::option::Option<&INFCONTEXT>, filename: P0, sourceid: &mut u32, returnbuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -14570,12 +14570,12 @@ where extern "system" { fn SetupGetSourceFileLocationA(infhandle: *const ::core::ffi::c_void, infcontext: *const INFCONTEXT, filename: ::windows::core::PCSTR, sourceid: *mut u32, returnbuffer: ::windows::core::PSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetSourceFileLocationA(::core::mem::transmute(infhandle), ::core::mem::transmute(infcontext), filename.into(), ::core::mem::transmute(sourceid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetSourceFileLocationA(::core::mem::transmute(infhandle), ::core::mem::transmute(infcontext), filename.into(), ::core::mem::transmute(sourceid), ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetSourceFileLocationW<'a, P0>(infhandle: *const ::core::ffi::c_void, infcontext: ::core::option::Option<&INFCONTEXT>, filename: P0, sourceid: &mut u32, returnbuffer: &mut [u16], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupGetSourceFileLocationW<'a, P0>(infhandle: *const ::core::ffi::c_void, infcontext: ::core::option::Option<&INFCONTEXT>, filename: P0, sourceid: &mut u32, returnbuffer: ::core::option::Option<&mut [u16]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -14583,7 +14583,7 @@ where extern "system" { fn SetupGetSourceFileLocationW(infhandle: *const ::core::ffi::c_void, infcontext: *const INFCONTEXT, filename: ::windows::core::PCWSTR, sourceid: *mut u32, returnbuffer: ::windows::core::PWSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetSourceFileLocationW(::core::mem::transmute(infhandle), ::core::mem::transmute(infcontext), filename.into(), ::core::mem::transmute(sourceid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetSourceFileLocationW(::core::mem::transmute(infhandle), ::core::mem::transmute(infcontext), filename.into(), ::core::mem::transmute(sourceid), ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14616,47 +14616,47 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetSourceInfoA(infhandle: *const ::core::ffi::c_void, sourceid: u32, infodesired: u32, returnbuffer: &mut [u8], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn SetupGetSourceInfoA(infhandle: *const ::core::ffi::c_void, sourceid: u32, infodesired: u32, returnbuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupGetSourceInfoA(infhandle: *const ::core::ffi::c_void, sourceid: u32, infodesired: u32, returnbuffer: ::windows::core::PSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetSourceInfoA(::core::mem::transmute(infhandle), sourceid, infodesired, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetSourceInfoA(::core::mem::transmute(infhandle), sourceid, infodesired, ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetSourceInfoW(infhandle: *const ::core::ffi::c_void, sourceid: u32, infodesired: u32, returnbuffer: &mut [u16], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn SetupGetSourceInfoW(infhandle: *const ::core::ffi::c_void, sourceid: u32, infodesired: u32, returnbuffer: ::core::option::Option<&mut [u16]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupGetSourceInfoW(infhandle: *const ::core::ffi::c_void, sourceid: u32, infodesired: u32, returnbuffer: ::windows::core::PWSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetSourceInfoW(::core::mem::transmute(infhandle), sourceid, infodesired, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetSourceInfoW(::core::mem::transmute(infhandle), sourceid, infodesired, ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetStringFieldA(context: &INFCONTEXT, fieldindex: u32, returnbuffer: &mut [u8], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn SetupGetStringFieldA(context: &INFCONTEXT, fieldindex: u32, returnbuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupGetStringFieldA(context: *const INFCONTEXT, fieldindex: u32, returnbuffer: ::windows::core::PSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetStringFieldA(::core::mem::transmute(context), fieldindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetStringFieldA(::core::mem::transmute(context), fieldindex, ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetStringFieldW(context: &INFCONTEXT, fieldindex: u32, returnbuffer: &mut [u16], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn SetupGetStringFieldW(context: &INFCONTEXT, fieldindex: u32, returnbuffer: ::core::option::Option<&mut [u16]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupGetStringFieldW(context: *const INFCONTEXT, fieldindex: u32, returnbuffer: ::windows::core::PWSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetStringFieldW(::core::mem::transmute(context), fieldindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetStringFieldW(::core::mem::transmute(context), fieldindex, ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetTargetPathA<'a, P0>(infhandle: *const ::core::ffi::c_void, infcontext: ::core::option::Option<&INFCONTEXT>, section: P0, returnbuffer: &mut [u8], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupGetTargetPathA<'a, P0>(infhandle: *const ::core::ffi::c_void, infcontext: ::core::option::Option<&INFCONTEXT>, section: P0, returnbuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -14664,12 +14664,12 @@ where extern "system" { fn SetupGetTargetPathA(infhandle: *const ::core::ffi::c_void, infcontext: *const INFCONTEXT, section: ::windows::core::PCSTR, returnbuffer: ::windows::core::PSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetTargetPathA(::core::mem::transmute(infhandle), ::core::mem::transmute(infcontext), section.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetTargetPathA(::core::mem::transmute(infhandle), ::core::mem::transmute(infcontext), section.into(), ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupGetTargetPathW<'a, P0>(infhandle: *const ::core::ffi::c_void, infcontext: ::core::option::Option<&INFCONTEXT>, section: P0, returnbuffer: &mut [u16], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupGetTargetPathW<'a, P0>(infhandle: *const ::core::ffi::c_void, infcontext: ::core::option::Option<&INFCONTEXT>, section: P0, returnbuffer: ::core::option::Option<&mut [u16]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -14677,7 +14677,7 @@ where extern "system" { fn SetupGetTargetPathW(infhandle: *const ::core::ffi::c_void, infcontext: *const INFCONTEXT, section: ::windows::core::PCWSTR, returnbuffer: ::windows::core::PWSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupGetTargetPathW(::core::mem::transmute(infhandle), ::core::mem::transmute(infcontext), section.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupGetTargetPathW(::core::mem::transmute(infhandle), ::core::mem::transmute(infcontext), section.into(), ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] @@ -15115,7 +15115,7 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupPromptForDiskA<'a, P0, P1, P2, P3, P4, P5>(hwndparent: P0, dialogtitle: P1, diskname: P2, pathtosource: P3, filesought: P4, tagfile: P5, diskpromptstyle: u32, pathbuffer: &mut [u8], pathrequiredsize: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn SetupPromptForDiskA<'a, P0, P1, P2, P3, P4, P5>(hwndparent: P0, dialogtitle: P1, diskname: P2, pathtosource: P3, filesought: P4, tagfile: P5, diskpromptstyle: u32, pathbuffer: ::core::option::Option<&mut [u8]>, pathrequiredsize: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -15128,12 +15128,12 @@ where extern "system" { fn SetupPromptForDiskA(hwndparent: super::super::Foundation::HWND, dialogtitle: ::windows::core::PCSTR, diskname: ::windows::core::PCSTR, pathtosource: ::windows::core::PCSTR, filesought: ::windows::core::PCSTR, tagfile: ::windows::core::PCSTR, diskpromptstyle: u32, pathbuffer: ::windows::core::PSTR, pathbuffersize: u32, pathrequiredsize: *mut u32) -> u32; } - SetupPromptForDiskA(hwndparent.into(), dialogtitle.into(), diskname.into(), pathtosource.into(), filesought.into(), tagfile.into(), diskpromptstyle, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pathbuffer)), pathbuffer.len() as _, ::core::mem::transmute(pathrequiredsize)) + SetupPromptForDiskA(hwndparent.into(), dialogtitle.into(), diskname.into(), pathtosource.into(), filesought.into(), tagfile.into(), diskpromptstyle, ::core::mem::transmute(pathbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pathbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathrequiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupPromptForDiskW<'a, P0, P1, P2, P3, P4, P5>(hwndparent: P0, dialogtitle: P1, diskname: P2, pathtosource: P3, filesought: P4, tagfile: P5, diskpromptstyle: u32, pathbuffer: &mut [u16], pathrequiredsize: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn SetupPromptForDiskW<'a, P0, P1, P2, P3, P4, P5>(hwndparent: P0, dialogtitle: P1, diskname: P2, pathtosource: P3, filesought: P4, tagfile: P5, diskpromptstyle: u32, pathbuffer: ::core::option::Option<&mut [u16]>, pathrequiredsize: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -15146,7 +15146,7 @@ where extern "system" { fn SetupPromptForDiskW(hwndparent: super::super::Foundation::HWND, dialogtitle: ::windows::core::PCWSTR, diskname: ::windows::core::PCWSTR, pathtosource: ::windows::core::PCWSTR, filesought: ::windows::core::PCWSTR, tagfile: ::windows::core::PCWSTR, diskpromptstyle: u32, pathbuffer: ::windows::core::PWSTR, pathbuffersize: u32, pathrequiredsize: *mut u32) -> u32; } - SetupPromptForDiskW(hwndparent.into(), dialogtitle.into(), diskname.into(), pathtosource.into(), filesought.into(), tagfile.into(), diskpromptstyle, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pathbuffer)), pathbuffer.len() as _, ::core::mem::transmute(pathrequiredsize)) + SetupPromptForDiskW(hwndparent.into(), dialogtitle.into(), diskname.into(), pathtosource.into(), filesought.into(), tagfile.into(), diskpromptstyle, ::core::mem::transmute(pathbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pathbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathrequiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -15165,27 +15165,27 @@ where #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupQueryDrivesInDiskSpaceListA(diskspace: *const ::core::ffi::c_void, returnbuffer: &mut [u8], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn SetupQueryDrivesInDiskSpaceListA(diskspace: *const ::core::ffi::c_void, returnbuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupQueryDrivesInDiskSpaceListA(diskspace: *const ::core::ffi::c_void, returnbuffer: ::windows::core::PSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupQueryDrivesInDiskSpaceListA(::core::mem::transmute(diskspace), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupQueryDrivesInDiskSpaceListA(::core::mem::transmute(diskspace), ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupQueryDrivesInDiskSpaceListW(diskspace: *const ::core::ffi::c_void, returnbuffer: &mut [u16], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn SetupQueryDrivesInDiskSpaceListW(diskspace: *const ::core::ffi::c_void, returnbuffer: ::core::option::Option<&mut [u16]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupQueryDrivesInDiskSpaceListW(diskspace: *const ::core::ffi::c_void, returnbuffer: ::windows::core::PWSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupQueryDrivesInDiskSpaceListW(::core::mem::transmute(diskspace), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupQueryDrivesInDiskSpaceListW(::core::mem::transmute(diskspace), ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupQueryFileLogA<'a, P0, P1>(fileloghandle: *const ::core::ffi::c_void, logsectionname: P0, targetfilename: P1, desiredinfo: SetupFileLogInfo, dataout: &mut [u8], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupQueryFileLogA<'a, P0, P1>(fileloghandle: *const ::core::ffi::c_void, logsectionname: P0, targetfilename: P1, desiredinfo: SetupFileLogInfo, dataout: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -15194,12 +15194,12 @@ where extern "system" { fn SetupQueryFileLogA(fileloghandle: *const ::core::ffi::c_void, logsectionname: ::windows::core::PCSTR, targetfilename: ::windows::core::PCSTR, desiredinfo: SetupFileLogInfo, dataout: ::windows::core::PSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupQueryFileLogA(::core::mem::transmute(fileloghandle), logsectionname.into(), targetfilename.into(), desiredinfo, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dataout)), dataout.len() as _, ::core::mem::transmute(requiredsize)) + SetupQueryFileLogA(::core::mem::transmute(fileloghandle), logsectionname.into(), targetfilename.into(), desiredinfo, ::core::mem::transmute(dataout.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dataout.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupQueryFileLogW<'a, P0, P1>(fileloghandle: *const ::core::ffi::c_void, logsectionname: P0, targetfilename: P1, desiredinfo: SetupFileLogInfo, dataout: &mut [u16], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupQueryFileLogW<'a, P0, P1>(fileloghandle: *const ::core::ffi::c_void, logsectionname: P0, targetfilename: P1, desiredinfo: SetupFileLogInfo, dataout: ::core::option::Option<&mut [u16]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -15208,27 +15208,27 @@ where extern "system" { fn SetupQueryFileLogW(fileloghandle: *const ::core::ffi::c_void, logsectionname: ::windows::core::PCWSTR, targetfilename: ::windows::core::PCWSTR, desiredinfo: SetupFileLogInfo, dataout: ::windows::core::PWSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupQueryFileLogW(::core::mem::transmute(fileloghandle), logsectionname.into(), targetfilename.into(), desiredinfo, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dataout)), dataout.len() as _, ::core::mem::transmute(requiredsize)) + SetupQueryFileLogW(::core::mem::transmute(fileloghandle), logsectionname.into(), targetfilename.into(), desiredinfo, ::core::mem::transmute(dataout.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dataout.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupQueryInfFileInformationA(infinformation: &SP_INF_INFORMATION, infindex: u32, returnbuffer: &mut [u8], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn SetupQueryInfFileInformationA(infinformation: &SP_INF_INFORMATION, infindex: u32, returnbuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupQueryInfFileInformationA(infinformation: *const SP_INF_INFORMATION, infindex: u32, returnbuffer: ::windows::core::PSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupQueryInfFileInformationA(::core::mem::transmute(infinformation), infindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupQueryInfFileInformationA(::core::mem::transmute(infinformation), infindex, ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupQueryInfFileInformationW(infinformation: &SP_INF_INFORMATION, infindex: u32, returnbuffer: &mut [u16], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn SetupQueryInfFileInformationW(infinformation: &SP_INF_INFORMATION, infindex: u32, returnbuffer: ::core::option::Option<&mut [u16]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetupQueryInfFileInformationW(infinformation: *const SP_INF_INFORMATION, infindex: u32, returnbuffer: ::windows::core::PWSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupQueryInfFileInformationW(::core::mem::transmute(infinformation), infindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupQueryInfFileInformationW(::core::mem::transmute(infinformation), infindex, ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`, `\"Win32_System_Diagnostics_Debug\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Diagnostics_Debug"))] @@ -15253,7 +15253,7 @@ pub unsafe fn SetupQueryInfOriginalFileInformationW(infinformation: &SP_INF_INFO #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupQueryInfVersionInformationA<'a, P0>(infinformation: &SP_INF_INFORMATION, infindex: u32, key: P0, returnbuffer: &mut [u8], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupQueryInfVersionInformationA<'a, P0>(infinformation: &SP_INF_INFORMATION, infindex: u32, key: P0, returnbuffer: ::core::option::Option<&mut [u8]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -15261,12 +15261,12 @@ where extern "system" { fn SetupQueryInfVersionInformationA(infinformation: *const SP_INF_INFORMATION, infindex: u32, key: ::windows::core::PCSTR, returnbuffer: ::windows::core::PSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupQueryInfVersionInformationA(::core::mem::transmute(infinformation), infindex, key.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupQueryInfVersionInformationA(::core::mem::transmute(infinformation), infindex, key.into(), ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetupQueryInfVersionInformationW<'a, P0>(infinformation: &SP_INF_INFORMATION, infindex: u32, key: P0, returnbuffer: &mut [u16], requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn SetupQueryInfVersionInformationW<'a, P0>(infinformation: &SP_INF_INFORMATION, infindex: u32, key: P0, returnbuffer: ::core::option::Option<&mut [u16]>, requiredsize: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -15274,7 +15274,7 @@ where extern "system" { fn SetupQueryInfVersionInformationW(infinformation: *const SP_INF_INFORMATION, infindex: u32, key: ::windows::core::PCWSTR, returnbuffer: ::windows::core::PWSTR, returnbuffersize: u32, requiredsize: *mut u32) -> super::super::Foundation::BOOL; } - SetupQueryInfVersionInformationW(::core::mem::transmute(infinformation), infindex, key.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(returnbuffer)), returnbuffer.len() as _, ::core::mem::transmute(requiredsize)) + SetupQueryInfVersionInformationW(::core::mem::transmute(infinformation), infindex, key.into(), ::core::mem::transmute(returnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), returnbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredsize)) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -15875,7 +15875,7 @@ pub unsafe fn SetupSetSourceListA(flags: u32, sourcelist: &[::windows::core::PST extern "system" { fn SetupSetSourceListA(flags: u32, sourcelist: *const ::windows::core::PSTR, sourcecount: u32) -> super::super::Foundation::BOOL; } - SetupSetSourceListA(flags, ::core::mem::transmute(::windows::core::as_ptr_or_null(sourcelist)), sourcelist.len() as _) + SetupSetSourceListA(flags, ::core::mem::transmute(sourcelist.as_ptr()), sourcelist.len() as _) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -15885,7 +15885,7 @@ pub unsafe fn SetupSetSourceListW(flags: u32, sourcelist: &[::windows::core::PWS extern "system" { fn SetupSetSourceListW(flags: u32, sourcelist: *const ::windows::core::PWSTR, sourcecount: u32) -> super::super::Foundation::BOOL; } - SetupSetSourceListW(flags, ::core::mem::transmute(::windows::core::as_ptr_or_null(sourcelist)), sourcelist.len() as _) + SetupSetSourceListW(flags, ::core::mem::transmute(sourcelist.as_ptr()), sourcelist.len() as _) } #[doc = "*Required features: `\"Win32_Devices_DeviceAndDriverInstallation\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/Devices/DeviceQuery/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/DeviceQuery/mod.rs index e0fc9844ad..2dacb6c98c 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/DeviceQuery/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/DeviceQuery/mod.rs @@ -474,29 +474,42 @@ pub unsafe fn DevCloseObjectQuery(hdevquery: &HDEVQUERY__) { #[doc = "*Required features: `\"Win32_Devices_DeviceQuery\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn DevCreateObjectQuery(objecttype: DEV_OBJECT_TYPE, queryflags: u32, prequestedproperties: &[super::Properties::DEVPROPCOMPKEY], pfilter: &[DEVPROP_FILTER_EXPRESSION], pcallback: PDEV_QUERY_RESULT_CALLBACK, pcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<*mut HDEVQUERY__> { +pub unsafe fn DevCreateObjectQuery(objecttype: DEV_OBJECT_TYPE, queryflags: u32, prequestedproperties: ::core::option::Option<&[super::Properties::DEVPROPCOMPKEY]>, pfilter: ::core::option::Option<&[DEVPROP_FILTER_EXPRESSION]>, pcallback: PDEV_QUERY_RESULT_CALLBACK, pcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<*mut HDEVQUERY__> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn DevCreateObjectQuery(objecttype: DEV_OBJECT_TYPE, queryflags: u32, crequestedproperties: u32, prequestedproperties: *const super::Properties::DEVPROPCOMPKEY, cfilterexpressioncount: u32, pfilter: *const DEVPROP_FILTER_EXPRESSION, pcallback: *mut ::core::ffi::c_void, pcontext: *const ::core::ffi::c_void, phdevquery: *mut *mut HDEVQUERY__) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - DevCreateObjectQuery(objecttype, queryflags, prequestedproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prequestedproperties)), pfilter.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfilter)), ::core::mem::transmute(pcallback), ::core::mem::transmute(pcontext), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut HDEVQUERY__>(result__) + DevCreateObjectQuery(objecttype, queryflags, prequestedproperties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prequestedproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pfilter.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pfilter.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcallback), ::core::mem::transmute(pcontext), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut HDEVQUERY__>(result__) } #[doc = "*Required features: `\"Win32_Devices_DeviceQuery\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn DevCreateObjectQueryEx(objecttype: DEV_OBJECT_TYPE, queryflags: u32, prequestedproperties: &[super::Properties::DEVPROPCOMPKEY], pfilter: &[DEVPROP_FILTER_EXPRESSION], pextendedparameters: &[DEV_QUERY_PARAMETER], pcallback: PDEV_QUERY_RESULT_CALLBACK, pcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<*mut HDEVQUERY__> { +pub unsafe fn DevCreateObjectQueryEx(objecttype: DEV_OBJECT_TYPE, queryflags: u32, prequestedproperties: ::core::option::Option<&[super::Properties::DEVPROPCOMPKEY]>, pfilter: ::core::option::Option<&[DEVPROP_FILTER_EXPRESSION]>, pextendedparameters: ::core::option::Option<&[DEV_QUERY_PARAMETER]>, pcallback: PDEV_QUERY_RESULT_CALLBACK, pcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<*mut HDEVQUERY__> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn DevCreateObjectQueryEx(objecttype: DEV_OBJECT_TYPE, queryflags: u32, crequestedproperties: u32, prequestedproperties: *const super::Properties::DEVPROPCOMPKEY, cfilterexpressioncount: u32, pfilter: *const DEVPROP_FILTER_EXPRESSION, cextendedparametercount: u32, pextendedparameters: *const DEV_QUERY_PARAMETER, pcallback: *mut ::core::ffi::c_void, pcontext: *const ::core::ffi::c_void, phdevquery: *mut *mut HDEVQUERY__) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - DevCreateObjectQueryEx(objecttype, queryflags, prequestedproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prequestedproperties)), pfilter.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfilter)), pextendedparameters.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pextendedparameters)), ::core::mem::transmute(pcallback), ::core::mem::transmute(pcontext), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut HDEVQUERY__>(result__) + DevCreateObjectQueryEx( + objecttype, + queryflags, + prequestedproperties.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(prequestedproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pfilter.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pfilter.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pextendedparameters.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pextendedparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ::core::mem::transmute(pcallback), + ::core::mem::transmute(pcontext), + ::core::mem::transmute(result__.as_mut_ptr()), + ) + .from_abi::<*mut HDEVQUERY__>(result__) } #[doc = "*Required features: `\"Win32_Devices_DeviceQuery\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn DevCreateObjectQueryFromId<'a, P0>(objecttype: DEV_OBJECT_TYPE, pszobjectid: P0, queryflags: u32, prequestedproperties: &[super::Properties::DEVPROPCOMPKEY], pfilter: &[DEVPROP_FILTER_EXPRESSION], pcallback: PDEV_QUERY_RESULT_CALLBACK, pcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<*mut HDEVQUERY__> +pub unsafe fn DevCreateObjectQueryFromId<'a, P0>(objecttype: DEV_OBJECT_TYPE, pszobjectid: P0, queryflags: u32, prequestedproperties: ::core::option::Option<&[super::Properties::DEVPROPCOMPKEY]>, pfilter: ::core::option::Option<&[DEVPROP_FILTER_EXPRESSION]>, pcallback: PDEV_QUERY_RESULT_CALLBACK, pcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<*mut HDEVQUERY__> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -505,12 +518,24 @@ where fn DevCreateObjectQueryFromId(objecttype: DEV_OBJECT_TYPE, pszobjectid: ::windows::core::PCWSTR, queryflags: u32, crequestedproperties: u32, prequestedproperties: *const super::Properties::DEVPROPCOMPKEY, cfilterexpressioncount: u32, pfilter: *const DEVPROP_FILTER_EXPRESSION, pcallback: *mut ::core::ffi::c_void, pcontext: *const ::core::ffi::c_void, phdevquery: *mut *mut HDEVQUERY__) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - DevCreateObjectQueryFromId(objecttype, pszobjectid.into(), queryflags, prequestedproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prequestedproperties)), pfilter.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfilter)), ::core::mem::transmute(pcallback), ::core::mem::transmute(pcontext), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut HDEVQUERY__>(result__) + DevCreateObjectQueryFromId( + objecttype, + pszobjectid.into(), + queryflags, + prequestedproperties.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(prequestedproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pfilter.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pfilter.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ::core::mem::transmute(pcallback), + ::core::mem::transmute(pcontext), + ::core::mem::transmute(result__.as_mut_ptr()), + ) + .from_abi::<*mut HDEVQUERY__>(result__) } #[doc = "*Required features: `\"Win32_Devices_DeviceQuery\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn DevCreateObjectQueryFromIdEx<'a, P0>(objecttype: DEV_OBJECT_TYPE, pszobjectid: P0, queryflags: u32, prequestedproperties: &[super::Properties::DEVPROPCOMPKEY], pfilter: &[DEVPROP_FILTER_EXPRESSION], pextendedparameters: &[DEV_QUERY_PARAMETER], pcallback: PDEV_QUERY_RESULT_CALLBACK, pcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<*mut HDEVQUERY__> +pub unsafe fn DevCreateObjectQueryFromIdEx<'a, P0>(objecttype: DEV_OBJECT_TYPE, pszobjectid: P0, queryflags: u32, prequestedproperties: ::core::option::Option<&[super::Properties::DEVPROPCOMPKEY]>, pfilter: ::core::option::Option<&[DEVPROP_FILTER_EXPRESSION]>, pextendedparameters: ::core::option::Option<&[DEV_QUERY_PARAMETER]>, pcallback: PDEV_QUERY_RESULT_CALLBACK, pcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<*mut HDEVQUERY__> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -519,12 +544,26 @@ where fn DevCreateObjectQueryFromIdEx(objecttype: DEV_OBJECT_TYPE, pszobjectid: ::windows::core::PCWSTR, queryflags: u32, crequestedproperties: u32, prequestedproperties: *const super::Properties::DEVPROPCOMPKEY, cfilterexpressioncount: u32, pfilter: *const DEVPROP_FILTER_EXPRESSION, cextendedparametercount: u32, pextendedparameters: *const DEV_QUERY_PARAMETER, pcallback: *mut ::core::ffi::c_void, pcontext: *const ::core::ffi::c_void, phdevquery: *mut *mut HDEVQUERY__) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - DevCreateObjectQueryFromIdEx(objecttype, pszobjectid.into(), queryflags, prequestedproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prequestedproperties)), pfilter.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfilter)), pextendedparameters.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pextendedparameters)), ::core::mem::transmute(pcallback), ::core::mem::transmute(pcontext), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut HDEVQUERY__>(result__) + DevCreateObjectQueryFromIdEx( + objecttype, + pszobjectid.into(), + queryflags, + prequestedproperties.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(prequestedproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pfilter.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pfilter.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pextendedparameters.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pextendedparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ::core::mem::transmute(pcallback), + ::core::mem::transmute(pcontext), + ::core::mem::transmute(result__.as_mut_ptr()), + ) + .from_abi::<*mut HDEVQUERY__>(result__) } #[doc = "*Required features: `\"Win32_Devices_DeviceQuery\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn DevCreateObjectQueryFromIds<'a, P0>(objecttype: DEV_OBJECT_TYPE, pszzobjectids: P0, queryflags: u32, prequestedproperties: &[super::Properties::DEVPROPCOMPKEY], pfilter: &[DEVPROP_FILTER_EXPRESSION], pcallback: PDEV_QUERY_RESULT_CALLBACK, pcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<*mut HDEVQUERY__> +pub unsafe fn DevCreateObjectQueryFromIds<'a, P0>(objecttype: DEV_OBJECT_TYPE, pszzobjectids: P0, queryflags: u32, prequestedproperties: ::core::option::Option<&[super::Properties::DEVPROPCOMPKEY]>, pfilter: ::core::option::Option<&[DEVPROP_FILTER_EXPRESSION]>, pcallback: PDEV_QUERY_RESULT_CALLBACK, pcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<*mut HDEVQUERY__> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -533,12 +572,24 @@ where fn DevCreateObjectQueryFromIds(objecttype: DEV_OBJECT_TYPE, pszzobjectids: ::windows::core::PCWSTR, queryflags: u32, crequestedproperties: u32, prequestedproperties: *const super::Properties::DEVPROPCOMPKEY, cfilterexpressioncount: u32, pfilter: *const DEVPROP_FILTER_EXPRESSION, pcallback: *mut ::core::ffi::c_void, pcontext: *const ::core::ffi::c_void, phdevquery: *mut *mut HDEVQUERY__) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - DevCreateObjectQueryFromIds(objecttype, pszzobjectids.into(), queryflags, prequestedproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prequestedproperties)), pfilter.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfilter)), ::core::mem::transmute(pcallback), ::core::mem::transmute(pcontext), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut HDEVQUERY__>(result__) + DevCreateObjectQueryFromIds( + objecttype, + pszzobjectids.into(), + queryflags, + prequestedproperties.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(prequestedproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pfilter.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pfilter.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ::core::mem::transmute(pcallback), + ::core::mem::transmute(pcontext), + ::core::mem::transmute(result__.as_mut_ptr()), + ) + .from_abi::<*mut HDEVQUERY__>(result__) } #[doc = "*Required features: `\"Win32_Devices_DeviceQuery\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn DevCreateObjectQueryFromIdsEx<'a, P0>(objecttype: DEV_OBJECT_TYPE, pszzobjectids: P0, queryflags: u32, prequestedproperties: &[super::Properties::DEVPROPCOMPKEY], pfilter: &[DEVPROP_FILTER_EXPRESSION], pextendedparameters: &[DEV_QUERY_PARAMETER], pcallback: PDEV_QUERY_RESULT_CALLBACK, pcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<*mut HDEVQUERY__> +pub unsafe fn DevCreateObjectQueryFromIdsEx<'a, P0>(objecttype: DEV_OBJECT_TYPE, pszzobjectids: P0, queryflags: u32, prequestedproperties: ::core::option::Option<&[super::Properties::DEVPROPCOMPKEY]>, pfilter: ::core::option::Option<&[DEVPROP_FILTER_EXPRESSION]>, pextendedparameters: ::core::option::Option<&[DEV_QUERY_PARAMETER]>, pcallback: PDEV_QUERY_RESULT_CALLBACK, pcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<*mut HDEVQUERY__> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -547,12 +598,26 @@ where fn DevCreateObjectQueryFromIdsEx(objecttype: DEV_OBJECT_TYPE, pszzobjectids: ::windows::core::PCWSTR, queryflags: u32, crequestedproperties: u32, prequestedproperties: *const super::Properties::DEVPROPCOMPKEY, cfilterexpressioncount: u32, pfilter: *const DEVPROP_FILTER_EXPRESSION, cextendedparametercount: u32, pextendedparameters: *const DEV_QUERY_PARAMETER, pcallback: *mut ::core::ffi::c_void, pcontext: *const ::core::ffi::c_void, phdevquery: *mut *mut HDEVQUERY__) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - DevCreateObjectQueryFromIdsEx(objecttype, pszzobjectids.into(), queryflags, prequestedproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prequestedproperties)), pfilter.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfilter)), pextendedparameters.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pextendedparameters)), ::core::mem::transmute(pcallback), ::core::mem::transmute(pcontext), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut HDEVQUERY__>(result__) + DevCreateObjectQueryFromIdsEx( + objecttype, + pszzobjectids.into(), + queryflags, + prequestedproperties.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(prequestedproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pfilter.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pfilter.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pextendedparameters.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pextendedparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ::core::mem::transmute(pcallback), + ::core::mem::transmute(pcontext), + ::core::mem::transmute(result__.as_mut_ptr()), + ) + .from_abi::<*mut HDEVQUERY__>(result__) } #[doc = "*Required features: `\"Win32_Devices_DeviceQuery\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn DevFindProperty<'a, P0>(pkey: &super::Properties::DEVPROPKEY, store: super::Properties::DEVPROPSTORE, pszlocalename: P0, pproperties: &[super::Properties::DEVPROPERTY]) -> *mut super::Properties::DEVPROPERTY +pub unsafe fn DevFindProperty<'a, P0>(pkey: &super::Properties::DEVPROPKEY, store: super::Properties::DEVPROPSTORE, pszlocalename: P0, pproperties: ::core::option::Option<&[super::Properties::DEVPROPERTY]>) -> *mut super::Properties::DEVPROPERTY where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -560,7 +625,7 @@ where extern "system" { fn DevFindProperty(pkey: *const super::Properties::DEVPROPKEY, store: super::Properties::DEVPROPSTORE, pszlocalename: ::windows::core::PCWSTR, cproperties: u32, pproperties: *const super::Properties::DEVPROPERTY) -> *mut super::Properties::DEVPROPERTY; } - DevFindProperty(::core::mem::transmute(pkey), store, pszlocalename.into(), pproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pproperties))) + DevFindProperty(::core::mem::transmute(pkey), store, pszlocalename.into(), pproperties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Devices_DeviceQuery\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] @@ -570,7 +635,7 @@ pub unsafe fn DevFreeObjectProperties(pproperties: &[super::Properties::DEVPROPE extern "system" { fn DevFreeObjectProperties(cpropertycount: u32, pproperties: *const super::Properties::DEVPROPERTY); } - DevFreeObjectProperties(pproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pproperties))) + DevFreeObjectProperties(pproperties.len() as _, ::core::mem::transmute(pproperties.as_ptr())) } #[doc = "*Required features: `\"Win32_Devices_DeviceQuery\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] @@ -580,7 +645,7 @@ pub unsafe fn DevFreeObjects(pobjects: &[DEV_OBJECT]) { extern "system" { fn DevFreeObjects(cobjectcount: u32, pobjects: *const DEV_OBJECT); } - DevFreeObjects(pobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pobjects))) + DevFreeObjects(pobjects.len() as _, ::core::mem::transmute(pobjects.as_ptr())) } #[doc = "*Required features: `\"Win32_Devices_DeviceQuery\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] @@ -593,12 +658,12 @@ where extern "system" { fn DevGetObjectProperties(objecttype: DEV_OBJECT_TYPE, pszobjectid: ::windows::core::PCWSTR, queryflags: u32, crequestedproperties: u32, prequestedproperties: *const super::Properties::DEVPROPCOMPKEY, pcpropertycount: *mut u32, ppproperties: *mut *mut super::Properties::DEVPROPERTY) -> ::windows::core::HRESULT; } - DevGetObjectProperties(objecttype, pszobjectid.into(), queryflags, prequestedproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prequestedproperties)), ::core::mem::transmute(pcpropertycount), ::core::mem::transmute(ppproperties)).ok() + DevGetObjectProperties(objecttype, pszobjectid.into(), queryflags, prequestedproperties.len() as _, ::core::mem::transmute(prequestedproperties.as_ptr()), ::core::mem::transmute(pcpropertycount), ::core::mem::transmute(ppproperties)).ok() } #[doc = "*Required features: `\"Win32_Devices_DeviceQuery\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn DevGetObjectPropertiesEx<'a, P0>(objecttype: DEV_OBJECT_TYPE, pszobjectid: P0, queryflags: u32, prequestedproperties: &[super::Properties::DEVPROPCOMPKEY], pextendedparameters: &[DEV_QUERY_PARAMETER], pcpropertycount: &mut u32, ppproperties: &mut *mut super::Properties::DEVPROPERTY) -> ::windows::core::Result<()> +pub unsafe fn DevGetObjectPropertiesEx<'a, P0>(objecttype: DEV_OBJECT_TYPE, pszobjectid: P0, queryflags: u32, prequestedproperties: &[super::Properties::DEVPROPCOMPKEY], pextendedparameters: ::core::option::Option<&[DEV_QUERY_PARAMETER]>, pcpropertycount: &mut u32, ppproperties: &mut *mut super::Properties::DEVPROPERTY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -606,27 +671,39 @@ where extern "system" { fn DevGetObjectPropertiesEx(objecttype: DEV_OBJECT_TYPE, pszobjectid: ::windows::core::PCWSTR, queryflags: u32, crequestedproperties: u32, prequestedproperties: *const super::Properties::DEVPROPCOMPKEY, cextendedparametercount: u32, pextendedparameters: *const DEV_QUERY_PARAMETER, pcpropertycount: *mut u32, ppproperties: *mut *mut super::Properties::DEVPROPERTY) -> ::windows::core::HRESULT; } - DevGetObjectPropertiesEx(objecttype, pszobjectid.into(), queryflags, prequestedproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prequestedproperties)), pextendedparameters.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pextendedparameters)), ::core::mem::transmute(pcpropertycount), ::core::mem::transmute(ppproperties)).ok() + DevGetObjectPropertiesEx(objecttype, pszobjectid.into(), queryflags, prequestedproperties.len() as _, ::core::mem::transmute(prequestedproperties.as_ptr()), pextendedparameters.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pextendedparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcpropertycount), ::core::mem::transmute(ppproperties)).ok() } #[doc = "*Required features: `\"Win32_Devices_DeviceQuery\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn DevGetObjects(objecttype: DEV_OBJECT_TYPE, queryflags: u32, prequestedproperties: &[super::Properties::DEVPROPCOMPKEY], pfilter: &[DEVPROP_FILTER_EXPRESSION], pcobjectcount: &mut u32, ppobjects: ::core::option::Option<&mut *mut DEV_OBJECT>) -> ::windows::core::Result<()> { +pub unsafe fn DevGetObjects(objecttype: DEV_OBJECT_TYPE, queryflags: u32, prequestedproperties: ::core::option::Option<&[super::Properties::DEVPROPCOMPKEY]>, pfilter: ::core::option::Option<&[DEVPROP_FILTER_EXPRESSION]>, pcobjectcount: &mut u32, ppobjects: ::core::option::Option<&mut *mut DEV_OBJECT>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn DevGetObjects(objecttype: DEV_OBJECT_TYPE, queryflags: u32, crequestedproperties: u32, prequestedproperties: *const super::Properties::DEVPROPCOMPKEY, cfilterexpressioncount: u32, pfilter: *const DEVPROP_FILTER_EXPRESSION, pcobjectcount: *mut u32, ppobjects: *mut *mut DEV_OBJECT) -> ::windows::core::HRESULT; } - DevGetObjects(objecttype, queryflags, prequestedproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prequestedproperties)), pfilter.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfilter)), ::core::mem::transmute(pcobjectcount), ::core::mem::transmute(ppobjects)).ok() + DevGetObjects(objecttype, queryflags, prequestedproperties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prequestedproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pfilter.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pfilter.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcobjectcount), ::core::mem::transmute(ppobjects)).ok() } #[doc = "*Required features: `\"Win32_Devices_DeviceQuery\"`, `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] #[inline] -pub unsafe fn DevGetObjectsEx(objecttype: DEV_OBJECT_TYPE, queryflags: u32, prequestedproperties: &[super::Properties::DEVPROPCOMPKEY], pfilter: &[DEVPROP_FILTER_EXPRESSION], pextendedparameters: &[DEV_QUERY_PARAMETER], pcobjectcount: &mut u32, ppobjects: ::core::option::Option<&mut *mut DEV_OBJECT>) -> ::windows::core::Result<()> { +pub unsafe fn DevGetObjectsEx(objecttype: DEV_OBJECT_TYPE, queryflags: u32, prequestedproperties: ::core::option::Option<&[super::Properties::DEVPROPCOMPKEY]>, pfilter: ::core::option::Option<&[DEVPROP_FILTER_EXPRESSION]>, pextendedparameters: ::core::option::Option<&[DEV_QUERY_PARAMETER]>, pcobjectcount: &mut u32, ppobjects: ::core::option::Option<&mut *mut DEV_OBJECT>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn DevGetObjectsEx(objecttype: DEV_OBJECT_TYPE, queryflags: u32, crequestedproperties: u32, prequestedproperties: *const super::Properties::DEVPROPCOMPKEY, cfilterexpressioncount: u32, pfilter: *const DEVPROP_FILTER_EXPRESSION, cextendedparametercount: u32, pextendedparameters: *const DEV_QUERY_PARAMETER, pcobjectcount: *mut u32, ppobjects: *mut *mut DEV_OBJECT) -> ::windows::core::HRESULT; } - DevGetObjectsEx(objecttype, queryflags, prequestedproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prequestedproperties)), pfilter.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfilter)), pextendedparameters.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pextendedparameters)), ::core::mem::transmute(pcobjectcount), ::core::mem::transmute(ppobjects)).ok() + DevGetObjectsEx( + objecttype, + queryflags, + prequestedproperties.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(prequestedproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pfilter.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pfilter.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pextendedparameters.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pextendedparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ::core::mem::transmute(pcobjectcount), + ::core::mem::transmute(ppobjects), + ) + .ok() } #[repr(C)] #[doc = "*Required features: `\"Win32_Devices_DeviceQuery\"`*"] diff --git a/crates/libs/windows/src/Windows/Win32/Devices/Display/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/Display/mod.rs index 685a597416..1255469b63 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/Display/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/Display/mod.rs @@ -1395,7 +1395,7 @@ where extern "system" { fn CapabilitiesRequestAndCapabilitiesReply(hmonitor: super::super::Foundation::HANDLE, pszasciicapabilitiesstring: ::windows::core::PSTR, dwcapabilitiesstringlengthincharacters: u32) -> i32; } - CapabilitiesRequestAndCapabilitiesReply(hmonitor.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszasciicapabilitiesstring)), pszasciicapabilitiesstring.len() as _) + CapabilitiesRequestAndCapabilitiesReply(hmonitor.into(), ::core::mem::transmute(pszasciicapabilitiesstring.as_ptr()), pszasciicapabilitiesstring.len() as _) } #[doc = "*Required features: `\"Win32_Devices_Display\"`*"] pub const DCR_DRIVER: u32 = 1u32; @@ -3848,7 +3848,7 @@ pub unsafe fn DestroyPhysicalMonitors(pphysicalmonitorarray: &[PHYSICAL_MONITOR] extern "system" { fn DestroyPhysicalMonitors(dwphysicalmonitorarraysize: u32, pphysicalmonitorarray: *const PHYSICAL_MONITOR) -> i32; } - DestroyPhysicalMonitors(pphysicalmonitorarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pphysicalmonitorarray))) + DestroyPhysicalMonitors(pphysicalmonitorarray.len() as _, ::core::mem::transmute(pphysicalmonitorarray.as_ptr())) } #[doc = "*Required features: `\"Win32_Devices_Display\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4530,27 +4530,21 @@ where } #[doc = "*Required features: `\"Win32_Devices_Display\"`*"] #[inline] -pub unsafe fn EngMultiByteToUnicodeN<'a, P0>(unicodestring: ::windows::core::PWSTR, maxbytesinunicodestring: u32, bytesinunicodestring: ::core::option::Option<&mut u32>, multibytestring: P0, bytesinmultibytestring: u32) -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn EngMultiByteToUnicodeN(unicodestring: &mut [u8], bytesinunicodestring: ::core::option::Option<&mut u32>, multibytestring: &[u8]) { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EngMultiByteToUnicodeN(unicodestring: ::windows::core::PWSTR, maxbytesinunicodestring: u32, bytesinunicodestring: *mut u32, multibytestring: ::windows::core::PCSTR, bytesinmultibytestring: u32); } - EngMultiByteToUnicodeN(::core::mem::transmute(unicodestring), maxbytesinunicodestring, ::core::mem::transmute(bytesinunicodestring), multibytestring.into(), bytesinmultibytestring) + EngMultiByteToUnicodeN(::core::mem::transmute(unicodestring.as_ptr()), unicodestring.len() as _, ::core::mem::transmute(bytesinunicodestring), ::core::mem::transmute(multibytestring.as_ptr()), multibytestring.len() as _) } #[doc = "*Required features: `\"Win32_Devices_Display\"`*"] #[inline] -pub unsafe fn EngMultiByteToWideChar<'a, P0>(codepage: u32, widecharstring: ::windows::core::PWSTR, bytesinwidecharstring: i32, multibytestring: P0, bytesinmultibytestring: i32) -> i32 -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn EngMultiByteToWideChar(codepage: u32, widecharstring: ::core::option::Option<&mut [u8]>, multibytestring: ::core::option::Option<&[u8]>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EngMultiByteToWideChar(codepage: u32, widecharstring: ::windows::core::PWSTR, bytesinwidecharstring: i32, multibytestring: ::windows::core::PCSTR, bytesinmultibytestring: i32) -> i32; } - EngMultiByteToWideChar(codepage, ::core::mem::transmute(widecharstring), bytesinwidecharstring, multibytestring.into(), bytesinmultibytestring) + EngMultiByteToWideChar(codepage, ::core::mem::transmute(widecharstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), widecharstring.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(multibytestring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), multibytestring.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Devices_Display\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4668,15 +4662,12 @@ pub unsafe fn EngTransparentBlt(psodst: &SURFOBJ, psosrc: &SURFOBJ, pco: ::core: } #[doc = "*Required features: `\"Win32_Devices_Display\"`*"] #[inline] -pub unsafe fn EngUnicodeToMultiByteN<'a, P0>(multibytestring: ::windows::core::PSTR, maxbytesinmultibytestring: u32, bytesinmultibytestring: ::core::option::Option<&mut u32>, unicodestring: P0, bytesinunicodestring: u32) -where - P0: ::std::convert::Into<::windows::core::PCWSTR>, -{ +pub unsafe fn EngUnicodeToMultiByteN(multibytestring: &mut [u8], bytesinmultibytestring: ::core::option::Option<&mut u32>, unicodestring: &[u8]) { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EngUnicodeToMultiByteN(multibytestring: ::windows::core::PSTR, maxbytesinmultibytestring: u32, bytesinmultibytestring: *mut u32, unicodestring: ::windows::core::PCWSTR, bytesinunicodestring: u32); } - EngUnicodeToMultiByteN(::core::mem::transmute(multibytestring), maxbytesinmultibytestring, ::core::mem::transmute(bytesinmultibytestring), unicodestring.into(), bytesinunicodestring) + EngUnicodeToMultiByteN(::core::mem::transmute(multibytestring.as_ptr()), multibytestring.len() as _, ::core::mem::transmute(bytesinmultibytestring), ::core::mem::transmute(unicodestring.as_ptr()), unicodestring.len() as _) } #[doc = "*Required features: `\"Win32_Devices_Display\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4690,15 +4681,12 @@ pub unsafe fn EngUnlockSurface(pso: &mut SURFOBJ) { } #[doc = "*Required features: `\"Win32_Devices_Display\"`*"] #[inline] -pub unsafe fn EngWideCharToMultiByte<'a, P0>(codepage: u32, widecharstring: P0, bytesinwidecharstring: i32, multibytestring: ::windows::core::PSTR, bytesinmultibytestring: i32) -> i32 -where - P0: ::std::convert::Into<::windows::core::PCWSTR>, -{ +pub unsafe fn EngWideCharToMultiByte(codepage: u32, widecharstring: ::core::option::Option<&[u8]>, multibytestring: ::core::option::Option<&mut [u8]>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EngWideCharToMultiByte(codepage: u32, widecharstring: ::windows::core::PCWSTR, bytesinwidecharstring: i32, multibytestring: ::windows::core::PSTR, bytesinmultibytestring: i32) -> i32; } - EngWideCharToMultiByte(codepage, widecharstring.into(), bytesinwidecharstring, ::core::mem::transmute(multibytestring), bytesinmultibytestring) + EngWideCharToMultiByte(codepage, ::core::mem::transmute(widecharstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), widecharstring.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(multibytestring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), multibytestring.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Devices_Display\"`*"] pub const FC_COMPLEX: u32 = 3u32; @@ -6621,7 +6609,7 @@ where extern "system" { fn GetPhysicalMonitorsFromHMONITOR(hmonitor: super::super::Graphics::Gdi::HMONITOR, dwphysicalmonitorarraysize: u32, pphysicalmonitorarray: *mut PHYSICAL_MONITOR) -> i32; } - GetPhysicalMonitorsFromHMONITOR(hmonitor.into(), pphysicalmonitorarray.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pphysicalmonitorarray))) + GetPhysicalMonitorsFromHMONITOR(hmonitor.into(), pphysicalmonitorarray.len() as _, ::core::mem::transmute(pphysicalmonitorarray.as_ptr())) } #[doc = "*Required features: `\"Win32_Devices_Display\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] @@ -6634,7 +6622,7 @@ where extern "system" { fn GetPhysicalMonitorsFromIDirect3DDevice9(pdirect3ddevice9: *mut ::core::ffi::c_void, dwphysicalmonitorarraysize: u32, pphysicalmonitorarray: *mut PHYSICAL_MONITOR) -> ::windows::core::HRESULT; } - GetPhysicalMonitorsFromIDirect3DDevice9(pdirect3ddevice9.into().abi(), pphysicalmonitorarray.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pphysicalmonitorarray))).ok() + GetPhysicalMonitorsFromIDirect3DDevice9(pdirect3ddevice9.into().abi(), pphysicalmonitorarray.len() as _, ::core::mem::transmute(pphysicalmonitorarray.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Devices_Display\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10149,7 +10137,7 @@ pub const QSA_SSE3: u32 = 524288u32; #[doc = "*Required features: `\"Win32_Devices_Display\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn QueryDisplayConfig(flags: u32, numpatharrayelements: &mut u32, patharray: &mut DISPLAYCONFIG_PATH_INFO, nummodeinfoarrayelements: &mut u32, modeinfoarray: &mut DISPLAYCONFIG_MODE_INFO, currenttopologyid: &mut DISPLAYCONFIG_TOPOLOGY_ID) -> i32 { +pub unsafe fn QueryDisplayConfig(flags: u32, numpatharrayelements: &mut u32, patharray: *mut DISPLAYCONFIG_PATH_INFO, nummodeinfoarrayelements: &mut u32, modeinfoarray: *mut DISPLAYCONFIG_MODE_INFO, currenttopologyid: &mut DISPLAYCONFIG_TOPOLOGY_ID) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn QueryDisplayConfig(flags: u32, numpatharrayelements: *mut u32, patharray: *mut DISPLAYCONFIG_PATH_INFO, nummodeinfoarrayelements: *mut u32, modeinfoarray: *mut DISPLAYCONFIG_MODE_INFO, currenttopologyid: *mut DISPLAYCONFIG_TOPOLOGY_ID) -> i32; @@ -10538,12 +10526,12 @@ pub unsafe fn SetDisplayAutoRotationPreferences(orientation: ORIENTATION_PREFERE #[doc = "*Required features: `\"Win32_Devices_Display\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetDisplayConfig(patharray: &[DISPLAYCONFIG_PATH_INFO], modeinfoarray: &[DISPLAYCONFIG_MODE_INFO], flags: u32) -> i32 { +pub unsafe fn SetDisplayConfig(patharray: ::core::option::Option<&[DISPLAYCONFIG_PATH_INFO]>, modeinfoarray: ::core::option::Option<&[DISPLAYCONFIG_MODE_INFO]>, flags: u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetDisplayConfig(numpatharrayelements: u32, patharray: *const DISPLAYCONFIG_PATH_INFO, nummodeinfoarrayelements: u32, modeinfoarray: *const DISPLAYCONFIG_MODE_INFO, flags: u32) -> i32; } - SetDisplayConfig(patharray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(patharray)), modeinfoarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(modeinfoarray)), flags) + SetDisplayConfig(patharray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(patharray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), modeinfoarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(modeinfoarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), flags) } #[doc = "*Required features: `\"Win32_Devices_Display\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Devices/Enumeration/Pnp/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/Enumeration/Pnp/mod.rs index 0dab791a4b..943c50739c 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/Enumeration/Pnp/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/Enumeration/Pnp/mod.rs @@ -1244,7 +1244,7 @@ pub struct IUPnPDevices_Vtbl { pub struct IUPnPEventSink(::windows::core::IUnknown); impl IUPnPEventSink { pub unsafe fn OnStateChanged(&self, rgdispidchanges: &[i32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OnStateChanged)(::windows::core::Interface::as_raw(self), rgdispidchanges.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgdispidchanges))).ok() + (::windows::core::Interface::vtable(self).OnStateChanged)(::windows::core::Interface::as_raw(self), rgdispidchanges.len() as _, ::core::mem::transmute(rgdispidchanges.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -2378,7 +2378,7 @@ where #[doc = "*Required features: `\"Win32_Devices_Enumeration_Pnp\"`, `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn SwDeviceCreate<'a, P0, P1>(pszenumeratorname: P0, pszparentdeviceinstance: P1, pcreateinfo: &SW_DEVICE_CREATE_INFO, pproperties: &[super::super::Properties::DEVPROPERTY], pcallback: SW_DEVICE_CREATE_CALLBACK, pcontext: *const ::core::ffi::c_void) -> ::windows::core::Result +pub unsafe fn SwDeviceCreate<'a, P0, P1>(pszenumeratorname: P0, pszparentdeviceinstance: P1, pcreateinfo: &SW_DEVICE_CREATE_INFO, pproperties: ::core::option::Option<&[super::super::Properties::DEVPROPERTY]>, pcallback: SW_DEVICE_CREATE_CALLBACK, pcontext: *const ::core::ffi::c_void) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -2388,7 +2388,7 @@ where fn SwDeviceCreate(pszenumeratorname: ::windows::core::PCWSTR, pszparentdeviceinstance: ::windows::core::PCWSTR, pcreateinfo: *const SW_DEVICE_CREATE_INFO, cpropertycount: u32, pproperties: *const super::super::Properties::DEVPROPERTY, pcallback: *mut ::core::ffi::c_void, pcontext: *const ::core::ffi::c_void, phswdevice: *mut isize) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - SwDeviceCreate(pszenumeratorname.into(), pszparentdeviceinstance.into(), ::core::mem::transmute(pcreateinfo), pproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pproperties)), ::core::mem::transmute(pcallback), ::core::mem::transmute(pcontext), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + SwDeviceCreate(pszenumeratorname.into(), pszparentdeviceinstance.into(), ::core::mem::transmute(pcreateinfo), pproperties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcallback), ::core::mem::transmute(pcontext), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Devices_Enumeration_Pnp\"`*"] #[inline] @@ -2415,12 +2415,12 @@ where extern "system" { fn SwDeviceInterfacePropertySet(hswdevice: HSWDEVICE, pszdeviceinterfaceid: ::windows::core::PCWSTR, cpropertycount: u32, pproperties: *const super::super::Properties::DEVPROPERTY) -> ::windows::core::HRESULT; } - SwDeviceInterfacePropertySet(hswdevice.into(), pszdeviceinterfaceid.into(), pproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pproperties))).ok() + SwDeviceInterfacePropertySet(hswdevice.into(), pszdeviceinterfaceid.into(), pproperties.len() as _, ::core::mem::transmute(pproperties.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Devices_Enumeration_Pnp\"`, `\"Win32_Devices_Properties\"`, `\"Win32_Foundation\"`*"] #[cfg(all(feature = "Win32_Devices_Properties", feature = "Win32_Foundation"))] #[inline] -pub unsafe fn SwDeviceInterfaceRegister<'a, P0, P1, P2>(hswdevice: P0, pinterfaceclassguid: &::windows::core::GUID, pszreferencestring: P1, pproperties: &[super::super::Properties::DEVPROPERTY], fenabled: P2) -> ::windows::core::Result<::windows::core::PWSTR> +pub unsafe fn SwDeviceInterfaceRegister<'a, P0, P1, P2>(hswdevice: P0, pinterfaceclassguid: &::windows::core::GUID, pszreferencestring: P1, pproperties: ::core::option::Option<&[super::super::Properties::DEVPROPERTY]>, fenabled: P2) -> ::windows::core::Result<::windows::core::PWSTR> where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -2431,7 +2431,7 @@ where fn SwDeviceInterfaceRegister(hswdevice: HSWDEVICE, pinterfaceclassguid: *const ::windows::core::GUID, pszreferencestring: ::windows::core::PCWSTR, cpropertycount: u32, pproperties: *const super::super::Properties::DEVPROPERTY, fenabled: super::super::super::Foundation::BOOL, ppszdeviceinterfaceid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - SwDeviceInterfaceRegister(hswdevice.into(), ::core::mem::transmute(pinterfaceclassguid), pszreferencestring.into(), pproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pproperties)), fenabled.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) + SwDeviceInterfaceRegister(hswdevice.into(), ::core::mem::transmute(pinterfaceclassguid), pszreferencestring.into(), pproperties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fenabled.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) } #[doc = "*Required features: `\"Win32_Devices_Enumeration_Pnp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2459,7 +2459,7 @@ where extern "system" { fn SwDevicePropertySet(hswdevice: HSWDEVICE, cpropertycount: u32, pproperties: *const super::super::Properties::DEVPROPERTY) -> ::windows::core::HRESULT; } - SwDevicePropertySet(hswdevice.into(), pproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pproperties))).ok() + SwDevicePropertySet(hswdevice.into(), pproperties.len() as _, ::core::mem::transmute(pproperties.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Devices_Enumeration_Pnp\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/Devices/Fax/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/Fax/mod.rs index 7253d7c99c..d3eec10178 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/Fax/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/Fax/mod.rs @@ -12657,8 +12657,8 @@ impl IStiDevice { pub unsafe fn Diagnostic(&self, pbuffer: &mut STI_DIAG) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Diagnostic)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbuffer)).ok() } - pub unsafe fn Escape(&self, escapefunction: u32, lpindata: *const ::core::ffi::c_void, cbindatasize: u32, poutdata: *mut ::core::ffi::c_void, dwoutdatasize: u32, pdwactualdata: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Escape)(::windows::core::Interface::as_raw(self), escapefunction, ::core::mem::transmute(lpindata), cbindatasize, ::core::mem::transmute(poutdata), dwoutdatasize, ::core::mem::transmute(pdwactualdata)).ok() + pub unsafe fn Escape(&self, escapefunction: u32, lpindata: &[u8], poutdata: &mut [u8], pdwactualdata: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Escape)(::windows::core::Interface::as_raw(self), escapefunction, ::core::mem::transmute(lpindata.as_ptr()), lpindata.len() as _, ::core::mem::transmute(poutdata.as_ptr()), poutdata.len() as _, ::core::mem::transmute(pdwactualdata)).ok() } pub unsafe fn GetLastError(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -12677,8 +12677,8 @@ impl IStiDevice { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] - pub unsafe fn RawWriteData(&self, lpbuffer: *const ::core::ffi::c_void, nnumberofbytes: u32, lpoverlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RawWriteData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpbuffer), nnumberofbytes, ::core::mem::transmute(lpoverlapped)).ok() + pub unsafe fn RawWriteData(&self, lpbuffer: &[u8], lpoverlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).RawWriteData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpoverlapped)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] @@ -12687,8 +12687,8 @@ impl IStiDevice { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] - pub unsafe fn RawWriteCommand(&self, lpbuffer: *const ::core::ffi::c_void, nnumberofbytes: u32, lpoverlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RawWriteCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpbuffer), nnumberofbytes, ::core::mem::transmute(lpoverlapped)).ok() + pub unsafe fn RawWriteCommand(&self, lpbuffer: &[u8], lpoverlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).RawWriteCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpoverlapped)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12819,7 +12819,7 @@ impl IStiDeviceControl { (::windows::core::Interface::vtable(self).GetLastError)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpdwlasterror)).ok() } pub unsafe fn GetMyDevicePortName(&self, lpszdevicepath: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetMyDevicePortName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszdevicepath)), lpszdevicepath.len() as _).ok() + (::windows::core::Interface::vtable(self).GetMyDevicePortName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpszdevicepath.as_ptr()), lpszdevicepath.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12930,8 +12930,8 @@ impl IStiUSD { pub unsafe fn Diagnostic(&self, pbuffer: &mut STI_DIAG) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Diagnostic)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbuffer)).ok() } - pub unsafe fn Escape(&self, escapefunction: u32, lpindata: *const ::core::ffi::c_void, cbindatasize: u32, poutdata: *mut ::core::ffi::c_void, cboutdatasize: u32, pdwactualdata: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Escape)(::windows::core::Interface::as_raw(self), escapefunction, ::core::mem::transmute(lpindata), cbindatasize, ::core::mem::transmute(poutdata), cboutdatasize, ::core::mem::transmute(pdwactualdata)).ok() + pub unsafe fn Escape(&self, escapefunction: u32, lpindata: &[u8], poutdata: &mut [u8], pdwactualdata: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Escape)(::windows::core::Interface::as_raw(self), escapefunction, ::core::mem::transmute(lpindata.as_ptr()), lpindata.len() as _, ::core::mem::transmute(poutdata.as_ptr()), poutdata.len() as _, ::core::mem::transmute(pdwactualdata)).ok() } pub unsafe fn GetLastError(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -12950,8 +12950,8 @@ impl IStiUSD { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] - pub unsafe fn RawWriteData(&self, lpbuffer: *const ::core::ffi::c_void, nnumberofbytes: u32, lpoverlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RawWriteData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpbuffer), nnumberofbytes, ::core::mem::transmute(lpoverlapped)).ok() + pub unsafe fn RawWriteData(&self, lpbuffer: &[u8], lpoverlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).RawWriteData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpoverlapped)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] @@ -12960,8 +12960,8 @@ impl IStiUSD { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] - pub unsafe fn RawWriteCommand(&self, lpbuffer: *const ::core::ffi::c_void, nnumberofbytes: u32, lpoverlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RawWriteCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpbuffer), nnumberofbytes, ::core::mem::transmute(lpoverlapped)).ok() + pub unsafe fn RawWriteCommand(&self, lpbuffer: &[u8], lpoverlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).RawWriteCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpoverlapped)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13082,22 +13082,22 @@ impl IStillImageW { { (::windows::core::Interface::vtable(self).CreateDevice)(::windows::core::Interface::as_raw(self), pwszdevicename.into(), dwmode, ::core::mem::transmute(pdevice), punkouter.into().abi()).ok() } - pub unsafe fn GetDeviceValue<'a, P0, P1>(&self, pwszdevicename: P0, pvaluename: P1, ptype: &mut u32, pdata: &mut u8, cbdata: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetDeviceValue<'a, P0, P1>(&self, pwszdevicename: P0, pvaluename: P1, ptype: &mut u32, pdata: *mut u8, cbdata: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { (::windows::core::Interface::vtable(self).GetDeviceValue)(::windows::core::Interface::as_raw(self), pwszdevicename.into(), pvaluename.into(), ::core::mem::transmute(ptype), ::core::mem::transmute(pdata), ::core::mem::transmute(cbdata)).ok() } - pub unsafe fn SetDeviceValue<'a, P0, P1>(&self, pwszdevicename: P0, pvaluename: P1, r#type: u32, pdata: &u8, cbdata: u32) -> ::windows::core::Result<()> + pub unsafe fn SetDeviceValue<'a, P0, P1>(&self, pwszdevicename: P0, pvaluename: P1, r#type: u32, pdata: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetDeviceValue)(::windows::core::Interface::as_raw(self), pwszdevicename.into(), pvaluename.into(), r#type, ::core::mem::transmute(pdata), cbdata).ok() + (::windows::core::Interface::vtable(self).SetDeviceValue)(::windows::core::Interface::as_raw(self), pwszdevicename.into(), pvaluename.into(), r#type, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _).ok() } pub unsafe fn GetSTILaunchInformation(&self, pwszdevicename: &mut [u16; 128], pdweventcode: ::core::option::Option<&mut u32>, pwszeventname: &mut [u16; 128]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSTILaunchInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszdevicename)), ::core::mem::transmute(pdweventcode), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszeventname))).ok() + (::windows::core::Interface::vtable(self).GetSTILaunchInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszdevicename.as_ptr()), ::core::mem::transmute(pdweventcode), ::core::mem::transmute(pwszeventname.as_ptr())).ok() } pub unsafe fn RegisterLaunchApplication<'a, P0, P1>(&self, pwszappname: P0, pwszcommandline: P1) -> ::windows::core::Result<()> where diff --git a/crates/libs/windows/src/Windows/Win32/Devices/Geolocation/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/Geolocation/mod.rs index 42d99495b2..0255039989 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/Geolocation/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/Geolocation/mod.rs @@ -3593,7 +3593,7 @@ impl ILocation { P0: ::std::convert::Into, P1: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).RequestPermissions)(::windows::core::Interface::as_raw(self), hparent.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(preporttypes)), preporttypes.len() as _, fmodal.into()).ok() + (::windows::core::Interface::vtable(self).RequestPermissions)(::windows::core::Interface::as_raw(self), hparent.into(), ::core::mem::transmute(preporttypes.as_ptr()), preporttypes.len() as _, fmodal.into()).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/Devices/HumanInterfaceDevice/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/HumanInterfaceDevice/mod.rs index 661bfa3ce3..fb14ea2b72 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/HumanInterfaceDevice/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/HumanInterfaceDevice/mod.rs @@ -8197,7 +8197,7 @@ where #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidD_GetConfiguration<'a, P0>(hiddeviceobject: P0, configuration: &mut HIDD_CONFIGURATION, configurationlength: u32) -> super::super::Foundation::BOOLEAN +pub unsafe fn HidD_GetConfiguration<'a, P0>(hiddeviceobject: P0, configuration: &mut [u8]) -> super::super::Foundation::BOOLEAN where P0: ::std::convert::Into, { @@ -8205,12 +8205,12 @@ where extern "system" { fn HidD_GetConfiguration(hiddeviceobject: super::super::Foundation::HANDLE, configuration: *mut HIDD_CONFIGURATION, configurationlength: u32) -> super::super::Foundation::BOOLEAN; } - HidD_GetConfiguration(hiddeviceobject.into(), ::core::mem::transmute(configuration), configurationlength) + HidD_GetConfiguration(hiddeviceobject.into(), ::core::mem::transmute(configuration.as_ptr()), configuration.len() as _) } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidD_GetFeature<'a, P0>(hiddeviceobject: P0, reportbuffer: *mut ::core::ffi::c_void, reportbufferlength: u32) -> super::super::Foundation::BOOLEAN +pub unsafe fn HidD_GetFeature<'a, P0>(hiddeviceobject: P0, reportbuffer: &mut [u8]) -> super::super::Foundation::BOOLEAN where P0: ::std::convert::Into, { @@ -8218,7 +8218,7 @@ where extern "system" { fn HidD_GetFeature(hiddeviceobject: super::super::Foundation::HANDLE, reportbuffer: *mut ::core::ffi::c_void, reportbufferlength: u32) -> super::super::Foundation::BOOLEAN; } - HidD_GetFeature(hiddeviceobject.into(), ::core::mem::transmute(reportbuffer), reportbufferlength) + HidD_GetFeature(hiddeviceobject.into(), ::core::mem::transmute(reportbuffer.as_ptr()), reportbuffer.len() as _) } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`*"] #[inline] @@ -8232,7 +8232,7 @@ pub unsafe fn HidD_GetHidGuid(hidguid: &mut ::windows::core::GUID) { #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidD_GetIndexedString<'a, P0>(hiddeviceobject: P0, stringindex: u32, buffer: *mut ::core::ffi::c_void, bufferlength: u32) -> super::super::Foundation::BOOLEAN +pub unsafe fn HidD_GetIndexedString<'a, P0>(hiddeviceobject: P0, stringindex: u32, buffer: &mut [u8]) -> super::super::Foundation::BOOLEAN where P0: ::std::convert::Into, { @@ -8240,12 +8240,12 @@ where extern "system" { fn HidD_GetIndexedString(hiddeviceobject: super::super::Foundation::HANDLE, stringindex: u32, buffer: *mut ::core::ffi::c_void, bufferlength: u32) -> super::super::Foundation::BOOLEAN; } - HidD_GetIndexedString(hiddeviceobject.into(), stringindex, ::core::mem::transmute(buffer), bufferlength) + HidD_GetIndexedString(hiddeviceobject.into(), stringindex, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _) } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidD_GetInputReport<'a, P0>(hiddeviceobject: P0, reportbuffer: *mut ::core::ffi::c_void, reportbufferlength: u32) -> super::super::Foundation::BOOLEAN +pub unsafe fn HidD_GetInputReport<'a, P0>(hiddeviceobject: P0, reportbuffer: &mut [u8]) -> super::super::Foundation::BOOLEAN where P0: ::std::convert::Into, { @@ -8253,12 +8253,12 @@ where extern "system" { fn HidD_GetInputReport(hiddeviceobject: super::super::Foundation::HANDLE, reportbuffer: *mut ::core::ffi::c_void, reportbufferlength: u32) -> super::super::Foundation::BOOLEAN; } - HidD_GetInputReport(hiddeviceobject.into(), ::core::mem::transmute(reportbuffer), reportbufferlength) + HidD_GetInputReport(hiddeviceobject.into(), ::core::mem::transmute(reportbuffer.as_ptr()), reportbuffer.len() as _) } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidD_GetManufacturerString<'a, P0>(hiddeviceobject: P0, buffer: *mut ::core::ffi::c_void, bufferlength: u32) -> super::super::Foundation::BOOLEAN +pub unsafe fn HidD_GetManufacturerString<'a, P0>(hiddeviceobject: P0, buffer: &mut [u8]) -> super::super::Foundation::BOOLEAN where P0: ::std::convert::Into, { @@ -8266,12 +8266,12 @@ where extern "system" { fn HidD_GetManufacturerString(hiddeviceobject: super::super::Foundation::HANDLE, buffer: *mut ::core::ffi::c_void, bufferlength: u32) -> super::super::Foundation::BOOLEAN; } - HidD_GetManufacturerString(hiddeviceobject.into(), ::core::mem::transmute(buffer), bufferlength) + HidD_GetManufacturerString(hiddeviceobject.into(), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _) } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidD_GetMsGenreDescriptor<'a, P0>(hiddeviceobject: P0, buffer: *mut ::core::ffi::c_void, bufferlength: u32) -> super::super::Foundation::BOOLEAN +pub unsafe fn HidD_GetMsGenreDescriptor<'a, P0>(hiddeviceobject: P0, buffer: &mut [u8]) -> super::super::Foundation::BOOLEAN where P0: ::std::convert::Into, { @@ -8279,7 +8279,7 @@ where extern "system" { fn HidD_GetMsGenreDescriptor(hiddeviceobject: super::super::Foundation::HANDLE, buffer: *mut ::core::ffi::c_void, bufferlength: u32) -> super::super::Foundation::BOOLEAN; } - HidD_GetMsGenreDescriptor(hiddeviceobject.into(), ::core::mem::transmute(buffer), bufferlength) + HidD_GetMsGenreDescriptor(hiddeviceobject.into(), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _) } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8297,7 +8297,7 @@ where #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidD_GetPhysicalDescriptor<'a, P0>(hiddeviceobject: P0, buffer: *mut ::core::ffi::c_void, bufferlength: u32) -> super::super::Foundation::BOOLEAN +pub unsafe fn HidD_GetPhysicalDescriptor<'a, P0>(hiddeviceobject: P0, buffer: &mut [u8]) -> super::super::Foundation::BOOLEAN where P0: ::std::convert::Into, { @@ -8305,7 +8305,7 @@ where extern "system" { fn HidD_GetPhysicalDescriptor(hiddeviceobject: super::super::Foundation::HANDLE, buffer: *mut ::core::ffi::c_void, bufferlength: u32) -> super::super::Foundation::BOOLEAN; } - HidD_GetPhysicalDescriptor(hiddeviceobject.into(), ::core::mem::transmute(buffer), bufferlength) + HidD_GetPhysicalDescriptor(hiddeviceobject.into(), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _) } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8323,7 +8323,7 @@ where #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidD_GetProductString<'a, P0>(hiddeviceobject: P0, buffer: *mut ::core::ffi::c_void, bufferlength: u32) -> super::super::Foundation::BOOLEAN +pub unsafe fn HidD_GetProductString<'a, P0>(hiddeviceobject: P0, buffer: &mut [u8]) -> super::super::Foundation::BOOLEAN where P0: ::std::convert::Into, { @@ -8331,12 +8331,12 @@ where extern "system" { fn HidD_GetProductString(hiddeviceobject: super::super::Foundation::HANDLE, buffer: *mut ::core::ffi::c_void, bufferlength: u32) -> super::super::Foundation::BOOLEAN; } - HidD_GetProductString(hiddeviceobject.into(), ::core::mem::transmute(buffer), bufferlength) + HidD_GetProductString(hiddeviceobject.into(), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _) } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidD_GetSerialNumberString<'a, P0>(hiddeviceobject: P0, buffer: *mut ::core::ffi::c_void, bufferlength: u32) -> super::super::Foundation::BOOLEAN +pub unsafe fn HidD_GetSerialNumberString<'a, P0>(hiddeviceobject: P0, buffer: &mut [u8]) -> super::super::Foundation::BOOLEAN where P0: ::std::convert::Into, { @@ -8344,12 +8344,12 @@ where extern "system" { fn HidD_GetSerialNumberString(hiddeviceobject: super::super::Foundation::HANDLE, buffer: *mut ::core::ffi::c_void, bufferlength: u32) -> super::super::Foundation::BOOLEAN; } - HidD_GetSerialNumberString(hiddeviceobject.into(), ::core::mem::transmute(buffer), bufferlength) + HidD_GetSerialNumberString(hiddeviceobject.into(), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _) } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidD_SetConfiguration<'a, P0>(hiddeviceobject: P0, configuration: &HIDD_CONFIGURATION, configurationlength: u32) -> super::super::Foundation::BOOLEAN +pub unsafe fn HidD_SetConfiguration<'a, P0>(hiddeviceobject: P0, configuration: &[u8]) -> super::super::Foundation::BOOLEAN where P0: ::std::convert::Into, { @@ -8357,12 +8357,12 @@ where extern "system" { fn HidD_SetConfiguration(hiddeviceobject: super::super::Foundation::HANDLE, configuration: *const HIDD_CONFIGURATION, configurationlength: u32) -> super::super::Foundation::BOOLEAN; } - HidD_SetConfiguration(hiddeviceobject.into(), ::core::mem::transmute(configuration), configurationlength) + HidD_SetConfiguration(hiddeviceobject.into(), ::core::mem::transmute(configuration.as_ptr()), configuration.len() as _) } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidD_SetFeature<'a, P0>(hiddeviceobject: P0, reportbuffer: *const ::core::ffi::c_void, reportbufferlength: u32) -> super::super::Foundation::BOOLEAN +pub unsafe fn HidD_SetFeature<'a, P0>(hiddeviceobject: P0, reportbuffer: &[u8]) -> super::super::Foundation::BOOLEAN where P0: ::std::convert::Into, { @@ -8370,7 +8370,7 @@ where extern "system" { fn HidD_SetFeature(hiddeviceobject: super::super::Foundation::HANDLE, reportbuffer: *const ::core::ffi::c_void, reportbufferlength: u32) -> super::super::Foundation::BOOLEAN; } - HidD_SetFeature(hiddeviceobject.into(), ::core::mem::transmute(reportbuffer), reportbufferlength) + HidD_SetFeature(hiddeviceobject.into(), ::core::mem::transmute(reportbuffer.as_ptr()), reportbuffer.len() as _) } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8388,7 +8388,7 @@ where #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidD_SetOutputReport<'a, P0>(hiddeviceobject: P0, reportbuffer: *const ::core::ffi::c_void, reportbufferlength: u32) -> super::super::Foundation::BOOLEAN +pub unsafe fn HidD_SetOutputReport<'a, P0>(hiddeviceobject: P0, reportbuffer: &[u8]) -> super::super::Foundation::BOOLEAN where P0: ::std::convert::Into, { @@ -8396,25 +8396,22 @@ where extern "system" { fn HidD_SetOutputReport(hiddeviceobject: super::super::Foundation::HANDLE, reportbuffer: *const ::core::ffi::c_void, reportbufferlength: u32) -> super::super::Foundation::BOOLEAN; } - HidD_SetOutputReport(hiddeviceobject.into(), ::core::mem::transmute(reportbuffer), reportbufferlength) + HidD_SetOutputReport(hiddeviceobject.into(), ::core::mem::transmute(reportbuffer.as_ptr()), reportbuffer.len() as _) } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_GetButtonArray<'a, P0>(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, buttondata: &mut HIDP_BUTTON_ARRAY_DATA, buttondatalength: &mut u16, preparseddata: isize, report: P0, reportlength: u32) -> ::windows::core::Result<()> -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn HidP_GetButtonArray(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, buttondata: *mut HIDP_BUTTON_ARRAY_DATA, buttondatalength: &mut u16, preparseddata: isize, report: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_GetButtonArray(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, buttondata: *mut HIDP_BUTTON_ARRAY_DATA, buttondatalength: *mut u16, preparseddata: isize, report: ::windows::core::PCSTR, reportlength: u32) -> super::super::Foundation::NTSTATUS; } - HidP_GetButtonArray(reporttype, usagepage, linkcollection, usage, ::core::mem::transmute(buttondata), ::core::mem::transmute(buttondatalength), preparseddata, report.into(), reportlength).ok() + HidP_GetButtonArray(reporttype, usagepage, linkcollection, usage, ::core::mem::transmute(buttondata), ::core::mem::transmute(buttondatalength), preparseddata, ::core::mem::transmute(report.as_ptr()), report.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_GetButtonCaps(reporttype: HIDP_REPORT_TYPE, buttoncaps: &mut HIDP_BUTTON_CAPS, buttoncapslength: &mut u16, preparseddata: isize) -> ::windows::core::Result<()> { +pub unsafe fn HidP_GetButtonCaps(reporttype: HIDP_REPORT_TYPE, buttoncaps: *mut HIDP_BUTTON_CAPS, buttoncapslength: &mut u16, preparseddata: isize) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_GetButtonCaps(reporttype: HIDP_REPORT_TYPE, buttoncaps: *mut HIDP_BUTTON_CAPS, buttoncapslength: *mut u16, preparseddata: isize) -> super::super::Foundation::NTSTATUS; @@ -8434,17 +8431,17 @@ pub unsafe fn HidP_GetCaps(preparseddata: isize, capabilities: &mut HIDP_CAPS) - #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_GetData(reporttype: HIDP_REPORT_TYPE, datalist: &mut HIDP_DATA, datalength: &mut u32, preparseddata: isize, report: ::windows::core::PSTR, reportlength: u32) -> ::windows::core::Result<()> { +pub unsafe fn HidP_GetData(reporttype: HIDP_REPORT_TYPE, datalist: *mut HIDP_DATA, datalength: &mut u32, preparseddata: isize, report: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_GetData(reporttype: HIDP_REPORT_TYPE, datalist: *mut HIDP_DATA, datalength: *mut u32, preparseddata: isize, report: ::windows::core::PSTR, reportlength: u32) -> super::super::Foundation::NTSTATUS; } - HidP_GetData(reporttype, ::core::mem::transmute(datalist), ::core::mem::transmute(datalength), preparseddata, ::core::mem::transmute(report), reportlength).ok() + HidP_GetData(reporttype, ::core::mem::transmute(datalist), ::core::mem::transmute(datalength), preparseddata, ::core::mem::transmute(report.as_ptr()), report.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_GetExtendedAttributes(reporttype: HIDP_REPORT_TYPE, dataindex: u16, preparseddata: isize, attributes: &mut HIDP_EXTENDED_ATTRIBUTES, lengthattributes: &mut u32) -> ::windows::core::Result<()> { +pub unsafe fn HidP_GetExtendedAttributes(reporttype: HIDP_REPORT_TYPE, dataindex: u16, preparseddata: isize, attributes: *mut HIDP_EXTENDED_ATTRIBUTES, lengthattributes: &mut u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_GetExtendedAttributes(reporttype: HIDP_REPORT_TYPE, dataindex: u16, preparseddata: isize, attributes: *mut HIDP_EXTENDED_ATTRIBUTES, lengthattributes: *mut u32) -> super::super::Foundation::NTSTATUS; @@ -8454,7 +8451,7 @@ pub unsafe fn HidP_GetExtendedAttributes(reporttype: HIDP_REPORT_TYPE, dataindex #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_GetLinkCollectionNodes(linkcollectionnodes: &mut HIDP_LINK_COLLECTION_NODE, linkcollectionnodeslength: &mut u32, preparseddata: isize) -> ::windows::core::Result<()> { +pub unsafe fn HidP_GetLinkCollectionNodes(linkcollectionnodes: *mut HIDP_LINK_COLLECTION_NODE, linkcollectionnodeslength: &mut u32, preparseddata: isize) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_GetLinkCollectionNodes(linkcollectionnodes: *mut HIDP_LINK_COLLECTION_NODE, linkcollectionnodeslength: *mut u32, preparseddata: isize) -> super::super::Foundation::NTSTATUS; @@ -8464,20 +8461,17 @@ pub unsafe fn HidP_GetLinkCollectionNodes(linkcollectionnodes: &mut HIDP_LINK_CO #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_GetScaledUsageValue<'a, P0>(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: &mut i32, preparseddata: isize, report: P0, reportlength: u32) -> ::windows::core::Result<()> -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn HidP_GetScaledUsageValue(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: &mut i32, preparseddata: isize, report: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_GetScaledUsageValue(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: *mut i32, preparseddata: isize, report: ::windows::core::PCSTR, reportlength: u32) -> super::super::Foundation::NTSTATUS; } - HidP_GetScaledUsageValue(reporttype, usagepage, linkcollection, usage, ::core::mem::transmute(usagevalue), preparseddata, report.into(), reportlength).ok() + HidP_GetScaledUsageValue(reporttype, usagepage, linkcollection, usage, ::core::mem::transmute(usagevalue), preparseddata, ::core::mem::transmute(report.as_ptr()), report.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_GetSpecificButtonCaps(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, buttoncaps: &mut HIDP_BUTTON_CAPS, buttoncapslength: &mut u16, preparseddata: isize) -> ::windows::core::Result<()> { +pub unsafe fn HidP_GetSpecificButtonCaps(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, buttoncaps: *mut HIDP_BUTTON_CAPS, buttoncapslength: &mut u16, preparseddata: isize) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_GetSpecificButtonCaps(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, buttoncaps: *mut HIDP_BUTTON_CAPS, buttoncapslength: *mut u16, preparseddata: isize) -> super::super::Foundation::NTSTATUS; @@ -8487,7 +8481,7 @@ pub unsafe fn HidP_GetSpecificButtonCaps(reporttype: HIDP_REPORT_TYPE, usagepage #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_GetSpecificValueCaps(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, valuecaps: &mut HIDP_VALUE_CAPS, valuecapslength: &mut u16, preparseddata: isize) -> ::windows::core::Result<()> { +pub unsafe fn HidP_GetSpecificValueCaps(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, valuecaps: *mut HIDP_VALUE_CAPS, valuecapslength: &mut u16, preparseddata: isize) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_GetSpecificValueCaps(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, valuecaps: *mut HIDP_VALUE_CAPS, valuecapslength: *mut u16, preparseddata: isize) -> super::super::Foundation::NTSTATUS; @@ -8497,56 +8491,47 @@ pub unsafe fn HidP_GetSpecificValueCaps(reporttype: HIDP_REPORT_TYPE, usagepage: #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_GetUsageValue<'a, P0>(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: &mut u32, preparseddata: isize, report: P0, reportlength: u32) -> ::windows::core::Result<()> -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn HidP_GetUsageValue(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: &mut u32, preparseddata: isize, report: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_GetUsageValue(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: *mut u32, preparseddata: isize, report: ::windows::core::PCSTR, reportlength: u32) -> super::super::Foundation::NTSTATUS; } - HidP_GetUsageValue(reporttype, usagepage, linkcollection, usage, ::core::mem::transmute(usagevalue), preparseddata, report.into(), reportlength).ok() + HidP_GetUsageValue(reporttype, usagepage, linkcollection, usage, ::core::mem::transmute(usagevalue), preparseddata, ::core::mem::transmute(report.as_ptr()), report.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_GetUsageValueArray<'a, P0>(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: ::windows::core::PSTR, usagevaluebytelength: u16, preparseddata: isize, report: P0, reportlength: u32) -> ::windows::core::Result<()> -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn HidP_GetUsageValueArray(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: &mut [u8], preparseddata: isize, report: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_GetUsageValueArray(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: ::windows::core::PSTR, usagevaluebytelength: u16, preparseddata: isize, report: ::windows::core::PCSTR, reportlength: u32) -> super::super::Foundation::NTSTATUS; } - HidP_GetUsageValueArray(reporttype, usagepage, linkcollection, usage, ::core::mem::transmute(usagevalue), usagevaluebytelength, preparseddata, report.into(), reportlength).ok() + HidP_GetUsageValueArray(reporttype, usagepage, linkcollection, usage, ::core::mem::transmute(usagevalue.as_ptr()), usagevalue.len() as _, preparseddata, ::core::mem::transmute(report.as_ptr()), report.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_GetUsages(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usagelist: &mut u16, usagelength: &mut u32, preparseddata: isize, report: ::windows::core::PSTR, reportlength: u32) -> ::windows::core::Result<()> { +pub unsafe fn HidP_GetUsages(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usagelist: *mut u16, usagelength: &mut u32, preparseddata: isize, report: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_GetUsages(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usagelist: *mut u16, usagelength: *mut u32, preparseddata: isize, report: ::windows::core::PSTR, reportlength: u32) -> super::super::Foundation::NTSTATUS; } - HidP_GetUsages(reporttype, usagepage, linkcollection, ::core::mem::transmute(usagelist), ::core::mem::transmute(usagelength), preparseddata, ::core::mem::transmute(report), reportlength).ok() + HidP_GetUsages(reporttype, usagepage, linkcollection, ::core::mem::transmute(usagelist), ::core::mem::transmute(usagelength), preparseddata, ::core::mem::transmute(report.as_ptr()), report.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_GetUsagesEx<'a, P0>(reporttype: HIDP_REPORT_TYPE, linkcollection: u16, buttonlist: &mut USAGE_AND_PAGE, usagelength: &mut u32, preparseddata: isize, report: P0, reportlength: u32) -> ::windows::core::Result<()> -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn HidP_GetUsagesEx(reporttype: HIDP_REPORT_TYPE, linkcollection: u16, buttonlist: *mut USAGE_AND_PAGE, usagelength: &mut u32, preparseddata: isize, report: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_GetUsagesEx(reporttype: HIDP_REPORT_TYPE, linkcollection: u16, buttonlist: *mut USAGE_AND_PAGE, usagelength: *mut u32, preparseddata: isize, report: ::windows::core::PCSTR, reportlength: u32) -> super::super::Foundation::NTSTATUS; } - HidP_GetUsagesEx(reporttype, linkcollection, ::core::mem::transmute(buttonlist), ::core::mem::transmute(usagelength), preparseddata, report.into(), reportlength).ok() + HidP_GetUsagesEx(reporttype, linkcollection, ::core::mem::transmute(buttonlist), ::core::mem::transmute(usagelength), preparseddata, ::core::mem::transmute(report.as_ptr()), report.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_GetValueCaps(reporttype: HIDP_REPORT_TYPE, valuecaps: &mut HIDP_VALUE_CAPS, valuecapslength: &mut u16, preparseddata: isize) -> ::windows::core::Result<()> { +pub unsafe fn HidP_GetValueCaps(reporttype: HIDP_REPORT_TYPE, valuecaps: *mut HIDP_VALUE_CAPS, valuecapslength: &mut u16, preparseddata: isize) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_GetValueCaps(reporttype: HIDP_REPORT_TYPE, valuecaps: *mut HIDP_VALUE_CAPS, valuecapslength: *mut u16, preparseddata: isize) -> super::super::Foundation::NTSTATUS; @@ -8556,12 +8541,12 @@ pub unsafe fn HidP_GetValueCaps(reporttype: HIDP_REPORT_TYPE, valuecaps: &mut HI #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_InitializeReportForID(reporttype: HIDP_REPORT_TYPE, reportid: u8, preparseddata: isize, report: ::windows::core::PSTR, reportlength: u32) -> ::windows::core::Result<()> { +pub unsafe fn HidP_InitializeReportForID(reporttype: HIDP_REPORT_TYPE, reportid: u8, preparseddata: isize, report: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_InitializeReportForID(reporttype: HIDP_REPORT_TYPE, reportid: u8, preparseddata: isize, report: ::windows::core::PSTR, reportlength: u32) -> super::super::Foundation::NTSTATUS; } - HidP_InitializeReportForID(reporttype, reportid, preparseddata, ::core::mem::transmute(report), reportlength).ok() + HidP_InitializeReportForID(reporttype, reportid, preparseddata, ::core::mem::transmute(report.as_ptr()), report.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`*"] #[inline] @@ -8584,71 +8569,62 @@ pub unsafe fn HidP_MaxUsageListLength(reporttype: HIDP_REPORT_TYPE, usagepage: u #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_SetButtonArray(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, buttondata: &[HIDP_BUTTON_ARRAY_DATA], preparseddata: isize, report: ::windows::core::PSTR, reportlength: u32) -> ::windows::core::Result<()> { +pub unsafe fn HidP_SetButtonArray(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, buttondata: &[HIDP_BUTTON_ARRAY_DATA], preparseddata: isize, report: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_SetButtonArray(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, buttondata: *const HIDP_BUTTON_ARRAY_DATA, buttondatalength: u16, preparseddata: isize, report: ::windows::core::PSTR, reportlength: u32) -> super::super::Foundation::NTSTATUS; } - HidP_SetButtonArray(reporttype, usagepage, linkcollection, usage, ::core::mem::transmute(::windows::core::as_ptr_or_null(buttondata)), buttondata.len() as _, preparseddata, ::core::mem::transmute(report), reportlength).ok() + HidP_SetButtonArray(reporttype, usagepage, linkcollection, usage, ::core::mem::transmute(buttondata.as_ptr()), buttondata.len() as _, preparseddata, ::core::mem::transmute(report.as_ptr()), report.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_SetData<'a, P0>(reporttype: HIDP_REPORT_TYPE, datalist: &mut HIDP_DATA, datalength: &mut u32, preparseddata: isize, report: P0, reportlength: u32) -> ::windows::core::Result<()> -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn HidP_SetData(reporttype: HIDP_REPORT_TYPE, datalist: *mut HIDP_DATA, datalength: &mut u32, preparseddata: isize, report: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_SetData(reporttype: HIDP_REPORT_TYPE, datalist: *mut HIDP_DATA, datalength: *mut u32, preparseddata: isize, report: ::windows::core::PCSTR, reportlength: u32) -> super::super::Foundation::NTSTATUS; } - HidP_SetData(reporttype, ::core::mem::transmute(datalist), ::core::mem::transmute(datalength), preparseddata, report.into(), reportlength).ok() + HidP_SetData(reporttype, ::core::mem::transmute(datalist), ::core::mem::transmute(datalength), preparseddata, ::core::mem::transmute(report.as_ptr()), report.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_SetScaledUsageValue(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: i32, preparseddata: isize, report: ::windows::core::PSTR, reportlength: u32) -> ::windows::core::Result<()> { +pub unsafe fn HidP_SetScaledUsageValue(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: i32, preparseddata: isize, report: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_SetScaledUsageValue(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: i32, preparseddata: isize, report: ::windows::core::PSTR, reportlength: u32) -> super::super::Foundation::NTSTATUS; } - HidP_SetScaledUsageValue(reporttype, usagepage, linkcollection, usage, usagevalue, preparseddata, ::core::mem::transmute(report), reportlength).ok() + HidP_SetScaledUsageValue(reporttype, usagepage, linkcollection, usage, usagevalue, preparseddata, ::core::mem::transmute(report.as_ptr()), report.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_SetUsageValue(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: u32, preparseddata: isize, report: ::windows::core::PSTR, reportlength: u32) -> ::windows::core::Result<()> { +pub unsafe fn HidP_SetUsageValue(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: u32, preparseddata: isize, report: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_SetUsageValue(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: u32, preparseddata: isize, report: ::windows::core::PSTR, reportlength: u32) -> super::super::Foundation::NTSTATUS; } - HidP_SetUsageValue(reporttype, usagepage, linkcollection, usage, usagevalue, preparseddata, ::core::mem::transmute(report), reportlength).ok() + HidP_SetUsageValue(reporttype, usagepage, linkcollection, usage, usagevalue, preparseddata, ::core::mem::transmute(report.as_ptr()), report.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_SetUsageValueArray<'a, P0>(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: P0, usagevaluebytelength: u16, preparseddata: isize, report: ::windows::core::PSTR, reportlength: u32) -> ::windows::core::Result<()> -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn HidP_SetUsageValueArray(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: &[u8], preparseddata: isize, report: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_SetUsageValueArray(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usage: u16, usagevalue: ::windows::core::PCSTR, usagevaluebytelength: u16, preparseddata: isize, report: ::windows::core::PSTR, reportlength: u32) -> super::super::Foundation::NTSTATUS; } - HidP_SetUsageValueArray(reporttype, usagepage, linkcollection, usage, usagevalue.into(), usagevaluebytelength, preparseddata, ::core::mem::transmute(report), reportlength).ok() + HidP_SetUsageValueArray(reporttype, usagepage, linkcollection, usage, ::core::mem::transmute(usagevalue.as_ptr()), usagevalue.len() as _, preparseddata, ::core::mem::transmute(report.as_ptr()), report.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_SetUsages<'a, P0>(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usagelist: &mut u16, usagelength: &mut u32, preparseddata: isize, report: P0, reportlength: u32) -> ::windows::core::Result<()> -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn HidP_SetUsages(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usagelist: *mut u16, usagelength: &mut u32, preparseddata: isize, report: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_SetUsages(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usagelist: *mut u16, usagelength: *mut u32, preparseddata: isize, report: ::windows::core::PCSTR, reportlength: u32) -> super::super::Foundation::NTSTATUS; } - HidP_SetUsages(reporttype, usagepage, linkcollection, ::core::mem::transmute(usagelist), ::core::mem::transmute(usagelength), preparseddata, report.into(), reportlength).ok() + HidP_SetUsages(reporttype, usagepage, linkcollection, ::core::mem::transmute(usagelist), ::core::mem::transmute(usagelength), preparseddata, ::core::mem::transmute(report.as_ptr()), report.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8658,25 +8634,22 @@ pub unsafe fn HidP_TranslateUsagesToI8042ScanCodes(changedusagelist: &[u16], key extern "system" { fn HidP_TranslateUsagesToI8042ScanCodes(changedusagelist: *const u16, usagelistlength: u32, keyaction: HIDP_KEYBOARD_DIRECTION, modifierstate: *mut HIDP_KEYBOARD_MODIFIER_STATE, insertcodesprocedure: *mut ::core::ffi::c_void, insertcodescontext: *const ::core::ffi::c_void) -> super::super::Foundation::NTSTATUS; } - HidP_TranslateUsagesToI8042ScanCodes(::core::mem::transmute(::windows::core::as_ptr_or_null(changedusagelist)), changedusagelist.len() as _, keyaction, ::core::mem::transmute(modifierstate), ::core::mem::transmute(insertcodesprocedure), ::core::mem::transmute(insertcodescontext)).ok() + HidP_TranslateUsagesToI8042ScanCodes(::core::mem::transmute(changedusagelist.as_ptr()), changedusagelist.len() as _, keyaction, ::core::mem::transmute(modifierstate), ::core::mem::transmute(insertcodesprocedure), ::core::mem::transmute(insertcodescontext)).ok() } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_UnsetUsages<'a, P0>(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usagelist: &mut u16, usagelength: &mut u32, preparseddata: isize, report: P0, reportlength: u32) -> ::windows::core::Result<()> -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn HidP_UnsetUsages(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usagelist: *mut u16, usagelength: &mut u32, preparseddata: isize, report: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_UnsetUsages(reporttype: HIDP_REPORT_TYPE, usagepage: u16, linkcollection: u16, usagelist: *mut u16, usagelength: *mut u32, preparseddata: isize, report: ::windows::core::PCSTR, reportlength: u32) -> super::super::Foundation::NTSTATUS; } - HidP_UnsetUsages(reporttype, usagepage, linkcollection, ::core::mem::transmute(usagelist), ::core::mem::transmute(usagelength), preparseddata, report.into(), reportlength).ok() + HidP_UnsetUsages(reporttype, usagepage, linkcollection, ::core::mem::transmute(usagelist), ::core::mem::transmute(usagelength), preparseddata, ::core::mem::transmute(report.as_ptr()), report.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_HumanInterfaceDevice\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HidP_UsageListDifference(previoususagelist: &u16, currentusagelist: &u16, breakusagelist: &mut u16, makeusagelist: &mut u16, usagelistlength: u32) -> ::windows::core::Result<()> { +pub unsafe fn HidP_UsageListDifference(previoususagelist: *const u16, currentusagelist: *const u16, breakusagelist: *mut u16, makeusagelist: *mut u16, usagelistlength: u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HidP_UsageListDifference(previoususagelist: *const u16, currentusagelist: *const u16, breakusagelist: *mut u16, makeusagelist: *mut u16, usagelistlength: u32) -> super::super::Foundation::NTSTATUS; diff --git a/crates/libs/windows/src/Windows/Win32/Devices/ImageAcquisition/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/ImageAcquisition/mod.rs index 05f1878128..e8474c3a72 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/ImageAcquisition/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/ImageAcquisition/mod.rs @@ -1634,7 +1634,7 @@ impl IWiaItem { (::windows::core::Interface::vtable(self).DumpTreeItemData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Diagnostic(&self, pbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Diagnostic)(::windows::core::Interface::as_raw(self), pbuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuffer))).ok() + (::windows::core::Interface::vtable(self).Diagnostic)(::windows::core::Interface::as_raw(self), pbuffer.len() as _, ::core::mem::transmute(pbuffer.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1797,7 +1797,7 @@ impl IWiaItem2 { (::windows::core::Interface::vtable(self).EnumRegisterEventInfo)(::windows::core::Interface::as_raw(self), lflags, ::core::mem::transmute(peventguid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Diagnostic(&self, pbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Diagnostic)(::windows::core::Interface::as_raw(self), pbuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuffer))).ok() + (::windows::core::Interface::vtable(self).Diagnostic)(::windows::core::Interface::as_raw(self), pbuffer.len() as _, ::core::mem::transmute(pbuffer.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1882,7 +1882,7 @@ impl IWiaItemExtras { (::windows::core::Interface::vtable(self).GetExtendedErrorInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Escape(&self, dwescapecode: u32, lpindata: &[u8], poutdata: &mut u8, dwoutdatasize: u32, pdwactualdatasize: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Escape)(::windows::core::Interface::as_raw(self), dwescapecode, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpindata)), lpindata.len() as _, ::core::mem::transmute(poutdata), dwoutdatasize, ::core::mem::transmute(pdwactualdatasize)).ok() + (::windows::core::Interface::vtable(self).Escape)(::windows::core::Interface::as_raw(self), dwescapecode, ::core::mem::transmute(lpindata.as_ptr()), lpindata.len() as _, ::core::mem::transmute(poutdata), dwoutdatasize, ::core::mem::transmute(pdwactualdatasize)).ok() } pub unsafe fn CancelPendingIO(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CancelPendingIO)(::windows::core::Interface::as_raw(self)).ok() @@ -2481,7 +2481,7 @@ pub struct IWiaPropertyStorage(::windows::core::IUnknown); impl IWiaPropertyStorage { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] - pub unsafe fn ReadMultiple(&self, cpspec: u32, rgpspec: &super::super::System::Com::StructuredStorage::PROPSPEC, rgpropvar: &mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<()> { + pub unsafe fn ReadMultiple(&self, cpspec: u32, rgpspec: *const super::super::System::Com::StructuredStorage::PROPSPEC, rgpropvar: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReadMultiple)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cpspec), ::core::mem::transmute(rgpspec), ::core::mem::transmute(rgpropvar)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] @@ -2492,16 +2492,16 @@ impl IWiaPropertyStorage { #[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(feature = "Win32_System_Com_StructuredStorage")] pub unsafe fn DeleteMultiple(&self, rgpspec: &[super::super::System::Com::StructuredStorage::PROPSPEC]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DeleteMultiple)(::windows::core::Interface::as_raw(self), rgpspec.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpspec))).ok() + (::windows::core::Interface::vtable(self).DeleteMultiple)(::windows::core::Interface::as_raw(self), rgpspec.len() as _, ::core::mem::transmute(rgpspec.as_ptr())).ok() } - pub unsafe fn ReadPropertyNames(&self, cpropid: u32, rgpropid: &u32, rglpwstrname: &mut ::windows::core::PWSTR) -> ::windows::core::Result<()> { + pub unsafe fn ReadPropertyNames(&self, cpropid: u32, rgpropid: *const u32, rglpwstrname: *mut ::windows::core::PWSTR) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReadPropertyNames)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cpropid), ::core::mem::transmute(rgpropid), ::core::mem::transmute(rglpwstrname)).ok() } - pub unsafe fn WritePropertyNames(&self, cpropid: u32, rgpropid: &u32, rglpwstrname: &::windows::core::PWSTR) -> ::windows::core::Result<()> { + pub unsafe fn WritePropertyNames(&self, cpropid: u32, rgpropid: *const u32, rglpwstrname: *const ::windows::core::PWSTR) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WritePropertyNames)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cpropid), ::core::mem::transmute(rgpropid), ::core::mem::transmute(rglpwstrname)).ok() } pub unsafe fn DeletePropertyNames(&self, rgpropid: &[u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DeletePropertyNames)(::windows::core::Interface::as_raw(self), rgpropid.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpropid))).ok() + (::windows::core::Interface::vtable(self).DeletePropertyNames)(::windows::core::Interface::as_raw(self), rgpropid.len() as _, ::core::mem::transmute(rgpropid.as_ptr())).ok() } pub unsafe fn Commit(&self, grfcommitflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Commit)(::windows::core::Interface::as_raw(self), grfcommitflags).ok() @@ -2531,7 +2531,7 @@ impl IWiaPropertyStorage { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] - pub unsafe fn GetPropertyAttributes(&self, cpspec: u32, rgpspec: &super::super::System::Com::StructuredStorage::PROPSPEC, rgflags: &mut u32, rgpropvar: &mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<()> { + pub unsafe fn GetPropertyAttributes(&self, cpspec: u32, rgpspec: *const super::super::System::Com::StructuredStorage::PROPSPEC, rgflags: *mut u32, rgpropvar: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPropertyAttributes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cpspec), ::core::mem::transmute(rgpspec), ::core::mem::transmute(rgflags), ::core::mem::transmute(rgpropvar)).ok() } pub unsafe fn GetCount(&self) -> ::windows::core::Result { diff --git a/crates/libs/windows/src/Windows/Win32/Devices/PortableDevices/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/PortableDevices/mod.rs index 1c8ad4a642..48c189f092 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/PortableDevices/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/PortableDevices/mod.rs @@ -86,7 +86,7 @@ where fn DMProcessConfigXMLFiltered(pszxmlin: ::windows::core::PCWSTR, rgszallowedcspnodes: *const ::windows::core::PWSTR, dwnumallowedcspnodes: u32, pbstrxmlout: *mut super::super::Foundation::BSTR) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - DMProcessConfigXMLFiltered(pszxmlin.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgszallowedcspnodes)), rgszallowedcspnodes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + DMProcessConfigXMLFiltered(pszxmlin.into(), ::core::mem::transmute(rgszallowedcspnodes.as_ptr()), rgszallowedcspnodes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Devices_PortableDevices\"`*"] pub const ENUM_AnchorResults_AnchorStateInvalid: u32 = 1u32; @@ -270,7 +270,7 @@ pub struct IConnectionRequestCallback_Vtbl { pub struct IEnumPortableDeviceConnectors(::windows::core::IUnknown); impl IEnumPortableDeviceConnectors { pub unsafe fn Next(&self, pconnectors: &mut [::core::option::Option], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pconnectors.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pconnectors)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pconnectors.len() as _, ::core::mem::transmute(pconnectors.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Skip(&self, cconnectors: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), cconnectors).ok() @@ -332,7 +332,7 @@ pub struct IEnumPortableDeviceConnectors_Vtbl { pub struct IEnumPortableDeviceObjectIDs(::windows::core::IUnknown); impl IEnumPortableDeviceObjectIDs { pub unsafe fn Next(&self, pobjids: &mut [::windows::core::PWSTR], pcfetched: &mut u32) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pobjids.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pobjids)), ::core::mem::transmute(pcfetched)) + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pobjids.len() as _, ::core::mem::transmute(pobjids.as_ptr()), ::core::mem::transmute(pcfetched)) } pub unsafe fn Skip(&self, cobjects: u32) -> ::windows::core::HRESULT { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), cobjects) @@ -760,13 +760,13 @@ impl IPortableDeviceConnector { } #[doc = "*Required features: `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] - pub unsafe fn GetProperty(&self, ppropertykey: &super::Properties::DEVPROPKEY, ppropertytype: &mut u32, ppdata: &mut *mut u8, pcbdata: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetProperty(&self, ppropertykey: &super::Properties::DEVPROPKEY, ppropertytype: &mut u32, ppdata: *mut *mut u8, pcbdata: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetProperty)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppropertykey), ::core::mem::transmute(ppropertytype), ::core::mem::transmute(ppdata), ::core::mem::transmute(pcbdata)).ok() } #[doc = "*Required features: `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] pub unsafe fn SetProperty(&self, ppropertykey: &super::Properties::DEVPROPKEY, propertytype: u32, pdata: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetProperty)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppropertykey), propertytype, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _).ok() + (::windows::core::Interface::vtable(self).SetProperty)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppropertykey), propertytype, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _).ok() } pub unsafe fn GetPnPID(&self) -> ::windows::core::Result<::windows::core::PWSTR> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1084,13 +1084,13 @@ pub struct IPortableDeviceDataStream(::windows::core::IUnknown); impl IPortableDeviceDataStream { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Read(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread)) + pub unsafe fn Read(&self, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Write(&self, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbwritten)) + pub unsafe fn Write(&self, pv: &[u8], pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbwritten)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -2682,11 +2682,11 @@ impl IPortableDeviceValues { #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] pub unsafe fn SetBufferValue(&self, key: &super::super::UI::Shell::PropertiesSystem::PROPERTYKEY, pvalue: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetBufferValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(key), ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).SetBufferValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(key), ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] - pub unsafe fn GetBufferValue(&self, key: &super::super::UI::Shell::PropertiesSystem::PROPERTYKEY, ppvalue: &mut *mut u8, pcbvalue: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetBufferValue(&self, key: &super::super::UI::Shell::PropertiesSystem::PROPERTYKEY, ppvalue: *mut *mut u8, pcbvalue: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetBufferValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(key), ::core::mem::transmute(ppvalue), ::core::mem::transmute(pcbvalue)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] @@ -3292,15 +3292,15 @@ pub struct IWpdSerializer(::windows::core::IUnknown); impl IWpdSerializer { pub unsafe fn GetIPortableDeviceValuesFromBuffer(&self, pbuffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetIPortableDeviceValuesFromBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuffer)), pbuffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetIPortableDeviceValuesFromBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn WriteIPortableDeviceValuesToBuffer<'a, P0>(&self, presults: P0, pbuffer: &mut [u8], pdwbyteswritten: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IPortableDeviceValues>>, { - (::windows::core::Interface::vtable(self).WriteIPortableDeviceValuesToBuffer)(::windows::core::Interface::as_raw(self), pbuffer.len() as _, presults.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuffer)), ::core::mem::transmute(pdwbyteswritten)).ok() + (::windows::core::Interface::vtable(self).WriteIPortableDeviceValuesToBuffer)(::windows::core::Interface::as_raw(self), pbuffer.len() as _, presults.into().abi(), ::core::mem::transmute(pbuffer.as_ptr()), ::core::mem::transmute(pdwbyteswritten)).ok() } - pub unsafe fn GetBufferFromIPortableDeviceValues<'a, P0>(&self, psource: P0, ppbuffer: &mut *mut u8, pdwbuffersize: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetBufferFromIPortableDeviceValues<'a, P0>(&self, psource: P0, ppbuffer: *mut *mut u8, pdwbuffersize: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IPortableDeviceValues>>, { diff --git a/crates/libs/windows/src/Windows/Win32/Devices/Sensors/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/Sensors/mod.rs index cf8f3e0073..90056699ba 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/Sensors/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/Sensors/mod.rs @@ -120,12 +120,12 @@ pub unsafe fn CollectionsListCopyAndMarshall(target: &mut SENSOR_COLLECTION_LIST #[doc = "*Required features: `\"Win32_Devices_Sensors\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_UI_Shell_PropertiesSystem"))] #[inline] -pub unsafe fn CollectionsListDeserializeFromBuffer(sourcebuffersizeinbytes: u32, sourcebuffer: &u8, targetcollection: &mut SENSOR_COLLECTION_LIST) -> ::windows::core::Result<()> { +pub unsafe fn CollectionsListDeserializeFromBuffer(sourcebuffer: &[u8], targetcollection: &mut SENSOR_COLLECTION_LIST) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CollectionsListDeserializeFromBuffer(sourcebuffersizeinbytes: u32, sourcebuffer: *const u8, targetcollection: *mut SENSOR_COLLECTION_LIST) -> super::super::Foundation::NTSTATUS; } - CollectionsListDeserializeFromBuffer(sourcebuffersizeinbytes, ::core::mem::transmute(sourcebuffer), ::core::mem::transmute(targetcollection)).ok() + CollectionsListDeserializeFromBuffer(sourcebuffer.len() as _, ::core::mem::transmute(sourcebuffer.as_ptr()), ::core::mem::transmute(targetcollection)).ok() } #[doc = "*Required features: `\"Win32_Devices_Sensors\"`*"] #[inline] @@ -179,12 +179,12 @@ pub unsafe fn CollectionsListMarshall(target: &mut SENSOR_COLLECTION_LIST) -> :: #[doc = "*Required features: `\"Win32_Devices_Sensors\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_UI_Shell_PropertiesSystem"))] #[inline] -pub unsafe fn CollectionsListSerializeToBuffer(sourcecollection: &SENSOR_COLLECTION_LIST, targetbuffersizeinbytes: u32, targetbuffer: &mut u8) -> ::windows::core::Result<()> { +pub unsafe fn CollectionsListSerializeToBuffer(sourcecollection: &SENSOR_COLLECTION_LIST, targetbuffer: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CollectionsListSerializeToBuffer(sourcecollection: *const SENSOR_COLLECTION_LIST, targetbuffersizeinbytes: u32, targetbuffer: *mut u8) -> super::super::Foundation::NTSTATUS; } - CollectionsListSerializeToBuffer(::core::mem::transmute(sourcecollection), targetbuffersizeinbytes, ::core::mem::transmute(targetbuffer)).ok() + CollectionsListSerializeToBuffer(::core::mem::transmute(sourcecollection), targetbuffer.len() as _, ::core::mem::transmute(targetbuffer.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Devices_Sensors\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_UI_Shell_PropertiesSystem"))] @@ -481,11 +481,11 @@ impl ISensor { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).SupportsEvent)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(eventguid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetEventInterest(&self, ppvalues: &mut *mut ::windows::core::GUID, pcount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetEventInterest(&self, ppvalues: *mut *mut ::windows::core::GUID, pcount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetEventInterest)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppvalues), ::core::mem::transmute(pcount)).ok() } - pub unsafe fn SetEventInterest(&self, pvalues: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetEventInterest)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalues)), pvalues.len() as _).ok() + pub unsafe fn SetEventInterest(&self, pvalues: ::core::option::Option<&[::windows::core::GUID]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetEventInterest)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvalues.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvalues.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn SetEventSink<'a, P0>(&self, pevents: P0) -> ::windows::core::Result<()> where @@ -941,7 +941,7 @@ pub unsafe fn InitPropVariantFromCLSIDArray(members: &[::windows::core::GUID]) - fn InitPropVariantFromCLSIDArray(members: *const ::windows::core::GUID, size: u32, ppropvar: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitPropVariantFromCLSIDArray(::core::mem::transmute(::windows::core::as_ptr_or_null(members)), members.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitPropVariantFromCLSIDArray(::core::mem::transmute(members.as_ptr()), members.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Devices_Sensors\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -972,7 +972,7 @@ pub unsafe fn IsGUIDPresentInList(guidarray: &[::windows::core::GUID], guidelem: extern "system" { fn IsGUIDPresentInList(guidarray: *const ::windows::core::GUID, arraylength: u32, guidelem: *const ::windows::core::GUID) -> super::super::Foundation::BOOLEAN; } - IsGUIDPresentInList(::core::mem::transmute(::windows::core::as_ptr_or_null(guidarray)), guidarray.len() as _, ::core::mem::transmute(guidelem)) + IsGUIDPresentInList(::core::mem::transmute(guidarray.as_ptr()), guidarray.len() as _, ::core::mem::transmute(guidelem)) } #[doc = "*Required features: `\"Win32_Devices_Sensors\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_UI_Shell_PropertiesSystem"))] diff --git a/crates/libs/windows/src/Windows/Win32/Devices/SerialCommunication/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/SerialCommunication/mod.rs index e828834382..a388c91283 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/SerialCommunication/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/SerialCommunication/mod.rs @@ -46,7 +46,7 @@ where } #[doc = "*Required features: `\"Win32_Devices_SerialCommunication\"`*"] #[inline] -pub unsafe fn ComDBGetCurrentPortUsage<'a, P0>(hcomdb: P0, buffer: ::core::option::Option<&mut u8>, buffersize: u32, reporttype: u32, maxportsreported: ::core::option::Option<&mut u32>) -> i32 +pub unsafe fn ComDBGetCurrentPortUsage<'a, P0>(hcomdb: P0, buffer: ::core::option::Option<&mut [u8]>, reporttype: u32, maxportsreported: ::core::option::Option<&mut u32>) -> i32 where P0: ::std::convert::Into, { @@ -54,7 +54,7 @@ where extern "system" { fn ComDBGetCurrentPortUsage(hcomdb: HCOMDB, buffer: *mut u8, buffersize: u32, reporttype: u32, maxportsreported: *mut u32) -> i32; } - ComDBGetCurrentPortUsage(hcomdb.into(), ::core::mem::transmute(buffer), buffersize, reporttype, ::core::mem::transmute(maxportsreported)) + ComDBGetCurrentPortUsage(hcomdb.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), reporttype, ::core::mem::transmute(maxportsreported)) } #[doc = "*Required features: `\"Win32_Devices_SerialCommunication\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/Devices/Tapi/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/Tapi/mod.rs index 2a6c37f85b..10dcdffaf9 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/Tapi/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/Tapi/mod.rs @@ -1533,7 +1533,7 @@ impl IEnumAddress { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Next(&self, ppelements: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppelements)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(ppelements.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1801,7 +1801,7 @@ impl IEnumBstr { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn Next(&self, ppstrings: &mut [super::super::Foundation::BSTR], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppstrings.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppstrings)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppstrings.len() as _, ::core::mem::transmute(ppstrings.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1935,7 +1935,7 @@ impl IEnumCallHub { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Next(&self, ppelements: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppelements)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(ppelements.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -2069,7 +2069,7 @@ impl IEnumDialableAddrs { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn Next(&self, ppelements: &mut [super::super::Foundation::BSTR], pcfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppelements)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(ppelements.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -2136,7 +2136,7 @@ impl IEnumDirectory { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Next(&self, ppelements: &mut [::core::option::Option], pcfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppelements)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(ppelements.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -2203,7 +2203,7 @@ impl IEnumDirectoryObject { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Next(&self, pval: &mut [::core::option::Option], pcfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pval.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pval)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pval.len() as _, ::core::mem::transmute(pval.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -2404,7 +2404,7 @@ impl IEnumPhone { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Next(&self, ppelements: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppelements)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(ppelements.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -2471,7 +2471,7 @@ impl IEnumPluggableSuperclassInfo { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Next(&self, ppelements: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppelements)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(ppelements.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -2538,7 +2538,7 @@ impl IEnumPluggableTerminalClassInfo { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Next(&self, ppelements: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppelements)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(ppelements.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -2871,7 +2871,7 @@ pub struct IEnumTerminal_Vtbl { pub struct IEnumTerminalClass(::windows::core::IUnknown); impl IEnumTerminalClass { pub unsafe fn Next(&self, pelements: &mut [::windows::core::GUID], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pelements.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pelements)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pelements.len() as _, ::core::mem::transmute(pelements.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -6623,11 +6623,11 @@ impl ITCallInfo { { (::windows::core::Interface::vtable(self).put_CallInfoBuffer)(::windows::core::Interface::as_raw(self), callinfobuffer, pcallinfobuffer.into().abi()).ok() } - pub unsafe fn GetCallInfoBuffer(&self, callinfobuffer: CALLINFO_BUFFER, pdwsize: &mut u32, ppcallinfobuffer: &mut *mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetCallInfoBuffer(&self, callinfobuffer: CALLINFO_BUFFER, pdwsize: &mut u32, ppcallinfobuffer: *mut *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetCallInfoBuffer)(::windows::core::Interface::as_raw(self), callinfobuffer, ::core::mem::transmute(pdwsize), ::core::mem::transmute(ppcallinfobuffer)).ok() } pub unsafe fn SetCallInfoBuffer(&self, callinfobuffer: CALLINFO_BUFFER, pcallinfobuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetCallInfoBuffer)(::windows::core::Interface::as_raw(self), callinfobuffer, pcallinfobuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pcallinfobuffer))).ok() + (::windows::core::Interface::vtable(self).SetCallInfoBuffer)(::windows::core::Interface::as_raw(self), callinfobuffer, pcallinfobuffer.len() as _, ::core::mem::transmute(pcallinfobuffer.as_ptr())).ok() } pub unsafe fn ReleaseUserUserInfo(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReleaseUserUserInfo)(::windows::core::Interface::as_raw(self)).ok() @@ -6792,11 +6792,11 @@ impl ITCallInfo2 { { (::windows::core::Interface::vtable(self).base__.put_CallInfoBuffer)(::windows::core::Interface::as_raw(self), callinfobuffer, pcallinfobuffer.into().abi()).ok() } - pub unsafe fn GetCallInfoBuffer(&self, callinfobuffer: CALLINFO_BUFFER, pdwsize: &mut u32, ppcallinfobuffer: &mut *mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetCallInfoBuffer(&self, callinfobuffer: CALLINFO_BUFFER, pdwsize: &mut u32, ppcallinfobuffer: *mut *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetCallInfoBuffer)(::windows::core::Interface::as_raw(self), callinfobuffer, ::core::mem::transmute(pdwsize), ::core::mem::transmute(ppcallinfobuffer)).ok() } pub unsafe fn SetCallInfoBuffer(&self, callinfobuffer: CALLINFO_BUFFER, pcallinfobuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetCallInfoBuffer)(::windows::core::Interface::as_raw(self), callinfobuffer, pcallinfobuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pcallinfobuffer))).ok() + (::windows::core::Interface::vtable(self).base__.SetCallInfoBuffer)(::windows::core::Interface::as_raw(self), callinfobuffer, pcallinfobuffer.len() as _, ::core::mem::transmute(pcallinfobuffer.as_ptr())).ok() } pub unsafe fn ReleaseUserUserInfo(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.ReleaseUserUserInfo)(::windows::core::Interface::as_raw(self)).ok() @@ -9506,7 +9506,7 @@ pub struct ITLegacyAddressMediaControl(::windows::core::IUnknown); impl ITLegacyAddressMediaControl { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetID<'a, P0>(&self, pdeviceclass: P0, pdwsize: &mut u32, ppdeviceid: &mut *mut u8) -> ::windows::core::Result<()> + pub unsafe fn GetID<'a, P0>(&self, pdeviceclass: P0, pdwsize: &mut u32, ppdeviceid: *mut *mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { @@ -9514,7 +9514,7 @@ impl ITLegacyAddressMediaControl { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetDevConfig<'a, P0>(&self, pdeviceclass: P0, pdwsize: &mut u32, ppdeviceconfig: &mut *mut u8) -> ::windows::core::Result<()> + pub unsafe fn GetDevConfig<'a, P0>(&self, pdeviceclass: P0, pdwsize: &mut u32, ppdeviceconfig: *mut *mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { @@ -9526,7 +9526,7 @@ impl ITLegacyAddressMediaControl { where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { - (::windows::core::Interface::vtable(self).SetDevConfig)(::windows::core::Interface::as_raw(self), pdeviceclass.into().abi(), pdeviceconfig.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdeviceconfig))).ok() + (::windows::core::Interface::vtable(self).SetDevConfig)(::windows::core::Interface::as_raw(self), pdeviceclass.into().abi(), pdeviceconfig.len() as _, ::core::mem::transmute(pdeviceconfig.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -9587,7 +9587,7 @@ pub struct ITLegacyAddressMediaControl2(::windows::core::IUnknown); impl ITLegacyAddressMediaControl2 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetID<'a, P0>(&self, pdeviceclass: P0, pdwsize: &mut u32, ppdeviceid: &mut *mut u8) -> ::windows::core::Result<()> + pub unsafe fn GetID<'a, P0>(&self, pdeviceclass: P0, pdwsize: &mut u32, ppdeviceid: *mut *mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { @@ -9595,7 +9595,7 @@ impl ITLegacyAddressMediaControl2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetDevConfig<'a, P0>(&self, pdeviceclass: P0, pdwsize: &mut u32, ppdeviceconfig: &mut *mut u8) -> ::windows::core::Result<()> + pub unsafe fn GetDevConfig<'a, P0>(&self, pdeviceclass: P0, pdwsize: &mut u32, ppdeviceconfig: *mut *mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { @@ -9607,7 +9607,7 @@ impl ITLegacyAddressMediaControl2 { where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { - (::windows::core::Interface::vtable(self).base__.SetDevConfig)(::windows::core::Interface::as_raw(self), pdeviceclass.into().abi(), pdeviceconfig.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdeviceconfig))).ok() + (::windows::core::Interface::vtable(self).base__.SetDevConfig)(::windows::core::Interface::as_raw(self), pdeviceclass.into().abi(), pdeviceconfig.len() as _, ::core::mem::transmute(pdeviceconfig.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9620,12 +9620,12 @@ impl ITLegacyAddressMediaControl2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn ConfigDialogEdit<'a, P0, P1>(&self, hwndowner: P0, pdeviceclass: P1, pdeviceconfigin: &[u8], pdwsizeout: &mut u32, ppdeviceconfigout: &mut *mut u8) -> ::windows::core::Result<()> + pub unsafe fn ConfigDialogEdit<'a, P0, P1>(&self, hwndowner: P0, pdeviceclass: P1, pdeviceconfigin: &[u8], pdwsizeout: &mut u32, ppdeviceconfigout: *mut *mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { - (::windows::core::Interface::vtable(self).ConfigDialogEdit)(::windows::core::Interface::as_raw(self), hwndowner.into(), pdeviceclass.into().abi(), pdeviceconfigin.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdeviceconfigin)), ::core::mem::transmute(pdwsizeout), ::core::mem::transmute(ppdeviceconfigout)).ok() + (::windows::core::Interface::vtable(self).ConfigDialogEdit)(::windows::core::Interface::as_raw(self), hwndowner.into(), pdeviceclass.into().abi(), pdeviceconfigin.len() as _, ::core::mem::transmute(pdeviceconfigin.as_ptr()), ::core::mem::transmute(pdwsizeout), ::core::mem::transmute(ppdeviceconfigout)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -9710,7 +9710,7 @@ impl ITLegacyCallMediaControl { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetID<'a, P0>(&self, pdeviceclass: P0, pdwsize: &mut u32, ppdeviceid: &mut *mut u8) -> ::windows::core::Result<()> + pub unsafe fn GetID<'a, P0>(&self, pdeviceclass: P0, pdwsize: &mut u32, ppdeviceid: *mut *mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { @@ -9820,7 +9820,7 @@ impl ITLegacyCallMediaControl2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetID<'a, P0>(&self, pdeviceclass: P0, pdwsize: &mut u32, ppdeviceid: &mut *mut u8) -> ::windows::core::Result<()> + pub unsafe fn GetID<'a, P0>(&self, pdeviceclass: P0, pdwsize: &mut u32, ppdeviceid: *mut *mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { @@ -10276,9 +10276,9 @@ impl ITMSPAddress { where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).ReceiveTSPData)(::windows::core::Interface::as_raw(self), pmspcall.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuffer)), pbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).ReceiveTSPData)(::windows::core::Interface::as_raw(self), pmspcall.into().abi(), ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _).ok() } - pub unsafe fn GetEvent(&self, pdwsize: &mut u32, peventbuffer: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetEvent(&self, pdwsize: &mut u32, peventbuffer: *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetEvent)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwsize), ::core::mem::transmute(peventbuffer)).ok() } } @@ -22221,7 +22221,7 @@ pub unsafe fn lineForwardW(hline: u32, balladdresses: u32, dwaddressid: u32, lpf } #[doc = "*Required features: `\"Win32_Devices_Tapi\"`*"] #[inline] -pub unsafe fn lineGatherDigits<'a, P0>(hcall: u32, dwdigitmodes: u32, lpsdigits: &mut [u8], lpszterminationdigits: P0, dwfirstdigittimeout: u32, dwinterdigittimeout: u32) -> i32 +pub unsafe fn lineGatherDigits<'a, P0>(hcall: u32, dwdigitmodes: u32, lpsdigits: ::core::option::Option<&mut [u8]>, lpszterminationdigits: P0, dwfirstdigittimeout: u32, dwinterdigittimeout: u32) -> i32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -22229,11 +22229,11 @@ where extern "system" { fn lineGatherDigits(hcall: u32, dwdigitmodes: u32, lpsdigits: ::windows::core::PSTR, dwnumdigits: u32, lpszterminationdigits: ::windows::core::PCSTR, dwfirstdigittimeout: u32, dwinterdigittimeout: u32) -> i32; } - lineGatherDigits(hcall, dwdigitmodes, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpsdigits)), lpsdigits.len() as _, lpszterminationdigits.into(), dwfirstdigittimeout, dwinterdigittimeout) + lineGatherDigits(hcall, dwdigitmodes, ::core::mem::transmute(lpsdigits.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpsdigits.as_deref().map_or(0, |slice| slice.len() as _), lpszterminationdigits.into(), dwfirstdigittimeout, dwinterdigittimeout) } #[doc = "*Required features: `\"Win32_Devices_Tapi\"`*"] #[inline] -pub unsafe fn lineGatherDigitsA<'a, P0>(hcall: u32, dwdigitmodes: u32, lpsdigits: &mut [u8], lpszterminationdigits: P0, dwfirstdigittimeout: u32, dwinterdigittimeout: u32) -> i32 +pub unsafe fn lineGatherDigitsA<'a, P0>(hcall: u32, dwdigitmodes: u32, lpsdigits: ::core::option::Option<&mut [u8]>, lpszterminationdigits: P0, dwfirstdigittimeout: u32, dwinterdigittimeout: u32) -> i32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -22241,11 +22241,11 @@ where extern "system" { fn lineGatherDigitsA(hcall: u32, dwdigitmodes: u32, lpsdigits: ::windows::core::PSTR, dwnumdigits: u32, lpszterminationdigits: ::windows::core::PCSTR, dwfirstdigittimeout: u32, dwinterdigittimeout: u32) -> i32; } - lineGatherDigitsA(hcall, dwdigitmodes, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpsdigits)), lpsdigits.len() as _, lpszterminationdigits.into(), dwfirstdigittimeout, dwinterdigittimeout) + lineGatherDigitsA(hcall, dwdigitmodes, ::core::mem::transmute(lpsdigits.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpsdigits.as_deref().map_or(0, |slice| slice.len() as _), lpszterminationdigits.into(), dwfirstdigittimeout, dwinterdigittimeout) } #[doc = "*Required features: `\"Win32_Devices_Tapi\"`*"] #[inline] -pub unsafe fn lineGatherDigitsW<'a, P0>(hcall: u32, dwdigitmodes: u32, lpsdigits: &mut [u16], lpszterminationdigits: P0, dwfirstdigittimeout: u32, dwinterdigittimeout: u32) -> i32 +pub unsafe fn lineGatherDigitsW<'a, P0>(hcall: u32, dwdigitmodes: u32, lpsdigits: ::core::option::Option<&mut [u16]>, lpszterminationdigits: P0, dwfirstdigittimeout: u32, dwinterdigittimeout: u32) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -22253,7 +22253,7 @@ where extern "system" { fn lineGatherDigitsW(hcall: u32, dwdigitmodes: u32, lpsdigits: ::windows::core::PWSTR, dwnumdigits: u32, lpszterminationdigits: ::windows::core::PCWSTR, dwfirstdigittimeout: u32, dwinterdigittimeout: u32) -> i32; } - lineGatherDigitsW(hcall, dwdigitmodes, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpsdigits)), lpsdigits.len() as _, lpszterminationdigits.into(), dwfirstdigittimeout, dwinterdigittimeout) + lineGatherDigitsW(hcall, dwdigitmodes, ::core::mem::transmute(lpsdigits.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpsdigits.as_deref().map_or(0, |slice| slice.len() as _), lpszterminationdigits.into(), dwfirstdigittimeout, dwinterdigittimeout) } #[doc = "*Required features: `\"Win32_Devices_Tapi\"`*"] #[inline] @@ -24397,7 +24397,7 @@ pub unsafe fn tapiGetLocationInfo(lpszcountrycode: &mut [u8; 8], lpszcitycode: & extern "system" { fn tapiGetLocationInfo(lpszcountrycode: ::windows::core::PSTR, lpszcitycode: ::windows::core::PSTR) -> i32; } - tapiGetLocationInfo(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszcountrycode)), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszcitycode))) + tapiGetLocationInfo(::core::mem::transmute(lpszcountrycode.as_ptr()), ::core::mem::transmute(lpszcitycode.as_ptr())) } #[doc = "*Required features: `\"Win32_Devices_Tapi\"`*"] #[inline] @@ -24406,7 +24406,7 @@ pub unsafe fn tapiGetLocationInfoA(lpszcountrycode: &mut [u8; 8], lpszcitycode: extern "system" { fn tapiGetLocationInfoA(lpszcountrycode: ::windows::core::PSTR, lpszcitycode: ::windows::core::PSTR) -> i32; } - tapiGetLocationInfoA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszcountrycode)), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszcitycode))) + tapiGetLocationInfoA(::core::mem::transmute(lpszcountrycode.as_ptr()), ::core::mem::transmute(lpszcitycode.as_ptr())) } #[doc = "*Required features: `\"Win32_Devices_Tapi\"`*"] #[inline] @@ -24415,7 +24415,7 @@ pub unsafe fn tapiGetLocationInfoW(lpszcountrycodew: &mut [u16; 8], lpszcitycode extern "system" { fn tapiGetLocationInfoW(lpszcountrycodew: ::windows::core::PWSTR, lpszcitycodew: ::windows::core::PWSTR) -> i32; } - tapiGetLocationInfoW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszcountrycodew)), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszcitycodew))) + tapiGetLocationInfoW(::core::mem::transmute(lpszcountrycodew.as_ptr()), ::core::mem::transmute(lpszcitycodew.as_ptr())) } #[doc = "*Required features: `\"Win32_Devices_Tapi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Devices/Usb/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/Usb/mod.rs index d954b796d9..3a16f4490b 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/Usb/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/Usb/mod.rs @@ -6224,12 +6224,12 @@ pub unsafe fn WinUsb_AbortPipe(interfacehandle: *const ::core::ffi::c_void, pipe #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn WinUsb_ControlTransfer(interfacehandle: *const ::core::ffi::c_void, setuppacket: WINUSB_SETUP_PACKET, buffer: ::core::option::Option<&mut u8>, bufferlength: u32, lengthtransferred: ::core::option::Option<&mut u32>, overlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>) -> super::super::Foundation::BOOL { +pub unsafe fn WinUsb_ControlTransfer(interfacehandle: *const ::core::ffi::c_void, setuppacket: WINUSB_SETUP_PACKET, buffer: ::core::option::Option<&mut [u8]>, lengthtransferred: ::core::option::Option<&mut u32>, overlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinUsb_ControlTransfer(interfacehandle: *const ::core::ffi::c_void, setuppacket: WINUSB_SETUP_PACKET, buffer: *mut u8, bufferlength: u32, lengthtransferred: *mut u32, overlapped: *const super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL; } - WinUsb_ControlTransfer(::core::mem::transmute(interfacehandle), ::core::mem::transmute(setuppacket), ::core::mem::transmute(buffer), bufferlength, ::core::mem::transmute(lengthtransferred), ::core::mem::transmute(overlapped)) + WinUsb_ControlTransfer(::core::mem::transmute(interfacehandle), ::core::mem::transmute(setuppacket), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lengthtransferred), ::core::mem::transmute(overlapped)) } #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6304,12 +6304,12 @@ pub unsafe fn WinUsb_GetCurrentFrameNumberAndQpc(interfacehandle: *const ::core: #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WinUsb_GetDescriptor(interfacehandle: *const ::core::ffi::c_void, descriptortype: u8, index: u8, languageid: u16, buffer: ::core::option::Option<&mut u8>, bufferlength: u32, lengthtransferred: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn WinUsb_GetDescriptor(interfacehandle: *const ::core::ffi::c_void, descriptortype: u8, index: u8, languageid: u16, buffer: ::core::option::Option<&mut [u8]>, lengthtransferred: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinUsb_GetDescriptor(interfacehandle: *const ::core::ffi::c_void, descriptortype: u8, index: u8, languageid: u16, buffer: *mut u8, bufferlength: u32, lengthtransferred: *mut u32) -> super::super::Foundation::BOOL; } - WinUsb_GetDescriptor(::core::mem::transmute(interfacehandle), descriptortype, index, languageid, ::core::mem::transmute(buffer), bufferlength, ::core::mem::transmute(lengthtransferred)) + WinUsb_GetDescriptor(::core::mem::transmute(interfacehandle), descriptortype, index, languageid, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lengthtransferred)) } #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] @@ -6368,12 +6368,12 @@ pub unsafe fn WinUsb_ParseConfigurationDescriptor(configurationdescriptor: &USB_ } #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"] #[inline] -pub unsafe fn WinUsb_ParseDescriptors(descriptorbuffer: *const ::core::ffi::c_void, totallength: u32, startposition: *const ::core::ffi::c_void, descriptortype: i32) -> *mut USB_COMMON_DESCRIPTOR { +pub unsafe fn WinUsb_ParseDescriptors(descriptorbuffer: &[u8], startposition: *const ::core::ffi::c_void, descriptortype: i32) -> *mut USB_COMMON_DESCRIPTOR { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinUsb_ParseDescriptors(descriptorbuffer: *const ::core::ffi::c_void, totallength: u32, startposition: *const ::core::ffi::c_void, descriptortype: i32) -> *mut USB_COMMON_DESCRIPTOR; } - WinUsb_ParseDescriptors(::core::mem::transmute(descriptorbuffer), totallength, ::core::mem::transmute(startposition), descriptortype) + WinUsb_ParseDescriptors(::core::mem::transmute(descriptorbuffer.as_ptr()), descriptorbuffer.len() as _, ::core::mem::transmute(startposition), descriptortype) } #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6423,7 +6423,7 @@ pub unsafe fn WinUsb_ReadIsochPipe(bufferhandle: *const ::core::ffi::c_void, off extern "system" { fn WinUsb_ReadIsochPipe(bufferhandle: *const ::core::ffi::c_void, offset: u32, length: u32, framenumber: *mut u32, numberofpackets: u32, isopacketdescriptors: *mut USBD_ISO_PACKET_DESCRIPTOR, overlapped: *const super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL; } - WinUsb_ReadIsochPipe(::core::mem::transmute(bufferhandle), offset, length, ::core::mem::transmute(framenumber), isopacketdescriptors.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(isopacketdescriptors)), ::core::mem::transmute(overlapped)) + WinUsb_ReadIsochPipe(::core::mem::transmute(bufferhandle), offset, length, ::core::mem::transmute(framenumber), isopacketdescriptors.len() as _, ::core::mem::transmute(isopacketdescriptors.as_ptr()), ::core::mem::transmute(overlapped)) } #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] @@ -6436,27 +6436,27 @@ where extern "system" { fn WinUsb_ReadIsochPipeAsap(bufferhandle: *const ::core::ffi::c_void, offset: u32, length: u32, continuestream: super::super::Foundation::BOOL, numberofpackets: u32, isopacketdescriptors: *mut USBD_ISO_PACKET_DESCRIPTOR, overlapped: *const super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL; } - WinUsb_ReadIsochPipeAsap(::core::mem::transmute(bufferhandle), offset, length, continuestream.into(), isopacketdescriptors.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(isopacketdescriptors)), ::core::mem::transmute(overlapped)) + WinUsb_ReadIsochPipeAsap(::core::mem::transmute(bufferhandle), offset, length, continuestream.into(), isopacketdescriptors.len() as _, ::core::mem::transmute(isopacketdescriptors.as_ptr()), ::core::mem::transmute(overlapped)) } #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn WinUsb_ReadPipe(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, buffer: ::core::option::Option<&mut u8>, bufferlength: u32, lengthtransferred: ::core::option::Option<&mut u32>, overlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>) -> super::super::Foundation::BOOL { +pub unsafe fn WinUsb_ReadPipe(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, buffer: ::core::option::Option<&mut [u8]>, lengthtransferred: ::core::option::Option<&mut u32>, overlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinUsb_ReadPipe(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, buffer: *mut u8, bufferlength: u32, lengthtransferred: *mut u32, overlapped: *const super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL; } - WinUsb_ReadPipe(::core::mem::transmute(interfacehandle), pipeid, ::core::mem::transmute(buffer), bufferlength, ::core::mem::transmute(lengthtransferred), ::core::mem::transmute(overlapped)) + WinUsb_ReadPipe(::core::mem::transmute(interfacehandle), pipeid, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lengthtransferred), ::core::mem::transmute(overlapped)) } #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WinUsb_RegisterIsochBuffer(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, buffer: &mut u8, bufferlength: u32, isochbufferhandle: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL { +pub unsafe fn WinUsb_RegisterIsochBuffer(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, buffer: &mut [u8], isochbufferhandle: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinUsb_RegisterIsochBuffer(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, buffer: *mut u8, bufferlength: u32, isochbufferhandle: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - WinUsb_RegisterIsochBuffer(::core::mem::transmute(interfacehandle), pipeid, ::core::mem::transmute(buffer), bufferlength, ::core::mem::transmute(isochbufferhandle)) + WinUsb_RegisterIsochBuffer(::core::mem::transmute(interfacehandle), pipeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(isochbufferhandle)) } #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6481,22 +6481,22 @@ pub unsafe fn WinUsb_SetCurrentAlternateSetting(interfacehandle: *const ::core:: #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WinUsb_SetPipePolicy(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, policytype: u32, valuelength: u32, value: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL { +pub unsafe fn WinUsb_SetPipePolicy(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, policytype: u32, value: &[u8]) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinUsb_SetPipePolicy(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, policytype: u32, valuelength: u32, value: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - WinUsb_SetPipePolicy(::core::mem::transmute(interfacehandle), pipeid, policytype, valuelength, ::core::mem::transmute(value)) + WinUsb_SetPipePolicy(::core::mem::transmute(interfacehandle), pipeid, policytype, value.len() as _, ::core::mem::transmute(value.as_ptr())) } #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WinUsb_SetPowerPolicy(interfacehandle: *const ::core::ffi::c_void, policytype: u32, valuelength: u32, value: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL { +pub unsafe fn WinUsb_SetPowerPolicy(interfacehandle: *const ::core::ffi::c_void, policytype: u32, value: &[u8]) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinUsb_SetPowerPolicy(interfacehandle: *const ::core::ffi::c_void, policytype: u32, valuelength: u32, value: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - WinUsb_SetPowerPolicy(::core::mem::transmute(interfacehandle), policytype, valuelength, ::core::mem::transmute(value)) + WinUsb_SetPowerPolicy(::core::mem::transmute(interfacehandle), policytype, value.len() as _, ::core::mem::transmute(value.as_ptr())) } #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6554,12 +6554,12 @@ where #[doc = "*Required features: `\"Win32_Devices_Usb\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn WinUsb_WritePipe(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, buffer: &u8, bufferlength: u32, lengthtransferred: ::core::option::Option<&mut u32>, overlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>) -> super::super::Foundation::BOOL { +pub unsafe fn WinUsb_WritePipe(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, buffer: &[u8], lengthtransferred: ::core::option::Option<&mut u32>, overlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinUsb_WritePipe(interfacehandle: *const ::core::ffi::c_void, pipeid: u8, buffer: *const u8, bufferlength: u32, lengthtransferred: *mut u32, overlapped: *const super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL; } - WinUsb_WritePipe(::core::mem::transmute(interfacehandle), pipeid, ::core::mem::transmute(buffer), bufferlength, ::core::mem::transmute(lengthtransferred), ::core::mem::transmute(overlapped)) + WinUsb_WritePipe(::core::mem::transmute(interfacehandle), pipeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(lengthtransferred), ::core::mem::transmute(overlapped)) } #[repr(C)] #[doc = "*Required features: `\"Win32_Devices_Usb\"`*"] diff --git a/crates/libs/windows/src/Windows/Win32/Devices/WebServicesOnDevices/mod.rs b/crates/libs/windows/src/Windows/Win32/Devices/WebServicesOnDevices/mod.rs index 1d9315df78..f989d12918 100644 --- a/crates/libs/windows/src/Windows/Win32/Devices/WebServicesOnDevices/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Devices/WebServicesOnDevices/mod.rs @@ -37,7 +37,7 @@ impl IWSDAddress { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).Serialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), pszbuffer.len() as _, fsafe.into()).ok() + (::windows::core::Interface::vtable(self).Serialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszbuffer.as_ptr()), pszbuffer.len() as _, fsafe.into()).ok() } pub unsafe fn Deserialize<'a, P0>(&self, pszbuffer: P0) -> ::windows::core::Result<()> where @@ -280,12 +280,12 @@ pub struct IWSDAttachment_Vtbl { #[repr(transparent)] pub struct IWSDDeviceHost(::windows::core::IUnknown); impl IWSDDeviceHost { - pub unsafe fn Init<'a, P0, P1>(&self, pszlocalid: P0, pcontext: P1, pphostaddresses: &[::core::option::Option]) -> ::windows::core::Result<()> + pub unsafe fn Init<'a, P0, P1>(&self, pszlocalid: P0, pcontext: P1, pphostaddresses: ::core::option::Option<&[::core::option::Option]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::InParam<'a, IWSDXMLContext>>, { - (::windows::core::Interface::vtable(self).Init)(::windows::core::Interface::as_raw(self), pszlocalid.into(), pcontext.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pphostaddresses)), pphostaddresses.len() as _).ok() + (::windows::core::Interface::vtable(self).Init)(::windows::core::Interface::as_raw(self), pszlocalid.into(), pcontext.into().abi(), ::core::mem::transmute(pphostaddresses.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pphostaddresses.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn Start<'a, P0>(&self, ullinstanceid: u64, pscopelist: &WSD_URI_LIST, pnotificationsink: P0) -> ::windows::core::Result<()> where @@ -726,7 +726,7 @@ impl IWSDHttpAddress { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).base__.base__.Serialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), pszbuffer.len() as _, fsafe.into()).ok() + (::windows::core::Interface::vtable(self).base__.base__.Serialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszbuffer.as_ptr()), pszbuffer.len() as _, fsafe.into()).ok() } pub unsafe fn Deserialize<'a, P0>(&self, pszbuffer: P0) -> ::windows::core::Result<()> where @@ -1060,7 +1060,7 @@ pub struct IWSDHttpMessageParameters_Vtbl { pub struct IWSDInboundAttachment(::windows::core::IUnknown); impl IWSDInboundAttachment { pub unsafe fn Read(&self, pbuffer: &mut [u8], pdwnumberofbytesread: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuffer)), pbuffer.len() as _, ::core::mem::transmute(pdwnumberofbytesread)).ok() + (::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _, ::core::mem::transmute(pdwnumberofbytesread)).ok() } pub unsafe fn Close(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Close)(::windows::core::Interface::as_raw(self)).ok() @@ -1253,7 +1253,7 @@ pub struct IWSDOutboundAttachment(::windows::core::IUnknown); impl IWSDOutboundAttachment { pub unsafe fn Write(&self, pbuffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuffer)), pbuffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Close(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Close)(::windows::core::Interface::as_raw(self)).ok() @@ -1663,7 +1663,7 @@ impl IWSDServiceProxyEventing { where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).SubscribeToMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(poperations)), poperations.len() as _, punknown.into().abi(), ::core::mem::transmute(pexpires), ::core::mem::transmute(pany), ::core::mem::transmute(ppexpires), ::core::mem::transmute(ppany)).ok() + (::windows::core::Interface::vtable(self).SubscribeToMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poperations.as_ptr()), poperations.len() as _, punknown.into().abi(), ::core::mem::transmute(pexpires), ::core::mem::transmute(pany), ::core::mem::transmute(ppexpires), ::core::mem::transmute(ppany)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1674,7 +1674,7 @@ impl IWSDServiceProxyEventing { P2: ::std::convert::Into<::windows::core::InParam<'a, IWSDAsyncCallback>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).BeginSubscribeToMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(poperations)), poperations.len() as _, punknown.into().abi(), ::core::mem::transmute(pexpires), ::core::mem::transmute(pany), pasyncstate.into().abi(), pasynccallback.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).BeginSubscribeToMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poperations.as_ptr()), poperations.len() as _, punknown.into().abi(), ::core::mem::transmute(pexpires), ::core::mem::transmute(pany), pasyncstate.into().abi(), pasynccallback.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1682,10 +1682,10 @@ impl IWSDServiceProxyEventing { where P0: ::std::convert::Into<::windows::core::InParam<'a, IWSDAsyncResult>>, { - (::windows::core::Interface::vtable(self).EndSubscribeToMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(poperations)), poperations.len() as _, presult.into().abi(), ::core::mem::transmute(ppexpires), ::core::mem::transmute(ppany)).ok() + (::windows::core::Interface::vtable(self).EndSubscribeToMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poperations.as_ptr()), poperations.len() as _, presult.into().abi(), ::core::mem::transmute(ppexpires), ::core::mem::transmute(ppany)).ok() } pub unsafe fn UnsubscribeToMultipleOperations(&self, poperations: &[WSD_OPERATION], pany: &WSDXML_ELEMENT) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UnsubscribeToMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(poperations)), poperations.len() as _, ::core::mem::transmute(pany)).ok() + (::windows::core::Interface::vtable(self).UnsubscribeToMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poperations.as_ptr()), poperations.len() as _, ::core::mem::transmute(pany)).ok() } pub unsafe fn BeginUnsubscribeToMultipleOperations<'a, P0, P1>(&self, poperations: &[WSD_OPERATION], pany: ::core::option::Option<&WSDXML_ELEMENT>, pasyncstate: P0, pasynccallback: P1) -> ::windows::core::Result where @@ -1693,18 +1693,18 @@ impl IWSDServiceProxyEventing { P1: ::std::convert::Into<::windows::core::InParam<'a, IWSDAsyncCallback>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).BeginUnsubscribeToMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(poperations)), poperations.len() as _, ::core::mem::transmute(pany), pasyncstate.into().abi(), pasynccallback.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).BeginUnsubscribeToMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poperations.as_ptr()), poperations.len() as _, ::core::mem::transmute(pany), pasyncstate.into().abi(), pasynccallback.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn EndUnsubscribeToMultipleOperations<'a, P0>(&self, poperations: &[WSD_OPERATION], presult: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IWSDAsyncResult>>, { - (::windows::core::Interface::vtable(self).EndUnsubscribeToMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(poperations)), poperations.len() as _, presult.into().abi()).ok() + (::windows::core::Interface::vtable(self).EndUnsubscribeToMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poperations.as_ptr()), poperations.len() as _, presult.into().abi()).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn RenewMultipleOperations(&self, poperations: &[WSD_OPERATION], pexpires: ::core::option::Option<&WSD_EVENTING_EXPIRES>, pany: ::core::option::Option<&WSDXML_ELEMENT>, ppexpires: ::core::option::Option<&mut *mut WSD_EVENTING_EXPIRES>, ppany: ::core::option::Option<&mut *mut WSDXML_ELEMENT>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RenewMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(poperations)), poperations.len() as _, ::core::mem::transmute(pexpires), ::core::mem::transmute(pany), ::core::mem::transmute(ppexpires), ::core::mem::transmute(ppany)).ok() + (::windows::core::Interface::vtable(self).RenewMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poperations.as_ptr()), poperations.len() as _, ::core::mem::transmute(pexpires), ::core::mem::transmute(pany), ::core::mem::transmute(ppexpires), ::core::mem::transmute(ppany)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1714,7 +1714,7 @@ impl IWSDServiceProxyEventing { P1: ::std::convert::Into<::windows::core::InParam<'a, IWSDAsyncCallback>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).BeginRenewMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(poperations)), poperations.len() as _, ::core::mem::transmute(pexpires), ::core::mem::transmute(pany), pasyncstate.into().abi(), pasynccallback.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).BeginRenewMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poperations.as_ptr()), poperations.len() as _, ::core::mem::transmute(pexpires), ::core::mem::transmute(pany), pasyncstate.into().abi(), pasynccallback.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1722,12 +1722,12 @@ impl IWSDServiceProxyEventing { where P0: ::std::convert::Into<::windows::core::InParam<'a, IWSDAsyncResult>>, { - (::windows::core::Interface::vtable(self).EndRenewMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(poperations)), poperations.len() as _, presult.into().abi(), ::core::mem::transmute(ppexpires), ::core::mem::transmute(ppany)).ok() + (::windows::core::Interface::vtable(self).EndRenewMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poperations.as_ptr()), poperations.len() as _, presult.into().abi(), ::core::mem::transmute(ppexpires), ::core::mem::transmute(ppany)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetStatusForMultipleOperations(&self, poperations: &[WSD_OPERATION], pany: ::core::option::Option<&WSDXML_ELEMENT>, ppexpires: ::core::option::Option<&mut *mut WSD_EVENTING_EXPIRES>, ppany: ::core::option::Option<&mut *mut WSDXML_ELEMENT>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStatusForMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(poperations)), poperations.len() as _, ::core::mem::transmute(pany), ::core::mem::transmute(ppexpires), ::core::mem::transmute(ppany)).ok() + (::windows::core::Interface::vtable(self).GetStatusForMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poperations.as_ptr()), poperations.len() as _, ::core::mem::transmute(pany), ::core::mem::transmute(ppexpires), ::core::mem::transmute(ppany)).ok() } pub unsafe fn BeginGetStatusForMultipleOperations<'a, P0, P1>(&self, poperations: &[WSD_OPERATION], pany: ::core::option::Option<&WSDXML_ELEMENT>, pasyncstate: P0, pasynccallback: P1) -> ::windows::core::Result where @@ -1735,7 +1735,7 @@ impl IWSDServiceProxyEventing { P1: ::std::convert::Into<::windows::core::InParam<'a, IWSDAsyncCallback>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).BeginGetStatusForMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(poperations)), poperations.len() as _, ::core::mem::transmute(pany), pasyncstate.into().abi(), pasynccallback.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).BeginGetStatusForMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poperations.as_ptr()), poperations.len() as _, ::core::mem::transmute(pany), pasyncstate.into().abi(), pasynccallback.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1743,7 +1743,7 @@ impl IWSDServiceProxyEventing { where P0: ::std::convert::Into<::windows::core::InParam<'a, IWSDAsyncResult>>, { - (::windows::core::Interface::vtable(self).EndGetStatusForMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(poperations)), poperations.len() as _, presult.into().abi(), ::core::mem::transmute(ppexpires), ::core::mem::transmute(ppany)).ok() + (::windows::core::Interface::vtable(self).EndGetStatusForMultipleOperations)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poperations.as_ptr()), poperations.len() as _, presult.into().abi(), ::core::mem::transmute(ppexpires), ::core::mem::transmute(ppany)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1868,13 +1868,13 @@ impl IWSDSignatureProperty { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).IsMessageSignatureTrusted)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetKeyInfo(&self, pbkeyinfo: ::core::option::Option<&mut u8>, pdwkeyinfosize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetKeyInfo(&self, pbkeyinfo: *mut u8, pdwkeyinfosize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetKeyInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbkeyinfo), ::core::mem::transmute(pdwkeyinfosize)).ok() } - pub unsafe fn GetSignature(&self, pbsignature: ::core::option::Option<&mut u8>, pdwsignaturesize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetSignature(&self, pbsignature: *mut u8, pdwsignaturesize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSignature)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbsignature), ::core::mem::transmute(pdwsignaturesize)).ok() } - pub unsafe fn GetSignedInfoHash(&self, pbsignedinfohash: ::core::option::Option<&mut u8>, pdwhashsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetSignedInfoHash(&self, pbsignedinfohash: *mut u8, pdwhashsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSignedInfoHash)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbsignedinfohash), ::core::mem::transmute(pdwhashsize)).ok() } } @@ -1939,7 +1939,7 @@ impl IWSDTransportAddress { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).base__.Serialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), pszbuffer.len() as _, fsafe.into()).ok() + (::windows::core::Interface::vtable(self).base__.Serialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszbuffer.as_ptr()), pszbuffer.len() as _, fsafe.into()).ok() } pub unsafe fn Deserialize<'a, P0>(&self, pszbuffer: P0) -> ::windows::core::Result<()> where @@ -2047,7 +2047,7 @@ impl IWSDUdpAddress { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).base__.base__.Serialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), pszbuffer.len() as _, fsafe.into()).ok() + (::windows::core::Interface::vtable(self).base__.base__.Serialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszbuffer.as_ptr()), pszbuffer.len() as _, fsafe.into()).ok() } pub unsafe fn Deserialize<'a, P0>(&self, pszbuffer: P0) -> ::windows::core::Result<()> where @@ -2328,10 +2328,10 @@ impl IWSDXMLContext { (::windows::core::Interface::vtable(self).AddNameToNamespace)(::windows::core::Interface::as_raw(self), pszuri.into(), pszname.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut WSDXML_NAME>(result__) } pub unsafe fn SetNamespaces(&self, pnamespaces: &[*const WSDXML_NAMESPACE], blayernumber: u8) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetNamespaces)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pnamespaces)), pnamespaces.len() as _, blayernumber).ok() + (::windows::core::Interface::vtable(self).SetNamespaces)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnamespaces.as_ptr()), pnamespaces.len() as _, blayernumber).ok() } pub unsafe fn SetTypes(&self, ptypes: &[*const WSDXML_TYPE], blayernumber: u8) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ptypes)), ptypes.len() as _, blayernumber).ok() + (::windows::core::Interface::vtable(self).SetTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptypes.as_ptr()), ptypes.len() as _, blayernumber).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3258,7 +3258,7 @@ where } #[doc = "*Required features: `\"Win32_Devices_WebServicesOnDevices\"`*"] #[inline] -pub unsafe fn WSDCreateDeviceHost2<'a, P0, P1>(pszlocalid: P0, pcontext: P1, pconfigparams: &[WSD_CONFIG_PARAM]) -> ::windows::core::Result +pub unsafe fn WSDCreateDeviceHost2<'a, P0, P1>(pszlocalid: P0, pcontext: P1, pconfigparams: ::core::option::Option<&[WSD_CONFIG_PARAM]>) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::InParam<'a, IWSDXMLContext>>, @@ -3268,11 +3268,11 @@ where fn WSDCreateDeviceHost2(pszlocalid: ::windows::core::PCWSTR, pcontext: *mut ::core::ffi::c_void, pconfigparams: *const WSD_CONFIG_PARAM, dwconfigparamcount: u32, ppdevicehost: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - WSDCreateDeviceHost2(pszlocalid.into(), pcontext.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pconfigparams)), pconfigparams.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + WSDCreateDeviceHost2(pszlocalid.into(), pcontext.into().abi(), ::core::mem::transmute(pconfigparams.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pconfigparams.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Devices_WebServicesOnDevices\"`*"] #[inline] -pub unsafe fn WSDCreateDeviceHostAdvanced<'a, P0, P1>(pszlocalid: P0, pcontext: P1, pphostaddresses: &[::core::option::Option]) -> ::windows::core::Result +pub unsafe fn WSDCreateDeviceHostAdvanced<'a, P0, P1>(pszlocalid: P0, pcontext: P1, pphostaddresses: ::core::option::Option<&[::core::option::Option]>) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::InParam<'a, IWSDXMLContext>>, @@ -3282,7 +3282,7 @@ where fn WSDCreateDeviceHostAdvanced(pszlocalid: ::windows::core::PCWSTR, pcontext: *mut ::core::ffi::c_void, pphostaddresses: *const *mut ::core::ffi::c_void, dwhostaddresscount: u32, ppdevicehost: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - WSDCreateDeviceHostAdvanced(pszlocalid.into(), pcontext.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pphostaddresses)), pphostaddresses.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + WSDCreateDeviceHostAdvanced(pszlocalid.into(), pcontext.into().abi(), ::core::mem::transmute(pphostaddresses.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pphostaddresses.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Devices_WebServicesOnDevices\"`*"] #[inline] @@ -3301,7 +3301,7 @@ where } #[doc = "*Required features: `\"Win32_Devices_WebServicesOnDevices\"`*"] #[inline] -pub unsafe fn WSDCreateDeviceProxy2<'a, P0, P1, P2>(pszdeviceid: P0, pszlocalid: P1, pcontext: P2, pconfigparams: &[WSD_CONFIG_PARAM]) -> ::windows::core::Result +pub unsafe fn WSDCreateDeviceProxy2<'a, P0, P1, P2>(pszdeviceid: P0, pszlocalid: P1, pcontext: P2, pconfigparams: ::core::option::Option<&[WSD_CONFIG_PARAM]>) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -3312,7 +3312,7 @@ where fn WSDCreateDeviceProxy2(pszdeviceid: ::windows::core::PCWSTR, pszlocalid: ::windows::core::PCWSTR, pcontext: *mut ::core::ffi::c_void, pconfigparams: *const WSD_CONFIG_PARAM, dwconfigparamcount: u32, ppdeviceproxy: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - WSDCreateDeviceProxy2(pszdeviceid.into(), pszlocalid.into(), pcontext.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pconfigparams)), pconfigparams.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + WSDCreateDeviceProxy2(pszdeviceid.into(), pszlocalid.into(), pcontext.into().abi(), ::core::mem::transmute(pconfigparams.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pconfigparams.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Devices_WebServicesOnDevices\"`*"] #[inline] @@ -3345,7 +3345,7 @@ where } #[doc = "*Required features: `\"Win32_Devices_WebServicesOnDevices\"`*"] #[inline] -pub unsafe fn WSDCreateDiscoveryProvider2<'a, P0>(pcontext: P0, pconfigparams: &[WSD_CONFIG_PARAM]) -> ::windows::core::Result +pub unsafe fn WSDCreateDiscoveryProvider2<'a, P0>(pcontext: P0, pconfigparams: ::core::option::Option<&[WSD_CONFIG_PARAM]>) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IWSDXMLContext>>, { @@ -3354,7 +3354,7 @@ where fn WSDCreateDiscoveryProvider2(pcontext: *mut ::core::ffi::c_void, pconfigparams: *const WSD_CONFIG_PARAM, dwconfigparamcount: u32, ppprovider: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - WSDCreateDiscoveryProvider2(pcontext.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pconfigparams)), pconfigparams.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + WSDCreateDiscoveryProvider2(pcontext.into().abi(), ::core::mem::transmute(pconfigparams.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pconfigparams.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Devices_WebServicesOnDevices\"`*"] #[inline] @@ -3371,7 +3371,7 @@ where } #[doc = "*Required features: `\"Win32_Devices_WebServicesOnDevices\"`*"] #[inline] -pub unsafe fn WSDCreateDiscoveryPublisher2<'a, P0>(pcontext: P0, pconfigparams: &[WSD_CONFIG_PARAM]) -> ::windows::core::Result +pub unsafe fn WSDCreateDiscoveryPublisher2<'a, P0>(pcontext: P0, pconfigparams: ::core::option::Option<&[WSD_CONFIG_PARAM]>) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IWSDXMLContext>>, { @@ -3380,7 +3380,7 @@ where fn WSDCreateDiscoveryPublisher2(pcontext: *mut ::core::ffi::c_void, pconfigparams: *const WSD_CONFIG_PARAM, dwconfigparamcount: u32, pppublisher: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - WSDCreateDiscoveryPublisher2(pcontext.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pconfigparams)), pconfigparams.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + WSDCreateDiscoveryPublisher2(pcontext.into().abi(), ::core::mem::transmute(pconfigparams.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pconfigparams.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Devices_WebServicesOnDevices\"`*"] #[inline] @@ -3515,21 +3515,21 @@ where } #[doc = "*Required features: `\"Win32_Devices_WebServicesOnDevices\"`*"] #[inline] -pub unsafe fn WSDGetConfigurationOption(dwoption: u32, pvoid: *mut ::core::ffi::c_void, cboutbuffer: u32) -> ::windows::core::Result<()> { +pub unsafe fn WSDGetConfigurationOption(dwoption: u32, pvoid: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSDGetConfigurationOption(dwoption: u32, pvoid: *mut ::core::ffi::c_void, cboutbuffer: u32) -> ::windows::core::HRESULT; } - WSDGetConfigurationOption(dwoption, ::core::mem::transmute(pvoid), cboutbuffer).ok() + WSDGetConfigurationOption(dwoption, ::core::mem::transmute(pvoid.as_ptr()), pvoid.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_WebServicesOnDevices\"`*"] #[inline] -pub unsafe fn WSDSetConfigurationOption(dwoption: u32, pvoid: *const ::core::ffi::c_void, cbinbuffer: u32) -> ::windows::core::Result<()> { +pub unsafe fn WSDSetConfigurationOption(dwoption: u32, pvoid: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSDSetConfigurationOption(dwoption: u32, pvoid: *const ::core::ffi::c_void, cbinbuffer: u32) -> ::windows::core::HRESULT; } - WSDSetConfigurationOption(dwoption, ::core::mem::transmute(pvoid), cbinbuffer).ok() + WSDSetConfigurationOption(dwoption, ::core::mem::transmute(pvoid.as_ptr()), pvoid.len() as _).ok() } #[doc = "*Required features: `\"Win32_Devices_WebServicesOnDevices\"`*"] #[repr(transparent)] @@ -3594,21 +3594,21 @@ impl ::core::default::Default for WSDUdpRetransmitParams { } #[doc = "*Required features: `\"Win32_Devices_WebServicesOnDevices\"`*"] #[inline] -pub unsafe fn WSDUriDecode(source: &[u16], destout: &mut ::windows::core::PWSTR, cchdestout: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { +pub unsafe fn WSDUriDecode(source: &[u16], destout: *mut ::windows::core::PWSTR, cchdestout: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSDUriDecode(source: ::windows::core::PCWSTR, cchsource: u32, destout: *mut ::windows::core::PWSTR, cchdestout: *mut u32) -> ::windows::core::HRESULT; } - WSDUriDecode(::core::mem::transmute(::windows::core::as_ptr_or_null(source)), source.len() as _, ::core::mem::transmute(destout), ::core::mem::transmute(cchdestout)).ok() + WSDUriDecode(::core::mem::transmute(source.as_ptr()), source.len() as _, ::core::mem::transmute(destout), ::core::mem::transmute(cchdestout)).ok() } #[doc = "*Required features: `\"Win32_Devices_WebServicesOnDevices\"`*"] #[inline] -pub unsafe fn WSDUriEncode(source: &[u16], destout: &mut ::windows::core::PWSTR, cchdestout: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { +pub unsafe fn WSDUriEncode(source: &[u16], destout: *mut ::windows::core::PWSTR, cchdestout: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSDUriEncode(source: ::windows::core::PCWSTR, cchsource: u32, destout: *mut ::windows::core::PWSTR, cchdestout: *mut u32) -> ::windows::core::HRESULT; } - WSDUriEncode(::core::mem::transmute(::windows::core::as_ptr_or_null(source)), source.len() as _, ::core::mem::transmute(destout), ::core::mem::transmute(cchdestout)).ok() + WSDUriEncode(::core::mem::transmute(source.as_ptr()), source.len() as _, ::core::mem::transmute(destout), ::core::mem::transmute(cchdestout)).ok() } #[doc = "*Required features: `\"Win32_Devices_WebServicesOnDevices\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/Foundation/mod.rs b/crates/libs/windows/src/Windows/Win32/Foundation/mod.rs index 48f60a0285..07215c2b9b 100644 --- a/crates/libs/windows/src/Windows/Win32/Foundation/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Foundation/mod.rs @@ -238,7 +238,7 @@ impl BSTR { if value.is_empty() { return Self(::core::ptr::null_mut()); } - unsafe { SysAllocStringLen(value) } + unsafe { SysAllocStringLen(Some(value)) } } pub fn as_wide(&self) -> &[u16] { if self.0.is_null() { @@ -12873,12 +12873,12 @@ where } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[inline] -pub unsafe fn SysAllocStringLen(strin: &[u16]) -> BSTR { +pub unsafe fn SysAllocStringLen(strin: ::core::option::Option<&[u16]>) -> BSTR { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SysAllocStringLen(strin: ::windows::core::PCWSTR, ui: u32) -> BSTR; } - SysAllocStringLen(::core::mem::transmute(::windows::core::as_ptr_or_null(strin)), strin.len() as _) + SysAllocStringLen(::core::mem::transmute(strin.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), strin.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/Gaming/mod.rs b/crates/libs/windows/src/Windows/Win32/Gaming/mod.rs index 5777efdbf1..45894d7e1d 100644 --- a/crates/libs/windows/src/Windows/Win32/Gaming/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Gaming/mod.rs @@ -626,7 +626,7 @@ impl IXblIdpAuthManager { P7: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetTokenAndSignatureWithTokenResult)(::windows::core::Interface::as_raw(self), msaaccountid.into(), appsid.into(), msatarget.into(), msapolicy.into(), httpmethod.into(), uri.into(), headers.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(body)), body.len() as _, forcerefresh.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetTokenAndSignatureWithTokenResult)(::windows::core::Interface::as_raw(self), msaaccountid.into(), appsid.into(), msatarget.into(), msapolicy.into(), httpmethod.into(), uri.into(), headers.into(), ::core::mem::transmute(body.as_ptr()), body.len() as _, forcerefresh.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1102,16 +1102,16 @@ where } #[doc = "*Required features: `\"Win32_Gaming\"`*"] #[inline] -pub unsafe fn ShowPlayerPickerUI(promptdisplaytext: &::windows::core::HSTRING, xuids: &[::windows::core::HSTRING], preselectedxuids: &[::windows::core::HSTRING], minselectioncount: usize, maxselectioncount: usize, completionroutine: PlayerPickerUICompletionRoutine, context: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { +pub unsafe fn ShowPlayerPickerUI(promptdisplaytext: &::windows::core::HSTRING, xuids: &[::windows::core::HSTRING], preselectedxuids: ::core::option::Option<&[::windows::core::HSTRING]>, minselectioncount: usize, maxselectioncount: usize, completionroutine: PlayerPickerUICompletionRoutine, context: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ShowPlayerPickerUI(promptdisplaytext: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, xuids: *const ::core::mem::ManuallyDrop<::windows::core::HSTRING>, xuidscount: usize, preselectedxuids: *const ::core::mem::ManuallyDrop<::windows::core::HSTRING>, preselectedxuidscount: usize, minselectioncount: usize, maxselectioncount: usize, completionroutine: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void) -> ::windows::core::HRESULT; } - ShowPlayerPickerUI(::core::mem::transmute_copy(promptdisplaytext), ::core::mem::transmute(::windows::core::as_ptr_or_null(xuids)), xuids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(preselectedxuids)), preselectedxuids.len() as _, minselectioncount, maxselectioncount, ::core::mem::transmute(completionroutine), ::core::mem::transmute(context)).ok() + ShowPlayerPickerUI(::core::mem::transmute_copy(promptdisplaytext), ::core::mem::transmute(xuids.as_ptr()), xuids.len() as _, ::core::mem::transmute(preselectedxuids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), preselectedxuids.as_deref().map_or(0, |slice| slice.len() as _), minselectioncount, maxselectioncount, ::core::mem::transmute(completionroutine), ::core::mem::transmute(context)).ok() } #[doc = "*Required features: `\"Win32_Gaming\"`*"] #[inline] -pub unsafe fn ShowPlayerPickerUIForUser<'a, P0>(user: P0, promptdisplaytext: &::windows::core::HSTRING, xuids: &[::windows::core::HSTRING], preselectedxuids: &[::windows::core::HSTRING], minselectioncount: usize, maxselectioncount: usize, completionroutine: PlayerPickerUICompletionRoutine, context: *const ::core::ffi::c_void) -> ::windows::core::Result<()> +pub unsafe fn ShowPlayerPickerUIForUser<'a, P0>(user: P0, promptdisplaytext: &::windows::core::HSTRING, xuids: &[::windows::core::HSTRING], preselectedxuids: ::core::option::Option<&[::windows::core::HSTRING]>, minselectioncount: usize, maxselectioncount: usize, completionroutine: PlayerPickerUICompletionRoutine, context: *const ::core::ffi::c_void) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IInspectable>>, { @@ -1119,7 +1119,7 @@ where extern "system" { fn ShowPlayerPickerUIForUser(user: *mut ::core::ffi::c_void, promptdisplaytext: ::core::mem::ManuallyDrop<::windows::core::HSTRING>, xuids: *const ::core::mem::ManuallyDrop<::windows::core::HSTRING>, xuidscount: usize, preselectedxuids: *const ::core::mem::ManuallyDrop<::windows::core::HSTRING>, preselectedxuidscount: usize, minselectioncount: usize, maxselectioncount: usize, completionroutine: *mut ::core::ffi::c_void, context: *const ::core::ffi::c_void) -> ::windows::core::HRESULT; } - ShowPlayerPickerUIForUser(user.into().abi(), ::core::mem::transmute_copy(promptdisplaytext), ::core::mem::transmute(::windows::core::as_ptr_or_null(xuids)), xuids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(preselectedxuids)), preselectedxuids.len() as _, minselectioncount, maxselectioncount, ::core::mem::transmute(completionroutine), ::core::mem::transmute(context)).ok() + ShowPlayerPickerUIForUser(user.into().abi(), ::core::mem::transmute_copy(promptdisplaytext), ::core::mem::transmute(xuids.as_ptr()), xuids.len() as _, ::core::mem::transmute(preselectedxuids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), preselectedxuids.as_deref().map_or(0, |slice| slice.len() as _), minselectioncount, maxselectioncount, ::core::mem::transmute(completionroutine), ::core::mem::transmute(context)).ok() } #[doc = "*Required features: `\"Win32_Gaming\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/Globalization/mod.rs b/crates/libs/windows/src/Windows/Win32/Globalization/mod.rs index a9a38ae665..24c7a731d7 100644 --- a/crates/libs/windows/src/Windows/Win32/Globalization/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Globalization/mod.rs @@ -839,7 +839,7 @@ pub unsafe fn CompareStringA(locale: u32, dwcmpflags: u32, lpstring1: &[i8], lps extern "system" { fn CompareStringA(locale: u32, dwcmpflags: u32, lpstring1: *const i8, cchcount1: i32, lpstring2: *const i8, cchcount2: i32) -> i32; } - CompareStringA(locale, dwcmpflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring1)), lpstring1.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring2)), lpstring2.len() as _) + CompareStringA(locale, dwcmpflags, ::core::mem::transmute(lpstring1.as_ptr()), lpstring1.len() as _, ::core::mem::transmute(lpstring2.as_ptr()), lpstring2.len() as _) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -853,7 +853,7 @@ where extern "system" { fn CompareStringEx(lplocalename: ::windows::core::PCWSTR, dwcmpflags: COMPARE_STRING_FLAGS, lpstring1: ::windows::core::PCWSTR, cchcount1: i32, lpstring2: ::windows::core::PCWSTR, cchcount2: i32, lpversioninformation: *mut NLSVERSIONINFO, lpreserved: *mut ::core::ffi::c_void, lparam: super::Foundation::LPARAM) -> i32; } - CompareStringEx(lplocalename.into(), dwcmpflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring1)), lpstring1.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring2)), lpstring2.len() as _, ::core::mem::transmute(lpversioninformation), ::core::mem::transmute(lpreserved), lparam.into()) + CompareStringEx(lplocalename.into(), dwcmpflags, ::core::mem::transmute(lpstring1.as_ptr()), lpstring1.len() as _, ::core::mem::transmute(lpstring2.as_ptr()), lpstring2.len() as _, ::core::mem::transmute(lpversioninformation), ::core::mem::transmute(lpreserved), lparam.into()) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -866,7 +866,7 @@ where extern "system" { fn CompareStringOrdinal(lpstring1: ::windows::core::PCWSTR, cchcount1: i32, lpstring2: ::windows::core::PCWSTR, cchcount2: i32, bignorecase: super::Foundation::BOOL) -> i32; } - CompareStringOrdinal(::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring1)), lpstring1.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring2)), lpstring2.len() as _, bignorecase.into()) + CompareStringOrdinal(::core::mem::transmute(lpstring1.as_ptr()), lpstring1.len() as _, ::core::mem::transmute(lpstring2.as_ptr()), lpstring2.len() as _, bignorecase.into()) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] @@ -875,7 +875,7 @@ pub unsafe fn CompareStringW(locale: u32, dwcmpflags: u32, lpstring1: &[u16], lp extern "system" { fn CompareStringW(locale: u32, dwcmpflags: u32, lpstring1: ::windows::core::PCWSTR, cchcount1: i32, lpstring2: ::windows::core::PCWSTR, cchcount2: i32) -> i32; } - CompareStringW(locale, dwcmpflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring1)), lpstring1.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring2)), lpstring2.len() as _) + CompareStringW(locale, dwcmpflags, ::core::mem::transmute(lpstring1.as_ptr()), lpstring1.len() as _, ::core::mem::transmute(lpstring2.as_ptr()), lpstring2.len() as _) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] @@ -1558,7 +1558,7 @@ pub unsafe fn FindNLSString(locale: u32, dwfindnlsstringflags: u32, lpstringsour extern "system" { fn FindNLSString(locale: u32, dwfindnlsstringflags: u32, lpstringsource: ::windows::core::PCWSTR, cchsource: i32, lpstringvalue: ::windows::core::PCWSTR, cchvalue: i32, pcchfound: *mut i32) -> i32; } - FindNLSString(locale, dwfindnlsstringflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstringsource)), lpstringsource.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstringvalue)), lpstringvalue.len() as _, ::core::mem::transmute(pcchfound)) + FindNLSString(locale, dwfindnlsstringflags, ::core::mem::transmute(lpstringsource.as_ptr()), lpstringsource.len() as _, ::core::mem::transmute(lpstringvalue.as_ptr()), lpstringvalue.len() as _, ::core::mem::transmute(pcchfound)) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1572,7 +1572,7 @@ where extern "system" { fn FindNLSStringEx(lplocalename: ::windows::core::PCWSTR, dwfindnlsstringflags: u32, lpstringsource: ::windows::core::PCWSTR, cchsource: i32, lpstringvalue: ::windows::core::PCWSTR, cchvalue: i32, pcchfound: *mut i32, lpversioninformation: *const NLSVERSIONINFO, lpreserved: *const ::core::ffi::c_void, sorthandle: super::Foundation::LPARAM) -> i32; } - FindNLSStringEx(lplocalename.into(), dwfindnlsstringflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstringsource)), lpstringsource.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstringvalue)), lpstringvalue.len() as _, ::core::mem::transmute(pcchfound), ::core::mem::transmute(lpversioninformation), ::core::mem::transmute(lpreserved), sorthandle.into()) + FindNLSStringEx(lplocalename.into(), dwfindnlsstringflags, ::core::mem::transmute(lpstringsource.as_ptr()), lpstringsource.len() as _, ::core::mem::transmute(lpstringvalue.as_ptr()), lpstringvalue.len() as _, ::core::mem::transmute(pcchfound), ::core::mem::transmute(lpversioninformation), ::core::mem::transmute(lpreserved), sorthandle.into()) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1585,25 +1585,25 @@ where extern "system" { fn FindStringOrdinal(dwfindstringordinalflags: u32, lpstringsource: ::windows::core::PCWSTR, cchsource: i32, lpstringvalue: ::windows::core::PCWSTR, cchvalue: i32, bignorecase: super::Foundation::BOOL) -> i32; } - FindStringOrdinal(dwfindstringordinalflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstringsource)), lpstringsource.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstringvalue)), lpstringvalue.len() as _, bignorecase.into()) + FindStringOrdinal(dwfindstringordinalflags, ::core::mem::transmute(lpstringsource.as_ptr()), lpstringsource.len() as _, ::core::mem::transmute(lpstringvalue.as_ptr()), lpstringvalue.len() as _, bignorecase.into()) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn FoldStringA(dwmapflags: FOLD_STRING_MAP_FLAGS, lpsrcstr: &[u8], lpdeststr: &mut [u8]) -> i32 { +pub unsafe fn FoldStringA(dwmapflags: FOLD_STRING_MAP_FLAGS, lpsrcstr: &[u8], lpdeststr: ::core::option::Option<&mut [u8]>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn FoldStringA(dwmapflags: FOLD_STRING_MAP_FLAGS, lpsrcstr: ::windows::core::PCSTR, cchsrc: i32, lpdeststr: ::windows::core::PSTR, cchdest: i32) -> i32; } - FoldStringA(dwmapflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpsrcstr)), lpsrcstr.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdeststr)), lpdeststr.len() as _) + FoldStringA(dwmapflags, ::core::mem::transmute(lpsrcstr.as_ptr()), lpsrcstr.len() as _, ::core::mem::transmute(lpdeststr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdeststr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn FoldStringW(dwmapflags: FOLD_STRING_MAP_FLAGS, lpsrcstr: &[u16], lpdeststr: &mut [u16]) -> i32 { +pub unsafe fn FoldStringW(dwmapflags: FOLD_STRING_MAP_FLAGS, lpsrcstr: &[u16], lpdeststr: ::core::option::Option<&mut [u16]>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn FoldStringW(dwmapflags: FOLD_STRING_MAP_FLAGS, lpsrcstr: ::windows::core::PCWSTR, cchsrc: i32, lpdeststr: ::windows::core::PWSTR, cchdest: i32) -> i32; } - FoldStringW(dwmapflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpsrcstr)), lpsrcstr.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdeststr)), lpdeststr.len() as _) + FoldStringW(dwmapflags, ::core::mem::transmute(lpsrcstr.as_ptr()), lpsrcstr.len() as _, ::core::mem::transmute(lpdeststr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdeststr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] pub const GEOID_NOT_AVAILABLE: i32 = -1i32; @@ -1687,16 +1687,16 @@ pub unsafe fn GetCPInfoExW(codepage: u32, dwflags: u32, lpcpinfoex: &mut CPINFOE } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn GetCalendarInfoA(locale: u32, calendar: u32, caltype: u32, lpcaldata: &mut [u8], lpvalue: ::core::option::Option<&mut u32>) -> i32 { +pub unsafe fn GetCalendarInfoA(locale: u32, calendar: u32, caltype: u32, lpcaldata: ::core::option::Option<&mut [u8]>, lpvalue: ::core::option::Option<&mut u32>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetCalendarInfoA(locale: u32, calendar: u32, caltype: u32, lpcaldata: ::windows::core::PSTR, cchdata: i32, lpvalue: *mut u32) -> i32; } - GetCalendarInfoA(locale, calendar, caltype, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpcaldata)), lpcaldata.len() as _, ::core::mem::transmute(lpvalue)) + GetCalendarInfoA(locale, calendar, caltype, ::core::mem::transmute(lpcaldata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpcaldata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpvalue)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn GetCalendarInfoEx<'a, P0, P1>(lplocalename: P0, calendar: u32, lpreserved: P1, caltype: u32, lpcaldata: &mut [u16], lpvalue: ::core::option::Option<&mut u32>) -> i32 +pub unsafe fn GetCalendarInfoEx<'a, P0, P1>(lplocalename: P0, calendar: u32, lpreserved: P1, caltype: u32, lpcaldata: ::core::option::Option<&mut [u16]>, lpvalue: ::core::option::Option<&mut u32>) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -1705,20 +1705,20 @@ where extern "system" { fn GetCalendarInfoEx(lplocalename: ::windows::core::PCWSTR, calendar: u32, lpreserved: ::windows::core::PCWSTR, caltype: u32, lpcaldata: ::windows::core::PWSTR, cchdata: i32, lpvalue: *mut u32) -> i32; } - GetCalendarInfoEx(lplocalename.into(), calendar, lpreserved.into(), caltype, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpcaldata)), lpcaldata.len() as _, ::core::mem::transmute(lpvalue)) + GetCalendarInfoEx(lplocalename.into(), calendar, lpreserved.into(), caltype, ::core::mem::transmute(lpcaldata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpcaldata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpvalue)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn GetCalendarInfoW(locale: u32, calendar: u32, caltype: u32, lpcaldata: &mut [u16], lpvalue: ::core::option::Option<&mut u32>) -> i32 { +pub unsafe fn GetCalendarInfoW(locale: u32, calendar: u32, caltype: u32, lpcaldata: ::core::option::Option<&mut [u16]>, lpvalue: ::core::option::Option<&mut u32>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetCalendarInfoW(locale: u32, calendar: u32, caltype: u32, lpcaldata: ::windows::core::PWSTR, cchdata: i32, lpvalue: *mut u32) -> i32; } - GetCalendarInfoW(locale, calendar, caltype, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpcaldata)), lpcaldata.len() as _, ::core::mem::transmute(lpvalue)) + GetCalendarInfoW(locale, calendar, caltype, ::core::mem::transmute(lpcaldata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpcaldata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpvalue)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn GetCurrencyFormatA<'a, P0>(locale: u32, dwflags: u32, lpvalue: P0, lpformat: ::core::option::Option<&CURRENCYFMTA>, lpcurrencystr: &mut [u8]) -> i32 +pub unsafe fn GetCurrencyFormatA<'a, P0>(locale: u32, dwflags: u32, lpvalue: P0, lpformat: ::core::option::Option<&CURRENCYFMTA>, lpcurrencystr: ::core::option::Option<&mut [u8]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -1726,11 +1726,11 @@ where extern "system" { fn GetCurrencyFormatA(locale: u32, dwflags: u32, lpvalue: ::windows::core::PCSTR, lpformat: *const CURRENCYFMTA, lpcurrencystr: ::windows::core::PSTR, cchcurrency: i32) -> i32; } - GetCurrencyFormatA(locale, dwflags, lpvalue.into(), ::core::mem::transmute(lpformat), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpcurrencystr)), lpcurrencystr.len() as _) + GetCurrencyFormatA(locale, dwflags, lpvalue.into(), ::core::mem::transmute(lpformat), ::core::mem::transmute(lpcurrencystr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpcurrencystr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn GetCurrencyFormatEx<'a, P0, P1>(lplocalename: P0, dwflags: u32, lpvalue: P1, lpformat: ::core::option::Option<&CURRENCYFMTW>, lpcurrencystr: &mut [u16]) -> i32 +pub unsafe fn GetCurrencyFormatEx<'a, P0, P1>(lplocalename: P0, dwflags: u32, lpvalue: P1, lpformat: ::core::option::Option<&CURRENCYFMTW>, lpcurrencystr: ::core::option::Option<&mut [u16]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -1739,11 +1739,11 @@ where extern "system" { fn GetCurrencyFormatEx(lplocalename: ::windows::core::PCWSTR, dwflags: u32, lpvalue: ::windows::core::PCWSTR, lpformat: *const CURRENCYFMTW, lpcurrencystr: ::windows::core::PWSTR, cchcurrency: i32) -> i32; } - GetCurrencyFormatEx(lplocalename.into(), dwflags, lpvalue.into(), ::core::mem::transmute(lpformat), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpcurrencystr)), lpcurrencystr.len() as _) + GetCurrencyFormatEx(lplocalename.into(), dwflags, lpvalue.into(), ::core::mem::transmute(lpformat), ::core::mem::transmute(lpcurrencystr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpcurrencystr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn GetCurrencyFormatW<'a, P0>(locale: u32, dwflags: u32, lpvalue: P0, lpformat: ::core::option::Option<&CURRENCYFMTW>, lpcurrencystr: &mut [u16]) -> i32 +pub unsafe fn GetCurrencyFormatW<'a, P0>(locale: u32, dwflags: u32, lpvalue: P0, lpformat: ::core::option::Option<&CURRENCYFMTW>, lpcurrencystr: ::core::option::Option<&mut [u16]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1751,12 +1751,12 @@ where extern "system" { fn GetCurrencyFormatW(locale: u32, dwflags: u32, lpvalue: ::windows::core::PCWSTR, lpformat: *const CURRENCYFMTW, lpcurrencystr: ::windows::core::PWSTR, cchcurrency: i32) -> i32; } - GetCurrencyFormatW(locale, dwflags, lpvalue.into(), ::core::mem::transmute(lpformat), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpcurrencystr)), lpcurrencystr.len() as _) + GetCurrencyFormatW(locale, dwflags, lpvalue.into(), ::core::mem::transmute(lpformat), ::core::mem::transmute(lpcurrencystr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpcurrencystr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetDateFormatA<'a, P0>(locale: u32, dwflags: u32, lpdate: ::core::option::Option<&super::Foundation::SYSTEMTIME>, lpformat: P0, lpdatestr: &mut [u8]) -> i32 +pub unsafe fn GetDateFormatA<'a, P0>(locale: u32, dwflags: u32, lpdate: ::core::option::Option<&super::Foundation::SYSTEMTIME>, lpformat: P0, lpdatestr: ::core::option::Option<&mut [u8]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -1764,12 +1764,12 @@ where extern "system" { fn GetDateFormatA(locale: u32, dwflags: u32, lpdate: *const super::Foundation::SYSTEMTIME, lpformat: ::windows::core::PCSTR, lpdatestr: ::windows::core::PSTR, cchdate: i32) -> i32; } - GetDateFormatA(locale, dwflags, ::core::mem::transmute(lpdate), lpformat.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdatestr)), lpdatestr.len() as _) + GetDateFormatA(locale, dwflags, ::core::mem::transmute(lpdate), lpformat.into(), ::core::mem::transmute(lpdatestr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdatestr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetDateFormatEx<'a, P0, P1, P2>(lplocalename: P0, dwflags: ENUM_DATE_FORMATS_FLAGS, lpdate: ::core::option::Option<&super::Foundation::SYSTEMTIME>, lpformat: P1, lpdatestr: &mut [u16], lpcalendar: P2) -> i32 +pub unsafe fn GetDateFormatEx<'a, P0, P1, P2>(lplocalename: P0, dwflags: ENUM_DATE_FORMATS_FLAGS, lpdate: ::core::option::Option<&super::Foundation::SYSTEMTIME>, lpformat: P1, lpdatestr: ::core::option::Option<&mut [u16]>, lpcalendar: P2) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -1779,12 +1779,12 @@ where extern "system" { fn GetDateFormatEx(lplocalename: ::windows::core::PCWSTR, dwflags: ENUM_DATE_FORMATS_FLAGS, lpdate: *const super::Foundation::SYSTEMTIME, lpformat: ::windows::core::PCWSTR, lpdatestr: ::windows::core::PWSTR, cchdate: i32, lpcalendar: ::windows::core::PCWSTR) -> i32; } - GetDateFormatEx(lplocalename.into(), dwflags, ::core::mem::transmute(lpdate), lpformat.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdatestr)), lpdatestr.len() as _, lpcalendar.into()) + GetDateFormatEx(lplocalename.into(), dwflags, ::core::mem::transmute(lpdate), lpformat.into(), ::core::mem::transmute(lpdatestr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdatestr.as_deref().map_or(0, |slice| slice.len() as _), lpcalendar.into()) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetDateFormatW<'a, P0>(locale: u32, dwflags: u32, lpdate: ::core::option::Option<&super::Foundation::SYSTEMTIME>, lpformat: P0, lpdatestr: &mut [u16]) -> i32 +pub unsafe fn GetDateFormatW<'a, P0>(locale: u32, dwflags: u32, lpdate: ::core::option::Option<&super::Foundation::SYSTEMTIME>, lpformat: P0, lpdatestr: ::core::option::Option<&mut [u16]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1792,7 +1792,7 @@ where extern "system" { fn GetDateFormatW(locale: u32, dwflags: u32, lpdate: *const super::Foundation::SYSTEMTIME, lpformat: ::windows::core::PCWSTR, lpdatestr: ::windows::core::PWSTR, cchdate: i32) -> i32; } - GetDateFormatW(locale, dwflags, ::core::mem::transmute(lpdate), lpformat.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdatestr)), lpdatestr.len() as _) + GetDateFormatW(locale, dwflags, ::core::mem::transmute(lpdate), lpformat.into(), ::core::mem::transmute(lpdatestr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdatestr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] @@ -1811,7 +1811,7 @@ where #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetDurationFormat<'a, P0>(locale: u32, dwflags: u32, lpduration: ::core::option::Option<&super::Foundation::SYSTEMTIME>, ullduration: u64, lpformat: P0, lpdurationstr: &mut [u16]) -> i32 +pub unsafe fn GetDurationFormat<'a, P0>(locale: u32, dwflags: u32, lpduration: ::core::option::Option<&super::Foundation::SYSTEMTIME>, ullduration: u64, lpformat: P0, lpdurationstr: ::core::option::Option<&mut [u16]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1819,12 +1819,12 @@ where extern "system" { fn GetDurationFormat(locale: u32, dwflags: u32, lpduration: *const super::Foundation::SYSTEMTIME, ullduration: u64, lpformat: ::windows::core::PCWSTR, lpdurationstr: ::windows::core::PWSTR, cchduration: i32) -> i32; } - GetDurationFormat(locale, dwflags, ::core::mem::transmute(lpduration), ullduration, lpformat.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdurationstr)), lpdurationstr.len() as _) + GetDurationFormat(locale, dwflags, ::core::mem::transmute(lpduration), ullduration, lpformat.into(), ::core::mem::transmute(lpdurationstr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdurationstr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetDurationFormatEx<'a, P0, P1>(lplocalename: P0, dwflags: u32, lpduration: ::core::option::Option<&super::Foundation::SYSTEMTIME>, ullduration: u64, lpformat: P1, lpdurationstr: &mut [u16]) -> i32 +pub unsafe fn GetDurationFormatEx<'a, P0, P1>(lplocalename: P0, dwflags: u32, lpduration: ::core::option::Option<&super::Foundation::SYSTEMTIME>, ullduration: u64, lpformat: P1, lpdurationstr: ::core::option::Option<&mut [u16]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -1833,12 +1833,12 @@ where extern "system" { fn GetDurationFormatEx(lplocalename: ::windows::core::PCWSTR, dwflags: u32, lpduration: *const super::Foundation::SYSTEMTIME, ullduration: u64, lpformat: ::windows::core::PCWSTR, lpdurationstr: ::windows::core::PWSTR, cchduration: i32) -> i32; } - GetDurationFormatEx(lplocalename.into(), dwflags, ::core::mem::transmute(lpduration), ullduration, lpformat.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdurationstr)), lpdurationstr.len() as _) + GetDurationFormatEx(lplocalename.into(), dwflags, ::core::mem::transmute(lpduration), ullduration, lpformat.into(), ::core::mem::transmute(lpdurationstr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdurationstr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetFileMUIInfo<'a, P0>(dwflags: u32, pcwszfilepath: P0, pfilemuiinfo: ::core::option::Option<&mut FILEMUIINFO>, pcbfilemuiinfo: &mut u32) -> super::Foundation::BOOL +pub unsafe fn GetFileMUIInfo<'a, P0>(dwflags: u32, pcwszfilepath: P0, pfilemuiinfo: *mut FILEMUIINFO, pcbfilemuiinfo: &mut u32) -> super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1863,16 +1863,16 @@ where } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn GetGeoInfoA(location: i32, geotype: u32, lpgeodata: &mut [u8], langid: u16) -> i32 { +pub unsafe fn GetGeoInfoA(location: i32, geotype: u32, lpgeodata: ::core::option::Option<&mut [u8]>, langid: u16) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetGeoInfoA(location: i32, geotype: u32, lpgeodata: ::windows::core::PSTR, cchdata: i32, langid: u16) -> i32; } - GetGeoInfoA(location, geotype, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpgeodata)), lpgeodata.len() as _, langid) + GetGeoInfoA(location, geotype, ::core::mem::transmute(lpgeodata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpgeodata.as_deref().map_or(0, |slice| slice.len() as _), langid) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn GetGeoInfoEx<'a, P0>(location: P0, geotype: u32, geodata: &mut [u16]) -> i32 +pub unsafe fn GetGeoInfoEx<'a, P0>(location: P0, geotype: u32, geodata: ::core::option::Option<&mut [u16]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1880,29 +1880,29 @@ where extern "system" { fn GetGeoInfoEx(location: ::windows::core::PCWSTR, geotype: u32, geodata: ::windows::core::PWSTR, geodatacount: i32) -> i32; } - GetGeoInfoEx(location.into(), geotype, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(geodata)), geodata.len() as _) + GetGeoInfoEx(location.into(), geotype, ::core::mem::transmute(geodata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), geodata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn GetGeoInfoW(location: i32, geotype: u32, lpgeodata: &mut [u16], langid: u16) -> i32 { +pub unsafe fn GetGeoInfoW(location: i32, geotype: u32, lpgeodata: ::core::option::Option<&mut [u16]>, langid: u16) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetGeoInfoW(location: i32, geotype: u32, lpgeodata: ::windows::core::PWSTR, cchdata: i32, langid: u16) -> i32; } - GetGeoInfoW(location, geotype, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpgeodata)), lpgeodata.len() as _, langid) + GetGeoInfoW(location, geotype, ::core::mem::transmute(lpgeodata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpgeodata.as_deref().map_or(0, |slice| slice.len() as _), langid) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn GetLocaleInfoA(locale: u32, lctype: u32, lplcdata: &mut [u8]) -> i32 { +pub unsafe fn GetLocaleInfoA(locale: u32, lctype: u32, lplcdata: ::core::option::Option<&mut [u8]>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetLocaleInfoA(locale: u32, lctype: u32, lplcdata: ::windows::core::PSTR, cchdata: i32) -> i32; } - GetLocaleInfoA(locale, lctype, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lplcdata)), lplcdata.len() as _) + GetLocaleInfoA(locale, lctype, ::core::mem::transmute(lplcdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lplcdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn GetLocaleInfoEx<'a, P0>(lplocalename: P0, lctype: u32, lplcdata: &mut [u16]) -> i32 +pub unsafe fn GetLocaleInfoEx<'a, P0>(lplocalename: P0, lctype: u32, lplcdata: ::core::option::Option<&mut [u16]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1910,16 +1910,16 @@ where extern "system" { fn GetLocaleInfoEx(lplocalename: ::windows::core::PCWSTR, lctype: u32, lplcdata: ::windows::core::PWSTR, cchdata: i32) -> i32; } - GetLocaleInfoEx(lplocalename.into(), lctype, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lplcdata)), lplcdata.len() as _) + GetLocaleInfoEx(lplocalename.into(), lctype, ::core::mem::transmute(lplcdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lplcdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn GetLocaleInfoW(locale: u32, lctype: u32, lplcdata: &mut [u16]) -> i32 { +pub unsafe fn GetLocaleInfoW(locale: u32, lctype: u32, lplcdata: ::core::option::Option<&mut [u16]>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetLocaleInfoW(locale: u32, lctype: u32, lplcdata: ::windows::core::PWSTR, cchdata: i32) -> i32; } - GetLocaleInfoW(locale, lctype, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lplcdata)), lplcdata.len() as _) + GetLocaleInfoW(locale, lctype, ::core::mem::transmute(lplcdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lplcdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1946,7 +1946,7 @@ where } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn GetNumberFormatA<'a, P0>(locale: u32, dwflags: u32, lpvalue: P0, lpformat: ::core::option::Option<&NUMBERFMTA>, lpnumberstr: &mut [u8]) -> i32 +pub unsafe fn GetNumberFormatA<'a, P0>(locale: u32, dwflags: u32, lpvalue: P0, lpformat: ::core::option::Option<&NUMBERFMTA>, lpnumberstr: ::core::option::Option<&mut [u8]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -1954,11 +1954,11 @@ where extern "system" { fn GetNumberFormatA(locale: u32, dwflags: u32, lpvalue: ::windows::core::PCSTR, lpformat: *const NUMBERFMTA, lpnumberstr: ::windows::core::PSTR, cchnumber: i32) -> i32; } - GetNumberFormatA(locale, dwflags, lpvalue.into(), ::core::mem::transmute(lpformat), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpnumberstr)), lpnumberstr.len() as _) + GetNumberFormatA(locale, dwflags, lpvalue.into(), ::core::mem::transmute(lpformat), ::core::mem::transmute(lpnumberstr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpnumberstr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn GetNumberFormatEx<'a, P0, P1>(lplocalename: P0, dwflags: u32, lpvalue: P1, lpformat: ::core::option::Option<&NUMBERFMTW>, lpnumberstr: &mut [u16]) -> i32 +pub unsafe fn GetNumberFormatEx<'a, P0, P1>(lplocalename: P0, dwflags: u32, lpvalue: P1, lpformat: ::core::option::Option<&NUMBERFMTW>, lpnumberstr: ::core::option::Option<&mut [u16]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -1967,11 +1967,11 @@ where extern "system" { fn GetNumberFormatEx(lplocalename: ::windows::core::PCWSTR, dwflags: u32, lpvalue: ::windows::core::PCWSTR, lpformat: *const NUMBERFMTW, lpnumberstr: ::windows::core::PWSTR, cchnumber: i32) -> i32; } - GetNumberFormatEx(lplocalename.into(), dwflags, lpvalue.into(), ::core::mem::transmute(lpformat), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpnumberstr)), lpnumberstr.len() as _) + GetNumberFormatEx(lplocalename.into(), dwflags, lpvalue.into(), ::core::mem::transmute(lpformat), ::core::mem::transmute(lpnumberstr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpnumberstr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn GetNumberFormatW<'a, P0>(locale: u32, dwflags: u32, lpvalue: P0, lpformat: ::core::option::Option<&NUMBERFMTW>, lpnumberstr: &mut [u16]) -> i32 +pub unsafe fn GetNumberFormatW<'a, P0>(locale: u32, dwflags: u32, lpvalue: P0, lpformat: ::core::option::Option<&NUMBERFMTW>, lpnumberstr: ::core::option::Option<&mut [u16]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1979,7 +1979,7 @@ where extern "system" { fn GetNumberFormatW(locale: u32, dwflags: u32, lpvalue: ::windows::core::PCWSTR, lpformat: *const NUMBERFMTW, lpnumberstr: ::windows::core::PWSTR, cchnumber: i32) -> i32; } - GetNumberFormatW(locale, dwflags, lpvalue.into(), ::core::mem::transmute(lpformat), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpnumberstr)), lpnumberstr.len() as _) + GetNumberFormatW(locale, dwflags, lpvalue.into(), ::core::mem::transmute(lpformat), ::core::mem::transmute(lpnumberstr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpnumberstr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] @@ -2002,7 +2002,7 @@ pub unsafe fn GetProcessPreferredUILanguages(dwflags: u32, pulnumlanguages: &mut } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn GetStringScripts<'a, P0>(dwflags: u32, lpstring: P0, cchstring: i32, lpscripts: &mut [u16]) -> i32 +pub unsafe fn GetStringScripts<'a, P0>(dwflags: u32, lpstring: P0, cchstring: i32, lpscripts: ::core::option::Option<&mut [u16]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2010,7 +2010,7 @@ where extern "system" { fn GetStringScripts(dwflags: u32, lpstring: ::windows::core::PCWSTR, cchstring: i32, lpscripts: ::windows::core::PWSTR, cchscripts: i32) -> i32; } - GetStringScripts(dwflags, lpstring.into(), cchstring, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpscripts)), lpscripts.len() as _) + GetStringScripts(dwflags, lpstring.into(), cchstring, ::core::mem::transmute(lpscripts.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpscripts.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2020,12 +2020,12 @@ pub unsafe fn GetStringTypeA(locale: u32, dwinfotype: u32, lpsrcstr: &[u8], lpch extern "system" { fn GetStringTypeA(locale: u32, dwinfotype: u32, lpsrcstr: ::windows::core::PCSTR, cchsrc: i32, lpchartype: *mut u16) -> super::Foundation::BOOL; } - GetStringTypeA(locale, dwinfotype, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpsrcstr)), lpsrcstr.len() as _, ::core::mem::transmute(lpchartype)) + GetStringTypeA(locale, dwinfotype, ::core::mem::transmute(lpsrcstr.as_ptr()), lpsrcstr.len() as _, ::core::mem::transmute(lpchartype)) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetStringTypeExA(locale: u32, dwinfotype: u32, lpsrcstr: ::windows::core::PCSTR, cchsrc: i32, lpchartype: &mut u16) -> super::Foundation::BOOL { +pub unsafe fn GetStringTypeExA(locale: u32, dwinfotype: u32, lpsrcstr: ::windows::core::PCSTR, cchsrc: i32, lpchartype: *mut u16) -> super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetStringTypeExA(locale: u32, dwinfotype: u32, lpsrcstr: ::windows::core::PCSTR, cchsrc: i32, lpchartype: *mut u16) -> super::Foundation::BOOL; @@ -2035,7 +2035,7 @@ pub unsafe fn GetStringTypeExA(locale: u32, dwinfotype: u32, lpsrcstr: ::windows #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetStringTypeExW(locale: u32, dwinfotype: u32, lpsrcstr: ::windows::core::PCWSTR, cchsrc: i32, lpchartype: &mut u16) -> super::Foundation::BOOL { +pub unsafe fn GetStringTypeExW(locale: u32, dwinfotype: u32, lpsrcstr: ::windows::core::PCWSTR, cchsrc: i32, lpchartype: *mut u16) -> super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetStringTypeExW(locale: u32, dwinfotype: u32, lpsrcstr: ::windows::core::PCWSTR, cchsrc: i32, lpchartype: *mut u16) -> super::Foundation::BOOL; @@ -2050,7 +2050,7 @@ pub unsafe fn GetStringTypeW(dwinfotype: u32, lpsrcstr: &[u16], lpchartype: &mut extern "system" { fn GetStringTypeW(dwinfotype: u32, lpsrcstr: ::windows::core::PCWSTR, cchsrc: i32, lpchartype: *mut u16) -> super::Foundation::BOOL; } - GetStringTypeW(dwinfotype, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpsrcstr)), lpsrcstr.len() as _, ::core::mem::transmute(lpchartype)) + GetStringTypeW(dwinfotype, ::core::mem::transmute(lpsrcstr.as_ptr()), lpsrcstr.len() as _, ::core::mem::transmute(lpchartype)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] @@ -2077,7 +2077,7 @@ pub unsafe fn GetSystemDefaultLocaleName(lplocalename: &mut [u16]) -> i32 { extern "system" { fn GetSystemDefaultLocaleName(lplocalename: ::windows::core::PWSTR, cchlocalename: i32) -> i32; } - GetSystemDefaultLocaleName(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lplocalename)), lplocalename.len() as _) + GetSystemDefaultLocaleName(::core::mem::transmute(lplocalename.as_ptr()), lplocalename.len() as _) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] @@ -2155,7 +2155,7 @@ pub unsafe fn GetThreadUILanguage() -> u16 { #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetTimeFormatA<'a, P0>(locale: u32, dwflags: u32, lptime: ::core::option::Option<&super::Foundation::SYSTEMTIME>, lpformat: P0, lptimestr: &mut [u8]) -> i32 +pub unsafe fn GetTimeFormatA<'a, P0>(locale: u32, dwflags: u32, lptime: ::core::option::Option<&super::Foundation::SYSTEMTIME>, lpformat: P0, lptimestr: ::core::option::Option<&mut [u8]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -2163,12 +2163,12 @@ where extern "system" { fn GetTimeFormatA(locale: u32, dwflags: u32, lptime: *const super::Foundation::SYSTEMTIME, lpformat: ::windows::core::PCSTR, lptimestr: ::windows::core::PSTR, cchtime: i32) -> i32; } - GetTimeFormatA(locale, dwflags, ::core::mem::transmute(lptime), lpformat.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lptimestr)), lptimestr.len() as _) + GetTimeFormatA(locale, dwflags, ::core::mem::transmute(lptime), lpformat.into(), ::core::mem::transmute(lptimestr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lptimestr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetTimeFormatEx<'a, P0, P1>(lplocalename: P0, dwflags: TIME_FORMAT_FLAGS, lptime: ::core::option::Option<&super::Foundation::SYSTEMTIME>, lpformat: P1, lptimestr: &mut [u16]) -> i32 +pub unsafe fn GetTimeFormatEx<'a, P0, P1>(lplocalename: P0, dwflags: TIME_FORMAT_FLAGS, lptime: ::core::option::Option<&super::Foundation::SYSTEMTIME>, lpformat: P1, lptimestr: ::core::option::Option<&mut [u16]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -2177,12 +2177,12 @@ where extern "system" { fn GetTimeFormatEx(lplocalename: ::windows::core::PCWSTR, dwflags: TIME_FORMAT_FLAGS, lptime: *const super::Foundation::SYSTEMTIME, lpformat: ::windows::core::PCWSTR, lptimestr: ::windows::core::PWSTR, cchtime: i32) -> i32; } - GetTimeFormatEx(lplocalename.into(), dwflags, ::core::mem::transmute(lptime), lpformat.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lptimestr)), lptimestr.len() as _) + GetTimeFormatEx(lplocalename.into(), dwflags, ::core::mem::transmute(lptime), lpformat.into(), ::core::mem::transmute(lptimestr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lptimestr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetTimeFormatW<'a, P0>(locale: u32, dwflags: u32, lptime: ::core::option::Option<&super::Foundation::SYSTEMTIME>, lpformat: P0, lptimestr: &mut [u16]) -> i32 +pub unsafe fn GetTimeFormatW<'a, P0>(locale: u32, dwflags: u32, lptime: ::core::option::Option<&super::Foundation::SYSTEMTIME>, lpformat: P0, lptimestr: ::core::option::Option<&mut [u16]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2190,7 +2190,7 @@ where extern "system" { fn GetTimeFormatW(locale: u32, dwflags: u32, lptime: *const super::Foundation::SYSTEMTIME, lpformat: ::windows::core::PCWSTR, lptimestr: ::windows::core::PWSTR, cchtime: i32) -> i32; } - GetTimeFormatW(locale, dwflags, ::core::mem::transmute(lptime), lpformat.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lptimestr)), lptimestr.len() as _) + GetTimeFormatW(locale, dwflags, ::core::mem::transmute(lptime), lpformat.into(), ::core::mem::transmute(lptimestr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lptimestr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2212,7 +2212,7 @@ pub unsafe fn GetUserDefaultGeoName(geoname: &mut [u16]) -> i32 { extern "system" { fn GetUserDefaultGeoName(geoname: ::windows::core::PWSTR, geonamecount: i32) -> i32; } - GetUserDefaultGeoName(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(geoname)), geoname.len() as _) + GetUserDefaultGeoName(::core::mem::transmute(geoname.as_ptr()), geoname.len() as _) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] @@ -2239,7 +2239,7 @@ pub unsafe fn GetUserDefaultLocaleName(lplocalename: &mut [u16]) -> i32 { extern "system" { fn GetUserDefaultLocaleName(lplocalename: ::windows::core::PWSTR, cchlocalename: i32) -> i32; } - GetUserDefaultLocaleName(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lplocalename)), lplocalename.len() as _) + GetUserDefaultLocaleName(::core::mem::transmute(lplocalename.as_ptr()), lplocalename.len() as _) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] @@ -2701,7 +2701,7 @@ impl IMLangCodePages { (::windows::core::Interface::vtable(self).GetCharCodePages)(::windows::core::Interface::as_raw(self), chsrc, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetStrCodePages(&self, pszsrc: &[u16], dwprioritycodepages: u32, pdwcodepages: ::core::option::Option<&mut u32>, pcchcodepages: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStrCodePages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pszsrc)), pszsrc.len() as _, dwprioritycodepages, ::core::mem::transmute(pdwcodepages), ::core::mem::transmute(pcchcodepages)).ok() + (::windows::core::Interface::vtable(self).GetStrCodePages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszsrc.as_ptr()), pszsrc.len() as _, dwprioritycodepages, ::core::mem::transmute(pdwcodepages), ::core::mem::transmute(pcchcodepages)).ok() } pub unsafe fn CodePageToCodePages(&self, ucodepage: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2775,14 +2775,11 @@ impl IMLangConvertCharset { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetProperty)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn DoConversion(&self, psrcstr: &u8, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: &mut u8, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn DoConversion(&self, psrcstr: *const u8, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: *mut u8, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DoConversion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok() } - pub unsafe fn DoConversionToUnicode<'a, P0>(&self, psrcstr: P0, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PWSTR, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> - where - P0: ::std::convert::Into<::windows::core::PCSTR>, - { - (::windows::core::Interface::vtable(self).DoConversionToUnicode)(::windows::core::Interface::as_raw(self), psrcstr.into(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok() + pub unsafe fn DoConversionToUnicode(&self, psrcstr: ::windows::core::PCSTR, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PWSTR, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).DoConversionToUnicode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok() } pub unsafe fn DoConversionFromUnicode(&self, psrcstr: ::windows::core::PCWSTR, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PSTR, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DoConversionFromUnicode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok() @@ -2844,7 +2841,7 @@ impl IMLangFontLink { (::windows::core::Interface::vtable(self).base__.GetCharCodePages)(::windows::core::Interface::as_raw(self), chsrc, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetStrCodePages(&self, pszsrc: &[u16], dwprioritycodepages: u32, pdwcodepages: ::core::option::Option<&mut u32>, pcchcodepages: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetStrCodePages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pszsrc)), pszsrc.len() as _, dwprioritycodepages, ::core::mem::transmute(pdwcodepages), ::core::mem::transmute(pcchcodepages)).ok() + (::windows::core::Interface::vtable(self).base__.GetStrCodePages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszsrc.as_ptr()), pszsrc.len() as _, dwprioritycodepages, ::core::mem::transmute(pdwcodepages), ::core::mem::transmute(pcchcodepages)).ok() } pub unsafe fn CodePageToCodePages(&self, ucodepage: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2963,7 +2960,7 @@ impl IMLangFontLink2 { (::windows::core::Interface::vtable(self).base__.GetCharCodePages)(::windows::core::Interface::as_raw(self), chsrc, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetStrCodePages(&self, pszsrc: &[u16], dwprioritycodepages: u32, pdwcodepages: ::core::option::Option<&mut u32>, pcchcodepages: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetStrCodePages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pszsrc)), pszsrc.len() as _, dwprioritycodepages, ::core::mem::transmute(pdwcodepages), ::core::mem::transmute(pcchcodepages)).ok() + (::windows::core::Interface::vtable(self).base__.GetStrCodePages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszsrc.as_ptr()), pszsrc.len() as _, dwprioritycodepages, ::core::mem::transmute(pdwcodepages), ::core::mem::transmute(pcchcodepages)).ok() } pub unsafe fn CodePageToCodePages(&self, ucodepage: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -3105,10 +3102,10 @@ impl IMLangLineBreakConsole { (::windows::core::Interface::vtable(self).BreakLineML)(::windows::core::Interface::as_raw(self), psrcmlstr.into().abi(), lsrcpos, lsrclen, cmincolumns, cmaxcolumns, ::core::mem::transmute(pllinelen), ::core::mem::transmute(plskiplen)).ok() } pub unsafe fn BreakLineW(&self, locale: u32, pszsrc: &[u16], cmaxcolumns: i32, pcchline: ::core::option::Option<&mut i32>, pcchskip: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).BreakLineW)(::windows::core::Interface::as_raw(self), locale, ::core::mem::transmute(::windows::core::as_ptr_or_null(pszsrc)), pszsrc.len() as _, cmaxcolumns, ::core::mem::transmute(pcchline), ::core::mem::transmute(pcchskip)).ok() + (::windows::core::Interface::vtable(self).BreakLineW)(::windows::core::Interface::as_raw(self), locale, ::core::mem::transmute(pszsrc.as_ptr()), pszsrc.len() as _, cmaxcolumns, ::core::mem::transmute(pcchline), ::core::mem::transmute(pcchskip)).ok() } pub unsafe fn BreakLineA(&self, locale: u32, ucodepage: u32, pszsrc: &[u8], cmaxcolumns: i32, pcchline: ::core::option::Option<&mut i32>, pcchskip: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).BreakLineA)(::windows::core::Interface::as_raw(self), locale, ucodepage, ::core::mem::transmute(::windows::core::as_ptr_or_null(pszsrc)), pszsrc.len() as _, cmaxcolumns, ::core::mem::transmute(pcchline), ::core::mem::transmute(pcchskip)).ok() + (::windows::core::Interface::vtable(self).BreakLineA)(::windows::core::Interface::as_raw(self), locale, ucodepage, ::core::mem::transmute(pszsrc.as_ptr()), pszsrc.len() as _, cmaxcolumns, ::core::mem::transmute(pcchline), ::core::mem::transmute(pcchskip)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3259,7 +3256,7 @@ impl IMLangStringAStr { (::windows::core::Interface::vtable(self).base__.GetMLStr)(::windows::core::Interface::as_raw(self), lsrcpos, lsrclen, punkouter.into().abi(), dwclscontext, ::core::mem::transmute(piid), ::core::mem::transmute(ppdestmlstr), ::core::mem::transmute(pldestpos), ::core::mem::transmute(pldestlen)).ok() } pub unsafe fn SetAStr(&self, ldestpos: i32, ldestlen: i32, ucodepage: u32, pszsrc: &[u8], pcchactual: ::core::option::Option<&mut i32>, plactuallen: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetAStr)(::windows::core::Interface::as_raw(self), ldestpos, ldestlen, ucodepage, ::core::mem::transmute(::windows::core::as_ptr_or_null(pszsrc)), pszsrc.len() as _, ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok() + (::windows::core::Interface::vtable(self).SetAStr)(::windows::core::Interface::as_raw(self), ldestpos, ldestlen, ucodepage, ::core::mem::transmute(pszsrc.as_ptr()), pszsrc.len() as _, ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok() } pub unsafe fn SetStrBufA<'a, P0>(&self, ldestpos: i32, ldestlen: i32, ucodepage: u32, psrcbuf: P0, pcchactual: ::core::option::Option<&mut i32>, plactuallen: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> where @@ -3267,8 +3264,8 @@ impl IMLangStringAStr { { (::windows::core::Interface::vtable(self).SetStrBufA)(::windows::core::Interface::as_raw(self), ldestpos, ldestlen, ucodepage, psrcbuf.into().abi(), ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok() } - pub unsafe fn GetAStr(&self, lsrcpos: i32, lsrclen: i32, ucodepagein: u32, pucodepageout: &mut u32, pszdest: &mut [u8], pcchactual: ::core::option::Option<&mut i32>, plactuallen: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetAStr)(::windows::core::Interface::as_raw(self), lsrcpos, lsrclen, ucodepagein, ::core::mem::transmute(pucodepageout), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdest)), pszdest.len() as _, ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok() + pub unsafe fn GetAStr(&self, lsrcpos: i32, lsrclen: i32, ucodepagein: u32, pucodepageout: &mut u32, pszdest: ::core::option::Option<&mut [u8]>, pcchactual: ::core::option::Option<&mut i32>, plactuallen: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetAStr)(::windows::core::Interface::as_raw(self), lsrcpos, lsrclen, ucodepagein, ::core::mem::transmute(pucodepageout), ::core::mem::transmute(pszdest.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszdest.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok() } pub unsafe fn GetStrBufA(&self, lsrcpos: i32, lsrcmaxlen: i32, pudestcodepage: ::core::option::Option<&mut u32>, ppdestbuf: &mut ::core::option::Option, pldestlen: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetStrBufA)(::windows::core::Interface::as_raw(self), lsrcpos, lsrcmaxlen, ::core::mem::transmute(pudestcodepage), ::core::mem::transmute(ppdestbuf), ::core::mem::transmute(pldestlen)).ok() @@ -3277,7 +3274,7 @@ impl IMLangStringAStr { (::windows::core::Interface::vtable(self).LockAStr)(::windows::core::Interface::as_raw(self), lsrcpos, lsrclen, lflags, ucodepagein, cchrequest, ::core::mem::transmute(pucodepageout), ::core::mem::transmute(ppszdest), ::core::mem::transmute(pcchdest), ::core::mem::transmute(pldestlen)).ok() } pub unsafe fn UnlockAStr(&self, pszsrc: &[u8], pcchactual: ::core::option::Option<&mut i32>, plactuallen: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UnlockAStr)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pszsrc)), pszsrc.len() as _, ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok() + (::windows::core::Interface::vtable(self).UnlockAStr)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszsrc.as_ptr()), pszsrc.len() as _, ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok() } pub unsafe fn SetLocale(&self, ldestpos: i32, ldestlen: i32, locale: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetLocale)(::windows::core::Interface::as_raw(self), ldestpos, ldestlen, locale).ok() @@ -3521,7 +3518,7 @@ impl IMLangStringWStr { (::windows::core::Interface::vtable(self).base__.GetMLStr)(::windows::core::Interface::as_raw(self), lsrcpos, lsrclen, punkouter.into().abi(), dwclscontext, ::core::mem::transmute(piid), ::core::mem::transmute(ppdestmlstr), ::core::mem::transmute(pldestpos), ::core::mem::transmute(pldestlen)).ok() } pub unsafe fn SetWStr(&self, ldestpos: i32, ldestlen: i32, pszsrc: &[u16], pcchactual: ::core::option::Option<&mut i32>, plactuallen: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetWStr)(::windows::core::Interface::as_raw(self), ldestpos, ldestlen, ::core::mem::transmute(::windows::core::as_ptr_or_null(pszsrc)), pszsrc.len() as _, ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok() + (::windows::core::Interface::vtable(self).SetWStr)(::windows::core::Interface::as_raw(self), ldestpos, ldestlen, ::core::mem::transmute(pszsrc.as_ptr()), pszsrc.len() as _, ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok() } pub unsafe fn SetStrBufW<'a, P0>(&self, ldestpos: i32, ldestlen: i32, psrcbuf: P0, pcchactual: ::core::option::Option<&mut i32>, plactuallen: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> where @@ -3529,8 +3526,8 @@ impl IMLangStringWStr { { (::windows::core::Interface::vtable(self).SetStrBufW)(::windows::core::Interface::as_raw(self), ldestpos, ldestlen, psrcbuf.into().abi(), ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok() } - pub unsafe fn GetWStr(&self, lsrcpos: i32, lsrclen: i32, pszdest: &mut [u16], pcchactual: ::core::option::Option<&mut i32>, plactuallen: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetWStr)(::windows::core::Interface::as_raw(self), lsrcpos, lsrclen, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdest)), pszdest.len() as _, ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok() + pub unsafe fn GetWStr(&self, lsrcpos: i32, lsrclen: i32, pszdest: ::core::option::Option<&mut [u16]>, pcchactual: ::core::option::Option<&mut i32>, plactuallen: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetWStr)(::windows::core::Interface::as_raw(self), lsrcpos, lsrclen, ::core::mem::transmute(pszdest.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszdest.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok() } pub unsafe fn GetStrBufW(&self, lsrcpos: i32, lsrcmaxlen: i32, ppdestbuf: &mut ::core::option::Option, pldestlen: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetStrBufW)(::windows::core::Interface::as_raw(self), lsrcpos, lsrcmaxlen, ::core::mem::transmute(ppdestbuf), ::core::mem::transmute(pldestlen)).ok() @@ -3539,7 +3536,7 @@ impl IMLangStringWStr { (::windows::core::Interface::vtable(self).LockWStr)(::windows::core::Interface::as_raw(self), lsrcpos, lsrclen, lflags, cchrequest, ::core::mem::transmute(ppszdest), ::core::mem::transmute(pcchdest), ::core::mem::transmute(pldestlen)).ok() } pub unsafe fn UnlockWStr(&self, pszsrc: &[u16], pcchactual: ::core::option::Option<&mut i32>, plactuallen: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UnlockWStr)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pszsrc)), pszsrc.len() as _, ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok() + (::windows::core::Interface::vtable(self).UnlockWStr)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszsrc.as_ptr()), pszsrc.len() as _, ::core::mem::transmute(pcchactual), ::core::mem::transmute(plactuallen)).ok() } pub unsafe fn SetLocale(&self, ldestpos: i32, ldestlen: i32, locale: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetLocale)(::windows::core::Interface::as_raw(self), ldestpos, ldestlen, locale).ok() @@ -3643,14 +3640,11 @@ impl IMultiLanguage { pub unsafe fn IsConvertible(&self, dwsrcencoding: u32, dwdstencoding: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).IsConvertible)(::windows::core::Interface::as_raw(self), dwsrcencoding, dwdstencoding).ok() } - pub unsafe fn ConvertString(&self, pdwmode: ::core::option::Option<&mut u32>, dwsrcencoding: u32, dwdstencoding: u32, psrcstr: ::core::option::Option<&u8>, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::core::option::Option<&mut u8>, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn ConvertString(&self, pdwmode: ::core::option::Option<&mut u32>, dwsrcencoding: u32, dwdstencoding: u32, psrcstr: *const u8, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: *mut u8, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ConvertString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwsrcencoding, dwdstencoding, ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok() } - pub unsafe fn ConvertStringToUnicode<'a, P0>(&self, pdwmode: ::core::option::Option<&mut u32>, dwencoding: u32, psrcstr: P0, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PWSTR, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> - where - P0: ::std::convert::Into<::windows::core::PCSTR>, - { - (::windows::core::Interface::vtable(self).ConvertStringToUnicode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwencoding, psrcstr.into(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok() + pub unsafe fn ConvertStringToUnicode(&self, pdwmode: ::core::option::Option<&mut u32>, dwencoding: u32, psrcstr: ::windows::core::PCSTR, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PWSTR, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ConvertStringToUnicode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwencoding, ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok() } pub unsafe fn ConvertStringFromUnicode(&self, pdwmode: ::core::option::Option<&mut u32>, dwencoding: u32, psrcstr: ::windows::core::PCWSTR, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PSTR, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ConvertStringFromUnicode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwencoding, ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok() @@ -3781,14 +3775,11 @@ impl IMultiLanguage2 { pub unsafe fn IsConvertible(&self, dwsrcencoding: u32, dwdstencoding: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).IsConvertible)(::windows::core::Interface::as_raw(self), dwsrcencoding, dwdstencoding).ok() } - pub unsafe fn ConvertString(&self, pdwmode: ::core::option::Option<&mut u32>, dwsrcencoding: u32, dwdstencoding: u32, psrcstr: ::core::option::Option<&u8>, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::core::option::Option<&mut u8>, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn ConvertString(&self, pdwmode: ::core::option::Option<&mut u32>, dwsrcencoding: u32, dwdstencoding: u32, psrcstr: *const u8, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: *mut u8, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ConvertString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwsrcencoding, dwdstencoding, ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok() } - pub unsafe fn ConvertStringToUnicode<'a, P0>(&self, pdwmode: ::core::option::Option<&mut u32>, dwencoding: u32, psrcstr: P0, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PWSTR, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> - where - P0: ::std::convert::Into<::windows::core::PCSTR>, - { - (::windows::core::Interface::vtable(self).ConvertStringToUnicode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwencoding, psrcstr.into(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok() + pub unsafe fn ConvertStringToUnicode(&self, pdwmode: ::core::option::Option<&mut u32>, dwencoding: u32, psrcstr: ::windows::core::PCSTR, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PWSTR, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ConvertStringToUnicode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwencoding, ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok() } pub unsafe fn ConvertStringFromUnicode(&self, pdwmode: ::core::option::Option<&mut u32>, dwencoding: u32, psrcstr: ::windows::core::PCWSTR, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PSTR, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ConvertStringFromUnicode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwencoding, ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok() @@ -3832,12 +3823,11 @@ impl IMultiLanguage2 { { (::windows::core::Interface::vtable(self).ConvertStringInIStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwflag, lpfallback.into(), dwsrcencoding, dwdstencoding, pstmin.into().abi(), pstmout.into().abi()).ok() } - pub unsafe fn ConvertStringToUnicodeEx<'a, P0, P1>(&self, pdwmode: ::core::option::Option<&mut u32>, dwencoding: u32, psrcstr: P0, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PWSTR, pcdstsize: ::core::option::Option<&mut u32>, dwflag: u32, lpfallback: P1) -> ::windows::core::Result<()> + pub unsafe fn ConvertStringToUnicodeEx<'a, P0>(&self, pdwmode: ::core::option::Option<&mut u32>, dwencoding: u32, psrcstr: ::windows::core::PCSTR, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PWSTR, pcdstsize: ::core::option::Option<&mut u32>, dwflag: u32, lpfallback: P0) -> ::windows::core::Result<()> where - P0: ::std::convert::Into<::windows::core::PCSTR>, - P1: ::std::convert::Into<::windows::core::PCWSTR>, + P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).ConvertStringToUnicodeEx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwencoding, psrcstr.into(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize), dwflag, lpfallback.into()).ok() + (::windows::core::Interface::vtable(self).ConvertStringToUnicodeEx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwencoding, ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize), dwflag, lpfallback.into()).ok() } pub unsafe fn ConvertStringFromUnicodeEx<'a, P0>(&self, pdwmode: ::core::option::Option<&mut u32>, dwencoding: u32, psrcstr: ::windows::core::PCWSTR, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PSTR, pcdstsize: ::core::option::Option<&mut u32>, dwflag: u32, lpfallback: P0) -> ::windows::core::Result<()> where @@ -3853,11 +3843,8 @@ impl IMultiLanguage2 { { (::windows::core::Interface::vtable(self).DetectCodepageInIStream)(::windows::core::Interface::as_raw(self), dwflag, dwprefwincodepage, pstmin.into().abi(), ::core::mem::transmute(lpencoding), ::core::mem::transmute(pnscores)).ok() } - pub unsafe fn DetectInputCodepage<'a, P0>(&self, dwflag: u32, dwprefwincodepage: u32, psrcstr: P0, pcsrcsize: &mut i32, lpencoding: &mut DetectEncodingInfo, pnscores: &mut i32) -> ::windows::core::Result<()> - where - P0: ::std::convert::Into<::windows::core::PCSTR>, - { - (::windows::core::Interface::vtable(self).DetectInputCodepage)(::windows::core::Interface::as_raw(self), dwflag, dwprefwincodepage, psrcstr.into(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(lpencoding), ::core::mem::transmute(pnscores)).ok() + pub unsafe fn DetectInputCodepage(&self, dwflag: u32, dwprefwincodepage: u32, psrcstr: ::windows::core::PCSTR, pcsrcsize: &mut i32, lpencoding: &mut DetectEncodingInfo, pnscores: &mut i32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).DetectInputCodepage)(::windows::core::Interface::as_raw(self), dwflag, dwprefwincodepage, ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(lpencoding), ::core::mem::transmute(pnscores)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3868,7 +3855,7 @@ impl IMultiLanguage2 { (::windows::core::Interface::vtable(self).ValidateCodePage)(::windows::core::Interface::as_raw(self), uicodepage, hwnd.into()).ok() } pub unsafe fn GetCodePageDescription(&self, uicodepage: u32, lcid: u32, lpwidecharstr: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCodePageDescription)(::windows::core::Interface::as_raw(self), uicodepage, lcid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpwidecharstr)), lpwidecharstr.len() as _).ok() + (::windows::core::Interface::vtable(self).GetCodePageDescription)(::windows::core::Interface::as_raw(self), uicodepage, lcid, ::core::mem::transmute(lpwidecharstr.as_ptr()), lpwidecharstr.len() as _).ok() } pub unsafe fn IsCodePageInstallable(&self, uicodepage: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).IsCodePageInstallable)(::windows::core::Interface::as_raw(self), uicodepage).ok() @@ -4013,14 +4000,11 @@ impl IMultiLanguage3 { pub unsafe fn IsConvertible(&self, dwsrcencoding: u32, dwdstencoding: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.IsConvertible)(::windows::core::Interface::as_raw(self), dwsrcencoding, dwdstencoding).ok() } - pub unsafe fn ConvertString(&self, pdwmode: ::core::option::Option<&mut u32>, dwsrcencoding: u32, dwdstencoding: u32, psrcstr: ::core::option::Option<&u8>, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::core::option::Option<&mut u8>, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn ConvertString(&self, pdwmode: ::core::option::Option<&mut u32>, dwsrcencoding: u32, dwdstencoding: u32, psrcstr: *const u8, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: *mut u8, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.ConvertString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwsrcencoding, dwdstencoding, ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok() } - pub unsafe fn ConvertStringToUnicode<'a, P0>(&self, pdwmode: ::core::option::Option<&mut u32>, dwencoding: u32, psrcstr: P0, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PWSTR, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> - where - P0: ::std::convert::Into<::windows::core::PCSTR>, - { - (::windows::core::Interface::vtable(self).base__.ConvertStringToUnicode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwencoding, psrcstr.into(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok() + pub unsafe fn ConvertStringToUnicode(&self, pdwmode: ::core::option::Option<&mut u32>, dwencoding: u32, psrcstr: ::windows::core::PCSTR, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PWSTR, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.ConvertStringToUnicode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwencoding, ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok() } pub unsafe fn ConvertStringFromUnicode(&self, pdwmode: ::core::option::Option<&mut u32>, dwencoding: u32, psrcstr: ::windows::core::PCWSTR, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PSTR, pcdstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.ConvertStringFromUnicode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwencoding, ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize)).ok() @@ -4064,12 +4048,11 @@ impl IMultiLanguage3 { { (::windows::core::Interface::vtable(self).base__.ConvertStringInIStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwflag, lpfallback.into(), dwsrcencoding, dwdstencoding, pstmin.into().abi(), pstmout.into().abi()).ok() } - pub unsafe fn ConvertStringToUnicodeEx<'a, P0, P1>(&self, pdwmode: ::core::option::Option<&mut u32>, dwencoding: u32, psrcstr: P0, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PWSTR, pcdstsize: ::core::option::Option<&mut u32>, dwflag: u32, lpfallback: P1) -> ::windows::core::Result<()> + pub unsafe fn ConvertStringToUnicodeEx<'a, P0>(&self, pdwmode: ::core::option::Option<&mut u32>, dwencoding: u32, psrcstr: ::windows::core::PCSTR, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PWSTR, pcdstsize: ::core::option::Option<&mut u32>, dwflag: u32, lpfallback: P0) -> ::windows::core::Result<()> where - P0: ::std::convert::Into<::windows::core::PCSTR>, - P1: ::std::convert::Into<::windows::core::PCWSTR>, + P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.ConvertStringToUnicodeEx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwencoding, psrcstr.into(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize), dwflag, lpfallback.into()).ok() + (::windows::core::Interface::vtable(self).base__.ConvertStringToUnicodeEx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwmode), dwencoding, ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(pdststr), ::core::mem::transmute(pcdstsize), dwflag, lpfallback.into()).ok() } pub unsafe fn ConvertStringFromUnicodeEx<'a, P0>(&self, pdwmode: ::core::option::Option<&mut u32>, dwencoding: u32, psrcstr: ::windows::core::PCWSTR, pcsrcsize: ::core::option::Option<&mut u32>, pdststr: ::windows::core::PSTR, pcdstsize: ::core::option::Option<&mut u32>, dwflag: u32, lpfallback: P0) -> ::windows::core::Result<()> where @@ -4085,11 +4068,8 @@ impl IMultiLanguage3 { { (::windows::core::Interface::vtable(self).base__.DetectCodepageInIStream)(::windows::core::Interface::as_raw(self), dwflag, dwprefwincodepage, pstmin.into().abi(), ::core::mem::transmute(lpencoding), ::core::mem::transmute(pnscores)).ok() } - pub unsafe fn DetectInputCodepage<'a, P0>(&self, dwflag: u32, dwprefwincodepage: u32, psrcstr: P0, pcsrcsize: &mut i32, lpencoding: &mut DetectEncodingInfo, pnscores: &mut i32) -> ::windows::core::Result<()> - where - P0: ::std::convert::Into<::windows::core::PCSTR>, - { - (::windows::core::Interface::vtable(self).base__.DetectInputCodepage)(::windows::core::Interface::as_raw(self), dwflag, dwprefwincodepage, psrcstr.into(), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(lpencoding), ::core::mem::transmute(pnscores)).ok() + pub unsafe fn DetectInputCodepage(&self, dwflag: u32, dwprefwincodepage: u32, psrcstr: ::windows::core::PCSTR, pcsrcsize: &mut i32, lpencoding: &mut DetectEncodingInfo, pnscores: &mut i32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.DetectInputCodepage)(::windows::core::Interface::as_raw(self), dwflag, dwprefwincodepage, ::core::mem::transmute(psrcstr), ::core::mem::transmute(pcsrcsize), ::core::mem::transmute(lpencoding), ::core::mem::transmute(pnscores)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4100,7 +4080,7 @@ impl IMultiLanguage3 { (::windows::core::Interface::vtable(self).base__.ValidateCodePage)(::windows::core::Interface::as_raw(self), uicodepage, hwnd.into()).ok() } pub unsafe fn GetCodePageDescription(&self, uicodepage: u32, lcid: u32, lpwidecharstr: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetCodePageDescription)(::windows::core::Interface::as_raw(self), uicodepage, lcid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpwidecharstr)), lpwidecharstr.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetCodePageDescription)(::windows::core::Interface::as_raw(self), uicodepage, lcid, ::core::mem::transmute(lpwidecharstr.as_ptr()), lpwidecharstr.len() as _).ok() } pub unsafe fn IsCodePageInstallable(&self, uicodepage: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.IsCodePageInstallable)(::windows::core::Interface::as_raw(self), uicodepage).ok() @@ -4124,20 +4104,20 @@ impl IMultiLanguage3 { { (::windows::core::Interface::vtable(self).base__.ValidateCodePageEx)(::windows::core::Interface::as_raw(self), uicodepage, hwnd.into(), dwfiodcontrol).ok() } - pub unsafe fn DetectOutboundCodePage<'a, P0>(&self, dwflags: u32, lpwidecharstr: &[u16], puipreferredcodepages: &[u32], puidetectedcodepages: &mut u32, pndetectedcodepages: &mut u32, lpspecialchar: P0) -> ::windows::core::Result<()> + pub unsafe fn DetectOutboundCodePage<'a, P0>(&self, dwflags: u32, lpwidecharstr: &[u16], puipreferredcodepages: ::core::option::Option<&[u32]>, puidetectedcodepages: *mut u32, pndetectedcodepages: &mut u32, lpspecialchar: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).DetectOutboundCodePage)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpwidecharstr)), lpwidecharstr.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(puipreferredcodepages)), puipreferredcodepages.len() as _, ::core::mem::transmute(puidetectedcodepages), ::core::mem::transmute(pndetectedcodepages), lpspecialchar.into()).ok() + (::windows::core::Interface::vtable(self).DetectOutboundCodePage)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(lpwidecharstr.as_ptr()), lpwidecharstr.len() as _, ::core::mem::transmute(puipreferredcodepages.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), puipreferredcodepages.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(puidetectedcodepages), ::core::mem::transmute(pndetectedcodepages), lpspecialchar.into()).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn DetectOutboundCodePageInIStream<'a, P0, P1>(&self, dwflags: u32, pstrin: P0, puipreferredcodepages: &[u32], puidetectedcodepages: &mut u32, pndetectedcodepages: &mut u32, lpspecialchar: P1) -> ::windows::core::Result<()> + pub unsafe fn DetectOutboundCodePageInIStream<'a, P0, P1>(&self, dwflags: u32, pstrin: P0, puipreferredcodepages: ::core::option::Option<&[u32]>, puidetectedcodepages: *mut u32, pndetectedcodepages: &mut u32, lpspecialchar: P1) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::System::Com::IStream>>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).DetectOutboundCodePageInIStream)(::windows::core::Interface::as_raw(self), dwflags, pstrin.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(puipreferredcodepages)), puipreferredcodepages.len() as _, ::core::mem::transmute(puidetectedcodepages), ::core::mem::transmute(pndetectedcodepages), lpspecialchar.into()).ok() + (::windows::core::Interface::vtable(self).DetectOutboundCodePageInIStream)(::windows::core::Interface::as_raw(self), dwflags, pstrin.into().abi(), ::core::mem::transmute(puipreferredcodepages.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), puipreferredcodepages.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(puidetectedcodepages), ::core::mem::transmute(pndetectedcodepages), lpspecialchar.into()).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -5136,30 +5116,30 @@ pub struct IUserDictionariesRegistrar_Vtbl { } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn IdnToAscii(dwflags: u32, lpunicodecharstr: &[u16], lpasciicharstr: &mut [u16]) -> i32 { +pub unsafe fn IdnToAscii(dwflags: u32, lpunicodecharstr: &[u16], lpasciicharstr: ::core::option::Option<&mut [u16]>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn IdnToAscii(dwflags: u32, lpunicodecharstr: ::windows::core::PCWSTR, cchunicodechar: i32, lpasciicharstr: ::windows::core::PWSTR, cchasciichar: i32) -> i32; } - IdnToAscii(dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpunicodecharstr)), lpunicodecharstr.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpasciicharstr)), lpasciicharstr.len() as _) + IdnToAscii(dwflags, ::core::mem::transmute(lpunicodecharstr.as_ptr()), lpunicodecharstr.len() as _, ::core::mem::transmute(lpasciicharstr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpasciicharstr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn IdnToNameprepUnicode(dwflags: u32, lpunicodecharstr: &[u16], lpnameprepcharstr: &mut [u16]) -> i32 { +pub unsafe fn IdnToNameprepUnicode(dwflags: u32, lpunicodecharstr: &[u16], lpnameprepcharstr: ::core::option::Option<&mut [u16]>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn IdnToNameprepUnicode(dwflags: u32, lpunicodecharstr: ::windows::core::PCWSTR, cchunicodechar: i32, lpnameprepcharstr: ::windows::core::PWSTR, cchnameprepchar: i32) -> i32; } - IdnToNameprepUnicode(dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpunicodecharstr)), lpunicodecharstr.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpnameprepcharstr)), lpnameprepcharstr.len() as _) + IdnToNameprepUnicode(dwflags, ::core::mem::transmute(lpunicodecharstr.as_ptr()), lpunicodecharstr.len() as _, ::core::mem::transmute(lpnameprepcharstr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpnameprepcharstr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn IdnToUnicode(dwflags: u32, lpasciicharstr: &[u16], lpunicodecharstr: &mut [u16]) -> i32 { +pub unsafe fn IdnToUnicode(dwflags: u32, lpasciicharstr: &[u16], lpunicodecharstr: ::core::option::Option<&mut [u16]>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn IdnToUnicode(dwflags: u32, lpasciicharstr: ::windows::core::PCWSTR, cchasciichar: i32, lpunicodecharstr: ::windows::core::PWSTR, cchunicodechar: i32) -> i32; } - IdnToUnicode(dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpasciicharstr)), lpasciicharstr.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpunicodecharstr)), lpunicodecharstr.len() as _) + IdnToUnicode(dwflags, ::core::mem::transmute(lpasciicharstr.as_ptr()), lpasciicharstr.len() as _, ::core::mem::transmute(lpunicodecharstr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpunicodecharstr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5189,7 +5169,7 @@ pub unsafe fn IsNLSDefinedString(function: u32, dwflags: u32, lpversioninformati extern "system" { fn IsNLSDefinedString(function: u32, dwflags: u32, lpversioninformation: *const NLSVERSIONINFO, lpstring: ::windows::core::PCWSTR, cchstr: i32) -> super::Foundation::BOOL; } - IsNLSDefinedString(function, dwflags, ::core::mem::transmute(lpversioninformation), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring)), lpstring.len() as _) + IsNLSDefinedString(function, dwflags, ::core::mem::transmute(lpversioninformation), ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5199,17 +5179,17 @@ pub unsafe fn IsNormalizedString(normform: NORM_FORM, lpstring: &[u16]) -> super extern "system" { fn IsNormalizedString(normform: NORM_FORM, lpstring: ::windows::core::PCWSTR, cwlength: i32) -> super::Foundation::BOOL; } - IsNormalizedString(normform, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring)), lpstring.len() as _) + IsNormalizedString(normform, ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn IsTextUnicode(lpv: *const ::core::ffi::c_void, isize: i32, lpiresult: ::core::option::Option<&mut IS_TEXT_UNICODE_RESULT>) -> super::Foundation::BOOL { +pub unsafe fn IsTextUnicode(lpv: &[u8], lpiresult: ::core::option::Option<&mut IS_TEXT_UNICODE_RESULT>) -> super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn IsTextUnicode(lpv: *const ::core::ffi::c_void, isize: i32, lpiresult: *mut IS_TEXT_UNICODE_RESULT) -> super::Foundation::BOOL; } - IsTextUnicode(::core::mem::transmute(lpv), isize, ::core::mem::transmute(lpiresult)) + IsTextUnicode(::core::mem::transmute(lpv.as_ptr()), lpv.len() as _, ::core::mem::transmute(lpiresult)) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5292,12 +5272,12 @@ pub type LANGUAGEGROUP_ENUMPROCA = ::core::option::Option super::Foundation::BOOL>; #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn LCIDToLocaleName(locale: u32, lpname: &mut [u16], dwflags: u32) -> i32 { +pub unsafe fn LCIDToLocaleName(locale: u32, lpname: ::core::option::Option<&mut [u16]>, dwflags: u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn LCIDToLocaleName(locale: u32, lpname: ::windows::core::PWSTR, cchname: i32, dwflags: u32) -> i32; } - LCIDToLocaleName(locale, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpname)), lpname.len() as _, dwflags) + LCIDToLocaleName(locale, ::core::mem::transmute(lpname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpname.as_deref().map_or(0, |slice| slice.len() as _), dwflags) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] pub const LCID_ALTERNATE_SORTS: u32 = 4u32; @@ -5336,12 +5316,12 @@ pub unsafe fn LCMapStringA(locale: u32, dwmapflags: u32, lpsrcstr: &[u8], lpdest extern "system" { fn LCMapStringA(locale: u32, dwmapflags: u32, lpsrcstr: ::windows::core::PCSTR, cchsrc: i32, lpdeststr: ::windows::core::PSTR, cchdest: i32) -> i32; } - LCMapStringA(locale, dwmapflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpsrcstr)), lpsrcstr.len() as _, ::core::mem::transmute(lpdeststr), cchdest) + LCMapStringA(locale, dwmapflags, ::core::mem::transmute(lpsrcstr.as_ptr()), lpsrcstr.len() as _, ::core::mem::transmute(lpdeststr), cchdest) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn LCMapStringEx<'a, P0, P1>(lplocalename: P0, dwmapflags: u32, lpsrcstr: &[u16], lpdeststr: &mut [u16], lpversioninformation: ::core::option::Option<&NLSVERSIONINFO>, lpreserved: *const ::core::ffi::c_void, sorthandle: P1) -> i32 +pub unsafe fn LCMapStringEx<'a, P0, P1>(lplocalename: P0, dwmapflags: u32, lpsrcstr: &[u16], lpdeststr: ::core::option::Option<&mut [u16]>, lpversioninformation: ::core::option::Option<&NLSVERSIONINFO>, lpreserved: *const ::core::ffi::c_void, sorthandle: P1) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into, @@ -5350,7 +5330,7 @@ where extern "system" { fn LCMapStringEx(lplocalename: ::windows::core::PCWSTR, dwmapflags: u32, lpsrcstr: ::windows::core::PCWSTR, cchsrc: i32, lpdeststr: ::windows::core::PWSTR, cchdest: i32, lpversioninformation: *const NLSVERSIONINFO, lpreserved: *const ::core::ffi::c_void, sorthandle: super::Foundation::LPARAM) -> i32; } - LCMapStringEx(lplocalename.into(), dwmapflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpsrcstr)), lpsrcstr.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdeststr)), lpdeststr.len() as _, ::core::mem::transmute(lpversioninformation), ::core::mem::transmute(lpreserved), sorthandle.into()) + LCMapStringEx(lplocalename.into(), dwmapflags, ::core::mem::transmute(lpsrcstr.as_ptr()), lpsrcstr.len() as _, ::core::mem::transmute(lpdeststr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdeststr.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpversioninformation), ::core::mem::transmute(lpreserved), sorthandle.into()) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] @@ -5359,7 +5339,7 @@ pub unsafe fn LCMapStringW(locale: u32, dwmapflags: u32, lpsrcstr: &[u16], lpdes extern "system" { fn LCMapStringW(locale: u32, dwmapflags: u32, lpsrcstr: ::windows::core::PCWSTR, cchsrc: i32, lpdeststr: ::windows::core::PWSTR, cchdest: i32) -> i32; } - LCMapStringW(locale, dwmapflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpsrcstr)), lpsrcstr.len() as _, ::core::mem::transmute(lpdeststr), cchdest) + LCMapStringW(locale, dwmapflags, ::core::mem::transmute(lpsrcstr.as_ptr()), lpsrcstr.len() as _, ::core::mem::transmute(lpdeststr), cchdest) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] pub const LGRPID_ARABIC: u32 = 13u32; @@ -6461,16 +6441,16 @@ pub unsafe fn MappingRecognizeText(pserviceinfo: &MAPPING_SERVICE_INFO, psztext: extern "system" { fn MappingRecognizeText(pserviceinfo: *const MAPPING_SERVICE_INFO, psztext: ::windows::core::PCWSTR, dwlength: u32, dwindex: u32, poptions: *const MAPPING_OPTIONS, pbag: *mut MAPPING_PROPERTY_BAG) -> ::windows::core::HRESULT; } - MappingRecognizeText(::core::mem::transmute(pserviceinfo), ::core::mem::transmute(::windows::core::as_ptr_or_null(psztext)), psztext.len() as _, dwindex, ::core::mem::transmute(poptions), ::core::mem::transmute(pbag)).ok() + MappingRecognizeText(::core::mem::transmute(pserviceinfo), ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _, dwindex, ::core::mem::transmute(poptions), ::core::mem::transmute(pbag)).ok() } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn MultiByteToWideChar(codepage: u32, dwflags: MULTI_BYTE_TO_WIDE_CHAR_FLAGS, lpmultibytestr: &[u8], lpwidecharstr: &mut [u16]) -> i32 { +pub unsafe fn MultiByteToWideChar(codepage: u32, dwflags: MULTI_BYTE_TO_WIDE_CHAR_FLAGS, lpmultibytestr: &[u8], lpwidecharstr: ::core::option::Option<&mut [u16]>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MultiByteToWideChar(codepage: u32, dwflags: MULTI_BYTE_TO_WIDE_CHAR_FLAGS, lpmultibytestr: ::windows::core::PCSTR, cbmultibyte: i32, lpwidecharstr: ::windows::core::PWSTR, cchwidechar: i32) -> i32; } - MultiByteToWideChar(codepage, dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpmultibytestr)), lpmultibytestr.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpwidecharstr)), lpwidecharstr.len() as _) + MultiByteToWideChar(codepage, dwflags, ::core::mem::transmute(lpmultibytestr.as_ptr()), lpmultibytestr.len() as _, ::core::mem::transmute(lpwidecharstr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpwidecharstr.as_deref().map_or(0, |slice| slice.len() as _)) } #[repr(C)] #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`*"] @@ -6731,12 +6711,12 @@ impl ::core::default::Default for NUMBERFMTW { pub const NUMSYS_NAME_CAPACITY: u32 = 8u32; #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn NormalizeString(normform: NORM_FORM, lpsrcstring: &[u16], lpdststring: &mut [u16]) -> i32 { +pub unsafe fn NormalizeString(normform: NORM_FORM, lpsrcstring: &[u16], lpdststring: ::core::option::Option<&mut [u16]>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn NormalizeString(normform: NORM_FORM, lpsrcstring: ::windows::core::PCWSTR, cwsrclength: i32, lpdststring: ::windows::core::PWSTR, cwdstlength: i32) -> i32; } - NormalizeString(normform, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpsrcstring)), lpsrcstring.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdststring)), lpdststring.len() as _) + NormalizeString(normform, ::core::mem::transmute(lpsrcstring.as_ptr()), lpsrcstring.len() as _, ::core::mem::transmute(lpdststring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdststring.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6792,7 +6772,7 @@ impl ::core::default::Default for RFC1766INFO { } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn ResolveLocaleName<'a, P0>(lpnametoresolve: P0, lplocalename: &mut [u16]) -> i32 +pub unsafe fn ResolveLocaleName<'a, P0>(lpnametoresolve: P0, lplocalename: ::core::option::Option<&mut [u16]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -6800,7 +6780,7 @@ where extern "system" { fn ResolveLocaleName(lpnametoresolve: ::windows::core::PCWSTR, lplocalename: ::windows::core::PWSTR, cchlocalename: i32) -> i32; } - ResolveLocaleName(lpnametoresolve.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lplocalename)), lplocalename.len() as _) + ResolveLocaleName(lpnametoresolve.into(), ::core::mem::transmute(lplocalename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lplocalename.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] @@ -7574,7 +7554,7 @@ pub unsafe fn ScriptApplyDigitSubstitution(psds: &SCRIPT_DIGITSUBSTITUTE, psc: & #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn ScriptApplyLogicalWidth(pidx: &i32, cchars: i32, cglyphs: i32, pwlogclust: &u16, psva: &SCRIPT_VISATTR, piadvance: &i32, psa: &SCRIPT_ANALYSIS, pabc: ::core::option::Option<&mut super::Graphics::Gdi::ABC>, pijustify: &mut i32) -> ::windows::core::Result<()> { +pub unsafe fn ScriptApplyLogicalWidth(pidx: *const i32, cchars: i32, cglyphs: i32, pwlogclust: *const u16, psva: *const SCRIPT_VISATTR, piadvance: *const i32, psa: &SCRIPT_ANALYSIS, pabc: ::core::option::Option<&mut super::Graphics::Gdi::ABC>, pijustify: &mut i32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ScriptApplyLogicalWidth(pidx: *const i32, cchars: i32, cglyphs: i32, pwlogclust: *const u16, psva: *const SCRIPT_VISATTR, piadvance: *const i32, psa: *const SCRIPT_ANALYSIS, pabc: *mut super::Graphics::Gdi::ABC, pijustify: *mut i32) -> ::windows::core::HRESULT; @@ -7589,12 +7569,12 @@ pub unsafe fn ScriptBreak(pwcchars: &[u16], psa: &SCRIPT_ANALYSIS) -> ::windows: fn ScriptBreak(pwcchars: ::windows::core::PCWSTR, cchars: i32, psa: *const SCRIPT_ANALYSIS, psla: *mut SCRIPT_LOGATTR) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - ScriptBreak(::core::mem::transmute(::windows::core::as_ptr_or_null(pwcchars)), pwcchars.len() as _, ::core::mem::transmute(psa), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + ScriptBreak(::core::mem::transmute(pwcchars.as_ptr()), pwcchars.len() as _, ::core::mem::transmute(psa), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ScriptCPtoX<'a, P0>(icp: i32, ftrailing: P0, cglyphs: i32, pwlogclust: &[u16], psva: &SCRIPT_VISATTR, piadvance: &i32, psa: &SCRIPT_ANALYSIS, pix: &mut i32) -> ::windows::core::Result<()> +pub unsafe fn ScriptCPtoX<'a, P0>(icp: i32, ftrailing: P0, cglyphs: i32, pwlogclust: &[u16], psva: *const SCRIPT_VISATTR, piadvance: *const i32, psa: &SCRIPT_ANALYSIS, pix: &mut i32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -7602,7 +7582,7 @@ where extern "system" { fn ScriptCPtoX(icp: i32, ftrailing: super::Foundation::BOOL, cchars: i32, cglyphs: i32, pwlogclust: *const u16, psva: *const SCRIPT_VISATTR, piadvance: *const i32, psa: *const SCRIPT_ANALYSIS, pix: *mut i32) -> ::windows::core::HRESULT; } - ScriptCPtoX(icp, ftrailing.into(), pwlogclust.len() as _, ::core::mem::transmute(cglyphs), ::core::mem::transmute(::windows::core::as_ptr_or_null(pwlogclust)), ::core::mem::transmute(psva), ::core::mem::transmute(piadvance), ::core::mem::transmute(psa), ::core::mem::transmute(pix)).ok() + ScriptCPtoX(icp, ftrailing.into(), pwlogclust.len() as _, ::core::mem::transmute(cglyphs), ::core::mem::transmute(pwlogclust.as_ptr()), ::core::mem::transmute(psva), ::core::mem::transmute(piadvance), ::core::mem::transmute(psa), ::core::mem::transmute(pix)).ok() } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] @@ -7629,7 +7609,7 @@ pub unsafe fn ScriptFreeCache(psc: *mut *mut ::core::ffi::c_void) -> ::windows:: #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn ScriptGetCMap<'a, P0>(hdc: P0, psc: *mut *mut ::core::ffi::c_void, pwcinchars: ::windows::core::PCWSTR, cchars: i32, dwflags: u32, pwoutglyphs: &mut u16) -> ::windows::core::Result<()> +pub unsafe fn ScriptGetCMap<'a, P0>(hdc: P0, psc: *mut *mut ::core::ffi::c_void, pwcinchars: ::windows::core::PCWSTR, cchars: i32, dwflags: u32, pwoutglyphs: *mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -7650,7 +7630,7 @@ where extern "system" { fn ScriptGetFontAlternateGlyphs(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, psa: *const SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, tagfeature: u32, wglyphid: u16, cmaxalternates: i32, palternateglyphs: *mut u16, pcalternates: *mut i32) -> ::windows::core::HRESULT; } - ScriptGetFontAlternateGlyphs(hdc.into(), ::core::mem::transmute(psc), ::core::mem::transmute(psa), tagscript, taglangsys, tagfeature, wglyphid, palternateglyphs.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(palternateglyphs)), ::core::mem::transmute(pcalternates)).ok() + ScriptGetFontAlternateGlyphs(hdc.into(), ::core::mem::transmute(psc), ::core::mem::transmute(psa), tagscript, taglangsys, tagfeature, wglyphid, palternateglyphs.len() as _, ::core::mem::transmute(palternateglyphs.as_ptr()), ::core::mem::transmute(pcalternates)).ok() } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] @@ -7663,7 +7643,7 @@ where extern "system" { fn ScriptGetFontFeatureTags(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, psa: *const SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, cmaxtags: i32, pfeaturetags: *mut u32, pctags: *mut i32) -> ::windows::core::HRESULT; } - ScriptGetFontFeatureTags(hdc.into(), ::core::mem::transmute(psc), ::core::mem::transmute(psa), tagscript, taglangsys, pfeaturetags.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pfeaturetags)), ::core::mem::transmute(pctags)).ok() + ScriptGetFontFeatureTags(hdc.into(), ::core::mem::transmute(psc), ::core::mem::transmute(psa), tagscript, taglangsys, pfeaturetags.len() as _, ::core::mem::transmute(pfeaturetags.as_ptr()), ::core::mem::transmute(pctags)).ok() } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] @@ -7676,7 +7656,7 @@ where extern "system" { fn ScriptGetFontLanguageTags(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, psa: *const SCRIPT_ANALYSIS, tagscript: u32, cmaxtags: i32, plangsystags: *mut u32, pctags: *mut i32) -> ::windows::core::HRESULT; } - ScriptGetFontLanguageTags(hdc.into(), ::core::mem::transmute(psc), ::core::mem::transmute(psa), tagscript, plangsystags.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(plangsystags)), ::core::mem::transmute(pctags)).ok() + ScriptGetFontLanguageTags(hdc.into(), ::core::mem::transmute(psc), ::core::mem::transmute(psa), tagscript, plangsystags.len() as _, ::core::mem::transmute(plangsystags.as_ptr()), ::core::mem::transmute(pctags)).ok() } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] @@ -7702,7 +7682,7 @@ where extern "system" { fn ScriptGetFontScriptTags(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, psa: *const SCRIPT_ANALYSIS, cmaxtags: i32, pscripttags: *mut u32, pctags: *mut i32) -> ::windows::core::HRESULT; } - ScriptGetFontScriptTags(hdc.into(), ::core::mem::transmute(psc), ::core::mem::transmute(psa), pscripttags.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pscripttags)), ::core::mem::transmute(pctags)).ok() + ScriptGetFontScriptTags(hdc.into(), ::core::mem::transmute(psc), ::core::mem::transmute(psa), pscripttags.len() as _, ::core::mem::transmute(pscripttags.as_ptr()), ::core::mem::transmute(pctags)).ok() } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] @@ -7719,7 +7699,7 @@ where } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn ScriptGetLogicalWidths(psa: &SCRIPT_ANALYSIS, cchars: i32, cglyphs: i32, piglyphwidth: &i32, pwlogclust: &u16, psva: &SCRIPT_VISATTR, pidx: &i32) -> ::windows::core::Result<()> { +pub unsafe fn ScriptGetLogicalWidths(psa: &SCRIPT_ANALYSIS, cchars: i32, cglyphs: i32, piglyphwidth: *const i32, pwlogclust: *const u16, psva: *const SCRIPT_VISATTR, pidx: *const i32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ScriptGetLogicalWidths(psa: *const SCRIPT_ANALYSIS, cchars: i32, cglyphs: i32, piglyphwidth: *const i32, pwlogclust: *const u16, psva: *const SCRIPT_VISATTR, pidx: *const i32) -> ::windows::core::HRESULT; @@ -7742,7 +7722,7 @@ pub unsafe fn ScriptIsComplex(pwcinchars: &[u16], dwflags: SCRIPT_IS_COMPLEX_FLA extern "system" { fn ScriptIsComplex(pwcinchars: ::windows::core::PCWSTR, cinchars: i32, dwflags: SCRIPT_IS_COMPLEX_FLAGS) -> ::windows::core::HRESULT; } - ScriptIsComplex(::core::mem::transmute(::windows::core::as_ptr_or_null(pwcinchars)), pwcinchars.len() as _, dwflags).ok() + ScriptIsComplex(::core::mem::transmute(pwcinchars.as_ptr()), pwcinchars.len() as _, dwflags).ok() } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] @@ -7751,20 +7731,20 @@ pub unsafe fn ScriptItemize(pwcinchars: &[u16], pscontrol: ::core::option::Optio extern "system" { fn ScriptItemize(pwcinchars: ::windows::core::PCWSTR, cinchars: i32, cmaxitems: i32, pscontrol: *const SCRIPT_CONTROL, psstate: *const SCRIPT_STATE, pitems: *mut SCRIPT_ITEM, pcitems: *mut i32) -> ::windows::core::HRESULT; } - ScriptItemize(::core::mem::transmute(::windows::core::as_ptr_or_null(pwcinchars)), pwcinchars.len() as _, pitems.len() as _, ::core::mem::transmute(pscontrol), ::core::mem::transmute(psstate), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pitems)), ::core::mem::transmute(pcitems)).ok() + ScriptItemize(::core::mem::transmute(pwcinchars.as_ptr()), pwcinchars.len() as _, pitems.len() as _, ::core::mem::transmute(pscontrol), ::core::mem::transmute(psstate), ::core::mem::transmute(pitems.as_ptr()), ::core::mem::transmute(pcitems)).ok() } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn ScriptItemizeOpenType(pwcinchars: &[u16], cmaxitems: i32, pscontrol: ::core::option::Option<&SCRIPT_CONTROL>, psstate: ::core::option::Option<&SCRIPT_STATE>, pitems: &mut SCRIPT_ITEM, pscripttags: &mut u32, pcitems: &mut i32) -> ::windows::core::Result<()> { +pub unsafe fn ScriptItemizeOpenType(pwcinchars: &[u16], cmaxitems: i32, pscontrol: ::core::option::Option<&SCRIPT_CONTROL>, psstate: ::core::option::Option<&SCRIPT_STATE>, pitems: *mut SCRIPT_ITEM, pscripttags: *mut u32, pcitems: &mut i32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ScriptItemizeOpenType(pwcinchars: ::windows::core::PCWSTR, cinchars: i32, cmaxitems: i32, pscontrol: *const SCRIPT_CONTROL, psstate: *const SCRIPT_STATE, pitems: *mut SCRIPT_ITEM, pscripttags: *mut u32, pcitems: *mut i32) -> ::windows::core::HRESULT; } - ScriptItemizeOpenType(::core::mem::transmute(::windows::core::as_ptr_or_null(pwcinchars)), pwcinchars.len() as _, ::core::mem::transmute(cmaxitems), ::core::mem::transmute(pscontrol), ::core::mem::transmute(psstate), ::core::mem::transmute(pitems), ::core::mem::transmute(pscripttags), ::core::mem::transmute(pcitems)).ok() + ScriptItemizeOpenType(::core::mem::transmute(pwcinchars.as_ptr()), pwcinchars.len() as _, ::core::mem::transmute(cmaxitems), ::core::mem::transmute(pscontrol), ::core::mem::transmute(psstate), ::core::mem::transmute(pitems), ::core::mem::transmute(pscripttags), ::core::mem::transmute(pcitems)).ok() } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn ScriptJustify(psva: &SCRIPT_VISATTR, piadvance: &i32, cglyphs: i32, idx: i32, iminkashida: i32) -> ::windows::core::Result { +pub unsafe fn ScriptJustify(psva: *const SCRIPT_VISATTR, piadvance: *const i32, cglyphs: i32, idx: i32, iminkashida: i32) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ScriptJustify(psva: *const SCRIPT_VISATTR, piadvance: *const i32, cglyphs: i32, idx: i32, iminkashida: i32, pijustify: *mut i32) -> ::windows::core::HRESULT; @@ -7779,12 +7759,12 @@ pub unsafe fn ScriptLayout(pblevel: &[u8], pivisualtological: ::core::option::Op extern "system" { fn ScriptLayout(cruns: i32, pblevel: *const u8, pivisualtological: *mut i32, pilogicaltovisual: *mut i32) -> ::windows::core::HRESULT; } - ScriptLayout(pblevel.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pblevel)), ::core::mem::transmute(pivisualtological), ::core::mem::transmute(pilogicaltovisual)).ok() + ScriptLayout(pblevel.len() as _, ::core::mem::transmute(pblevel.as_ptr()), ::core::mem::transmute(pivisualtological), ::core::mem::transmute(pilogicaltovisual)).ok() } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn ScriptPlace<'a, P0>(hdc: P0, psc: *mut *mut ::core::ffi::c_void, pwglyphs: &u16, cglyphs: i32, psva: &SCRIPT_VISATTR, psa: &mut SCRIPT_ANALYSIS, piadvance: &mut i32, pgoffset: ::core::option::Option<&mut GOFFSET>, pabc: &mut super::Graphics::Gdi::ABC) -> ::windows::core::Result<()> +pub unsafe fn ScriptPlace<'a, P0>(hdc: P0, psc: *mut *mut ::core::ffi::c_void, pwglyphs: *const u16, cglyphs: i32, psva: *const SCRIPT_VISATTR, psa: &mut SCRIPT_ANALYSIS, piadvance: &mut i32, pgoffset: ::core::option::Option<&mut GOFFSET>, pabc: &mut super::Graphics::Gdi::ABC) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -7797,7 +7777,7 @@ where #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn ScriptPlaceOpenType<'a, P0>(hdc: P0, psc: *mut *mut ::core::ffi::c_void, psa: &mut SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, rcrangechars: ::core::option::Option<&i32>, rprangeproperties: ::core::option::Option<&*const textrange_properties>, cranges: i32, pwcchars: ::windows::core::PCWSTR, pwlogclust: &u16, pcharprops: &script_charprop, cchars: i32, pwglyphs: &u16, pglyphprops: &script_glyphprop, cglyphs: i32, piadvance: &mut i32, pgoffset: &mut GOFFSET, pabc: ::core::option::Option<&mut super::Graphics::Gdi::ABC>) -> ::windows::core::Result<()> +pub unsafe fn ScriptPlaceOpenType<'a, P0>(hdc: P0, psc: *mut *mut ::core::ffi::c_void, psa: &mut SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, rcrangechars: *const i32, rprangeproperties: *const *const textrange_properties, cranges: i32, pwcchars: ::windows::core::PCWSTR, pwlogclust: *const u16, pcharprops: *const script_charprop, cchars: i32, pwglyphs: *const u16, pglyphprops: *const script_glyphprop, cglyphs: i32, piadvance: &mut i32, pgoffset: &mut GOFFSET, pabc: ::core::option::Option<&mut super::Graphics::Gdi::ABC>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -7853,7 +7833,7 @@ pub unsafe fn ScriptRecordDigitSubstitution(locale: u32) -> ::windows::core::Res #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn ScriptShape<'a, P0>(hdc: P0, psc: *mut *mut ::core::ffi::c_void, pwcchars: &[u16], cmaxglyphs: i32, psa: &mut SCRIPT_ANALYSIS, pwoutglyphs: &mut u16, pwlogclust: &mut u16, psva: &mut SCRIPT_VISATTR, pcglyphs: &mut i32) -> ::windows::core::Result<()> +pub unsafe fn ScriptShape<'a, P0>(hdc: P0, psc: *mut *mut ::core::ffi::c_void, pwcchars: &[u16], cmaxglyphs: i32, psa: &mut SCRIPT_ANALYSIS, pwoutglyphs: *mut u16, pwlogclust: &mut u16, psva: *mut SCRIPT_VISATTR, pcglyphs: &mut i32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -7861,12 +7841,12 @@ where extern "system" { fn ScriptShape(hdc: super::Graphics::Gdi::HDC, psc: *mut *mut ::core::ffi::c_void, pwcchars: ::windows::core::PCWSTR, cchars: i32, cmaxglyphs: i32, psa: *mut SCRIPT_ANALYSIS, pwoutglyphs: *mut u16, pwlogclust: *mut u16, psva: *mut SCRIPT_VISATTR, pcglyphs: *mut i32) -> ::windows::core::HRESULT; } - ScriptShape(hdc.into(), ::core::mem::transmute(psc), ::core::mem::transmute(::windows::core::as_ptr_or_null(pwcchars)), pwcchars.len() as _, ::core::mem::transmute(cmaxglyphs), ::core::mem::transmute(psa), ::core::mem::transmute(pwoutglyphs), ::core::mem::transmute(pwlogclust), ::core::mem::transmute(psva), ::core::mem::transmute(pcglyphs)).ok() + ScriptShape(hdc.into(), ::core::mem::transmute(psc), ::core::mem::transmute(pwcchars.as_ptr()), pwcchars.len() as _, ::core::mem::transmute(cmaxglyphs), ::core::mem::transmute(psa), ::core::mem::transmute(pwoutglyphs), ::core::mem::transmute(pwlogclust), ::core::mem::transmute(psva), ::core::mem::transmute(pcglyphs)).ok() } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn ScriptShapeOpenType<'a, P0>(hdc: P0, psc: *mut *mut ::core::ffi::c_void, psa: &mut SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, rcrangechars: ::core::option::Option<&i32>, rprangeproperties: ::core::option::Option<&*const textrange_properties>, cranges: i32, pwcchars: &[u16], cmaxglyphs: i32, pwlogclust: &mut u16, pcharprops: &mut script_charprop, pwoutglyphs: &mut u16, poutglyphprops: &mut script_glyphprop, pcglyphs: &mut i32) -> ::windows::core::Result<()> +pub unsafe fn ScriptShapeOpenType<'a, P0>(hdc: P0, psc: *mut *mut ::core::ffi::c_void, psa: &mut SCRIPT_ANALYSIS, tagscript: u32, taglangsys: u32, rcrangechars: *const i32, rprangeproperties: *const *const textrange_properties, cranges: i32, pwcchars: &[u16], cmaxglyphs: i32, pwlogclust: &mut u16, pcharprops: &mut script_charprop, pwoutglyphs: *mut u16, poutglyphprops: *mut script_glyphprop, pcglyphs: &mut i32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -7883,7 +7863,7 @@ where ::core::mem::transmute(rcrangechars), ::core::mem::transmute(rprangeproperties), ::core::mem::transmute(cranges), - ::core::mem::transmute(::windows::core::as_ptr_or_null(pwcchars)), + ::core::mem::transmute(pwcchars.as_ptr()), pwcchars.len() as _, ::core::mem::transmute(cmaxglyphs), ::core::mem::transmute(pwlogclust), @@ -7897,7 +7877,7 @@ where #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn ScriptStringAnalyse<'a, P0>(hdc: P0, pstring: *const ::core::ffi::c_void, cglyphs: i32, icharset: i32, dwflags: u32, ireqwidth: i32, pscontrol: ::core::option::Option<&SCRIPT_CONTROL>, psstate: ::core::option::Option<&SCRIPT_STATE>, pidx: &[i32], ptabdef: ::core::option::Option<&SCRIPT_TABDEF>, pbinclass: &u8, pssa: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> +pub unsafe fn ScriptStringAnalyse<'a, P0>(hdc: P0, pstring: *const ::core::ffi::c_void, cglyphs: i32, icharset: i32, dwflags: u32, ireqwidth: i32, pscontrol: ::core::option::Option<&SCRIPT_CONTROL>, psstate: ::core::option::Option<&SCRIPT_STATE>, pidx: ::core::option::Option<&[i32]>, ptabdef: ::core::option::Option<&SCRIPT_TABDEF>, pbinclass: &u8, pssa: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -7905,7 +7885,7 @@ where extern "system" { fn ScriptStringAnalyse(hdc: super::Graphics::Gdi::HDC, pstring: *const ::core::ffi::c_void, cstring: i32, cglyphs: i32, icharset: i32, dwflags: u32, ireqwidth: i32, pscontrol: *const SCRIPT_CONTROL, psstate: *const SCRIPT_STATE, pidx: *const i32, ptabdef: *const SCRIPT_TABDEF, pbinclass: *const u8, pssa: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - ScriptStringAnalyse(hdc.into(), ::core::mem::transmute(pstring), pidx.len() as _, cglyphs, icharset, dwflags, ireqwidth, ::core::mem::transmute(pscontrol), ::core::mem::transmute(psstate), ::core::mem::transmute(::windows::core::as_ptr_or_null(pidx)), ::core::mem::transmute(ptabdef), ::core::mem::transmute(pbinclass), ::core::mem::transmute(pssa)).ok() + ScriptStringAnalyse(hdc.into(), ::core::mem::transmute(pstring), pidx.as_deref().map_or(0, |slice| slice.len() as _), cglyphs, icharset, dwflags, ireqwidth, ::core::mem::transmute(pscontrol), ::core::mem::transmute(psstate), ::core::mem::transmute(pidx.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(ptabdef), ::core::mem::transmute(pbinclass), ::core::mem::transmute(pssa)).ok() } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8023,7 +8003,7 @@ where #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] #[inline] -pub unsafe fn ScriptTextOut<'a, P0, P1>(hdc: P0, psc: *mut *mut ::core::ffi::c_void, x: i32, y: i32, fuoptions: u32, lprc: ::core::option::Option<&super::Foundation::RECT>, psa: &SCRIPT_ANALYSIS, pwcreserved: P1, ireserved: i32, pwglyphs: &u16, cglyphs: i32, piadvance: &i32, pijustify: ::core::option::Option<&i32>, pgoffset: &GOFFSET) -> ::windows::core::Result<()> +pub unsafe fn ScriptTextOut<'a, P0, P1>(hdc: P0, psc: *mut *mut ::core::ffi::c_void, x: i32, y: i32, fuoptions: u32, lprc: ::core::option::Option<&super::Foundation::RECT>, psa: &SCRIPT_ANALYSIS, pwcreserved: P1, ireserved: i32, pwglyphs: *const u16, cglyphs: i32, piadvance: *const i32, pijustify: *const i32, pgoffset: *const GOFFSET) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -8036,12 +8016,12 @@ where } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn ScriptXtoCP(ix: i32, cglyphs: i32, pwlogclust: &[u16], psva: &SCRIPT_VISATTR, piadvance: &i32, psa: &SCRIPT_ANALYSIS, picp: &mut i32, pitrailing: &mut i32) -> ::windows::core::Result<()> { +pub unsafe fn ScriptXtoCP(ix: i32, cglyphs: i32, pwlogclust: &[u16], psva: *const SCRIPT_VISATTR, piadvance: *const i32, psa: &SCRIPT_ANALYSIS, picp: &mut i32, pitrailing: &mut i32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ScriptXtoCP(ix: i32, cchars: i32, cglyphs: i32, pwlogclust: *const u16, psva: *const SCRIPT_VISATTR, piadvance: *const i32, psa: *const SCRIPT_ANALYSIS, picp: *mut i32, pitrailing: *mut i32) -> ::windows::core::HRESULT; } - ScriptXtoCP(ix, pwlogclust.len() as _, ::core::mem::transmute(cglyphs), ::core::mem::transmute(::windows::core::as_ptr_or_null(pwlogclust)), ::core::mem::transmute(psva), ::core::mem::transmute(piadvance), ::core::mem::transmute(psa), ::core::mem::transmute(picp), ::core::mem::transmute(pitrailing)).ok() + ScriptXtoCP(ix, pwlogclust.len() as _, ::core::mem::transmute(cglyphs), ::core::mem::transmute(pwlogclust.as_ptr()), ::core::mem::transmute(psva), ::core::mem::transmute(piadvance), ::core::mem::transmute(psa), ::core::mem::transmute(picp), ::core::mem::transmute(pitrailing)).ok() } #[doc = "*Required features: `\"Win32_Globalization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -16892,7 +16872,7 @@ impl ::core::fmt::Debug for WORDLIST_TYPE { } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] -pub unsafe fn WideCharToMultiByte<'a, P0>(codepage: u32, dwflags: u32, lpwidecharstr: &[u16], lpmultibytestr: ::windows::core::PSTR, cbmultibyte: i32, lpdefaultchar: P0, lpuseddefaultchar: ::core::option::Option<&mut i32>) -> i32 +pub unsafe fn WideCharToMultiByte<'a, P0>(codepage: u32, dwflags: u32, lpwidecharstr: &[u16], lpmultibytestr: ::core::option::Option<&mut [u8]>, lpdefaultchar: P0, lpuseddefaultchar: ::core::option::Option<&mut i32>) -> i32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -16900,7 +16880,7 @@ where extern "system" { fn WideCharToMultiByte(codepage: u32, dwflags: u32, lpwidecharstr: ::windows::core::PCWSTR, cchwidechar: i32, lpmultibytestr: ::windows::core::PSTR, cbmultibyte: i32, lpdefaultchar: ::windows::core::PCSTR, lpuseddefaultchar: *mut i32) -> i32; } - WideCharToMultiByte(codepage, dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpwidecharstr)), lpwidecharstr.len() as _, ::core::mem::transmute(lpmultibytestr), cbmultibyte, lpdefaultchar.into(), ::core::mem::transmute(lpuseddefaultchar)) + WideCharToMultiByte(codepage, dwflags, ::core::mem::transmute(lpwidecharstr.as_ptr()), lpwidecharstr.len() as _, ::core::mem::transmute(lpmultibytestr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpmultibytestr.as_deref().map_or(0, |slice| slice.len() as _), lpdefaultchar.into(), ::core::mem::transmute(lpuseddefaultchar)) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] @@ -17012,7 +16992,7 @@ where extern "system" { fn lstrcpynA(lpstring1: ::windows::core::PSTR, lpstring2: ::windows::core::PCSTR, imaxlength: i32) -> ::windows::core::PSTR; } - lstrcpynA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstring1)), lpstring2.into(), lpstring1.len() as _) + lstrcpynA(::core::mem::transmute(lpstring1.as_ptr()), lpstring2.into(), lpstring1.len() as _) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] @@ -17024,7 +17004,7 @@ where extern "system" { fn lstrcpynW(lpstring1: ::windows::core::PWSTR, lpstring2: ::windows::core::PCWSTR, imaxlength: i32) -> ::windows::core::PWSTR; } - lstrcpynW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstring1)), lpstring2.into(), lpstring1.len() as _) + lstrcpynW(::core::mem::transmute(lpstring1.as_ptr()), lpstring2.into(), lpstring1.len() as _) } #[doc = "*Required features: `\"Win32_Globalization\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/DXCore/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/DXCore/mod.rs index 1b76d84715..73ad73f02d 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/DXCore/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/DXCore/mod.rs @@ -325,8 +325,8 @@ impl IDXCoreAdapter { pub unsafe fn IsPropertySupported(&self, property: DXCoreAdapterProperty) -> bool { (::windows::core::Interface::vtable(self).IsPropertySupported)(::windows::core::Interface::as_raw(self), property) } - pub unsafe fn GetProperty(&self, property: DXCoreAdapterProperty, buffersize: usize, propertydata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProperty)(::windows::core::Interface::as_raw(self), property, buffersize, ::core::mem::transmute(propertydata)).ok() + pub unsafe fn GetProperty(&self, property: DXCoreAdapterProperty, propertydata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProperty)(::windows::core::Interface::as_raw(self), property, propertydata.len() as _, ::core::mem::transmute(propertydata.as_ptr())).ok() } pub unsafe fn GetPropertySize(&self, property: DXCoreAdapterProperty) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -335,14 +335,14 @@ impl IDXCoreAdapter { pub unsafe fn IsQueryStateSupported(&self, property: DXCoreAdapterState) -> bool { (::windows::core::Interface::vtable(self).IsQueryStateSupported)(::windows::core::Interface::as_raw(self), property) } - pub unsafe fn QueryState(&self, state: DXCoreAdapterState, inputstatedetailssize: usize, inputstatedetails: *const ::core::ffi::c_void, outputbuffersize: usize, outputbuffer: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).QueryState)(::windows::core::Interface::as_raw(self), state, inputstatedetailssize, ::core::mem::transmute(inputstatedetails), outputbuffersize, ::core::mem::transmute(outputbuffer)).ok() + pub unsafe fn QueryState(&self, state: DXCoreAdapterState, inputstatedetails: ::core::option::Option<&[u8]>, outputbuffer: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).QueryState)(::windows::core::Interface::as_raw(self), state, inputstatedetails.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(inputstatedetails.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), outputbuffer.len() as _, ::core::mem::transmute(outputbuffer.as_ptr())).ok() } pub unsafe fn IsSetStateSupported(&self, property: DXCoreAdapterState) -> bool { (::windows::core::Interface::vtable(self).IsSetStateSupported)(::windows::core::Interface::as_raw(self), property) } - pub unsafe fn SetState(&self, state: DXCoreAdapterState, inputstatedetailssize: usize, inputstatedetails: *const ::core::ffi::c_void, inputdatasize: usize, inputdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetState)(::windows::core::Interface::as_raw(self), state, inputstatedetailssize, ::core::mem::transmute(inputstatedetails), inputdatasize, ::core::mem::transmute(inputdata)).ok() + pub unsafe fn SetState(&self, state: DXCoreAdapterState, inputstatedetails: ::core::option::Option<&[u8]>, inputdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetState)(::windows::core::Interface::as_raw(self), state, inputstatedetails.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(inputstatedetails.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), inputdata.len() as _, ::core::mem::transmute(inputdata.as_ptr())).ok() } pub unsafe fn GetFactory(&self) -> ::windows::core::Result where @@ -411,7 +411,7 @@ impl IDXCoreAdapterFactory { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).CreateAdapterList)(::windows::core::Interface::as_raw(self), filterattributes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(filterattributes)), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).CreateAdapterList)(::windows::core::Interface::as_raw(self), filterattributes.len() as _, ::core::mem::transmute(filterattributes.as_ptr()), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -509,7 +509,7 @@ impl IDXCoreAdapterList { (::windows::core::Interface::vtable(self).GetFactory)(::windows::core::Interface::as_raw(self), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn Sort(&self, preferences: &[DXCoreAdapterPreference]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Sort)(::windows::core::Interface::as_raw(self), preferences.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(preferences))).ok() + (::windows::core::Interface::vtable(self).Sort)(::windows::core::Interface::as_raw(self), preferences.len() as _, ::core::mem::transmute(preferences.as_ptr())).ok() } pub unsafe fn IsAdapterPreferenceSupported(&self, preference: DXCoreAdapterPreference) -> bool { (::windows::core::Interface::vtable(self).IsAdapterPreferenceSupported)(::windows::core::Interface::as_raw(self), preference) diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/Direct2D/Common/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/Direct2D/Common/mod.rs index 3b450fd041..c2dff4bc6f 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Direct2D/Common/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Direct2D/Common/mod.rs @@ -1297,10 +1297,10 @@ impl ID2D1SimplifiedGeometrySink { (::windows::core::Interface::vtable(self).BeginFigure)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(startpoint), figurebegin) } pub unsafe fn AddLines(&self, points: &[D2D_POINT_2F]) { - (::windows::core::Interface::vtable(self).AddLines)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(points)), points.len() as _) + (::windows::core::Interface::vtable(self).AddLines)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(points.as_ptr()), points.len() as _) } pub unsafe fn AddBeziers(&self, beziers: &[D2D1_BEZIER_SEGMENT]) { - (::windows::core::Interface::vtable(self).AddBeziers)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(beziers)), beziers.len() as _) + (::windows::core::Interface::vtable(self).AddBeziers)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(beziers.as_ptr()), beziers.len() as _) } pub unsafe fn EndFigure(&self, figureend: D2D1_FIGURE_END) { (::windows::core::Interface::vtable(self).EndFigure)(::windows::core::Interface::as_raw(self), figureend) diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/Direct2D/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/Direct2D/mod.rs index ff02e406c7..e4e55df242 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Direct2D/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Direct2D/mod.rs @@ -8051,7 +8051,7 @@ pub const FACILITY_D2D: u32 = 2201u32; pub struct ID2D1AnalysisTransform(::windows::core::IUnknown); impl ID2D1AnalysisTransform { pub unsafe fn ProcessAnalysisResults(&self, analysisdata: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ProcessAnalysisResults)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(analysisdata)), analysisdata.len() as _).ok() + (::windows::core::Interface::vtable(self).ProcessAnalysisResults)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(analysisdata.as_ptr()), analysisdata.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -8727,7 +8727,7 @@ impl ID2D1BitmapRenderTarget { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection(&self, gradientstops: &[D2D1_GRADIENT_STOP], colorinterpolationgamma: D2D1_GAMMA, extendmode: D2D1_EXTEND_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(gradientstops)), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(gradientstops.as_ptr()), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -8870,7 +8870,7 @@ impl ID2D1BitmapRenderTarget { P0: ::std::convert::Into<::windows::core::InParam<'a, super::DirectWrite::IDWriteTextFormat>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Brush>>, { - (::windows::core::Interface::vtable(self).base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) + (::windows::core::Interface::vtable(self).base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_DirectWrite"))] @@ -9472,7 +9472,7 @@ impl ID2D1ColorContext { (::windows::core::Interface::vtable(self).GetProfileSize)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetProfile(&self, profile: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProfile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(profile)), profile.len() as _).ok() + (::windows::core::Interface::vtable(self).GetProfile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(profile.as_ptr()), profile.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -9547,7 +9547,7 @@ impl ID2D1ColorContext1 { (::windows::core::Interface::vtable(self).base__.GetProfileSize)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetProfile(&self, profile: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetProfile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(profile)), profile.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetProfile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(profile.as_ptr()), profile.len() as _).ok() } pub unsafe fn GetColorContextType(&self) -> D2D1_COLOR_CONTEXT_TYPE { (::windows::core::Interface::vtable(self).GetColorContextType)(::windows::core::Interface::as_raw(self)) @@ -11352,7 +11352,7 @@ impl ID2D1ComputeInfo { (::windows::core::Interface::vtable(self).base__.SetInstructionCountHint)(::windows::core::Interface::as_raw(self), instructioncount) } pub unsafe fn SetComputeShaderConstantBuffer(&self, buffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetComputeShaderConstantBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(buffer)), buffer.len() as _).ok() + (::windows::core::Interface::vtable(self).SetComputeShaderConstantBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _).ok() } pub unsafe fn SetComputeShader(&self, shaderid: &::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(shaderid)).ok() @@ -11432,11 +11432,11 @@ impl ID2D1ComputeTransform { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn MapOutputRectToInputRects(&self, outputrect: &super::super::Foundation::RECT, inputrects: &mut [super::super::Foundation::RECT]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.MapOutputRectToInputRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(outputrect), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(inputrects)), inputrects.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.MapOutputRectToInputRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(outputrect), ::core::mem::transmute(inputrects.as_ptr()), inputrects.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn MapInputRectsToOutputRect(&self, inputrects: &super::super::Foundation::RECT, inputopaquesubrects: &super::super::Foundation::RECT, inputrectcount: u32, outputrect: &mut super::super::Foundation::RECT, outputopaquesubrect: &mut super::super::Foundation::RECT) -> ::windows::core::Result<()> { + pub unsafe fn MapInputRectsToOutputRect(&self, inputrects: *const super::super::Foundation::RECT, inputopaquesubrects: *const super::super::Foundation::RECT, inputrectcount: u32, outputrect: &mut super::super::Foundation::RECT, outputopaquesubrect: &mut super::super::Foundation::RECT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.MapInputRectsToOutputRect)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(inputrects), ::core::mem::transmute(inputopaquesubrects), ::core::mem::transmute(inputrectcount), ::core::mem::transmute(outputrect), ::core::mem::transmute(outputopaquesubrect)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -11657,7 +11657,7 @@ impl ID2D1DCRenderTarget { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection(&self, gradientstops: &[D2D1_GRADIENT_STOP], colorinterpolationgamma: D2D1_GAMMA, extendmode: D2D1_EXTEND_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(gradientstops)), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(gradientstops.as_ptr()), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -11800,7 +11800,7 @@ impl ID2D1DCRenderTarget { P0: ::std::convert::Into<::windows::core::InParam<'a, super::DirectWrite::IDWriteTextFormat>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Brush>>, { - (::windows::core::Interface::vtable(self).base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) + (::windows::core::Interface::vtable(self).base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_DirectWrite"))] @@ -13207,7 +13207,7 @@ impl ID2D1DeviceContext { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection(&self, gradientstops: &[D2D1_GRADIENT_STOP], colorinterpolationgamma: D2D1_GAMMA, extendmode: D2D1_EXTEND_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(gradientstops)), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(gradientstops.as_ptr()), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -13350,7 +13350,7 @@ impl ID2D1DeviceContext { P0: ::std::convert::Into<::windows::core::InParam<'a, super::DirectWrite::IDWriteTextFormat>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Brush>>, { - (::windows::core::Interface::vtable(self).base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) + (::windows::core::Interface::vtable(self).base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_DirectWrite"))] @@ -13505,9 +13505,9 @@ impl ID2D1DeviceContext { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).CreateBitmapFromWicBitmap2)(::windows::core::Interface::as_raw(self), wicbitmapsource.into().abi(), ::core::mem::transmute(bitmapproperties), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: &[u8]) -> ::windows::core::Result { + pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: ::core::option::Option<&[u8]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(::windows::core::as_ptr_or_null(profile)), profile.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(profile.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), profile.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateColorContextFromFilename<'a, P0>(&self, filename: P0) -> ::windows::core::Result where @@ -13542,7 +13542,7 @@ impl ID2D1DeviceContext { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection2(&self, straightalphagradientstops: &[D2D1_GRADIENT_STOP], preinterpolationspace: D2D1_COLOR_SPACE, postinterpolationspace: D2D1_COLOR_SPACE, bufferprecision: D2D1_BUFFER_PRECISION, extendmode: D2D1_EXTEND_MODE, colorinterpolationmode: D2D1_COLOR_INTERPOLATION_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateGradientStopCollection2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(straightalphagradientstops)), straightalphagradientstops.len() as _, preinterpolationspace, postinterpolationspace, bufferprecision, extendmode, colorinterpolationmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateGradientStopCollection2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(straightalphagradientstops.as_ptr()), straightalphagradientstops.len() as _, preinterpolationspace, postinterpolationspace, bufferprecision, extendmode, colorinterpolationmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -13695,11 +13695,11 @@ impl ID2D1DeviceContext { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Effect>>, { - (::windows::core::Interface::vtable(self).GetEffectInvalidRectangles)(::windows::core::Interface::as_raw(self), effect.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rectangles)), rectangles.len() as _).ok() + (::windows::core::Interface::vtable(self).GetEffectInvalidRectangles)(::windows::core::Interface::as_raw(self), effect.into().abi(), ::core::mem::transmute(rectangles.as_ptr()), rectangles.len() as _).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] - pub unsafe fn GetEffectRequiredInputRectangles<'a, P0>(&self, rendereffect: P0, renderimagerectangle: ::core::option::Option<&Common::D2D_RECT_F>, inputdescriptions: &D2D1_EFFECT_INPUT_DESCRIPTION, requiredinputrects: &mut Common::D2D_RECT_F, inputcount: u32) -> ::windows::core::Result<()> + pub unsafe fn GetEffectRequiredInputRectangles<'a, P0>(&self, rendereffect: P0, renderimagerectangle: ::core::option::Option<&Common::D2D_RECT_F>, inputdescriptions: *const D2D1_EFFECT_INPUT_DESCRIPTION, requiredinputrects: *mut Common::D2D_RECT_F, inputcount: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Effect>>, { @@ -13935,7 +13935,7 @@ impl ID2D1DeviceContext1 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection(&self, gradientstops: &[D2D1_GRADIENT_STOP], colorinterpolationgamma: D2D1_GAMMA, extendmode: D2D1_EXTEND_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(gradientstops)), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(gradientstops.as_ptr()), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -14078,7 +14078,7 @@ impl ID2D1DeviceContext1 { P0: ::std::convert::Into<::windows::core::InParam<'a, super::DirectWrite::IDWriteTextFormat>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Brush>>, { - (::windows::core::Interface::vtable(self).base__.base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) + (::windows::core::Interface::vtable(self).base__.base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_DirectWrite"))] @@ -14233,9 +14233,9 @@ impl ID2D1DeviceContext1 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.CreateBitmapFromWicBitmap2)(::windows::core::Interface::as_raw(self), wicbitmapsource.into().abi(), ::core::mem::transmute(bitmapproperties), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: &[u8]) -> ::windows::core::Result { + pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: ::core::option::Option<&[u8]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(::windows::core::as_ptr_or_null(profile)), profile.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(profile.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), profile.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateColorContextFromFilename<'a, P0>(&self, filename: P0) -> ::windows::core::Result where @@ -14270,7 +14270,7 @@ impl ID2D1DeviceContext1 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection2(&self, straightalphagradientstops: &[D2D1_GRADIENT_STOP], preinterpolationspace: D2D1_COLOR_SPACE, postinterpolationspace: D2D1_COLOR_SPACE, bufferprecision: D2D1_BUFFER_PRECISION, extendmode: D2D1_EXTEND_MODE, colorinterpolationmode: D2D1_COLOR_INTERPOLATION_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateGradientStopCollection2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(straightalphagradientstops)), straightalphagradientstops.len() as _, preinterpolationspace, postinterpolationspace, bufferprecision, extendmode, colorinterpolationmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateGradientStopCollection2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(straightalphagradientstops.as_ptr()), straightalphagradientstops.len() as _, preinterpolationspace, postinterpolationspace, bufferprecision, extendmode, colorinterpolationmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -14423,11 +14423,11 @@ impl ID2D1DeviceContext1 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Effect>>, { - (::windows::core::Interface::vtable(self).base__.GetEffectInvalidRectangles)(::windows::core::Interface::as_raw(self), effect.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rectangles)), rectangles.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetEffectInvalidRectangles)(::windows::core::Interface::as_raw(self), effect.into().abi(), ::core::mem::transmute(rectangles.as_ptr()), rectangles.len() as _).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] - pub unsafe fn GetEffectRequiredInputRectangles<'a, P0>(&self, rendereffect: P0, renderimagerectangle: ::core::option::Option<&Common::D2D_RECT_F>, inputdescriptions: &D2D1_EFFECT_INPUT_DESCRIPTION, requiredinputrects: &mut Common::D2D_RECT_F, inputcount: u32) -> ::windows::core::Result<()> + pub unsafe fn GetEffectRequiredInputRectangles<'a, P0>(&self, rendereffect: P0, renderimagerectangle: ::core::option::Option<&Common::D2D_RECT_F>, inputdescriptions: *const D2D1_EFFECT_INPUT_DESCRIPTION, requiredinputrects: *mut Common::D2D_RECT_F, inputcount: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Effect>>, { @@ -14599,7 +14599,7 @@ impl ID2D1DeviceContext2 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection(&self, gradientstops: &[D2D1_GRADIENT_STOP], colorinterpolationgamma: D2D1_GAMMA, extendmode: D2D1_EXTEND_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(gradientstops)), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(gradientstops.as_ptr()), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -14742,7 +14742,7 @@ impl ID2D1DeviceContext2 { P0: ::std::convert::Into<::windows::core::InParam<'a, super::DirectWrite::IDWriteTextFormat>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Brush>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) + (::windows::core::Interface::vtable(self).base__.base__.base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_DirectWrite"))] @@ -14897,9 +14897,9 @@ impl ID2D1DeviceContext2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.CreateBitmapFromWicBitmap2)(::windows::core::Interface::as_raw(self), wicbitmapsource.into().abi(), ::core::mem::transmute(bitmapproperties), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: &[u8]) -> ::windows::core::Result { + pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: ::core::option::Option<&[u8]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(::windows::core::as_ptr_or_null(profile)), profile.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(profile.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), profile.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateColorContextFromFilename<'a, P0>(&self, filename: P0) -> ::windows::core::Result where @@ -14934,7 +14934,7 @@ impl ID2D1DeviceContext2 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection2(&self, straightalphagradientstops: &[D2D1_GRADIENT_STOP], preinterpolationspace: D2D1_COLOR_SPACE, postinterpolationspace: D2D1_COLOR_SPACE, bufferprecision: D2D1_BUFFER_PRECISION, extendmode: D2D1_EXTEND_MODE, colorinterpolationmode: D2D1_COLOR_INTERPOLATION_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateGradientStopCollection2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(straightalphagradientstops)), straightalphagradientstops.len() as _, preinterpolationspace, postinterpolationspace, bufferprecision, extendmode, colorinterpolationmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateGradientStopCollection2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(straightalphagradientstops.as_ptr()), straightalphagradientstops.len() as _, preinterpolationspace, postinterpolationspace, bufferprecision, extendmode, colorinterpolationmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -15087,11 +15087,11 @@ impl ID2D1DeviceContext2 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Effect>>, { - (::windows::core::Interface::vtable(self).base__.base__.GetEffectInvalidRectangles)(::windows::core::Interface::as_raw(self), effect.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rectangles)), rectangles.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetEffectInvalidRectangles)(::windows::core::Interface::as_raw(self), effect.into().abi(), ::core::mem::transmute(rectangles.as_ptr()), rectangles.len() as _).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] - pub unsafe fn GetEffectRequiredInputRectangles<'a, P0>(&self, rendereffect: P0, renderimagerectangle: ::core::option::Option<&Common::D2D_RECT_F>, inputdescriptions: &D2D1_EFFECT_INPUT_DESCRIPTION, requiredinputrects: &mut Common::D2D_RECT_F, inputcount: u32) -> ::windows::core::Result<()> + pub unsafe fn GetEffectRequiredInputRectangles<'a, P0>(&self, rendereffect: P0, renderimagerectangle: ::core::option::Option<&Common::D2D_RECT_F>, inputdescriptions: *const D2D1_EFFECT_INPUT_DESCRIPTION, requiredinputrects: *mut Common::D2D_RECT_F, inputcount: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Effect>>, { @@ -15142,7 +15142,7 @@ impl ID2D1DeviceContext2 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientMesh(&self, patches: &[D2D1_GRADIENT_MESH_PATCH]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateGradientMesh)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(patches)), patches.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateGradientMesh)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(patches.as_ptr()), patches.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_Imaging\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_Imaging"))] @@ -15155,13 +15155,13 @@ impl ID2D1DeviceContext2 { } pub unsafe fn CreateLookupTable3D(&self, precision: D2D1_BUFFER_PRECISION, extents: &[u32; 3], data: &[u8], strides: &[u32; 2]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateLookupTable3D)(::windows::core::Interface::as_raw(self), precision, ::core::mem::transmute(::windows::core::as_ptr_or_null(extents)), ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(strides)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateLookupTable3D)(::windows::core::Interface::as_raw(self), precision, ::core::mem::transmute(extents.as_ptr()), ::core::mem::transmute(data.as_ptr()), data.len() as _, ::core::mem::transmute(strides.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn CreateImageSourceFromDxgi(&self, surfaces: &[::core::option::Option], colorspace: super::Dxgi::Common::DXGI_COLOR_SPACE_TYPE, options: D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateImageSourceFromDxgi)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(surfaces)), surfaces.len() as _, colorspace, options, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateImageSourceFromDxgi)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(surfaces.as_ptr()), surfaces.len() as _, colorspace, options, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] @@ -15377,7 +15377,7 @@ impl ID2D1DeviceContext3 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection(&self, gradientstops: &[D2D1_GRADIENT_STOP], colorinterpolationgamma: D2D1_GAMMA, extendmode: D2D1_EXTEND_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(gradientstops)), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(gradientstops.as_ptr()), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -15520,7 +15520,7 @@ impl ID2D1DeviceContext3 { P0: ::std::convert::Into<::windows::core::InParam<'a, super::DirectWrite::IDWriteTextFormat>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Brush>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_DirectWrite"))] @@ -15675,9 +15675,9 @@ impl ID2D1DeviceContext3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.CreateBitmapFromWicBitmap2)(::windows::core::Interface::as_raw(self), wicbitmapsource.into().abi(), ::core::mem::transmute(bitmapproperties), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: &[u8]) -> ::windows::core::Result { + pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: ::core::option::Option<&[u8]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(::windows::core::as_ptr_or_null(profile)), profile.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(profile.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), profile.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateColorContextFromFilename<'a, P0>(&self, filename: P0) -> ::windows::core::Result where @@ -15712,7 +15712,7 @@ impl ID2D1DeviceContext3 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection2(&self, straightalphagradientstops: &[D2D1_GRADIENT_STOP], preinterpolationspace: D2D1_COLOR_SPACE, postinterpolationspace: D2D1_COLOR_SPACE, bufferprecision: D2D1_BUFFER_PRECISION, extendmode: D2D1_EXTEND_MODE, colorinterpolationmode: D2D1_COLOR_INTERPOLATION_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateGradientStopCollection2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(straightalphagradientstops)), straightalphagradientstops.len() as _, preinterpolationspace, postinterpolationspace, bufferprecision, extendmode, colorinterpolationmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateGradientStopCollection2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(straightalphagradientstops.as_ptr()), straightalphagradientstops.len() as _, preinterpolationspace, postinterpolationspace, bufferprecision, extendmode, colorinterpolationmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -15865,11 +15865,11 @@ impl ID2D1DeviceContext3 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Effect>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetEffectInvalidRectangles)(::windows::core::Interface::as_raw(self), effect.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rectangles)), rectangles.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.GetEffectInvalidRectangles)(::windows::core::Interface::as_raw(self), effect.into().abi(), ::core::mem::transmute(rectangles.as_ptr()), rectangles.len() as _).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] - pub unsafe fn GetEffectRequiredInputRectangles<'a, P0>(&self, rendereffect: P0, renderimagerectangle: ::core::option::Option<&Common::D2D_RECT_F>, inputdescriptions: &D2D1_EFFECT_INPUT_DESCRIPTION, requiredinputrects: &mut Common::D2D_RECT_F, inputcount: u32) -> ::windows::core::Result<()> + pub unsafe fn GetEffectRequiredInputRectangles<'a, P0>(&self, rendereffect: P0, renderimagerectangle: ::core::option::Option<&Common::D2D_RECT_F>, inputdescriptions: *const D2D1_EFFECT_INPUT_DESCRIPTION, requiredinputrects: *mut Common::D2D_RECT_F, inputcount: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Effect>>, { @@ -15920,7 +15920,7 @@ impl ID2D1DeviceContext3 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientMesh(&self, patches: &[D2D1_GRADIENT_MESH_PATCH]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateGradientMesh)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(patches)), patches.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateGradientMesh)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(patches.as_ptr()), patches.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_Imaging\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_Imaging"))] @@ -15933,13 +15933,13 @@ impl ID2D1DeviceContext3 { } pub unsafe fn CreateLookupTable3D(&self, precision: D2D1_BUFFER_PRECISION, extents: &[u32; 3], data: &[u8], strides: &[u32; 2]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateLookupTable3D)(::windows::core::Interface::as_raw(self), precision, ::core::mem::transmute(::windows::core::as_ptr_or_null(extents)), ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(strides)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateLookupTable3D)(::windows::core::Interface::as_raw(self), precision, ::core::mem::transmute(extents.as_ptr()), ::core::mem::transmute(data.as_ptr()), data.len() as _, ::core::mem::transmute(strides.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn CreateImageSourceFromDxgi(&self, surfaces: &[::core::option::Option], colorspace: super::Dxgi::Common::DXGI_COLOR_SPACE_TYPE, options: D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateImageSourceFromDxgi)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(surfaces)), surfaces.len() as _, colorspace, options, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateImageSourceFromDxgi)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(surfaces.as_ptr()), surfaces.len() as _, colorspace, options, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] @@ -16154,7 +16154,7 @@ impl ID2D1DeviceContext4 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection(&self, gradientstops: &[D2D1_GRADIENT_STOP], colorinterpolationgamma: D2D1_GAMMA, extendmode: D2D1_EXTEND_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(gradientstops)), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(gradientstops.as_ptr()), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -16297,7 +16297,7 @@ impl ID2D1DeviceContext4 { P0: ::std::convert::Into<::windows::core::InParam<'a, super::DirectWrite::IDWriteTextFormat>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Brush>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_DirectWrite"))] @@ -16452,9 +16452,9 @@ impl ID2D1DeviceContext4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateBitmapFromWicBitmap2)(::windows::core::Interface::as_raw(self), wicbitmapsource.into().abi(), ::core::mem::transmute(bitmapproperties), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: &[u8]) -> ::windows::core::Result { + pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: ::core::option::Option<&[u8]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(::windows::core::as_ptr_or_null(profile)), profile.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(profile.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), profile.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateColorContextFromFilename<'a, P0>(&self, filename: P0) -> ::windows::core::Result where @@ -16489,7 +16489,7 @@ impl ID2D1DeviceContext4 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection2(&self, straightalphagradientstops: &[D2D1_GRADIENT_STOP], preinterpolationspace: D2D1_COLOR_SPACE, postinterpolationspace: D2D1_COLOR_SPACE, bufferprecision: D2D1_BUFFER_PRECISION, extendmode: D2D1_EXTEND_MODE, colorinterpolationmode: D2D1_COLOR_INTERPOLATION_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateGradientStopCollection2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(straightalphagradientstops)), straightalphagradientstops.len() as _, preinterpolationspace, postinterpolationspace, bufferprecision, extendmode, colorinterpolationmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateGradientStopCollection2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(straightalphagradientstops.as_ptr()), straightalphagradientstops.len() as _, preinterpolationspace, postinterpolationspace, bufferprecision, extendmode, colorinterpolationmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -16642,11 +16642,11 @@ impl ID2D1DeviceContext4 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Effect>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetEffectInvalidRectangles)(::windows::core::Interface::as_raw(self), effect.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rectangles)), rectangles.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetEffectInvalidRectangles)(::windows::core::Interface::as_raw(self), effect.into().abi(), ::core::mem::transmute(rectangles.as_ptr()), rectangles.len() as _).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] - pub unsafe fn GetEffectRequiredInputRectangles<'a, P0>(&self, rendereffect: P0, renderimagerectangle: ::core::option::Option<&Common::D2D_RECT_F>, inputdescriptions: &D2D1_EFFECT_INPUT_DESCRIPTION, requiredinputrects: &mut Common::D2D_RECT_F, inputcount: u32) -> ::windows::core::Result<()> + pub unsafe fn GetEffectRequiredInputRectangles<'a, P0>(&self, rendereffect: P0, renderimagerectangle: ::core::option::Option<&Common::D2D_RECT_F>, inputdescriptions: *const D2D1_EFFECT_INPUT_DESCRIPTION, requiredinputrects: *mut Common::D2D_RECT_F, inputcount: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Effect>>, { @@ -16697,7 +16697,7 @@ impl ID2D1DeviceContext4 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientMesh(&self, patches: &[D2D1_GRADIENT_MESH_PATCH]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateGradientMesh)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(patches)), patches.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateGradientMesh)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(patches.as_ptr()), patches.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_Imaging\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_Imaging"))] @@ -16710,13 +16710,13 @@ impl ID2D1DeviceContext4 { } pub unsafe fn CreateLookupTable3D(&self, precision: D2D1_BUFFER_PRECISION, extents: &[u32; 3], data: &[u8], strides: &[u32; 2]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateLookupTable3D)(::windows::core::Interface::as_raw(self), precision, ::core::mem::transmute(::windows::core::as_ptr_or_null(extents)), ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(strides)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateLookupTable3D)(::windows::core::Interface::as_raw(self), precision, ::core::mem::transmute(extents.as_ptr()), ::core::mem::transmute(data.as_ptr()), data.len() as _, ::core::mem::transmute(strides.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn CreateImageSourceFromDxgi(&self, surfaces: &[::core::option::Option], colorspace: super::Dxgi::Common::DXGI_COLOR_SPACE_TYPE, options: D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateImageSourceFromDxgi)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(surfaces)), surfaces.len() as _, colorspace, options, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateImageSourceFromDxgi)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(surfaces.as_ptr()), surfaces.len() as _, colorspace, options, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] @@ -16779,7 +16779,7 @@ impl ID2D1DeviceContext4 { P1: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Brush>>, P2: ::std::convert::Into<::windows::core::InParam<'a, ID2D1SvgGlyphStyle>>, { - (::windows::core::Interface::vtable(self).DrawText2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), svgglyphstyle.into().abi(), colorpaletteindex, options, measuringmode) + (::windows::core::Interface::vtable(self).DrawText2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), svgglyphstyle.into().abi(), colorpaletteindex, options, measuringmode) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_DirectWrite"))] @@ -17027,7 +17027,7 @@ impl ID2D1DeviceContext5 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection(&self, gradientstops: &[D2D1_GRADIENT_STOP], colorinterpolationgamma: D2D1_GAMMA, extendmode: D2D1_EXTEND_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(gradientstops)), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(gradientstops.as_ptr()), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -17170,7 +17170,7 @@ impl ID2D1DeviceContext5 { P0: ::std::convert::Into<::windows::core::InParam<'a, super::DirectWrite::IDWriteTextFormat>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Brush>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_DirectWrite"))] @@ -17325,9 +17325,9 @@ impl ID2D1DeviceContext5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateBitmapFromWicBitmap2)(::windows::core::Interface::as_raw(self), wicbitmapsource.into().abi(), ::core::mem::transmute(bitmapproperties), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: &[u8]) -> ::windows::core::Result { + pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: ::core::option::Option<&[u8]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(::windows::core::as_ptr_or_null(profile)), profile.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(profile.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), profile.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateColorContextFromFilename<'a, P0>(&self, filename: P0) -> ::windows::core::Result where @@ -17362,7 +17362,7 @@ impl ID2D1DeviceContext5 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection2(&self, straightalphagradientstops: &[D2D1_GRADIENT_STOP], preinterpolationspace: D2D1_COLOR_SPACE, postinterpolationspace: D2D1_COLOR_SPACE, bufferprecision: D2D1_BUFFER_PRECISION, extendmode: D2D1_EXTEND_MODE, colorinterpolationmode: D2D1_COLOR_INTERPOLATION_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateGradientStopCollection2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(straightalphagradientstops)), straightalphagradientstops.len() as _, preinterpolationspace, postinterpolationspace, bufferprecision, extendmode, colorinterpolationmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateGradientStopCollection2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(straightalphagradientstops.as_ptr()), straightalphagradientstops.len() as _, preinterpolationspace, postinterpolationspace, bufferprecision, extendmode, colorinterpolationmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -17515,11 +17515,11 @@ impl ID2D1DeviceContext5 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Effect>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetEffectInvalidRectangles)(::windows::core::Interface::as_raw(self), effect.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rectangles)), rectangles.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetEffectInvalidRectangles)(::windows::core::Interface::as_raw(self), effect.into().abi(), ::core::mem::transmute(rectangles.as_ptr()), rectangles.len() as _).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] - pub unsafe fn GetEffectRequiredInputRectangles<'a, P0>(&self, rendereffect: P0, renderimagerectangle: ::core::option::Option<&Common::D2D_RECT_F>, inputdescriptions: &D2D1_EFFECT_INPUT_DESCRIPTION, requiredinputrects: &mut Common::D2D_RECT_F, inputcount: u32) -> ::windows::core::Result<()> + pub unsafe fn GetEffectRequiredInputRectangles<'a, P0>(&self, rendereffect: P0, renderimagerectangle: ::core::option::Option<&Common::D2D_RECT_F>, inputdescriptions: *const D2D1_EFFECT_INPUT_DESCRIPTION, requiredinputrects: *mut Common::D2D_RECT_F, inputcount: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Effect>>, { @@ -17570,7 +17570,7 @@ impl ID2D1DeviceContext5 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientMesh(&self, patches: &[D2D1_GRADIENT_MESH_PATCH]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateGradientMesh)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(patches)), patches.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateGradientMesh)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(patches.as_ptr()), patches.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_Imaging\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_Imaging"))] @@ -17583,13 +17583,13 @@ impl ID2D1DeviceContext5 { } pub unsafe fn CreateLookupTable3D(&self, precision: D2D1_BUFFER_PRECISION, extents: &[u32; 3], data: &[u8], strides: &[u32; 2]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateLookupTable3D)(::windows::core::Interface::as_raw(self), precision, ::core::mem::transmute(::windows::core::as_ptr_or_null(extents)), ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(strides)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateLookupTable3D)(::windows::core::Interface::as_raw(self), precision, ::core::mem::transmute(extents.as_ptr()), ::core::mem::transmute(data.as_ptr()), data.len() as _, ::core::mem::transmute(strides.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn CreateImageSourceFromDxgi(&self, surfaces: &[::core::option::Option], colorspace: super::Dxgi::Common::DXGI_COLOR_SPACE_TYPE, options: D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateImageSourceFromDxgi)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(surfaces)), surfaces.len() as _, colorspace, options, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateImageSourceFromDxgi)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(surfaces.as_ptr()), surfaces.len() as _, colorspace, options, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] @@ -17652,7 +17652,7 @@ impl ID2D1DeviceContext5 { P1: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Brush>>, P2: ::std::convert::Into<::windows::core::InParam<'a, ID2D1SvgGlyphStyle>>, { - (::windows::core::Interface::vtable(self).base__.DrawText2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), svgglyphstyle.into().abi(), colorpaletteindex, options, measuringmode) + (::windows::core::Interface::vtable(self).base__.DrawText2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), svgglyphstyle.into().abi(), colorpaletteindex, options, measuringmode) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_DirectWrite"))] @@ -17930,7 +17930,7 @@ impl ID2D1DeviceContext6 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection(&self, gradientstops: &[D2D1_GRADIENT_STOP], colorinterpolationgamma: D2D1_GAMMA, extendmode: D2D1_EXTEND_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(gradientstops)), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(gradientstops.as_ptr()), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -18073,7 +18073,7 @@ impl ID2D1DeviceContext6 { P0: ::std::convert::Into<::windows::core::InParam<'a, super::DirectWrite::IDWriteTextFormat>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Brush>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_DirectWrite"))] @@ -18228,9 +18228,9 @@ impl ID2D1DeviceContext6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateBitmapFromWicBitmap2)(::windows::core::Interface::as_raw(self), wicbitmapsource.into().abi(), ::core::mem::transmute(bitmapproperties), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: &[u8]) -> ::windows::core::Result { + pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: ::core::option::Option<&[u8]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(::windows::core::as_ptr_or_null(profile)), profile.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(profile.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), profile.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateColorContextFromFilename<'a, P0>(&self, filename: P0) -> ::windows::core::Result where @@ -18265,7 +18265,7 @@ impl ID2D1DeviceContext6 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection2(&self, straightalphagradientstops: &[D2D1_GRADIENT_STOP], preinterpolationspace: D2D1_COLOR_SPACE, postinterpolationspace: D2D1_COLOR_SPACE, bufferprecision: D2D1_BUFFER_PRECISION, extendmode: D2D1_EXTEND_MODE, colorinterpolationmode: D2D1_COLOR_INTERPOLATION_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateGradientStopCollection2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(straightalphagradientstops)), straightalphagradientstops.len() as _, preinterpolationspace, postinterpolationspace, bufferprecision, extendmode, colorinterpolationmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateGradientStopCollection2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(straightalphagradientstops.as_ptr()), straightalphagradientstops.len() as _, preinterpolationspace, postinterpolationspace, bufferprecision, extendmode, colorinterpolationmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -18418,11 +18418,11 @@ impl ID2D1DeviceContext6 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Effect>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetEffectInvalidRectangles)(::windows::core::Interface::as_raw(self), effect.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rectangles)), rectangles.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetEffectInvalidRectangles)(::windows::core::Interface::as_raw(self), effect.into().abi(), ::core::mem::transmute(rectangles.as_ptr()), rectangles.len() as _).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] - pub unsafe fn GetEffectRequiredInputRectangles<'a, P0>(&self, rendereffect: P0, renderimagerectangle: ::core::option::Option<&Common::D2D_RECT_F>, inputdescriptions: &D2D1_EFFECT_INPUT_DESCRIPTION, requiredinputrects: &mut Common::D2D_RECT_F, inputcount: u32) -> ::windows::core::Result<()> + pub unsafe fn GetEffectRequiredInputRectangles<'a, P0>(&self, rendereffect: P0, renderimagerectangle: ::core::option::Option<&Common::D2D_RECT_F>, inputdescriptions: *const D2D1_EFFECT_INPUT_DESCRIPTION, requiredinputrects: *mut Common::D2D_RECT_F, inputcount: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Effect>>, { @@ -18473,7 +18473,7 @@ impl ID2D1DeviceContext6 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientMesh(&self, patches: &[D2D1_GRADIENT_MESH_PATCH]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateGradientMesh)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(patches)), patches.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateGradientMesh)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(patches.as_ptr()), patches.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_Imaging\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_Imaging"))] @@ -18486,13 +18486,13 @@ impl ID2D1DeviceContext6 { } pub unsafe fn CreateLookupTable3D(&self, precision: D2D1_BUFFER_PRECISION, extents: &[u32; 3], data: &[u8], strides: &[u32; 2]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateLookupTable3D)(::windows::core::Interface::as_raw(self), precision, ::core::mem::transmute(::windows::core::as_ptr_or_null(extents)), ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(strides)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateLookupTable3D)(::windows::core::Interface::as_raw(self), precision, ::core::mem::transmute(extents.as_ptr()), ::core::mem::transmute(data.as_ptr()), data.len() as _, ::core::mem::transmute(strides.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn CreateImageSourceFromDxgi(&self, surfaces: &[::core::option::Option], colorspace: super::Dxgi::Common::DXGI_COLOR_SPACE_TYPE, options: D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateImageSourceFromDxgi)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(surfaces)), surfaces.len() as _, colorspace, options, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateImageSourceFromDxgi)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(surfaces.as_ptr()), surfaces.len() as _, colorspace, options, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] @@ -18555,7 +18555,7 @@ impl ID2D1DeviceContext6 { P1: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Brush>>, P2: ::std::convert::Into<::windows::core::InParam<'a, ID2D1SvgGlyphStyle>>, { - (::windows::core::Interface::vtable(self).base__.base__.DrawText2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), svgglyphstyle.into().abi(), colorpaletteindex, options, measuringmode) + (::windows::core::Interface::vtable(self).base__.base__.DrawText2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), svgglyphstyle.into().abi(), colorpaletteindex, options, measuringmode) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_DirectWrite"))] @@ -18823,7 +18823,7 @@ impl ID2D1DrawInfo { (::windows::core::Interface::vtable(self).base__.SetInstructionCountHint)(::windows::core::Interface::as_raw(self), instructioncount) } pub unsafe fn SetPixelShaderConstantBuffer(&self, buffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPixelShaderConstantBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(buffer)), buffer.len() as _).ok() + (::windows::core::Interface::vtable(self).SetPixelShaderConstantBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _).ok() } pub unsafe fn SetResourceTexture<'a, P0>(&self, textureindex: u32, resourcetexture: P0) -> ::windows::core::Result<()> where @@ -18832,7 +18832,7 @@ impl ID2D1DrawInfo { (::windows::core::Interface::vtable(self).SetResourceTexture)(::windows::core::Interface::as_raw(self), textureindex, resourcetexture.into().abi()).ok() } pub unsafe fn SetVertexShaderConstantBuffer(&self, buffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetVertexShaderConstantBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(buffer)), buffer.len() as _).ok() + (::windows::core::Interface::vtable(self).SetVertexShaderConstantBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _).ok() } pub unsafe fn SetPixelShader(&self, shaderid: &::windows::core::GUID, pixeloptions: D2D1_PIXEL_OPTIONS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetPixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(shaderid), pixeloptions).ok() @@ -18914,11 +18914,11 @@ impl ID2D1DrawTransform { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn MapOutputRectToInputRects(&self, outputrect: &super::super::Foundation::RECT, inputrects: &mut [super::super::Foundation::RECT]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.MapOutputRectToInputRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(outputrect), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(inputrects)), inputrects.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.MapOutputRectToInputRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(outputrect), ::core::mem::transmute(inputrects.as_ptr()), inputrects.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn MapInputRectsToOutputRect(&self, inputrects: &super::super::Foundation::RECT, inputopaquesubrects: &super::super::Foundation::RECT, inputrectcount: u32, outputrect: &mut super::super::Foundation::RECT, outputopaquesubrect: &mut super::super::Foundation::RECT) -> ::windows::core::Result<()> { + pub unsafe fn MapInputRectsToOutputRect(&self, inputrects: *const super::super::Foundation::RECT, inputopaquesubrects: *const super::super::Foundation::RECT, inputrectcount: u32, outputrect: &mut super::super::Foundation::RECT, outputopaquesubrect: &mut super::super::Foundation::RECT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.MapInputRectsToOutputRect)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(inputrects), ::core::mem::transmute(inputopaquesubrects), ::core::mem::transmute(inputrectcount), ::core::mem::transmute(outputrect), ::core::mem::transmute(outputopaquesubrect)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -19234,7 +19234,7 @@ impl ID2D1Effect { (::windows::core::Interface::vtable(self).base__.GetPropertyCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetPropertyName(&self, index: u32, name: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetPropertyName)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(name)), name.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetPropertyName)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(name.as_ptr()), name.len() as _).ok() } pub unsafe fn GetPropertyNameLength(&self, index: u32) -> u32 { (::windows::core::Interface::vtable(self).base__.GetPropertyNameLength)(::windows::core::Interface::as_raw(self), index) @@ -19252,19 +19252,19 @@ impl ID2D1Effect { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.SetValueByName)(::windows::core::Interface::as_raw(self), name.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetValueByName)(::windows::core::Interface::as_raw(self), name.into(), r#type, ::core::mem::transmute(data.as_ptr()), data.len() as _).ok() } pub unsafe fn SetValue(&self, index: u32, r#type: D2D1_PROPERTY_TYPE, data: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetValue)(::windows::core::Interface::as_raw(self), index, r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetValue)(::windows::core::Interface::as_raw(self), index, r#type, ::core::mem::transmute(data.as_ptr()), data.len() as _).ok() } pub unsafe fn GetValueByName<'a, P0>(&self, name: P0, r#type: D2D1_PROPERTY_TYPE, data: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.GetValueByName)(::windows::core::Interface::as_raw(self), name.into(), r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(data)), data.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetValueByName)(::windows::core::Interface::as_raw(self), name.into(), r#type, ::core::mem::transmute(data.as_ptr()), data.len() as _).ok() } pub unsafe fn GetValue(&self, index: u32, r#type: D2D1_PROPERTY_TYPE, data: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetValue)(::windows::core::Interface::as_raw(self), index, r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(data)), data.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetValue)(::windows::core::Interface::as_raw(self), index, r#type, ::core::mem::transmute(data.as_ptr()), data.len() as _).ok() } pub unsafe fn GetValueSize(&self, index: u32) -> u32 { (::windows::core::Interface::vtable(self).base__.GetValueSize)(::windows::core::Interface::as_raw(self), index) @@ -19373,7 +19373,7 @@ impl ID2D1EffectContext { #[cfg(feature = "Win32_Graphics_Direct3D")] pub unsafe fn GetMaximumSupportedFeatureLevel(&self, featurelevels: &[super::Direct3D::D3D_FEATURE_LEVEL]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetMaximumSupportedFeatureLevel)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(featurelevels)), featurelevels.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetMaximumSupportedFeatureLevel)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(featurelevels.as_ptr()), featurelevels.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateTransformNodeFromEffect<'a, P0>(&self, effect: P0) -> ::windows::core::Result where @@ -19403,22 +19403,22 @@ impl ID2D1EffectContext { (::windows::core::Interface::vtable(self).CreateBoundsAdjustmentTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(outputrectangle), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn LoadPixelShader(&self, shaderid: &::windows::core::GUID, shaderbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).LoadPixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(shaderid), ::core::mem::transmute(::windows::core::as_ptr_or_null(shaderbuffer)), shaderbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).LoadPixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(shaderid), ::core::mem::transmute(shaderbuffer.as_ptr()), shaderbuffer.len() as _).ok() } pub unsafe fn LoadVertexShader(&self, resourceid: &::windows::core::GUID, shaderbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).LoadVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(::windows::core::as_ptr_or_null(shaderbuffer)), shaderbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).LoadVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(shaderbuffer.as_ptr()), shaderbuffer.len() as _).ok() } pub unsafe fn LoadComputeShader(&self, resourceid: &::windows::core::GUID, shaderbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).LoadComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(::windows::core::as_ptr_or_null(shaderbuffer)), shaderbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).LoadComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(shaderbuffer.as_ptr()), shaderbuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn IsShaderLoaded(&self, shaderid: &::windows::core::GUID) -> super::super::Foundation::BOOL { (::windows::core::Interface::vtable(self).IsShaderLoaded)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(shaderid)) } - pub unsafe fn CreateResourceTexture(&self, resourceid: ::core::option::Option<&::windows::core::GUID>, resourcetextureproperties: &D2D1_RESOURCE_TEXTURE_PROPERTIES, data: &[u8], strides: ::core::option::Option<&u32>) -> ::windows::core::Result { + pub unsafe fn CreateResourceTexture(&self, resourceid: ::core::option::Option<&::windows::core::GUID>, resourcetextureproperties: &D2D1_RESOURCE_TEXTURE_PROPERTIES, data: ::core::option::Option<&[u8]>, strides: ::core::option::Option<&u32>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateResourceTexture)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(resourcetextureproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), ::core::mem::transmute(strides), data.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateResourceTexture)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(resourcetextureproperties), ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(strides), data.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn FindResourceTexture(&self, resourceid: &::windows::core::GUID) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -19434,9 +19434,9 @@ impl ID2D1EffectContext { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).FindVertexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: &[u8]) -> ::windows::core::Result { + pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: ::core::option::Option<&[u8]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(::windows::core::as_ptr_or_null(profile)), profile.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(profile.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), profile.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateColorContextFromFilename<'a, P0>(&self, filename: P0) -> ::windows::core::Result where @@ -19454,8 +19454,8 @@ impl ID2D1EffectContext { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).CreateColorContextFromWicColorContext)(::windows::core::Interface::as_raw(self), wiccolorcontext.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: D2D1_FEATURE, featuresupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(featuresupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D2D1_FEATURE, featuresupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(featuresupportdata.as_ptr()), featuresupportdata.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -19560,7 +19560,7 @@ impl ID2D1EffectContext1 { #[cfg(feature = "Win32_Graphics_Direct3D")] pub unsafe fn GetMaximumSupportedFeatureLevel(&self, featurelevels: &[super::Direct3D::D3D_FEATURE_LEVEL]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.GetMaximumSupportedFeatureLevel)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(featurelevels)), featurelevels.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.GetMaximumSupportedFeatureLevel)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(featurelevels.as_ptr()), featurelevels.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateTransformNodeFromEffect<'a, P0>(&self, effect: P0) -> ::windows::core::Result where @@ -19590,22 +19590,22 @@ impl ID2D1EffectContext1 { (::windows::core::Interface::vtable(self).base__.CreateBoundsAdjustmentTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(outputrectangle), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn LoadPixelShader(&self, shaderid: &::windows::core::GUID, shaderbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.LoadPixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(shaderid), ::core::mem::transmute(::windows::core::as_ptr_or_null(shaderbuffer)), shaderbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.LoadPixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(shaderid), ::core::mem::transmute(shaderbuffer.as_ptr()), shaderbuffer.len() as _).ok() } pub unsafe fn LoadVertexShader(&self, resourceid: &::windows::core::GUID, shaderbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.LoadVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(::windows::core::as_ptr_or_null(shaderbuffer)), shaderbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.LoadVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(shaderbuffer.as_ptr()), shaderbuffer.len() as _).ok() } pub unsafe fn LoadComputeShader(&self, resourceid: &::windows::core::GUID, shaderbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.LoadComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(::windows::core::as_ptr_or_null(shaderbuffer)), shaderbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.LoadComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(shaderbuffer.as_ptr()), shaderbuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn IsShaderLoaded(&self, shaderid: &::windows::core::GUID) -> super::super::Foundation::BOOL { (::windows::core::Interface::vtable(self).base__.IsShaderLoaded)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(shaderid)) } - pub unsafe fn CreateResourceTexture(&self, resourceid: ::core::option::Option<&::windows::core::GUID>, resourcetextureproperties: &D2D1_RESOURCE_TEXTURE_PROPERTIES, data: &[u8], strides: ::core::option::Option<&u32>) -> ::windows::core::Result { + pub unsafe fn CreateResourceTexture(&self, resourceid: ::core::option::Option<&::windows::core::GUID>, resourcetextureproperties: &D2D1_RESOURCE_TEXTURE_PROPERTIES, data: ::core::option::Option<&[u8]>, strides: ::core::option::Option<&u32>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateResourceTexture)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(resourcetextureproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), ::core::mem::transmute(strides), data.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateResourceTexture)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(resourcetextureproperties), ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(strides), data.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn FindResourceTexture(&self, resourceid: &::windows::core::GUID) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -19621,9 +19621,9 @@ impl ID2D1EffectContext1 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.FindVertexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: &[u8]) -> ::windows::core::Result { + pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: ::core::option::Option<&[u8]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(::windows::core::as_ptr_or_null(profile)), profile.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(profile.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), profile.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateColorContextFromFilename<'a, P0>(&self, filename: P0) -> ::windows::core::Result where @@ -19641,8 +19641,8 @@ impl ID2D1EffectContext1 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.CreateColorContextFromWicColorContext)(::windows::core::Interface::as_raw(self), wiccolorcontext.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: D2D1_FEATURE, featuresupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(featuresupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D2D1_FEATURE, featuresupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(featuresupportdata.as_ptr()), featuresupportdata.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -19651,7 +19651,7 @@ impl ID2D1EffectContext1 { } pub unsafe fn CreateLookupTable3D(&self, precision: D2D1_BUFFER_PRECISION, extents: &[u32; 3], data: &[u8], strides: &[u32; 2]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateLookupTable3D)(::windows::core::Interface::as_raw(self), precision, ::core::mem::transmute(::windows::core::as_ptr_or_null(extents)), ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(strides)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateLookupTable3D)(::windows::core::Interface::as_raw(self), precision, ::core::mem::transmute(extents.as_ptr()), ::core::mem::transmute(data.as_ptr()), data.len() as _, ::core::mem::transmute(strides.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -19725,7 +19725,7 @@ impl ID2D1EffectContext2 { #[cfg(feature = "Win32_Graphics_Direct3D")] pub unsafe fn GetMaximumSupportedFeatureLevel(&self, featurelevels: &[super::Direct3D::D3D_FEATURE_LEVEL]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.GetMaximumSupportedFeatureLevel)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(featurelevels)), featurelevels.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.GetMaximumSupportedFeatureLevel)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(featurelevels.as_ptr()), featurelevels.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateTransformNodeFromEffect<'a, P0>(&self, effect: P0) -> ::windows::core::Result where @@ -19755,22 +19755,22 @@ impl ID2D1EffectContext2 { (::windows::core::Interface::vtable(self).base__.base__.CreateBoundsAdjustmentTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(outputrectangle), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn LoadPixelShader(&self, shaderid: &::windows::core::GUID, shaderbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.LoadPixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(shaderid), ::core::mem::transmute(::windows::core::as_ptr_or_null(shaderbuffer)), shaderbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.LoadPixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(shaderid), ::core::mem::transmute(shaderbuffer.as_ptr()), shaderbuffer.len() as _).ok() } pub unsafe fn LoadVertexShader(&self, resourceid: &::windows::core::GUID, shaderbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.LoadVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(::windows::core::as_ptr_or_null(shaderbuffer)), shaderbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.LoadVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(shaderbuffer.as_ptr()), shaderbuffer.len() as _).ok() } pub unsafe fn LoadComputeShader(&self, resourceid: &::windows::core::GUID, shaderbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.LoadComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(::windows::core::as_ptr_or_null(shaderbuffer)), shaderbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.LoadComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(shaderbuffer.as_ptr()), shaderbuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn IsShaderLoaded(&self, shaderid: &::windows::core::GUID) -> super::super::Foundation::BOOL { (::windows::core::Interface::vtable(self).base__.base__.IsShaderLoaded)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(shaderid)) } - pub unsafe fn CreateResourceTexture(&self, resourceid: ::core::option::Option<&::windows::core::GUID>, resourcetextureproperties: &D2D1_RESOURCE_TEXTURE_PROPERTIES, data: &[u8], strides: ::core::option::Option<&u32>) -> ::windows::core::Result { + pub unsafe fn CreateResourceTexture(&self, resourceid: ::core::option::Option<&::windows::core::GUID>, resourcetextureproperties: &D2D1_RESOURCE_TEXTURE_PROPERTIES, data: ::core::option::Option<&[u8]>, strides: ::core::option::Option<&u32>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateResourceTexture)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(resourcetextureproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), ::core::mem::transmute(strides), data.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateResourceTexture)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(resourcetextureproperties), ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(strides), data.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn FindResourceTexture(&self, resourceid: &::windows::core::GUID) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -19786,9 +19786,9 @@ impl ID2D1EffectContext2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.FindVertexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(resourceid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: &[u8]) -> ::windows::core::Result { + pub unsafe fn CreateColorContext(&self, space: D2D1_COLOR_SPACE, profile: ::core::option::Option<&[u8]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(::windows::core::as_ptr_or_null(profile)), profile.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateColorContext)(::windows::core::Interface::as_raw(self), space, ::core::mem::transmute(profile.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), profile.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateColorContextFromFilename<'a, P0>(&self, filename: P0) -> ::windows::core::Result where @@ -19806,8 +19806,8 @@ impl ID2D1EffectContext2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.CreateColorContextFromWicColorContext)(::windows::core::Interface::as_raw(self), wiccolorcontext.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: D2D1_FEATURE, featuresupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(featuresupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D2D1_FEATURE, featuresupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(featuresupportdata.as_ptr()), featuresupportdata.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -19816,7 +19816,7 @@ impl ID2D1EffectContext2 { } pub unsafe fn CreateLookupTable3D(&self, precision: D2D1_BUFFER_PRECISION, extents: &[u32; 3], data: &[u8], strides: &[u32; 2]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateLookupTable3D)(::windows::core::Interface::as_raw(self), precision, ::core::mem::transmute(::windows::core::as_ptr_or_null(extents)), ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(strides)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateLookupTable3D)(::windows::core::Interface::as_raw(self), precision, ::core::mem::transmute(extents.as_ptr()), ::core::mem::transmute(data.as_ptr()), data.len() as _, ::core::mem::transmute(strides.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] @@ -20190,7 +20190,7 @@ impl ID2D1Factory { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGeometryGroup(&self, fillmode: Common::D2D1_FILL_MODE, geometries: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateGeometryGroup)(::windows::core::Interface::as_raw(self), fillmode, ::core::mem::transmute(::windows::core::as_ptr_or_null(geometries)), geometries.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateGeometryGroup)(::windows::core::Interface::as_raw(self), fillmode, ::core::mem::transmute(geometries.as_ptr()), geometries.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`*"] #[cfg(feature = "Foundation_Numerics")] @@ -20205,9 +20205,9 @@ impl ID2D1Factory { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).CreatePathGeometry)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateStrokeStyle(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES, dashes: &[f32]) -> ::windows::core::Result { + pub unsafe fn CreateStrokeStyle(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES, dashes: ::core::option::Option<&[f32]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateStrokeStyle)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateStrokeStyle)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_DirectWrite"))] @@ -20365,7 +20365,7 @@ impl ID2D1Factory1 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGeometryGroup(&self, fillmode: Common::D2D1_FILL_MODE, geometries: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateGeometryGroup)(::windows::core::Interface::as_raw(self), fillmode, ::core::mem::transmute(::windows::core::as_ptr_or_null(geometries)), geometries.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateGeometryGroup)(::windows::core::Interface::as_raw(self), fillmode, ::core::mem::transmute(geometries.as_ptr()), geometries.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`*"] #[cfg(feature = "Foundation_Numerics")] @@ -20380,9 +20380,9 @@ impl ID2D1Factory1 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.CreatePathGeometry)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateStrokeStyle(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES, dashes: &[f32]) -> ::windows::core::Result { + pub unsafe fn CreateStrokeStyle(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES, dashes: ::core::option::Option<&[f32]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateStrokeStyle)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateStrokeStyle)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_DirectWrite"))] @@ -20432,9 +20432,9 @@ impl ID2D1Factory1 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).CreateDevice)(::windows::core::Interface::as_raw(self), dxgidevice.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateStrokeStyle2(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES1, dashes: &[f32]) -> ::windows::core::Result { + pub unsafe fn CreateStrokeStyle2(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES1, dashes: ::core::option::Option<&[f32]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateStrokeStyle2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateStrokeStyle2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreatePathGeometry2(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -20460,23 +20460,23 @@ impl ID2D1Factory1 { } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn RegisterEffectFromStream<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: &[D2D1_PROPERTY_BINDING], effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> + pub unsafe fn RegisterEffectFromStream<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: ::core::option::Option<&[D2D1_PROPERTY_BINDING]>, effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::System::Com::IStream>>, { - (::windows::core::Interface::vtable(self).RegisterEffectFromStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(bindings)), bindings.len() as _, ::core::mem::transmute(effectfactory)).ok() + (::windows::core::Interface::vtable(self).RegisterEffectFromStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into().abi(), ::core::mem::transmute(bindings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bindings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectfactory)).ok() } - pub unsafe fn RegisterEffectFromString<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: &[D2D1_PROPERTY_BINDING], effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> + pub unsafe fn RegisterEffectFromString<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: ::core::option::Option<&[D2D1_PROPERTY_BINDING]>, effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).RegisterEffectFromString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(bindings)), bindings.len() as _, ::core::mem::transmute(effectfactory)).ok() + (::windows::core::Interface::vtable(self).RegisterEffectFromString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into(), ::core::mem::transmute(bindings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bindings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectfactory)).ok() } pub unsafe fn UnregisterEffect(&self, classid: &::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).UnregisterEffect)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid)).ok() } - pub unsafe fn GetRegisteredEffects(&self, effects: &mut [::windows::core::GUID], effectsreturned: ::core::option::Option<&mut u32>, effectsregistered: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRegisteredEffects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(effects)), effects.len() as _, ::core::mem::transmute(effectsreturned), ::core::mem::transmute(effectsregistered)).ok() + pub unsafe fn GetRegisteredEffects(&self, effects: ::core::option::Option<&mut [::windows::core::GUID]>, effectsreturned: ::core::option::Option<&mut u32>, effectsregistered: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRegisteredEffects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(effects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), effects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectsreturned), ::core::mem::transmute(effectsregistered)).ok() } pub unsafe fn GetEffectProperties(&self, effectid: &::windows::core::GUID) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -20592,7 +20592,7 @@ impl ID2D1Factory2 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGeometryGroup(&self, fillmode: Common::D2D1_FILL_MODE, geometries: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateGeometryGroup)(::windows::core::Interface::as_raw(self), fillmode, ::core::mem::transmute(::windows::core::as_ptr_or_null(geometries)), geometries.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateGeometryGroup)(::windows::core::Interface::as_raw(self), fillmode, ::core::mem::transmute(geometries.as_ptr()), geometries.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`*"] #[cfg(feature = "Foundation_Numerics")] @@ -20607,9 +20607,9 @@ impl ID2D1Factory2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.CreatePathGeometry)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateStrokeStyle(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES, dashes: &[f32]) -> ::windows::core::Result { + pub unsafe fn CreateStrokeStyle(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES, dashes: ::core::option::Option<&[f32]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateStrokeStyle)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateStrokeStyle)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_DirectWrite"))] @@ -20659,9 +20659,9 @@ impl ID2D1Factory2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.CreateDevice)(::windows::core::Interface::as_raw(self), dxgidevice.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateStrokeStyle2(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES1, dashes: &[f32]) -> ::windows::core::Result { + pub unsafe fn CreateStrokeStyle2(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES1, dashes: ::core::option::Option<&[f32]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateStrokeStyle2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateStrokeStyle2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreatePathGeometry2(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -20687,23 +20687,23 @@ impl ID2D1Factory2 { } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn RegisterEffectFromStream<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: &[D2D1_PROPERTY_BINDING], effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> + pub unsafe fn RegisterEffectFromStream<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: ::core::option::Option<&[D2D1_PROPERTY_BINDING]>, effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::System::Com::IStream>>, { - (::windows::core::Interface::vtable(self).base__.RegisterEffectFromStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(bindings)), bindings.len() as _, ::core::mem::transmute(effectfactory)).ok() + (::windows::core::Interface::vtable(self).base__.RegisterEffectFromStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into().abi(), ::core::mem::transmute(bindings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bindings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectfactory)).ok() } - pub unsafe fn RegisterEffectFromString<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: &[D2D1_PROPERTY_BINDING], effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> + pub unsafe fn RegisterEffectFromString<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: ::core::option::Option<&[D2D1_PROPERTY_BINDING]>, effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.RegisterEffectFromString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(bindings)), bindings.len() as _, ::core::mem::transmute(effectfactory)).ok() + (::windows::core::Interface::vtable(self).base__.RegisterEffectFromString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into(), ::core::mem::transmute(bindings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bindings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectfactory)).ok() } pub unsafe fn UnregisterEffect(&self, classid: &::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.UnregisterEffect)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid)).ok() } - pub unsafe fn GetRegisteredEffects(&self, effects: &mut [::windows::core::GUID], effectsreturned: ::core::option::Option<&mut u32>, effectsregistered: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetRegisteredEffects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(effects)), effects.len() as _, ::core::mem::transmute(effectsreturned), ::core::mem::transmute(effectsregistered)).ok() + pub unsafe fn GetRegisteredEffects(&self, effects: ::core::option::Option<&mut [::windows::core::GUID]>, effectsreturned: ::core::option::Option<&mut u32>, effectsregistered: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetRegisteredEffects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(effects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), effects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectsreturned), ::core::mem::transmute(effectsregistered)).ok() } pub unsafe fn GetEffectProperties(&self, effectid: &::windows::core::GUID) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -20825,7 +20825,7 @@ impl ID2D1Factory3 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGeometryGroup(&self, fillmode: Common::D2D1_FILL_MODE, geometries: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateGeometryGroup)(::windows::core::Interface::as_raw(self), fillmode, ::core::mem::transmute(::windows::core::as_ptr_or_null(geometries)), geometries.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateGeometryGroup)(::windows::core::Interface::as_raw(self), fillmode, ::core::mem::transmute(geometries.as_ptr()), geometries.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`*"] #[cfg(feature = "Foundation_Numerics")] @@ -20840,9 +20840,9 @@ impl ID2D1Factory3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.CreatePathGeometry)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateStrokeStyle(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES, dashes: &[f32]) -> ::windows::core::Result { + pub unsafe fn CreateStrokeStyle(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES, dashes: ::core::option::Option<&[f32]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateStrokeStyle)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateStrokeStyle)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_DirectWrite"))] @@ -20892,9 +20892,9 @@ impl ID2D1Factory3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.CreateDevice)(::windows::core::Interface::as_raw(self), dxgidevice.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateStrokeStyle2(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES1, dashes: &[f32]) -> ::windows::core::Result { + pub unsafe fn CreateStrokeStyle2(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES1, dashes: ::core::option::Option<&[f32]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateStrokeStyle2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateStrokeStyle2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreatePathGeometry2(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -20920,23 +20920,23 @@ impl ID2D1Factory3 { } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn RegisterEffectFromStream<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: &[D2D1_PROPERTY_BINDING], effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> + pub unsafe fn RegisterEffectFromStream<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: ::core::option::Option<&[D2D1_PROPERTY_BINDING]>, effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::System::Com::IStream>>, { - (::windows::core::Interface::vtable(self).base__.base__.RegisterEffectFromStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(bindings)), bindings.len() as _, ::core::mem::transmute(effectfactory)).ok() + (::windows::core::Interface::vtable(self).base__.base__.RegisterEffectFromStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into().abi(), ::core::mem::transmute(bindings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bindings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectfactory)).ok() } - pub unsafe fn RegisterEffectFromString<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: &[D2D1_PROPERTY_BINDING], effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> + pub unsafe fn RegisterEffectFromString<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: ::core::option::Option<&[D2D1_PROPERTY_BINDING]>, effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.RegisterEffectFromString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(bindings)), bindings.len() as _, ::core::mem::transmute(effectfactory)).ok() + (::windows::core::Interface::vtable(self).base__.base__.RegisterEffectFromString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into(), ::core::mem::transmute(bindings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bindings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectfactory)).ok() } pub unsafe fn UnregisterEffect(&self, classid: &::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.UnregisterEffect)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid)).ok() } - pub unsafe fn GetRegisteredEffects(&self, effects: &mut [::windows::core::GUID], effectsreturned: ::core::option::Option<&mut u32>, effectsregistered: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetRegisteredEffects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(effects)), effects.len() as _, ::core::mem::transmute(effectsreturned), ::core::mem::transmute(effectsregistered)).ok() + pub unsafe fn GetRegisteredEffects(&self, effects: ::core::option::Option<&mut [::windows::core::GUID]>, effectsreturned: ::core::option::Option<&mut u32>, effectsregistered: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.GetRegisteredEffects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(effects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), effects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectsreturned), ::core::mem::transmute(effectsregistered)).ok() } pub unsafe fn GetEffectProperties(&self, effectid: &::windows::core::GUID) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21082,7 +21082,7 @@ impl ID2D1Factory4 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGeometryGroup(&self, fillmode: Common::D2D1_FILL_MODE, geometries: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateGeometryGroup)(::windows::core::Interface::as_raw(self), fillmode, ::core::mem::transmute(::windows::core::as_ptr_or_null(geometries)), geometries.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateGeometryGroup)(::windows::core::Interface::as_raw(self), fillmode, ::core::mem::transmute(geometries.as_ptr()), geometries.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`*"] #[cfg(feature = "Foundation_Numerics")] @@ -21097,9 +21097,9 @@ impl ID2D1Factory4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreatePathGeometry)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateStrokeStyle(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES, dashes: &[f32]) -> ::windows::core::Result { + pub unsafe fn CreateStrokeStyle(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES, dashes: ::core::option::Option<&[f32]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateStrokeStyle)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateStrokeStyle)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_DirectWrite"))] @@ -21149,9 +21149,9 @@ impl ID2D1Factory4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.CreateDevice)(::windows::core::Interface::as_raw(self), dxgidevice.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateStrokeStyle2(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES1, dashes: &[f32]) -> ::windows::core::Result { + pub unsafe fn CreateStrokeStyle2(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES1, dashes: ::core::option::Option<&[f32]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateStrokeStyle2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateStrokeStyle2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreatePathGeometry2(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21177,23 +21177,23 @@ impl ID2D1Factory4 { } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn RegisterEffectFromStream<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: &[D2D1_PROPERTY_BINDING], effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> + pub unsafe fn RegisterEffectFromStream<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: ::core::option::Option<&[D2D1_PROPERTY_BINDING]>, effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::System::Com::IStream>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.RegisterEffectFromStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(bindings)), bindings.len() as _, ::core::mem::transmute(effectfactory)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.RegisterEffectFromStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into().abi(), ::core::mem::transmute(bindings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bindings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectfactory)).ok() } - pub unsafe fn RegisterEffectFromString<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: &[D2D1_PROPERTY_BINDING], effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> + pub unsafe fn RegisterEffectFromString<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: ::core::option::Option<&[D2D1_PROPERTY_BINDING]>, effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.RegisterEffectFromString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(bindings)), bindings.len() as _, ::core::mem::transmute(effectfactory)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.RegisterEffectFromString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into(), ::core::mem::transmute(bindings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bindings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectfactory)).ok() } pub unsafe fn UnregisterEffect(&self, classid: &::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.UnregisterEffect)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid)).ok() } - pub unsafe fn GetRegisteredEffects(&self, effects: &mut [::windows::core::GUID], effectsreturned: ::core::option::Option<&mut u32>, effectsregistered: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetRegisteredEffects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(effects)), effects.len() as _, ::core::mem::transmute(effectsreturned), ::core::mem::transmute(effectsregistered)).ok() + pub unsafe fn GetRegisteredEffects(&self, effects: ::core::option::Option<&mut [::windows::core::GUID]>, effectsreturned: ::core::option::Option<&mut u32>, effectsregistered: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.GetRegisteredEffects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(effects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), effects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectsreturned), ::core::mem::transmute(effectsregistered)).ok() } pub unsafe fn GetEffectProperties(&self, effectid: &::windows::core::GUID) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21363,7 +21363,7 @@ impl ID2D1Factory5 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGeometryGroup(&self, fillmode: Common::D2D1_FILL_MODE, geometries: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateGeometryGroup)(::windows::core::Interface::as_raw(self), fillmode, ::core::mem::transmute(::windows::core::as_ptr_or_null(geometries)), geometries.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateGeometryGroup)(::windows::core::Interface::as_raw(self), fillmode, ::core::mem::transmute(geometries.as_ptr()), geometries.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`*"] #[cfg(feature = "Foundation_Numerics")] @@ -21378,9 +21378,9 @@ impl ID2D1Factory5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreatePathGeometry)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateStrokeStyle(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES, dashes: &[f32]) -> ::windows::core::Result { + pub unsafe fn CreateStrokeStyle(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES, dashes: ::core::option::Option<&[f32]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateStrokeStyle)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateStrokeStyle)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_DirectWrite"))] @@ -21430,9 +21430,9 @@ impl ID2D1Factory5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateDevice)(::windows::core::Interface::as_raw(self), dxgidevice.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateStrokeStyle2(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES1, dashes: &[f32]) -> ::windows::core::Result { + pub unsafe fn CreateStrokeStyle2(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES1, dashes: ::core::option::Option<&[f32]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateStrokeStyle2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateStrokeStyle2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreatePathGeometry2(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21458,23 +21458,23 @@ impl ID2D1Factory5 { } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn RegisterEffectFromStream<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: &[D2D1_PROPERTY_BINDING], effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> + pub unsafe fn RegisterEffectFromStream<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: ::core::option::Option<&[D2D1_PROPERTY_BINDING]>, effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::System::Com::IStream>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RegisterEffectFromStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(bindings)), bindings.len() as _, ::core::mem::transmute(effectfactory)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RegisterEffectFromStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into().abi(), ::core::mem::transmute(bindings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bindings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectfactory)).ok() } - pub unsafe fn RegisterEffectFromString<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: &[D2D1_PROPERTY_BINDING], effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> + pub unsafe fn RegisterEffectFromString<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: ::core::option::Option<&[D2D1_PROPERTY_BINDING]>, effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RegisterEffectFromString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(bindings)), bindings.len() as _, ::core::mem::transmute(effectfactory)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RegisterEffectFromString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into(), ::core::mem::transmute(bindings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bindings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectfactory)).ok() } pub unsafe fn UnregisterEffect(&self, classid: &::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.UnregisterEffect)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid)).ok() } - pub unsafe fn GetRegisteredEffects(&self, effects: &mut [::windows::core::GUID], effectsreturned: ::core::option::Option<&mut u32>, effectsregistered: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetRegisteredEffects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(effects)), effects.len() as _, ::core::mem::transmute(effectsreturned), ::core::mem::transmute(effectsregistered)).ok() + pub unsafe fn GetRegisteredEffects(&self, effects: ::core::option::Option<&mut [::windows::core::GUID]>, effectsreturned: ::core::option::Option<&mut u32>, effectsregistered: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetRegisteredEffects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(effects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), effects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectsreturned), ::core::mem::transmute(effectsregistered)).ok() } pub unsafe fn GetEffectProperties(&self, effectid: &::windows::core::GUID) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21668,7 +21668,7 @@ impl ID2D1Factory6 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGeometryGroup(&self, fillmode: Common::D2D1_FILL_MODE, geometries: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateGeometryGroup)(::windows::core::Interface::as_raw(self), fillmode, ::core::mem::transmute(::windows::core::as_ptr_or_null(geometries)), geometries.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateGeometryGroup)(::windows::core::Interface::as_raw(self), fillmode, ::core::mem::transmute(geometries.as_ptr()), geometries.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`*"] #[cfg(feature = "Foundation_Numerics")] @@ -21683,9 +21683,9 @@ impl ID2D1Factory6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreatePathGeometry)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateStrokeStyle(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES, dashes: &[f32]) -> ::windows::core::Result { + pub unsafe fn CreateStrokeStyle(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES, dashes: ::core::option::Option<&[f32]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateStrokeStyle)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateStrokeStyle)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_DirectWrite"))] @@ -21735,9 +21735,9 @@ impl ID2D1Factory6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateDevice)(::windows::core::Interface::as_raw(self), dxgidevice.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateStrokeStyle2(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES1, dashes: &[f32]) -> ::windows::core::Result { + pub unsafe fn CreateStrokeStyle2(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES1, dashes: ::core::option::Option<&[f32]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateStrokeStyle2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateStrokeStyle2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreatePathGeometry2(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21763,23 +21763,23 @@ impl ID2D1Factory6 { } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn RegisterEffectFromStream<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: &[D2D1_PROPERTY_BINDING], effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> + pub unsafe fn RegisterEffectFromStream<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: ::core::option::Option<&[D2D1_PROPERTY_BINDING]>, effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::System::Com::IStream>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.RegisterEffectFromStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(bindings)), bindings.len() as _, ::core::mem::transmute(effectfactory)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.RegisterEffectFromStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into().abi(), ::core::mem::transmute(bindings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bindings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectfactory)).ok() } - pub unsafe fn RegisterEffectFromString<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: &[D2D1_PROPERTY_BINDING], effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> + pub unsafe fn RegisterEffectFromString<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: ::core::option::Option<&[D2D1_PROPERTY_BINDING]>, effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.RegisterEffectFromString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(bindings)), bindings.len() as _, ::core::mem::transmute(effectfactory)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.RegisterEffectFromString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into(), ::core::mem::transmute(bindings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bindings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectfactory)).ok() } pub unsafe fn UnregisterEffect(&self, classid: &::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.UnregisterEffect)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid)).ok() } - pub unsafe fn GetRegisteredEffects(&self, effects: &mut [::windows::core::GUID], effectsreturned: ::core::option::Option<&mut u32>, effectsregistered: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetRegisteredEffects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(effects)), effects.len() as _, ::core::mem::transmute(effectsreturned), ::core::mem::transmute(effectsregistered)).ok() + pub unsafe fn GetRegisteredEffects(&self, effects: ::core::option::Option<&mut [::windows::core::GUID]>, effectsreturned: ::core::option::Option<&mut u32>, effectsregistered: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetRegisteredEffects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(effects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), effects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectsreturned), ::core::mem::transmute(effectsregistered)).ok() } pub unsafe fn GetEffectProperties(&self, effectid: &::windows::core::GUID) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21997,7 +21997,7 @@ impl ID2D1Factory7 { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGeometryGroup(&self, fillmode: Common::D2D1_FILL_MODE, geometries: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateGeometryGroup)(::windows::core::Interface::as_raw(self), fillmode, ::core::mem::transmute(::windows::core::as_ptr_or_null(geometries)), geometries.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateGeometryGroup)(::windows::core::Interface::as_raw(self), fillmode, ::core::mem::transmute(geometries.as_ptr()), geometries.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`*"] #[cfg(feature = "Foundation_Numerics")] @@ -22012,9 +22012,9 @@ impl ID2D1Factory7 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreatePathGeometry)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateStrokeStyle(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES, dashes: &[f32]) -> ::windows::core::Result { + pub unsafe fn CreateStrokeStyle(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES, dashes: ::core::option::Option<&[f32]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateStrokeStyle)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateStrokeStyle)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_DirectWrite"))] @@ -22064,9 +22064,9 @@ impl ID2D1Factory7 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateDevice)(::windows::core::Interface::as_raw(self), dxgidevice.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateStrokeStyle2(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES1, dashes: &[f32]) -> ::windows::core::Result { + pub unsafe fn CreateStrokeStyle2(&self, strokestyleproperties: &D2D1_STROKE_STYLE_PROPERTIES1, dashes: ::core::option::Option<&[f32]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateStrokeStyle2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateStrokeStyle2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(strokestyleproperties), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreatePathGeometry2(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -22092,23 +22092,23 @@ impl ID2D1Factory7 { } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn RegisterEffectFromStream<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: &[D2D1_PROPERTY_BINDING], effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> + pub unsafe fn RegisterEffectFromStream<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: ::core::option::Option<&[D2D1_PROPERTY_BINDING]>, effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::System::Com::IStream>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.RegisterEffectFromStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(bindings)), bindings.len() as _, ::core::mem::transmute(effectfactory)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.RegisterEffectFromStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into().abi(), ::core::mem::transmute(bindings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bindings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectfactory)).ok() } - pub unsafe fn RegisterEffectFromString<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: &[D2D1_PROPERTY_BINDING], effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> + pub unsafe fn RegisterEffectFromString<'a, P0>(&self, classid: &::windows::core::GUID, propertyxml: P0, bindings: ::core::option::Option<&[D2D1_PROPERTY_BINDING]>, effectfactory: PD2D1_EFFECT_FACTORY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.RegisterEffectFromString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(bindings)), bindings.len() as _, ::core::mem::transmute(effectfactory)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.RegisterEffectFromString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid), propertyxml.into(), ::core::mem::transmute(bindings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bindings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectfactory)).ok() } pub unsafe fn UnregisterEffect(&self, classid: &::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.UnregisterEffect)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(classid)).ok() } - pub unsafe fn GetRegisteredEffects(&self, effects: &mut [::windows::core::GUID], effectsreturned: ::core::option::Option<&mut u32>, effectsregistered: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetRegisteredEffects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(effects)), effects.len() as _, ::core::mem::transmute(effectsreturned), ::core::mem::transmute(effectsregistered)).ok() + pub unsafe fn GetRegisteredEffects(&self, effects: ::core::option::Option<&mut [::windows::core::GUID]>, effectsreturned: ::core::option::Option<&mut u32>, effectsregistered: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetRegisteredEffects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(effects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), effects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(effectsreturned), ::core::mem::transmute(effectsregistered)).ok() } pub unsafe fn GetEffectProperties(&self, effectid: &::windows::core::GUID) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -23009,7 +23009,7 @@ impl ID2D1GeometryGroup { (::windows::core::Interface::vtable(self).GetSourceGeometryCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetSourceGeometries(&self, geometries: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).GetSourceGeometries)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(geometries)), geometries.len() as _) + (::windows::core::Interface::vtable(self).GetSourceGeometries)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(geometries.as_ptr()), geometries.len() as _) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -23175,12 +23175,12 @@ impl ID2D1GeometrySink { #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn AddLines(&self, points: &[Common::D2D_POINT_2F]) { - (::windows::core::Interface::vtable(self).base__.AddLines)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(points)), points.len() as _) + (::windows::core::Interface::vtable(self).base__.AddLines)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(points.as_ptr()), points.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn AddBeziers(&self, beziers: &[Common::D2D1_BEZIER_SEGMENT]) { - (::windows::core::Interface::vtable(self).base__.AddBeziers)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(beziers)), beziers.len() as _) + (::windows::core::Interface::vtable(self).base__.AddBeziers)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(beziers.as_ptr()), beziers.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] @@ -23210,7 +23210,7 @@ impl ID2D1GeometrySink { #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn AddQuadraticBeziers(&self, beziers: &[D2D1_QUADRATIC_BEZIER_SEGMENT]) { - (::windows::core::Interface::vtable(self).AddQuadraticBeziers)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(beziers)), beziers.len() as _) + (::windows::core::Interface::vtable(self).AddQuadraticBeziers)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(beziers.as_ptr()), beziers.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] @@ -23318,7 +23318,7 @@ impl ID2D1GradientMesh { #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn GetPatches(&self, startindex: u32, patches: &mut [D2D1_GRADIENT_MESH_PATCH]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPatches)(::windows::core::Interface::as_raw(self), startindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(patches)), patches.len() as _).ok() + (::windows::core::Interface::vtable(self).GetPatches)(::windows::core::Interface::as_raw(self), startindex, ::core::mem::transmute(patches.as_ptr()), patches.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -23394,7 +23394,7 @@ impl ID2D1GradientStopCollection { #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn GetGradientStops(&self, gradientstops: &mut [D2D1_GRADIENT_STOP]) { - (::windows::core::Interface::vtable(self).GetGradientStops)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(gradientstops)), gradientstops.len() as _) + (::windows::core::Interface::vtable(self).GetGradientStops)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(gradientstops.as_ptr()), gradientstops.len() as _) } pub unsafe fn GetColorInterpolationGamma(&self) -> D2D1_GAMMA { (::windows::core::Interface::vtable(self).GetColorInterpolationGamma)(::windows::core::Interface::as_raw(self)) @@ -23478,7 +23478,7 @@ impl ID2D1GradientStopCollection1 { #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn GetGradientStops(&self, gradientstops: &mut [D2D1_GRADIENT_STOP]) { - (::windows::core::Interface::vtable(self).base__.GetGradientStops)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(gradientstops)), gradientstops.len() as _) + (::windows::core::Interface::vtable(self).base__.GetGradientStops)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(gradientstops.as_ptr()), gradientstops.len() as _) } pub unsafe fn GetColorInterpolationGamma(&self) -> D2D1_GAMMA { (::windows::core::Interface::vtable(self).base__.GetColorInterpolationGamma)(::windows::core::Interface::as_raw(self)) @@ -23489,7 +23489,7 @@ impl ID2D1GradientStopCollection1 { #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn GetGradientStops1(&self, gradientstops: &mut [D2D1_GRADIENT_STOP]) { - (::windows::core::Interface::vtable(self).GetGradientStops1)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(gradientstops)), gradientstops.len() as _) + (::windows::core::Interface::vtable(self).GetGradientStops1)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(gradientstops.as_ptr()), gradientstops.len() as _) } pub unsafe fn GetPreInterpolationSpace(&self) -> D2D1_COLOR_SPACE { (::windows::core::Interface::vtable(self).GetPreInterpolationSpace)(::windows::core::Interface::as_raw(self)) @@ -23628,7 +23628,7 @@ impl ID2D1HwndRenderTarget { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection(&self, gradientstops: &[D2D1_GRADIENT_STOP], colorinterpolationgamma: D2D1_GAMMA, extendmode: D2D1_EXTEND_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(gradientstops)), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(gradientstops.as_ptr()), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -23771,7 +23771,7 @@ impl ID2D1HwndRenderTarget { P0: ::std::convert::Into<::windows::core::InParam<'a, super::DirectWrite::IDWriteTextFormat>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Brush>>, { - (::windows::core::Interface::vtable(self).base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) + (::windows::core::Interface::vtable(self).base__.DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_DirectWrite"))] @@ -24451,13 +24451,13 @@ impl ID2D1Ink { result__ } pub unsafe fn AddSegments(&self, segments: &[D2D1_INK_BEZIER_SEGMENT]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddSegments)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(segments)), segments.len() as _).ok() + (::windows::core::Interface::vtable(self).AddSegments)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(segments.as_ptr()), segments.len() as _).ok() } pub unsafe fn RemoveSegmentsAtEnd(&self, segmentscount: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).RemoveSegmentsAtEnd)(::windows::core::Interface::as_raw(self), segmentscount).ok() } pub unsafe fn SetSegments(&self, startsegment: u32, segments: &[D2D1_INK_BEZIER_SEGMENT]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSegments)(::windows::core::Interface::as_raw(self), startsegment, ::core::mem::transmute(::windows::core::as_ptr_or_null(segments)), segments.len() as _).ok() + (::windows::core::Interface::vtable(self).SetSegments)(::windows::core::Interface::as_raw(self), startsegment, ::core::mem::transmute(segments.as_ptr()), segments.len() as _).ok() } pub unsafe fn SetSegmentAtEnd(&self, segment: &D2D1_INK_BEZIER_SEGMENT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetSegmentAtEnd)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(segment)).ok() @@ -24466,7 +24466,7 @@ impl ID2D1Ink { (::windows::core::Interface::vtable(self).GetSegmentCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetSegments(&self, startsegment: u32, segments: &mut [D2D1_INK_BEZIER_SEGMENT]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSegments)(::windows::core::Interface::as_raw(self), startsegment, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(segments)), segments.len() as _).ok() + (::windows::core::Interface::vtable(self).GetSegments)(::windows::core::Interface::as_raw(self), startsegment, ::core::mem::transmute(segments.as_ptr()), segments.len() as _).ok() } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -25636,7 +25636,7 @@ impl ID2D1Properties { (::windows::core::Interface::vtable(self).GetPropertyCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetPropertyName(&self, index: u32, name: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPropertyName)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(name)), name.len() as _).ok() + (::windows::core::Interface::vtable(self).GetPropertyName)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(name.as_ptr()), name.len() as _).ok() } pub unsafe fn GetPropertyNameLength(&self, index: u32) -> u32 { (::windows::core::Interface::vtable(self).GetPropertyNameLength)(::windows::core::Interface::as_raw(self), index) @@ -25654,19 +25654,19 @@ impl ID2D1Properties { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetValueByName)(::windows::core::Interface::as_raw(self), name.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _).ok() + (::windows::core::Interface::vtable(self).SetValueByName)(::windows::core::Interface::as_raw(self), name.into(), r#type, ::core::mem::transmute(data.as_ptr()), data.len() as _).ok() } pub unsafe fn SetValue(&self, index: u32, r#type: D2D1_PROPERTY_TYPE, data: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetValue)(::windows::core::Interface::as_raw(self), index, r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _).ok() + (::windows::core::Interface::vtable(self).SetValue)(::windows::core::Interface::as_raw(self), index, r#type, ::core::mem::transmute(data.as_ptr()), data.len() as _).ok() } pub unsafe fn GetValueByName<'a, P0>(&self, name: P0, r#type: D2D1_PROPERTY_TYPE, data: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetValueByName)(::windows::core::Interface::as_raw(self), name.into(), r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(data)), data.len() as _).ok() + (::windows::core::Interface::vtable(self).GetValueByName)(::windows::core::Interface::as_raw(self), name.into(), r#type, ::core::mem::transmute(data.as_ptr()), data.len() as _).ok() } pub unsafe fn GetValue(&self, index: u32, r#type: D2D1_PROPERTY_TYPE, data: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetValue)(::windows::core::Interface::as_raw(self), index, r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(data)), data.len() as _).ok() + (::windows::core::Interface::vtable(self).GetValue)(::windows::core::Interface::as_raw(self), index, r#type, ::core::mem::transmute(data.as_ptr()), data.len() as _).ok() } pub unsafe fn GetValueSize(&self, index: u32) -> u32 { (::windows::core::Interface::vtable(self).GetValueSize)(::windows::core::Interface::as_raw(self), index) @@ -26181,7 +26181,7 @@ impl ID2D1RenderTarget { #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn CreateGradientStopCollection(&self, gradientstops: &[D2D1_GRADIENT_STOP], colorinterpolationgamma: D2D1_GAMMA, extendmode: D2D1_EXTEND_MODE) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(gradientstops)), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateGradientStopCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(gradientstops.as_ptr()), gradientstops.len() as _, colorinterpolationgamma, extendmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] @@ -26324,7 +26324,7 @@ impl ID2D1RenderTarget { P0: ::std::convert::Into<::windows::core::InParam<'a, super::DirectWrite::IDWriteTextFormat>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Brush>>, { - (::windows::core::Interface::vtable(self).DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) + (::windows::core::Interface::vtable(self).DrawText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), ::core::mem::transmute(layoutrect), defaultfillbrush.into().abi(), options, measuringmode) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`, `\"Win32_Graphics_DirectWrite\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct2D_Common", feature = "Win32_Graphics_DirectWrite"))] @@ -26725,8 +26725,8 @@ pub struct ID2D1Resource_Vtbl { #[repr(transparent)] pub struct ID2D1ResourceTexture(::windows::core::IUnknown); impl ID2D1ResourceTexture { - pub unsafe fn Update(&self, minimumextents: ::core::option::Option<&u32>, maximimumextents: ::core::option::Option<&u32>, strides: ::core::option::Option<&u32>, dimensions: u32, data: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Update)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(minimumextents), ::core::mem::transmute(maximimumextents), ::core::mem::transmute(strides), ::core::mem::transmute(dimensions), ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _).ok() + pub unsafe fn Update(&self, minimumextents: *const u32, maximimumextents: *const u32, strides: ::core::option::Option<&u32>, dimensions: u32, data: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Update)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(minimumextents), ::core::mem::transmute(maximimumextents), ::core::mem::transmute(strides), ::core::mem::transmute(dimensions), ::core::mem::transmute(data.as_ptr()), data.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -27079,11 +27079,11 @@ impl ID2D1SourceTransform { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn MapOutputRectToInputRects(&self, outputrect: &super::super::Foundation::RECT, inputrects: &mut [super::super::Foundation::RECT]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.MapOutputRectToInputRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(outputrect), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(inputrects)), inputrects.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.MapOutputRectToInputRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(outputrect), ::core::mem::transmute(inputrects.as_ptr()), inputrects.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn MapInputRectsToOutputRect(&self, inputrects: &super::super::Foundation::RECT, inputopaquesubrects: &super::super::Foundation::RECT, inputrectcount: u32, outputrect: &mut super::super::Foundation::RECT, outputopaquesubrect: &mut super::super::Foundation::RECT) -> ::windows::core::Result<()> { + pub unsafe fn MapInputRectsToOutputRect(&self, inputrects: *const super::super::Foundation::RECT, inputopaquesubrects: *const super::super::Foundation::RECT, inputrectcount: u32, outputrect: &mut super::super::Foundation::RECT, outputopaquesubrect: &mut super::super::Foundation::RECT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.MapInputRectsToOutputRect)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(inputrects), ::core::mem::transmute(inputopaquesubrects), ::core::mem::transmute(inputrectcount), ::core::mem::transmute(outputrect), ::core::mem::transmute(outputopaquesubrect)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -27201,7 +27201,7 @@ impl ID2D1SpriteBatch { } #[doc = "*Required features: `\"Foundation_Numerics\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Foundation_Numerics", feature = "Win32_Graphics_Direct2D_Common"))] - pub unsafe fn GetSprites(&self, startindex: u32, spritecount: u32, destinationrectangles: ::core::option::Option<&mut Common::D2D_RECT_F>, sourcerectangles: ::core::option::Option<&mut Common::D2D_RECT_U>, colors: ::core::option::Option<&mut Common::D2D1_COLOR_F>, transforms: ::core::option::Option<&mut super::super::super::Foundation::Numerics::Matrix3x2>) -> ::windows::core::Result<()> { + pub unsafe fn GetSprites(&self, startindex: u32, spritecount: u32, destinationrectangles: *mut Common::D2D_RECT_F, sourcerectangles: *mut Common::D2D_RECT_U, colors: *mut Common::D2D1_COLOR_F, transforms: *mut super::super::super::Foundation::Numerics::Matrix3x2) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSprites)(::windows::core::Interface::as_raw(self), startindex, ::core::mem::transmute(spritecount), ::core::mem::transmute(destinationrectangles), ::core::mem::transmute(sourcerectangles), ::core::mem::transmute(colors), ::core::mem::transmute(transforms)).ok() } pub unsafe fn GetSpriteCount(&self) -> u32 { @@ -27312,7 +27312,7 @@ impl ID2D1StrokeStyle { (::windows::core::Interface::vtable(self).GetDashesCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetDashes(&self, dashes: &mut [f32]) { - (::windows::core::Interface::vtable(self).GetDashes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dashes)), dashes.len() as _) + (::windows::core::Interface::vtable(self).GetDashes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(dashes.as_ptr()), dashes.len() as _) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -27411,7 +27411,7 @@ impl ID2D1StrokeStyle1 { (::windows::core::Interface::vtable(self).base__.GetDashesCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetDashes(&self, dashes: &mut [f32]) { - (::windows::core::Interface::vtable(self).base__.GetDashes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dashes)), dashes.len() as _) + (::windows::core::Interface::vtable(self).base__.GetDashes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(dashes.as_ptr()), dashes.len() as _) } pub unsafe fn GetStrokeTransformType(&self) -> D2D1_STROKE_TRANSFORM_TYPE { (::windows::core::Interface::vtable(self).GetStrokeTransformType)(::windows::core::Interface::as_raw(self)) @@ -27622,19 +27622,19 @@ impl ID2D1SvgDocument { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).CreatePaint)(::windows::core::Interface::as_raw(self), painttype, ::core::mem::transmute(color), id.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateStrokeDashArray(&self, dashes: &[D2D1_SVG_LENGTH]) -> ::windows::core::Result { + pub unsafe fn CreateStrokeDashArray(&self, dashes: ::core::option::Option<&[D2D1_SVG_LENGTH]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateStrokeDashArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateStrokeDashArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] - pub unsafe fn CreatePointCollection(&self, points: &[Common::D2D_POINT_2F]) -> ::windows::core::Result { + pub unsafe fn CreatePointCollection(&self, points: ::core::option::Option<&[Common::D2D_POINT_2F]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreatePointCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(points)), points.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreatePointCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(points.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), points.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreatePathData(&self, segmentdata: &[f32], commands: &[D2D1_SVG_PATH_COMMAND]) -> ::windows::core::Result { + pub unsafe fn CreatePathData(&self, segmentdata: ::core::option::Option<&[f32]>, commands: ::core::option::Option<&[D2D1_SVG_PATH_COMMAND]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreatePathData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(segmentdata)), segmentdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(commands)), commands.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreatePathData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(segmentdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), segmentdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commands.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), commands.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -27732,7 +27732,7 @@ impl ID2D1SvgElement { (::windows::core::Interface::vtable(self).GetDocument)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(document)) } pub unsafe fn GetTagName(&self, name: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTagName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(name)), name.len() as _).ok() + (::windows::core::Interface::vtable(self).GetTagName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name.as_ptr()), name.len() as _).ok() } pub unsafe fn GetTagNameLength(&self) -> u32 { (::windows::core::Interface::vtable(self).GetTagNameLength)(::windows::core::Interface::as_raw(self)) @@ -27817,7 +27817,7 @@ impl ID2D1SvgElement { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetSpecifiedAttributeName(&self, index: u32, name: &mut [u16], inherited: ::core::option::Option<&mut super::super::Foundation::BOOL>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecifiedAttributeName)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(name)), name.len() as _, ::core::mem::transmute(inherited)).ok() + (::windows::core::Interface::vtable(self).GetSpecifiedAttributeName)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(name.as_ptr()), name.len() as _, ::core::mem::transmute(inherited)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -27831,10 +27831,10 @@ impl ID2D1SvgElement { (::windows::core::Interface::vtable(self).RemoveAttribute)(::windows::core::Interface::as_raw(self), name.into()).ok() } pub unsafe fn SetTextValue(&self, name: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetTextValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(name)), name.len() as _).ok() + (::windows::core::Interface::vtable(self).SetTextValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name.as_ptr()), name.len() as _).ok() } pub unsafe fn GetTextValue(&self, name: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTextValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(name)), name.len() as _).ok() + (::windows::core::Interface::vtable(self).GetTextValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name.as_ptr()), name.len() as _).ok() } pub unsafe fn GetTextValueLength(&self) -> u32 { (::windows::core::Interface::vtable(self).GetTextValueLength)(::windows::core::Interface::as_raw(self)) @@ -27846,11 +27846,11 @@ impl ID2D1SvgElement { { (::windows::core::Interface::vtable(self).SetAttributeValue)(::windows::core::Interface::as_raw(self), name.into(), value.into().abi()).ok() } - pub unsafe fn SetAttributeValue2<'a, P0>(&self, name: P0, r#type: D2D1_SVG_ATTRIBUTE_POD_TYPE, value: *const ::core::ffi::c_void, valuesizeinbytes: u32) -> ::windows::core::Result<()> + pub unsafe fn SetAttributeValue2<'a, P0>(&self, name: P0, r#type: D2D1_SVG_ATTRIBUTE_POD_TYPE, value: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetAttributeValue2)(::windows::core::Interface::as_raw(self), name.into(), r#type, ::core::mem::transmute(value), valuesizeinbytes).ok() + (::windows::core::Interface::vtable(self).SetAttributeValue2)(::windows::core::Interface::as_raw(self), name.into(), r#type, ::core::mem::transmute(value.as_ptr()), value.len() as _).ok() } pub unsafe fn SetAttributeValue3<'a, P0, P1>(&self, name: P0, r#type: D2D1_SVG_ATTRIBUTE_STRING_TYPE, value: P1) -> ::windows::core::Result<()> where @@ -27866,17 +27866,17 @@ impl ID2D1SvgElement { { (::windows::core::Interface::vtable(self).GetAttributeValue)(::windows::core::Interface::as_raw(self), name.into(), &::IID, result__ as *mut _ as *mut _).ok() } - pub unsafe fn GetAttributeValue2<'a, P0>(&self, name: P0, r#type: D2D1_SVG_ATTRIBUTE_POD_TYPE, value: *mut ::core::ffi::c_void, valuesizeinbytes: u32) -> ::windows::core::Result<()> + pub unsafe fn GetAttributeValue2<'a, P0>(&self, name: P0, r#type: D2D1_SVG_ATTRIBUTE_POD_TYPE, value: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetAttributeValue2)(::windows::core::Interface::as_raw(self), name.into(), r#type, ::core::mem::transmute(value), valuesizeinbytes).ok() + (::windows::core::Interface::vtable(self).GetAttributeValue2)(::windows::core::Interface::as_raw(self), name.into(), r#type, ::core::mem::transmute(value.as_ptr()), value.len() as _).ok() } pub unsafe fn GetAttributeValue3<'a, P0>(&self, name: P0, r#type: D2D1_SVG_ATTRIBUTE_STRING_TYPE, value: &mut [u16]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetAttributeValue3)(::windows::core::Interface::as_raw(self), name.into(), r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(value)), value.len() as _).ok() + (::windows::core::Interface::vtable(self).GetAttributeValue3)(::windows::core::Interface::as_raw(self), name.into(), r#type, ::core::mem::transmute(value.as_ptr()), value.len() as _).ok() } pub unsafe fn GetAttributeValueLength<'a, P0>(&self, name: P0, r#type: D2D1_SVG_ATTRIBUTE_STRING_TYPE) -> ::windows::core::Result where @@ -28002,17 +28002,17 @@ impl ID2D1SvgGlyphStyle { pub unsafe fn GetFill(&self, brush: ::core::option::Option<&mut ::core::option::Option>) { (::windows::core::Interface::vtable(self).GetFill)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(brush)) } - pub unsafe fn SetStroke<'a, P0>(&self, brush: P0, strokewidth: f32, dashes: &[f32], dashoffset: f32) -> ::windows::core::Result<()> + pub unsafe fn SetStroke<'a, P0>(&self, brush: P0, strokewidth: f32, dashes: ::core::option::Option<&[f32]>, dashoffset: f32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID2D1Brush>>, { - (::windows::core::Interface::vtable(self).SetStroke)(::windows::core::Interface::as_raw(self), brush.into().abi(), strokewidth, ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, dashoffset).ok() + (::windows::core::Interface::vtable(self).SetStroke)(::windows::core::Interface::as_raw(self), brush.into().abi(), strokewidth, ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), dashoffset).ok() } pub unsafe fn GetStrokeDashesCount(&self) -> u32 { (::windows::core::Interface::vtable(self).GetStrokeDashesCount)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn GetStroke(&self, brush: ::core::option::Option<&mut ::core::option::Option>, strokewidth: ::core::option::Option<&mut f32>, dashes: &mut [f32], dashoffset: ::core::option::Option<&mut f32>) { - (::windows::core::Interface::vtable(self).GetStroke)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(brush), ::core::mem::transmute(strokewidth), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dashes)), dashes.len() as _, ::core::mem::transmute(dashoffset)) + pub unsafe fn GetStroke(&self, brush: ::core::option::Option<&mut ::core::option::Option>, strokewidth: ::core::option::Option<&mut f32>, dashes: ::core::option::Option<&mut [f32]>, dashoffset: ::core::option::Option<&mut f32>) { + (::windows::core::Interface::vtable(self).GetStroke)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(brush), ::core::mem::transmute(strokewidth), ::core::mem::transmute(dashes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dashes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(dashoffset)) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -28112,7 +28112,7 @@ impl ID2D1SvgPaint { (::windows::core::Interface::vtable(self).SetId)(::windows::core::Interface::as_raw(self), id.into()).ok() } pub unsafe fn GetId(&self, id: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetId)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(id)), id.len() as _).ok() + (::windows::core::Interface::vtable(self).GetId)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id.as_ptr()), id.len() as _).ok() } pub unsafe fn GetIdLength(&self) -> u32 { (::windows::core::Interface::vtable(self).GetIdLength)(::windows::core::Interface::as_raw(self)) @@ -28219,10 +28219,10 @@ impl ID2D1SvgPathData { (::windows::core::Interface::vtable(self).RemoveSegmentDataAtEnd)(::windows::core::Interface::as_raw(self), datacount).ok() } pub unsafe fn UpdateSegmentData(&self, data: &[f32], startindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UpdateSegmentData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _, startindex).ok() + (::windows::core::Interface::vtable(self).UpdateSegmentData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(data.as_ptr()), data.len() as _, startindex).ok() } pub unsafe fn GetSegmentData(&self, data: &mut [f32], startindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSegmentData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(data)), data.len() as _, startindex).ok() + (::windows::core::Interface::vtable(self).GetSegmentData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(data.as_ptr()), data.len() as _, startindex).ok() } pub unsafe fn GetSegmentDataCount(&self) -> u32 { (::windows::core::Interface::vtable(self).GetSegmentDataCount)(::windows::core::Interface::as_raw(self)) @@ -28231,10 +28231,10 @@ impl ID2D1SvgPathData { (::windows::core::Interface::vtable(self).RemoveCommandsAtEnd)(::windows::core::Interface::as_raw(self), commandscount).ok() } pub unsafe fn UpdateCommands(&self, commands: &[D2D1_SVG_PATH_COMMAND], startindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UpdateCommands)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(commands)), commands.len() as _, startindex).ok() + (::windows::core::Interface::vtable(self).UpdateCommands)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commands.as_ptr()), commands.len() as _, startindex).ok() } pub unsafe fn GetCommands(&self, commands: &mut [D2D1_SVG_PATH_COMMAND], startindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCommands)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(commands)), commands.len() as _, startindex).ok() + (::windows::core::Interface::vtable(self).GetCommands)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commands.as_ptr()), commands.len() as _, startindex).ok() } pub unsafe fn GetCommandsCount(&self) -> u32 { (::windows::core::Interface::vtable(self).GetCommandsCount)(::windows::core::Interface::as_raw(self)) @@ -28348,12 +28348,12 @@ impl ID2D1SvgPointCollection { #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn UpdatePoints(&self, points: &[Common::D2D_POINT_2F], startindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UpdatePoints)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(points)), points.len() as _, startindex).ok() + (::windows::core::Interface::vtable(self).UpdatePoints)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(points.as_ptr()), points.len() as _, startindex).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn GetPoints(&self, points: &mut [Common::D2D_POINT_2F], startindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPoints)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(points)), points.len() as _, startindex).ok() + (::windows::core::Interface::vtable(self).GetPoints)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(points.as_ptr()), points.len() as _, startindex).ok() } pub unsafe fn GetPointsCount(&self) -> u32 { (::windows::core::Interface::vtable(self).GetPointsCount)(::windows::core::Interface::as_raw(self)) @@ -28457,16 +28457,16 @@ impl ID2D1SvgStrokeDashArray { (::windows::core::Interface::vtable(self).RemoveDashesAtEnd)(::windows::core::Interface::as_raw(self), dashescount).ok() } pub unsafe fn UpdateDashes(&self, dashes: &[D2D1_SVG_LENGTH], startindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UpdateDashes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, startindex).ok() + (::windows::core::Interface::vtable(self).UpdateDashes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(dashes.as_ptr()), dashes.len() as _, startindex).ok() } pub unsafe fn UpdateDashes2(&self, dashes: &[f32], startindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UpdateDashes2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(dashes)), dashes.len() as _, startindex).ok() + (::windows::core::Interface::vtable(self).UpdateDashes2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(dashes.as_ptr()), dashes.len() as _, startindex).ok() } pub unsafe fn GetDashes(&self, dashes: &mut [D2D1_SVG_LENGTH], startindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDashes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dashes)), dashes.len() as _, startindex).ok() + (::windows::core::Interface::vtable(self).GetDashes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(dashes.as_ptr()), dashes.len() as _, startindex).ok() } pub unsafe fn GetDashes2(&self, dashes: &mut [f32], startindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDashes2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dashes)), dashes.len() as _, startindex).ok() + (::windows::core::Interface::vtable(self).GetDashes2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(dashes.as_ptr()), dashes.len() as _, startindex).ok() } pub unsafe fn GetDashesCount(&self) -> u32 { (::windows::core::Interface::vtable(self).GetDashesCount)(::windows::core::Interface::as_raw(self)) @@ -28555,7 +28555,7 @@ impl ID2D1TessellationSink { #[doc = "*Required features: `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(feature = "Win32_Graphics_Direct2D_Common")] pub unsafe fn AddTriangles(&self, triangles: &[D2D1_TRIANGLE]) { - (::windows::core::Interface::vtable(self).AddTriangles)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(triangles)), triangles.len() as _) + (::windows::core::Interface::vtable(self).AddTriangles)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(triangles.as_ptr()), triangles.len() as _) } pub unsafe fn Close(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Close)(::windows::core::Interface::as_raw(self)).ok() @@ -28616,11 +28616,11 @@ impl ID2D1Transform { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn MapOutputRectToInputRects(&self, outputrect: &super::super::Foundation::RECT, inputrects: &mut [super::super::Foundation::RECT]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).MapOutputRectToInputRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(outputrect), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(inputrects)), inputrects.len() as _).ok() + (::windows::core::Interface::vtable(self).MapOutputRectToInputRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(outputrect), ::core::mem::transmute(inputrects.as_ptr()), inputrects.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn MapInputRectsToOutputRect(&self, inputrects: &super::super::Foundation::RECT, inputopaquesubrects: &super::super::Foundation::RECT, inputrectcount: u32, outputrect: &mut super::super::Foundation::RECT, outputopaquesubrect: &mut super::super::Foundation::RECT) -> ::windows::core::Result<()> { + pub unsafe fn MapInputRectsToOutputRect(&self, inputrects: *const super::super::Foundation::RECT, inputopaquesubrects: *const super::super::Foundation::RECT, inputrectcount: u32, outputrect: &mut super::super::Foundation::RECT, outputopaquesubrect: &mut super::super::Foundation::RECT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).MapInputRectsToOutputRect)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(inputrects), ::core::mem::transmute(inputopaquesubrects), ::core::mem::transmute(inputrectcount), ::core::mem::transmute(outputrect), ::core::mem::transmute(outputopaquesubrect)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D/Dxc/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D/Dxc/mod.rs index 2b4e64986f..05c5b43d15 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D/Dxc/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D/Dxc/mod.rs @@ -676,7 +676,7 @@ pub struct IDxcBlobUtf8_Vtbl { #[repr(transparent)] pub struct IDxcCompiler(::windows::core::IUnknown); impl IDxcCompiler { - pub unsafe fn Compile<'a, P0, P1, P2, P3, P4>(&self, psource: P0, psourcename: P1, pentrypoint: P2, ptargetprofile: P3, parguments: &[::windows::core::PWSTR], pdefines: &[DxcDefine], pincludehandler: P4) -> ::windows::core::Result + pub unsafe fn Compile<'a, P0, P1, P2, P3, P4>(&self, psource: P0, psourcename: P1, pentrypoint: P2, ptargetprofile: P3, parguments: ::core::option::Option<&[::windows::core::PWSTR]>, pdefines: &[DxcDefine], pincludehandler: P4) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDxcBlob>>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -685,16 +685,16 @@ impl IDxcCompiler { P4: ::std::convert::Into<::windows::core::InParam<'a, IDxcIncludeHandler>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).Compile)(::windows::core::Interface::as_raw(self), psource.into().abi(), psourcename.into(), pentrypoint.into(), ptargetprofile.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(parguments)), parguments.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdefines)), pdefines.len() as _, pincludehandler.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).Compile)(::windows::core::Interface::as_raw(self), psource.into().abi(), psourcename.into(), pentrypoint.into(), ptargetprofile.into(), ::core::mem::transmute(parguments.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), parguments.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdefines.as_ptr()), pdefines.len() as _, pincludehandler.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn Preprocess<'a, P0, P1, P2>(&self, psource: P0, psourcename: P1, parguments: &[::windows::core::PWSTR], pdefines: &[DxcDefine], pincludehandler: P2) -> ::windows::core::Result + pub unsafe fn Preprocess<'a, P0, P1, P2>(&self, psource: P0, psourcename: P1, parguments: ::core::option::Option<&[::windows::core::PWSTR]>, pdefines: &[DxcDefine], pincludehandler: P2) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDxcBlob>>, P1: ::std::convert::Into<::windows::core::PCWSTR>, P2: ::std::convert::Into<::windows::core::InParam<'a, IDxcIncludeHandler>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).Preprocess)(::windows::core::Interface::as_raw(self), psource.into().abi(), psourcename.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(parguments)), parguments.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdefines)), pdefines.len() as _, pincludehandler.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).Preprocess)(::windows::core::Interface::as_raw(self), psource.into().abi(), psourcename.into(), ::core::mem::transmute(parguments.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), parguments.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdefines.as_ptr()), pdefines.len() as _, pincludehandler.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Disassemble<'a, P0>(&self, psource: P0) -> ::windows::core::Result where @@ -751,7 +751,7 @@ pub struct IDxcCompiler_Vtbl { #[repr(transparent)] pub struct IDxcCompiler2(::windows::core::IUnknown); impl IDxcCompiler2 { - pub unsafe fn Compile<'a, P0, P1, P2, P3, P4>(&self, psource: P0, psourcename: P1, pentrypoint: P2, ptargetprofile: P3, parguments: &[::windows::core::PWSTR], pdefines: &[DxcDefine], pincludehandler: P4) -> ::windows::core::Result + pub unsafe fn Compile<'a, P0, P1, P2, P3, P4>(&self, psource: P0, psourcename: P1, pentrypoint: P2, ptargetprofile: P3, parguments: ::core::option::Option<&[::windows::core::PWSTR]>, pdefines: &[DxcDefine], pincludehandler: P4) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDxcBlob>>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -760,16 +760,16 @@ impl IDxcCompiler2 { P4: ::std::convert::Into<::windows::core::InParam<'a, IDxcIncludeHandler>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.Compile)(::windows::core::Interface::as_raw(self), psource.into().abi(), psourcename.into(), pentrypoint.into(), ptargetprofile.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(parguments)), parguments.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdefines)), pdefines.len() as _, pincludehandler.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.Compile)(::windows::core::Interface::as_raw(self), psource.into().abi(), psourcename.into(), pentrypoint.into(), ptargetprofile.into(), ::core::mem::transmute(parguments.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), parguments.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdefines.as_ptr()), pdefines.len() as _, pincludehandler.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn Preprocess<'a, P0, P1, P2>(&self, psource: P0, psourcename: P1, parguments: &[::windows::core::PWSTR], pdefines: &[DxcDefine], pincludehandler: P2) -> ::windows::core::Result + pub unsafe fn Preprocess<'a, P0, P1, P2>(&self, psource: P0, psourcename: P1, parguments: ::core::option::Option<&[::windows::core::PWSTR]>, pdefines: &[DxcDefine], pincludehandler: P2) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDxcBlob>>, P1: ::std::convert::Into<::windows::core::PCWSTR>, P2: ::std::convert::Into<::windows::core::InParam<'a, IDxcIncludeHandler>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.Preprocess)(::windows::core::Interface::as_raw(self), psource.into().abi(), psourcename.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(parguments)), parguments.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdefines)), pdefines.len() as _, pincludehandler.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.Preprocess)(::windows::core::Interface::as_raw(self), psource.into().abi(), psourcename.into(), ::core::mem::transmute(parguments.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), parguments.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdefines.as_ptr()), pdefines.len() as _, pincludehandler.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Disassemble<'a, P0>(&self, psource: P0) -> ::windows::core::Result where @@ -778,7 +778,7 @@ impl IDxcCompiler2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.Disassemble)(::windows::core::Interface::as_raw(self), psource.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CompileWithDebug<'a, P0, P1, P2, P3, P4>(&self, psource: P0, psourcename: P1, pentrypoint: P2, ptargetprofile: P3, parguments: &[::windows::core::PWSTR], pdefines: &[DxcDefine], pincludehandler: P4, ppresult: &mut ::core::option::Option, ppdebugblobname: ::core::option::Option<&mut ::windows::core::PWSTR>, ppdebugblob: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> + pub unsafe fn CompileWithDebug<'a, P0, P1, P2, P3, P4>(&self, psource: P0, psourcename: P1, pentrypoint: P2, ptargetprofile: P3, parguments: ::core::option::Option<&[::windows::core::PWSTR]>, pdefines: &[DxcDefine], pincludehandler: P4, ppresult: &mut ::core::option::Option, ppdebugblobname: ::core::option::Option<&mut ::windows::core::PWSTR>, ppdebugblob: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDxcBlob>>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -786,7 +786,22 @@ impl IDxcCompiler2 { P3: ::std::convert::Into<::windows::core::PCWSTR>, P4: ::std::convert::Into<::windows::core::InParam<'a, IDxcIncludeHandler>>, { - (::windows::core::Interface::vtable(self).CompileWithDebug)(::windows::core::Interface::as_raw(self), psource.into().abi(), psourcename.into(), pentrypoint.into(), ptargetprofile.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(parguments)), parguments.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdefines)), pdefines.len() as _, pincludehandler.into().abi(), ::core::mem::transmute(ppresult), ::core::mem::transmute(ppdebugblobname), ::core::mem::transmute(ppdebugblob)).ok() + (::windows::core::Interface::vtable(self).CompileWithDebug)( + ::windows::core::Interface::as_raw(self), + psource.into().abi(), + psourcename.into(), + pentrypoint.into(), + ptargetprofile.into(), + ::core::mem::transmute(parguments.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + parguments.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pdefines.as_ptr()), + pdefines.len() as _, + pincludehandler.into().abi(), + ::core::mem::transmute(ppresult), + ::core::mem::transmute(ppdebugblobname), + ::core::mem::transmute(ppdebugblob), + ) + .ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -849,11 +864,11 @@ pub struct IDxcCompiler2_Vtbl { #[repr(transparent)] pub struct IDxcCompiler3(::windows::core::IUnknown); impl IDxcCompiler3 { - pub unsafe fn Compile<'a, P0>(&self, psource: &DxcBuffer, parguments: &[::windows::core::PWSTR], pincludehandler: P0, riid: &::windows::core::GUID, ppresult: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn Compile<'a, P0>(&self, psource: &DxcBuffer, parguments: ::core::option::Option<&[::windows::core::PWSTR]>, pincludehandler: P0, riid: &::windows::core::GUID, ppresult: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDxcIncludeHandler>>, { - (::windows::core::Interface::vtable(self).Compile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psource), ::core::mem::transmute(::windows::core::as_ptr_or_null(parguments)), parguments.len() as _, pincludehandler.into().abi(), ::core::mem::transmute(riid), ::core::mem::transmute(ppresult)).ok() + (::windows::core::Interface::vtable(self).Compile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psource), ::core::mem::transmute(parguments.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), parguments.as_deref().map_or(0, |slice| slice.len() as _), pincludehandler.into().abi(), ::core::mem::transmute(riid), ::core::mem::transmute(ppresult)).ok() } pub unsafe fn Disassemble(&self, pobject: &DxcBuffer, riid: &::windows::core::GUID, ppresult: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Disassemble)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pobject), ::core::mem::transmute(riid), ::core::mem::transmute(ppresult)).ok() @@ -911,14 +926,14 @@ impl IDxcCompilerArgs { pub unsafe fn GetCount(&self) -> u32 { (::windows::core::Interface::vtable(self).GetCount)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn AddArguments(&self, parguments: &[::windows::core::PWSTR]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddArguments)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(parguments)), parguments.len() as _).ok() + pub unsafe fn AddArguments(&self, parguments: ::core::option::Option<&[::windows::core::PWSTR]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).AddArguments)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(parguments.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), parguments.as_deref().map_or(0, |slice| slice.len() as _)).ok() } - pub unsafe fn AddArgumentsUTF8(&self, parguments: &[::windows::core::PSTR]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddArgumentsUTF8)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(parguments)), parguments.len() as _).ok() + pub unsafe fn AddArgumentsUTF8(&self, parguments: ::core::option::Option<&[::windows::core::PSTR]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).AddArgumentsUTF8)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(parguments.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), parguments.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn AddDefines(&self, pdefines: &[DxcDefine]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddDefines)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdefines)), pdefines.len() as _).ok() + (::windows::core::Interface::vtable(self).AddDefines)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdefines.as_ptr()), pdefines.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1245,22 +1260,22 @@ impl IDxcLibrary { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).CreateBlobFromFile)(::windows::core::Interface::as_raw(self), pfilename.into(), ::core::mem::transmute(codepage), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateBlobWithEncodingFromPinned(&self, ptext: *const ::core::ffi::c_void, size: u32, codepage: DXC_CP) -> ::windows::core::Result { + pub unsafe fn CreateBlobWithEncodingFromPinned(&self, ptext: &[u8], codepage: DXC_CP) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateBlobWithEncodingFromPinned)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptext), size, codepage, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateBlobWithEncodingFromPinned)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptext.as_ptr()), ptext.len() as _, codepage, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateBlobWithEncodingOnHeapCopy(&self, ptext: *const ::core::ffi::c_void, size: u32, codepage: DXC_CP) -> ::windows::core::Result { + pub unsafe fn CreateBlobWithEncodingOnHeapCopy(&self, ptext: &[u8], codepage: DXC_CP) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateBlobWithEncodingOnHeapCopy)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptext), size, codepage, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateBlobWithEncodingOnHeapCopy)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptext.as_ptr()), ptext.len() as _, codepage, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn CreateBlobWithEncodingOnMalloc<'a, P0>(&self, ptext: *const ::core::ffi::c_void, pimalloc: P0, size: u32, codepage: DXC_CP) -> ::windows::core::Result + pub unsafe fn CreateBlobWithEncodingOnMalloc<'a, P0>(&self, ptext: &[u8], pimalloc: P0, codepage: DXC_CP) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::super::System::Com::IMalloc>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateBlobWithEncodingOnMalloc)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptext), pimalloc.into().abi(), size, codepage, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateBlobWithEncodingOnMalloc)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptext.as_ptr()), pimalloc.into().abi(), ptext.len() as _, codepage, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateIncludeHandler(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1360,13 +1375,13 @@ impl IDxcLinker { { (::windows::core::Interface::vtable(self).RegisterLibrary)(::windows::core::Interface::as_raw(self), plibname.into(), plib.into().abi()).ok() } - pub unsafe fn Link<'a, P0, P1>(&self, pentryname: P0, ptargetprofile: P1, plibnames: &[::windows::core::PWSTR], parguments: &[::windows::core::PWSTR]) -> ::windows::core::Result + pub unsafe fn Link<'a, P0, P1>(&self, pentryname: P0, ptargetprofile: P1, plibnames: &[::windows::core::PWSTR], parguments: ::core::option::Option<&[::windows::core::PWSTR]>) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).Link)(::windows::core::Interface::as_raw(self), pentryname.into(), ptargetprofile.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(plibnames)), plibnames.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(parguments)), parguments.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).Link)(::windows::core::Interface::as_raw(self), pentryname.into(), ptargetprofile.into(), ::core::mem::transmute(plibnames.as_ptr()), plibnames.len() as _, ::core::mem::transmute(parguments.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), parguments.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1487,7 +1502,7 @@ impl IDxcOptimizer { where P0: ::std::convert::Into<::windows::core::InParam<'a, IDxcBlob>>, { - (::windows::core::Interface::vtable(self).RunOptimizer)(::windows::core::Interface::as_raw(self), pblob.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppoptions)), ppoptions.len() as _, ::core::mem::transmute(poutputmodule), ::core::mem::transmute(ppoutputtext)).ok() + (::windows::core::Interface::vtable(self).RunOptimizer)(::windows::core::Interface::as_raw(self), pblob.into().abi(), ::core::mem::transmute(ppoptions.as_ptr()), ppoptions.len() as _, ::core::mem::transmute(poutputmodule), ::core::mem::transmute(ppoutputtext)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1932,22 +1947,22 @@ impl IDxcUtils { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).CreateBlobFromBlob)(::windows::core::Interface::as_raw(self), pblob.into().abi(), offset, length, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateBlobFromPinned(&self, pdata: *const ::core::ffi::c_void, size: u32, codepage: DXC_CP) -> ::windows::core::Result { + pub unsafe fn CreateBlobFromPinned(&self, pdata: &[u8], codepage: DXC_CP) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateBlobFromPinned)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), size, codepage, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateBlobFromPinned)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, codepage, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn MoveToBlob<'a, P0>(&self, pdata: *const ::core::ffi::c_void, pimalloc: P0, size: u32, codepage: DXC_CP) -> ::windows::core::Result + pub unsafe fn MoveToBlob<'a, P0>(&self, pdata: &[u8], pimalloc: P0, codepage: DXC_CP) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::super::System::Com::IMalloc>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).MoveToBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), pimalloc.into().abi(), size, codepage, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).MoveToBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pimalloc.into().abi(), pdata.len() as _, codepage, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateBlob(&self, pdata: *const ::core::ffi::c_void, size: u32, codepage: DXC_CP) -> ::windows::core::Result { + pub unsafe fn CreateBlob(&self, pdata: &[u8], codepage: DXC_CP) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), size, codepage, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, codepage, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn LoadFile<'a, P0>(&self, pfilename: P0, pcodepage: ::core::option::Option<&DXC_CP>) -> ::windows::core::Result where @@ -1989,14 +2004,14 @@ impl IDxcUtils { pub unsafe fn CreateReflection(&self, pdata: &DxcBuffer, iid: &::windows::core::GUID, ppvreflection: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CreateReflection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), ::core::mem::transmute(iid), ::core::mem::transmute(ppvreflection)).ok() } - pub unsafe fn BuildArguments<'a, P0, P1, P2>(&self, psourcename: P0, pentrypoint: P1, ptargetprofile: P2, parguments: &[::windows::core::PWSTR], pdefines: &[DxcDefine]) -> ::windows::core::Result + pub unsafe fn BuildArguments<'a, P0, P1, P2>(&self, psourcename: P0, pentrypoint: P1, ptargetprofile: P2, parguments: ::core::option::Option<&[::windows::core::PWSTR]>, pdefines: &[DxcDefine]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, P2: ::std::convert::Into<::windows::core::PCWSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).BuildArguments)(::windows::core::Interface::as_raw(self), psourcename.into(), pentrypoint.into(), ptargetprofile.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(parguments)), parguments.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdefines)), pdefines.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).BuildArguments)(::windows::core::Interface::as_raw(self), psourcename.into(), pentrypoint.into(), ptargetprofile.into(), ::core::mem::transmute(parguments.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), parguments.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdefines.as_ptr()), pdefines.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetPDBContents<'a, P0>(&self, ppdbblob: P0, pphash: &mut ::core::option::Option, ppcontainer: &mut ::core::option::Option) -> ::windows::core::Result<()> where diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D/Fxc/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D/Fxc/mod.rs index 47e3fcbdf3..32764d48c1 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D/Fxc/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D/Fxc/mod.rs @@ -105,7 +105,7 @@ pub const D3DCOMPILE_SKIP_VALIDATION: u32 = 2u32; pub const D3DCOMPILE_WARNINGS_ARE_ERRORS: u32 = 262144u32; #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] -pub unsafe fn D3DCompile<'a, P0, P1, P2, P3>(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, psourcename: P0, pdefines: ::core::option::Option<&super::D3D_SHADER_MACRO>, pinclude: P1, pentrypoint: P2, ptarget: P3, flags1: u32, flags2: u32, ppcode: &mut ::core::option::Option, pperrormsgs: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> +pub unsafe fn D3DCompile<'a, P0, P1, P2, P3>(psrcdata: &[u8], psourcename: P0, pdefines: ::core::option::Option<&super::D3D_SHADER_MACRO>, pinclude: P1, pentrypoint: P2, ptarget: P3, flags1: u32, flags2: u32, ppcode: &mut ::core::option::Option, pperrormsgs: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::InParam<'a, super::ID3DInclude>>, @@ -116,11 +116,11 @@ where extern "system" { fn D3DCompile(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, psourcename: ::windows::core::PCSTR, pdefines: *const super::D3D_SHADER_MACRO, pinclude: *mut ::core::ffi::c_void, pentrypoint: ::windows::core::PCSTR, ptarget: ::windows::core::PCSTR, flags1: u32, flags2: u32, ppcode: *mut *mut ::core::ffi::c_void, pperrormsgs: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - D3DCompile(::core::mem::transmute(psrcdata), srcdatasize, psourcename.into(), ::core::mem::transmute(pdefines), pinclude.into().abi(), pentrypoint.into(), ptarget.into(), flags1, flags2, ::core::mem::transmute(ppcode), ::core::mem::transmute(pperrormsgs)).ok() + D3DCompile(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, psourcename.into(), ::core::mem::transmute(pdefines), pinclude.into().abi(), pentrypoint.into(), ptarget.into(), flags1, flags2, ::core::mem::transmute(ppcode), ::core::mem::transmute(pperrormsgs)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] -pub unsafe fn D3DCompile2<'a, P0, P1, P2, P3>(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, psourcename: P0, pdefines: ::core::option::Option<&super::D3D_SHADER_MACRO>, pinclude: P1, pentrypoint: P2, ptarget: P3, flags1: u32, flags2: u32, secondarydataflags: u32, psecondarydata: *const ::core::ffi::c_void, secondarydatasize: usize, ppcode: &mut ::core::option::Option, pperrormsgs: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> +pub unsafe fn D3DCompile2<'a, P0, P1, P2, P3>(psrcdata: &[u8], psourcename: P0, pdefines: ::core::option::Option<&super::D3D_SHADER_MACRO>, pinclude: P1, pentrypoint: P2, ptarget: P3, flags1: u32, flags2: u32, secondarydataflags: u32, psecondarydata: ::core::option::Option<&[u8]>, ppcode: &mut ::core::option::Option, pperrormsgs: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::InParam<'a, super::ID3DInclude>>, @@ -131,7 +131,7 @@ where extern "system" { fn D3DCompile2(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, psourcename: ::windows::core::PCSTR, pdefines: *const super::D3D_SHADER_MACRO, pinclude: *mut ::core::ffi::c_void, pentrypoint: ::windows::core::PCSTR, ptarget: ::windows::core::PCSTR, flags1: u32, flags2: u32, secondarydataflags: u32, psecondarydata: *const ::core::ffi::c_void, secondarydatasize: usize, ppcode: *mut *mut ::core::ffi::c_void, pperrormsgs: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - D3DCompile2(::core::mem::transmute(psrcdata), srcdatasize, psourcename.into(), ::core::mem::transmute(pdefines), pinclude.into().abi(), pentrypoint.into(), ptarget.into(), flags1, flags2, secondarydataflags, ::core::mem::transmute(psecondarydata), secondarydatasize, ::core::mem::transmute(ppcode), ::core::mem::transmute(pperrormsgs)).ok() + D3DCompile2(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, psourcename.into(), ::core::mem::transmute(pdefines), pinclude.into().abi(), pentrypoint.into(), ptarget.into(), flags1, flags2, secondarydataflags, ::core::mem::transmute(psecondarydata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psecondarydata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppcode), ::core::mem::transmute(pperrormsgs)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] @@ -156,7 +156,7 @@ pub unsafe fn D3DCompressShaders(pshaderdata: &[D3D_SHADER_DATA], uflags: u32) - fn D3DCompressShaders(unumshaders: u32, pshaderdata: *const D3D_SHADER_DATA, uflags: u32, ppcompresseddata: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3DCompressShaders(pshaderdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderdata)), uflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3DCompressShaders(pshaderdata.len() as _, ::core::mem::transmute(pshaderdata.as_ptr()), uflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] @@ -192,16 +192,16 @@ pub unsafe fn D3DCreateLinker() -> ::windows::core::Result, uflags: u32, ppshaders: &mut ::core::option::Option, ptotalshaders: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { +pub unsafe fn D3DDecompressShaders(psrcdata: &[u8], unumshaders: u32, ustartindex: u32, pindices: *const u32, uflags: u32, ppshaders: *mut ::core::option::Option, ptotalshaders: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3DDecompressShaders(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, unumshaders: u32, ustartindex: u32, pindices: *const u32, uflags: u32, ppshaders: *mut *mut ::core::ffi::c_void, ptotalshaders: *mut u32) -> ::windows::core::HRESULT; } - D3DDecompressShaders(::core::mem::transmute(psrcdata), srcdatasize, ::core::mem::transmute(unumshaders), ustartindex, ::core::mem::transmute(pindices), uflags, ::core::mem::transmute(ppshaders), ::core::mem::transmute(ptotalshaders)).ok() + D3DDecompressShaders(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, ::core::mem::transmute(unumshaders), ustartindex, ::core::mem::transmute(pindices), uflags, ::core::mem::transmute(ppshaders), ::core::mem::transmute(ptotalshaders)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] -pub unsafe fn D3DDisassemble<'a, P0>(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, flags: u32, szcomments: P0) -> ::windows::core::Result +pub unsafe fn D3DDisassemble<'a, P0>(psrcdata: &[u8], flags: u32, szcomments: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -210,7 +210,7 @@ where fn D3DDisassemble(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, flags: u32, szcomments: ::windows::core::PCSTR, ppdisassembly: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3DDisassemble(::core::mem::transmute(psrcdata), srcdatasize, flags, szcomments.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3DDisassemble(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, flags, szcomments.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`, `\"Win32_Graphics_Direct3D10\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D10")] @@ -228,7 +228,7 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] -pub unsafe fn D3DDisassembleRegion<'a, P0>(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, flags: u32, szcomments: P0, startbyteoffset: usize, numinsts: usize, pfinishbyteoffset: ::core::option::Option<&mut usize>, ppdisassembly: &mut ::core::option::Option) -> ::windows::core::Result<()> +pub unsafe fn D3DDisassembleRegion<'a, P0>(psrcdata: &[u8], flags: u32, szcomments: P0, startbyteoffset: usize, numinsts: usize, pfinishbyteoffset: ::core::option::Option<&mut usize>, ppdisassembly: &mut ::core::option::Option) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -236,66 +236,66 @@ where extern "system" { fn D3DDisassembleRegion(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, flags: u32, szcomments: ::windows::core::PCSTR, startbyteoffset: usize, numinsts: usize, pfinishbyteoffset: *mut usize, ppdisassembly: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - D3DDisassembleRegion(::core::mem::transmute(psrcdata), srcdatasize, flags, szcomments.into(), startbyteoffset, numinsts, ::core::mem::transmute(pfinishbyteoffset), ::core::mem::transmute(ppdisassembly)).ok() + D3DDisassembleRegion(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, flags, szcomments.into(), startbyteoffset, numinsts, ::core::mem::transmute(pfinishbyteoffset), ::core::mem::transmute(ppdisassembly)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] -pub unsafe fn D3DGetBlobPart(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, part: D3D_BLOB_PART, flags: u32) -> ::windows::core::Result { +pub unsafe fn D3DGetBlobPart(psrcdata: &[u8], part: D3D_BLOB_PART, flags: u32) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3DGetBlobPart(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, part: D3D_BLOB_PART, flags: u32, pppart: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3DGetBlobPart(::core::mem::transmute(psrcdata), srcdatasize, part, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3DGetBlobPart(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, part, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] -pub unsafe fn D3DGetDebugInfo(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize) -> ::windows::core::Result { +pub unsafe fn D3DGetDebugInfo(psrcdata: &[u8]) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3DGetDebugInfo(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, ppdebuginfo: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3DGetDebugInfo(::core::mem::transmute(psrcdata), srcdatasize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3DGetDebugInfo(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] -pub unsafe fn D3DGetInputAndOutputSignatureBlob(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize) -> ::windows::core::Result { +pub unsafe fn D3DGetInputAndOutputSignatureBlob(psrcdata: &[u8]) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3DGetInputAndOutputSignatureBlob(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, ppsignatureblob: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3DGetInputAndOutputSignatureBlob(::core::mem::transmute(psrcdata), srcdatasize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3DGetInputAndOutputSignatureBlob(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] -pub unsafe fn D3DGetInputSignatureBlob(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize) -> ::windows::core::Result { +pub unsafe fn D3DGetInputSignatureBlob(psrcdata: &[u8]) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3DGetInputSignatureBlob(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, ppsignatureblob: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3DGetInputSignatureBlob(::core::mem::transmute(psrcdata), srcdatasize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3DGetInputSignatureBlob(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] -pub unsafe fn D3DGetOutputSignatureBlob(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize) -> ::windows::core::Result { +pub unsafe fn D3DGetOutputSignatureBlob(psrcdata: &[u8]) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3DGetOutputSignatureBlob(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, ppsignatureblob: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3DGetOutputSignatureBlob(::core::mem::transmute(psrcdata), srcdatasize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3DGetOutputSignatureBlob(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] -pub unsafe fn D3DGetTraceInstructionOffsets(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, flags: u32, startinstindex: usize, poffsets: &mut [usize], ptotalinsts: ::core::option::Option<&mut usize>) -> ::windows::core::Result<()> { +pub unsafe fn D3DGetTraceInstructionOffsets(psrcdata: &[u8], flags: u32, startinstindex: usize, poffsets: ::core::option::Option<&mut [usize]>, ptotalinsts: ::core::option::Option<&mut usize>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3DGetTraceInstructionOffsets(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, flags: u32, startinstindex: usize, numinsts: usize, poffsets: *mut usize, ptotalinsts: *mut usize) -> ::windows::core::HRESULT; } - D3DGetTraceInstructionOffsets(::core::mem::transmute(psrcdata), srcdatasize, flags, startinstindex, poffsets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(poffsets)), ::core::mem::transmute(ptotalinsts)).ok() + D3DGetTraceInstructionOffsets(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, flags, startinstindex, poffsets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(poffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(ptotalinsts)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`, `\"Win32_Graphics_Direct3D11\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D11")] @@ -310,7 +310,7 @@ pub unsafe fn D3DLoadModule(psrcdata: *const ::core::ffi::c_void, cbsrcdatasize: } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] -pub unsafe fn D3DPreprocess<'a, P0, P1>(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, psourcename: P0, pdefines: ::core::option::Option<&super::D3D_SHADER_MACRO>, pinclude: P1, ppcodetext: &mut ::core::option::Option, pperrormsgs: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> +pub unsafe fn D3DPreprocess<'a, P0, P1>(psrcdata: &[u8], psourcename: P0, pdefines: ::core::option::Option<&super::D3D_SHADER_MACRO>, pinclude: P1, ppcodetext: &mut ::core::option::Option, pperrormsgs: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::InParam<'a, super::ID3DInclude>>, @@ -319,7 +319,7 @@ where extern "system" { fn D3DPreprocess(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, psourcename: ::windows::core::PCSTR, pdefines: *const super::D3D_SHADER_MACRO, pinclude: *mut ::core::ffi::c_void, ppcodetext: *mut *mut ::core::ffi::c_void, pperrormsgs: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - D3DPreprocess(::core::mem::transmute(psrcdata), srcdatasize, psourcename.into(), ::core::mem::transmute(pdefines), pinclude.into().abi(), ::core::mem::transmute(ppcodetext), ::core::mem::transmute(pperrormsgs)).ok() + D3DPreprocess(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, psourcename.into(), ::core::mem::transmute(pdefines), pinclude.into().abi(), ::core::mem::transmute(ppcodetext), ::core::mem::transmute(pperrormsgs)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] @@ -336,41 +336,41 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] -pub unsafe fn D3DReflect(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, pinterface: &::windows::core::GUID, ppreflector: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { +pub unsafe fn D3DReflect(psrcdata: &[u8], pinterface: &::windows::core::GUID, ppreflector: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3DReflect(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, pinterface: *const ::windows::core::GUID, ppreflector: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - D3DReflect(::core::mem::transmute(psrcdata), srcdatasize, ::core::mem::transmute(pinterface), ::core::mem::transmute(ppreflector)).ok() + D3DReflect(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, ::core::mem::transmute(pinterface), ::core::mem::transmute(ppreflector)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] -pub unsafe fn D3DReflectLibrary(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, riid: &::windows::core::GUID, ppreflector: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { +pub unsafe fn D3DReflectLibrary(psrcdata: &[u8], riid: &::windows::core::GUID, ppreflector: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3DReflectLibrary(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, riid: *const ::windows::core::GUID, ppreflector: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - D3DReflectLibrary(::core::mem::transmute(psrcdata), srcdatasize, ::core::mem::transmute(riid), ::core::mem::transmute(ppreflector)).ok() + D3DReflectLibrary(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, ::core::mem::transmute(riid), ::core::mem::transmute(ppreflector)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] -pub unsafe fn D3DSetBlobPart(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, part: D3D_BLOB_PART, flags: u32, ppart: *const ::core::ffi::c_void, partsize: usize) -> ::windows::core::Result { +pub unsafe fn D3DSetBlobPart(psrcdata: &[u8], part: D3D_BLOB_PART, flags: u32, ppart: &[u8]) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3DSetBlobPart(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, part: D3D_BLOB_PART, flags: u32, ppart: *const ::core::ffi::c_void, partsize: usize, ppnewshader: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3DSetBlobPart(::core::mem::transmute(psrcdata), srcdatasize, part, flags, ::core::mem::transmute(ppart), partsize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3DSetBlobPart(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, part, flags, ::core::mem::transmute(ppart.as_ptr()), ppart.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`*"] #[inline] -pub unsafe fn D3DStripShader(pshaderbytecode: *const ::core::ffi::c_void, bytecodelength: usize, ustripflags: u32) -> ::windows::core::Result { +pub unsafe fn D3DStripShader(pshaderbytecode: &[u8], ustripflags: u32) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3DStripShader(pshaderbytecode: *const ::core::ffi::c_void, bytecodelength: usize, ustripflags: u32, ppstrippedblob: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3DStripShader(::core::mem::transmute(pshaderbytecode), bytecodelength, ustripflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3DStripShader(::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, ustripflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D_Fxc\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] 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 4d4de26b00..10cef2517a 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D10/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D10/mod.rs @@ -1,7 +1,7 @@ #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`, `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] #[inline] -pub unsafe fn D3D10CompileEffectFromMemory<'a, P0, P1>(pdata: *const ::core::ffi::c_void, datalength: usize, psrcfilename: P0, pdefines: ::core::option::Option<&super::Direct3D::D3D_SHADER_MACRO>, pinclude: P1, hlslflags: u32, fxflags: u32, ppcompiledeffect: &mut ::core::option::Option, pperrors: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> +pub unsafe fn D3D10CompileEffectFromMemory<'a, P0, P1>(pdata: &[u8], psrcfilename: P0, pdefines: ::core::option::Option<&super::Direct3D::D3D_SHADER_MACRO>, pinclude: P1, hlslflags: u32, fxflags: u32, ppcompiledeffect: &mut ::core::option::Option, pperrors: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::InParam<'a, super::Direct3D::ID3DInclude>>, @@ -10,24 +10,23 @@ where extern "system" { fn D3D10CompileEffectFromMemory(pdata: *const ::core::ffi::c_void, datalength: usize, psrcfilename: ::windows::core::PCSTR, pdefines: *const super::Direct3D::D3D_SHADER_MACRO, pinclude: *mut ::core::ffi::c_void, hlslflags: u32, fxflags: u32, ppcompiledeffect: *mut *mut ::core::ffi::c_void, pperrors: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - D3D10CompileEffectFromMemory(::core::mem::transmute(pdata), datalength, psrcfilename.into(), ::core::mem::transmute(pdefines), pinclude.into().abi(), hlslflags, fxflags, ::core::mem::transmute(ppcompiledeffect), ::core::mem::transmute(pperrors)).ok() + D3D10CompileEffectFromMemory(::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, psrcfilename.into(), ::core::mem::transmute(pdefines), pinclude.into().abi(), hlslflags, fxflags, ::core::mem::transmute(ppcompiledeffect), ::core::mem::transmute(pperrors)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`, `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] #[inline] -pub unsafe fn D3D10CompileShader<'a, P0, P1, P2, P3, P4>(psrcdata: P0, srcdatasize: usize, pfilename: P1, pdefines: ::core::option::Option<&super::Direct3D::D3D_SHADER_MACRO>, pinclude: P2, pfunctionname: P3, pprofile: P4, flags: u32, ppshader: &mut ::core::option::Option, pperrormsgs: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> +pub unsafe fn D3D10CompileShader<'a, P0, P1, P2, P3>(psrcdata: &[u8], pfilename: P0, pdefines: ::core::option::Option<&super::Direct3D::D3D_SHADER_MACRO>, pinclude: P1, pfunctionname: P2, pprofile: P3, flags: u32, ppshader: &mut ::core::option::Option, pperrormsgs: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, - P1: ::std::convert::Into<::windows::core::PCSTR>, - P2: ::std::convert::Into<::windows::core::InParam<'a, super::Direct3D::ID3DInclude>>, + P1: ::std::convert::Into<::windows::core::InParam<'a, super::Direct3D::ID3DInclude>>, + P2: ::std::convert::Into<::windows::core::PCSTR>, P3: ::std::convert::Into<::windows::core::PCSTR>, - P4: ::std::convert::Into<::windows::core::PCSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3D10CompileShader(psrcdata: ::windows::core::PCSTR, srcdatasize: usize, pfilename: ::windows::core::PCSTR, pdefines: *const super::Direct3D::D3D_SHADER_MACRO, pinclude: *mut ::core::ffi::c_void, pfunctionname: ::windows::core::PCSTR, pprofile: ::windows::core::PCSTR, flags: u32, ppshader: *mut *mut ::core::ffi::c_void, pperrormsgs: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - D3D10CompileShader(psrcdata.into(), srcdatasize, pfilename.into(), ::core::mem::transmute(pdefines), pinclude.into().abi(), pfunctionname.into(), pprofile.into(), flags, ::core::mem::transmute(ppshader), ::core::mem::transmute(pperrormsgs)).ok() + D3D10CompileShader(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, pfilename.into(), ::core::mem::transmute(pdefines), pinclude.into().abi(), pfunctionname.into(), pprofile.into(), flags, ::core::mem::transmute(ppshader), ::core::mem::transmute(pperrormsgs)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`, `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] @@ -100,7 +99,7 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[inline] -pub unsafe fn D3D10CreateEffectFromMemory<'a, P0, P1>(pdata: *const ::core::ffi::c_void, datalength: usize, fxflags: u32, pdevice: P0, peffectpool: P1) -> ::windows::core::Result +pub unsafe fn D3D10CreateEffectFromMemory<'a, P0, P1>(pdata: &[u8], fxflags: u32, pdevice: P0, peffectpool: P1) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D10Device>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D10EffectPool>>, @@ -110,11 +109,11 @@ where fn D3D10CreateEffectFromMemory(pdata: *const ::core::ffi::c_void, datalength: usize, fxflags: u32, pdevice: *mut ::core::ffi::c_void, peffectpool: *mut ::core::ffi::c_void, ppeffect: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3D10CreateEffectFromMemory(::core::mem::transmute(pdata), datalength, fxflags, pdevice.into().abi(), peffectpool.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3D10CreateEffectFromMemory(::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, fxflags, pdevice.into().abi(), peffectpool.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[inline] -pub unsafe fn D3D10CreateEffectPoolFromMemory<'a, P0>(pdata: *const ::core::ffi::c_void, datalength: usize, fxflags: u32, pdevice: P0) -> ::windows::core::Result +pub unsafe fn D3D10CreateEffectPoolFromMemory<'a, P0>(pdata: &[u8], fxflags: u32, pdevice: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D10Device>>, { @@ -123,7 +122,7 @@ where fn D3D10CreateEffectPoolFromMemory(pdata: *const ::core::ffi::c_void, datalength: usize, fxflags: u32, pdevice: *mut ::core::ffi::c_void, ppeffectpool: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3D10CreateEffectPoolFromMemory(::core::mem::transmute(pdata), datalength, fxflags, pdevice.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3D10CreateEffectPoolFromMemory(::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, fxflags, pdevice.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[inline] @@ -156,7 +155,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D"))] #[inline] -pub unsafe fn D3D10DisassembleShader<'a, P0, P1>(pshader: *const ::core::ffi::c_void, bytecodelength: usize, enablecolorcode: P0, pcomments: P1) -> ::windows::core::Result +pub unsafe fn D3D10DisassembleShader<'a, P0, P1>(pshader: &[u8], enablecolorcode: P0, pcomments: P1) -> ::windows::core::Result where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -166,7 +165,7 @@ where fn D3D10DisassembleShader(pshader: *const ::core::ffi::c_void, bytecodelength: usize, enablecolorcode: super::super::Foundation::BOOL, pcomments: ::windows::core::PCSTR, ppdisassembly: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3D10DisassembleShader(::core::mem::transmute(pshader), bytecodelength, enablecolorcode.into(), pcomments.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3D10DisassembleShader(::core::mem::transmute(pshader.as_ptr()), pshader.len() as _, enablecolorcode.into(), pcomments.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[inline] @@ -183,35 +182,35 @@ where #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`, `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] #[inline] -pub unsafe fn D3D10GetInputAndOutputSignatureBlob(pshaderbytecode: *const ::core::ffi::c_void, bytecodelength: usize) -> ::windows::core::Result { +pub unsafe fn D3D10GetInputAndOutputSignatureBlob(pshaderbytecode: &[u8]) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3D10GetInputAndOutputSignatureBlob(pshaderbytecode: *const ::core::ffi::c_void, bytecodelength: usize, ppsignatureblob: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3D10GetInputAndOutputSignatureBlob(::core::mem::transmute(pshaderbytecode), bytecodelength, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3D10GetInputAndOutputSignatureBlob(::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`, `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] #[inline] -pub unsafe fn D3D10GetInputSignatureBlob(pshaderbytecode: *const ::core::ffi::c_void, bytecodelength: usize) -> ::windows::core::Result { +pub unsafe fn D3D10GetInputSignatureBlob(pshaderbytecode: &[u8]) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3D10GetInputSignatureBlob(pshaderbytecode: *const ::core::ffi::c_void, bytecodelength: usize, ppsignatureblob: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3D10GetInputSignatureBlob(::core::mem::transmute(pshaderbytecode), bytecodelength, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3D10GetInputSignatureBlob(::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`, `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] #[inline] -pub unsafe fn D3D10GetOutputSignatureBlob(pshaderbytecode: *const ::core::ffi::c_void, bytecodelength: usize) -> ::windows::core::Result { +pub unsafe fn D3D10GetOutputSignatureBlob(pshaderbytecode: &[u8]) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3D10GetOutputSignatureBlob(pshaderbytecode: *const ::core::ffi::c_void, bytecodelength: usize, ppsignatureblob: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3D10GetOutputSignatureBlob(::core::mem::transmute(pshaderbytecode), bytecodelength, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3D10GetOutputSignatureBlob(::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[inline] @@ -228,13 +227,13 @@ where #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`, `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] #[inline] -pub unsafe fn D3D10GetShaderDebugInfo(pshaderbytecode: *const ::core::ffi::c_void, bytecodelength: usize) -> ::windows::core::Result { +pub unsafe fn D3D10GetShaderDebugInfo(pshaderbytecode: &[u8]) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3D10GetShaderDebugInfo(pshaderbytecode: *const ::core::ffi::c_void, bytecodelength: usize, ppdebuginfo: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3D10GetShaderDebugInfo(::core::mem::transmute(pshaderbytecode), bytecodelength, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3D10GetShaderDebugInfo(::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[inline] @@ -251,27 +250,26 @@ where #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`, `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] #[inline] -pub unsafe fn D3D10PreprocessShader<'a, P0, P1, P2>(psrcdata: P0, srcdatasize: usize, pfilename: P1, pdefines: ::core::option::Option<&super::Direct3D::D3D_SHADER_MACRO>, pinclude: P2, ppshadertext: &mut ::core::option::Option, pperrormsgs: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> +pub unsafe fn D3D10PreprocessShader<'a, P0, P1>(psrcdata: &[u8], pfilename: P0, pdefines: ::core::option::Option<&super::Direct3D::D3D_SHADER_MACRO>, pinclude: P1, ppshadertext: &mut ::core::option::Option, pperrormsgs: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, - P1: ::std::convert::Into<::windows::core::PCSTR>, - P2: ::std::convert::Into<::windows::core::InParam<'a, super::Direct3D::ID3DInclude>>, + P1: ::std::convert::Into<::windows::core::InParam<'a, super::Direct3D::ID3DInclude>>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3D10PreprocessShader(psrcdata: ::windows::core::PCSTR, srcdatasize: usize, pfilename: ::windows::core::PCSTR, pdefines: *const super::Direct3D::D3D_SHADER_MACRO, pinclude: *mut ::core::ffi::c_void, ppshadertext: *mut *mut ::core::ffi::c_void, pperrormsgs: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - D3D10PreprocessShader(psrcdata.into(), srcdatasize, pfilename.into(), ::core::mem::transmute(pdefines), pinclude.into().abi(), ::core::mem::transmute(ppshadertext), ::core::mem::transmute(pperrormsgs)).ok() + D3D10PreprocessShader(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, pfilename.into(), ::core::mem::transmute(pdefines), pinclude.into().abi(), ::core::mem::transmute(ppshadertext), ::core::mem::transmute(pperrormsgs)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[inline] -pub unsafe fn D3D10ReflectShader(pshaderbytecode: *const ::core::ffi::c_void, bytecodelength: usize) -> ::windows::core::Result { +pub unsafe fn D3D10ReflectShader(pshaderbytecode: &[u8]) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3D10ReflectShader(pshaderbytecode: *const ::core::ffi::c_void, bytecodelength: usize, ppreflector: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3D10ReflectShader(::core::mem::transmute(pshaderbytecode), bytecodelength, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3D10ReflectShader(::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[inline] @@ -6711,8 +6709,8 @@ impl ID3D10Asynchronous { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -6726,8 +6724,8 @@ impl ID3D10Asynchronous { pub unsafe fn End(&self) { (::windows::core::Interface::vtable(self).End)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn GetData(&self, pdata: *mut ::core::ffi::c_void, datasize: u32, getdataflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), datasize, getdataflags).ok() + pub unsafe fn GetData(&self, pdata: ::core::option::Option<&mut [u8]>, getdataflags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), getdataflags).ok() } pub unsafe fn GetDataSize(&self) -> u32 { (::windows::core::Interface::vtable(self).GetDataSize)(::windows::core::Interface::as_raw(self)) @@ -6804,8 +6802,8 @@ impl ID3D10BlendState { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -6890,8 +6888,8 @@ impl ID3D10BlendState1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -6996,8 +6994,8 @@ impl ID3D10Buffer { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -7109,8 +7107,8 @@ impl ID3D10Counter { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -7124,8 +7122,8 @@ impl ID3D10Counter { pub unsafe fn End(&self) { (::windows::core::Interface::vtable(self).base__.End)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn GetData(&self, pdata: *mut ::core::ffi::c_void, datasize: u32, getdataflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), datasize, getdataflags).ok() + pub unsafe fn GetData(&self, pdata: ::core::option::Option<&mut [u8]>, getdataflags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), getdataflags).ok() } pub unsafe fn GetDataSize(&self) -> u32 { (::windows::core::Interface::vtable(self).base__.GetDataSize)(::windows::core::Interface::as_raw(self)) @@ -7306,8 +7304,8 @@ impl ID3D10DepthStencilState { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -7392,8 +7390,8 @@ impl ID3D10DepthStencilView { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -7490,11 +7488,11 @@ pub struct ID3D10DepthStencilView_Vtbl { #[repr(transparent)] pub struct ID3D10Device(::windows::core::IUnknown); impl ID3D10Device { - pub unsafe fn VSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).VSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn VSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).VSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).PSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn PSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).PSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn PSSetShader<'a, P0>(&self, ppixelshader: P0) where @@ -7502,8 +7500,8 @@ impl ID3D10Device { { (::windows::core::Interface::vtable(self).PSSetShader)(::windows::core::Interface::as_raw(self), ppixelshader.into().abi()) } - pub unsafe fn PSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).PSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn PSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).PSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn VSSetShader<'a, P0>(&self, pvertexshader: P0) where @@ -7517,8 +7515,8 @@ impl ID3D10Device { pub unsafe fn Draw(&self, vertexcount: u32, startvertexlocation: u32) { (::windows::core::Interface::vtable(self).Draw)(::windows::core::Interface::as_raw(self), vertexcount, startvertexlocation) } - pub unsafe fn PSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).PSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn PSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).PSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn IASetInputLayout<'a, P0>(&self, pinputlayout: P0) where @@ -7526,7 +7524,7 @@ impl ID3D10Device { { (::windows::core::Interface::vtable(self).IASetInputLayout)(::windows::core::Interface::as_raw(self), pinputlayout.into().abi()) } - pub unsafe fn IASetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: ::core::option::Option<&::core::option::Option>, pstrides: ::core::option::Option<&u32>, poffsets: ::core::option::Option<&u32>) { + pub unsafe fn IASetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: *const ::core::option::Option, pstrides: *const u32, poffsets: *const u32) { (::windows::core::Interface::vtable(self).IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppvertexbuffers), ::core::mem::transmute(pstrides), ::core::mem::transmute(poffsets)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -7543,8 +7541,8 @@ impl ID3D10Device { pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) { (::windows::core::Interface::vtable(self).DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation) } - pub unsafe fn GSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).GSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn GSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).GSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn GSSetShader<'a, P0>(&self, pshader: P0) where @@ -7557,11 +7555,11 @@ impl ID3D10Device { pub unsafe fn IASetPrimitiveTopology(&self, topology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) { (::windows::core::Interface::vtable(self).IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), topology) } - pub unsafe fn VSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).VSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn VSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).VSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).VSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn VSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).VSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7572,17 +7570,17 @@ impl ID3D10Device { { (::windows::core::Interface::vtable(self).SetPredication)(::windows::core::Interface::as_raw(self), ppredicate.into().abi(), predicatevalue.into()) } - pub unsafe fn GSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).GSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn GSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).GSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).GSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn GSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).GSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn OMSetRenderTargets<'a, P0>(&self, pprendertargetviews: &[::core::option::Option], pdepthstencilview: P0) + pub unsafe fn OMSetRenderTargets<'a, P0>(&self, pprendertargetviews: ::core::option::Option<&[::core::option::Option]>, pdepthstencilview: P0) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D10DepthStencilView>>, { - (::windows::core::Interface::vtable(self).OMSetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pprendertargetviews)), pdepthstencilview.into().abi()) + (::windows::core::Interface::vtable(self).OMSetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdepthstencilview.into().abi()) } pub unsafe fn OMSetBlendState<'a, P0>(&self, pblendstate: P0, blendfactor: &f32, samplemask: u32) where @@ -7596,7 +7594,7 @@ impl ID3D10Device { { (::windows::core::Interface::vtable(self).OMSetDepthStencilState)(::windows::core::Interface::as_raw(self), pdepthstencilstate.into().abi(), stencilref) } - pub unsafe fn SOSetTargets(&self, numbuffers: u32, ppsotargets: ::core::option::Option<&::core::option::Option>, poffsets: ::core::option::Option<&u32>) { + pub unsafe fn SOSetTargets(&self, numbuffers: u32, ppsotargets: *const ::core::option::Option, poffsets: *const u32) { (::windows::core::Interface::vtable(self).SOSetTargets)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppsotargets), ::core::mem::transmute(poffsets)) } pub unsafe fn DrawAuto(&self) { @@ -7608,13 +7606,13 @@ impl ID3D10Device { { (::windows::core::Interface::vtable(self).RSSetState)(::windows::core::Interface::as_raw(self), prasterizerstate.into().abi()) } - pub unsafe fn RSSetViewports(&self, pviewports: &[D3D10_VIEWPORT]) { - (::windows::core::Interface::vtable(self).RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviewports))) + pub unsafe fn RSSetViewports(&self, pviewports: ::core::option::Option<&[D3D10_VIEWPORT]>) { + (::windows::core::Interface::vtable(self).RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviewports.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + pub unsafe fn RSSetScissorRects(&self, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) { + (::windows::core::Interface::vtable(self).RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn CopySubresourceRegion<'a, P0, P1>(&self, pdstresource: P0, dstsubresource: u32, dstx: u32, dsty: u32, dstz: u32, psrcresource: P1, srcsubresource: u32, psrcbox: ::core::option::Option<&D3D10_BOX>) where @@ -7663,28 +7661,28 @@ impl ID3D10Device { { (::windows::core::Interface::vtable(self).ResolveSubresource)(::windows::core::Interface::as_raw(self), pdstresource.into().abi(), dstsubresource, psrcresource.into().abi(), srcsubresource, format) } - pub unsafe fn VSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).VSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn VSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).VSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).PSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn PSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).PSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn PSGetShader(&self, pppixelshader: &mut ::core::option::Option) { (::windows::core::Interface::vtable(self).PSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppixelshader)) } - pub unsafe fn PSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).PSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn PSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).PSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn VSGetShader(&self, ppvertexshader: &mut ::core::option::Option) { (::windows::core::Interface::vtable(self).VSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppvertexshader)) } - pub unsafe fn PSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).PSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn PSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).PSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn IAGetInputLayout(&self, ppinputlayout: &mut ::core::option::Option) { (::windows::core::Interface::vtable(self).IAGetInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppinputlayout)) } - pub unsafe fn IAGetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: ::core::option::Option<&mut ::core::option::Option>, pstrides: ::core::option::Option<&mut u32>, poffsets: ::core::option::Option<&mut u32>) { + pub unsafe fn IAGetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: *mut ::core::option::Option, pstrides: *mut u32, poffsets: *mut u32) { (::windows::core::Interface::vtable(self).IAGetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppvertexbuffers), ::core::mem::transmute(pstrides), ::core::mem::transmute(poffsets)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -7692,8 +7690,8 @@ impl ID3D10Device { pub unsafe fn IAGetIndexBuffer(&self, pindexbuffer: ::core::option::Option<&mut ::core::option::Option>, format: ::core::option::Option<&mut super::Dxgi::Common::DXGI_FORMAT>, offset: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).IAGetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pindexbuffer), ::core::mem::transmute(format), ::core::mem::transmute(offset)) } - pub unsafe fn GSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).GSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn GSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).GSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn GSGetShader(&self, ppgeometryshader: &mut ::core::option::Option) { (::windows::core::Interface::vtable(self).GSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppgeometryshader)) @@ -7703,25 +7701,25 @@ impl ID3D10Device { pub unsafe fn IAGetPrimitiveTopology(&self, ptopology: &mut super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) { (::windows::core::Interface::vtable(self).IAGetPrimitiveTopology)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptopology)) } - pub unsafe fn VSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).VSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn VSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).VSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).VSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn VSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).VSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetPredication(&self, pppredicate: ::core::option::Option<&mut ::core::option::Option>, ppredicatevalue: ::core::option::Option<&mut super::super::Foundation::BOOL>) { (::windows::core::Interface::vtable(self).GetPredication)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppredicate), ::core::mem::transmute(ppredicatevalue)) } - pub unsafe fn GSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).GSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn GSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).GSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).GSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn GSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).GSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn OMGetRenderTargets(&self, pprendertargetviews: &mut [::core::option::Option], ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>) { - (::windows::core::Interface::vtable(self).OMGetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprendertargetviews)), ::core::mem::transmute(ppdepthstencilview)) + pub unsafe fn OMGetRenderTargets(&self, pprendertargetviews: ::core::option::Option<&mut [::core::option::Option]>, ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>) { + (::windows::core::Interface::vtable(self).OMGetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(ppdepthstencilview)) } pub unsafe fn OMGetBlendState(&self, ppblendstate: ::core::option::Option<&mut ::core::option::Option>, blendfactor: ::core::option::Option<&mut f32>, psamplemask: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).OMGetBlendState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppblendstate), ::core::mem::transmute(blendfactor), ::core::mem::transmute(psamplemask)) @@ -7729,18 +7727,18 @@ impl ID3D10Device { pub unsafe fn OMGetDepthStencilState(&self, ppdepthstencilstate: ::core::option::Option<&mut ::core::option::Option>, pstencilref: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).OMGetDepthStencilState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppdepthstencilstate), ::core::mem::transmute(pstencilref)) } - pub unsafe fn SOGetTargets(&self, numbuffers: u32, ppsotargets: ::core::option::Option<&mut ::core::option::Option>, poffsets: ::core::option::Option<&mut u32>) { + pub unsafe fn SOGetTargets(&self, numbuffers: u32, ppsotargets: *mut ::core::option::Option, poffsets: *mut u32) { (::windows::core::Interface::vtable(self).SOGetTargets)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppsotargets), ::core::mem::transmute(poffsets)) } pub unsafe fn RSGetState(&self, pprasterizerstate: &mut ::core::option::Option) { (::windows::core::Interface::vtable(self).RSGetState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprasterizerstate)) } - pub unsafe fn RSGetViewports(&self, numviewports: &mut u32, pviewports: ::core::option::Option<&mut D3D10_VIEWPORT>) { + pub unsafe fn RSGetViewports(&self, numviewports: &mut u32, pviewports: *mut D3D10_VIEWPORT) { (::windows::core::Interface::vtable(self).RSGetViewports)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numviewports), ::core::mem::transmute(pviewports)) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RSGetScissorRects(&self, numrects: &mut u32, prects: ::core::option::Option<&mut super::super::Foundation::RECT>) { + pub unsafe fn RSGetScissorRects(&self, numrects: &mut u32, prects: *mut super::super::Foundation::RECT) { (::windows::core::Interface::vtable(self).RSGetScissorRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numrects), ::core::mem::transmute(prects)) } pub unsafe fn GetDeviceRemovedReason(&self) -> ::windows::core::Result<()> { @@ -7755,8 +7753,8 @@ impl ID3D10Device { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -7823,23 +7821,23 @@ impl ID3D10Device { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn CreateInputLayout(&self, pinputelementdescs: &[D3D10_INPUT_ELEMENT_DESC], pshaderbytecodewithinputsignature: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputelementdescs)), pinputelementdescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecodewithinputsignature)), pshaderbytecodewithinputsignature.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinputelementdescs.as_ptr()), pinputelementdescs.len() as _, ::core::mem::transmute(pshaderbytecodewithinputsignature.as_ptr()), pshaderbytecodewithinputsignature.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateVertexShader(&self, pshaderbytecode: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateGeometryShader(&self, pshaderbytecode: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateGeometryShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateGeometryShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateGeometryShaderWithStreamOutput(&self, pshaderbytecode: &[u8], psodeclaration: &[D3D10_SO_DECLARATION_ENTRY], outputstreamstride: u32) -> ::windows::core::Result { + pub unsafe fn CreateGeometryShaderWithStreamOutput(&self, pshaderbytecode: &[u8], psodeclaration: ::core::option::Option<&[D3D10_SO_DECLARATION_ENTRY]>, outputstreamstride: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateGeometryShaderWithStreamOutput)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psodeclaration)), psodeclaration.len() as _, outputstreamstride, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateGeometryShaderWithStreamOutput)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, ::core::mem::transmute(psodeclaration.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psodeclaration.as_deref().map_or(0, |slice| slice.len() as _), outputstreamstride, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreatePixelShader(&self, pshaderbytecode: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreatePixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreatePixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8118,11 +8116,11 @@ pub struct ID3D10Device_Vtbl { #[repr(transparent)] pub struct ID3D10Device1(::windows::core::IUnknown); impl ID3D10Device1 { - pub unsafe fn VSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.VSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn VSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.VSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.PSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn PSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.PSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn PSSetShader<'a, P0>(&self, ppixelshader: P0) where @@ -8130,8 +8128,8 @@ impl ID3D10Device1 { { (::windows::core::Interface::vtable(self).base__.PSSetShader)(::windows::core::Interface::as_raw(self), ppixelshader.into().abi()) } - pub unsafe fn PSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.PSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn PSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.PSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn VSSetShader<'a, P0>(&self, pvertexshader: P0) where @@ -8145,8 +8143,8 @@ impl ID3D10Device1 { pub unsafe fn Draw(&self, vertexcount: u32, startvertexlocation: u32) { (::windows::core::Interface::vtable(self).base__.Draw)(::windows::core::Interface::as_raw(self), vertexcount, startvertexlocation) } - pub unsafe fn PSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.PSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn PSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.PSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn IASetInputLayout<'a, P0>(&self, pinputlayout: P0) where @@ -8154,7 +8152,7 @@ impl ID3D10Device1 { { (::windows::core::Interface::vtable(self).base__.IASetInputLayout)(::windows::core::Interface::as_raw(self), pinputlayout.into().abi()) } - pub unsafe fn IASetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: ::core::option::Option<&::core::option::Option>, pstrides: ::core::option::Option<&u32>, poffsets: ::core::option::Option<&u32>) { + pub unsafe fn IASetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: *const ::core::option::Option, pstrides: *const u32, poffsets: *const u32) { (::windows::core::Interface::vtable(self).base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppvertexbuffers), ::core::mem::transmute(pstrides), ::core::mem::transmute(poffsets)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -8171,8 +8169,8 @@ impl ID3D10Device1 { pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) { (::windows::core::Interface::vtable(self).base__.DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation) } - pub unsafe fn GSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.GSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn GSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.GSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn GSSetShader<'a, P0>(&self, pshader: P0) where @@ -8185,11 +8183,11 @@ impl ID3D10Device1 { pub unsafe fn IASetPrimitiveTopology(&self, topology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) { (::windows::core::Interface::vtable(self).base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), topology) } - pub unsafe fn VSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.VSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn VSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.VSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.VSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn VSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.VSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8200,17 +8198,17 @@ impl ID3D10Device1 { { (::windows::core::Interface::vtable(self).base__.SetPredication)(::windows::core::Interface::as_raw(self), ppredicate.into().abi(), predicatevalue.into()) } - pub unsafe fn GSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.GSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn GSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.GSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.GSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn GSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.GSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn OMSetRenderTargets<'a, P0>(&self, pprendertargetviews: &[::core::option::Option], pdepthstencilview: P0) + pub unsafe fn OMSetRenderTargets<'a, P0>(&self, pprendertargetviews: ::core::option::Option<&[::core::option::Option]>, pdepthstencilview: P0) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D10DepthStencilView>>, { - (::windows::core::Interface::vtable(self).base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pprendertargetviews)), pdepthstencilview.into().abi()) + (::windows::core::Interface::vtable(self).base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdepthstencilview.into().abi()) } pub unsafe fn OMSetBlendState<'a, P0>(&self, pblendstate: P0, blendfactor: &f32, samplemask: u32) where @@ -8224,7 +8222,7 @@ impl ID3D10Device1 { { (::windows::core::Interface::vtable(self).base__.OMSetDepthStencilState)(::windows::core::Interface::as_raw(self), pdepthstencilstate.into().abi(), stencilref) } - pub unsafe fn SOSetTargets(&self, numbuffers: u32, ppsotargets: ::core::option::Option<&::core::option::Option>, poffsets: ::core::option::Option<&u32>) { + pub unsafe fn SOSetTargets(&self, numbuffers: u32, ppsotargets: *const ::core::option::Option, poffsets: *const u32) { (::windows::core::Interface::vtable(self).base__.SOSetTargets)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppsotargets), ::core::mem::transmute(poffsets)) } pub unsafe fn DrawAuto(&self) { @@ -8236,13 +8234,13 @@ impl ID3D10Device1 { { (::windows::core::Interface::vtable(self).base__.RSSetState)(::windows::core::Interface::as_raw(self), prasterizerstate.into().abi()) } - pub unsafe fn RSSetViewports(&self, pviewports: &[D3D10_VIEWPORT]) { - (::windows::core::Interface::vtable(self).base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviewports))) + pub unsafe fn RSSetViewports(&self, pviewports: ::core::option::Option<&[D3D10_VIEWPORT]>) { + (::windows::core::Interface::vtable(self).base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviewports.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + pub unsafe fn RSSetScissorRects(&self, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) { + (::windows::core::Interface::vtable(self).base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn CopySubresourceRegion<'a, P0, P1>(&self, pdstresource: P0, dstsubresource: u32, dstx: u32, dsty: u32, dstz: u32, psrcresource: P1, srcsubresource: u32, psrcbox: ::core::option::Option<&D3D10_BOX>) where @@ -8291,28 +8289,28 @@ impl ID3D10Device1 { { (::windows::core::Interface::vtable(self).base__.ResolveSubresource)(::windows::core::Interface::as_raw(self), pdstresource.into().abi(), dstsubresource, psrcresource.into().abi(), srcsubresource, format) } - pub unsafe fn VSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.VSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn VSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.VSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.PSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn PSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.PSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn PSGetShader(&self, pppixelshader: &mut ::core::option::Option) { (::windows::core::Interface::vtable(self).base__.PSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppixelshader)) } - pub unsafe fn PSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.PSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn PSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.PSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn VSGetShader(&self, ppvertexshader: &mut ::core::option::Option) { (::windows::core::Interface::vtable(self).base__.VSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppvertexshader)) } - pub unsafe fn PSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.PSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn PSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.PSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn IAGetInputLayout(&self, ppinputlayout: &mut ::core::option::Option) { (::windows::core::Interface::vtable(self).base__.IAGetInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppinputlayout)) } - pub unsafe fn IAGetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: ::core::option::Option<&mut ::core::option::Option>, pstrides: ::core::option::Option<&mut u32>, poffsets: ::core::option::Option<&mut u32>) { + pub unsafe fn IAGetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: *mut ::core::option::Option, pstrides: *mut u32, poffsets: *mut u32) { (::windows::core::Interface::vtable(self).base__.IAGetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppvertexbuffers), ::core::mem::transmute(pstrides), ::core::mem::transmute(poffsets)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -8320,8 +8318,8 @@ impl ID3D10Device1 { pub unsafe fn IAGetIndexBuffer(&self, pindexbuffer: ::core::option::Option<&mut ::core::option::Option>, format: ::core::option::Option<&mut super::Dxgi::Common::DXGI_FORMAT>, offset: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.IAGetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pindexbuffer), ::core::mem::transmute(format), ::core::mem::transmute(offset)) } - pub unsafe fn GSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.GSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn GSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.GSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn GSGetShader(&self, ppgeometryshader: &mut ::core::option::Option) { (::windows::core::Interface::vtable(self).base__.GSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppgeometryshader)) @@ -8331,25 +8329,25 @@ impl ID3D10Device1 { pub unsafe fn IAGetPrimitiveTopology(&self, ptopology: &mut super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) { (::windows::core::Interface::vtable(self).base__.IAGetPrimitiveTopology)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptopology)) } - pub unsafe fn VSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.VSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn VSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.VSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.VSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn VSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.VSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetPredication(&self, pppredicate: ::core::option::Option<&mut ::core::option::Option>, ppredicatevalue: ::core::option::Option<&mut super::super::Foundation::BOOL>) { (::windows::core::Interface::vtable(self).base__.GetPredication)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppredicate), ::core::mem::transmute(ppredicatevalue)) } - pub unsafe fn GSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.GSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn GSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.GSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.GSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn GSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.GSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn OMGetRenderTargets(&self, pprendertargetviews: &mut [::core::option::Option], ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>) { - (::windows::core::Interface::vtable(self).base__.OMGetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprendertargetviews)), ::core::mem::transmute(ppdepthstencilview)) + pub unsafe fn OMGetRenderTargets(&self, pprendertargetviews: ::core::option::Option<&mut [::core::option::Option]>, ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>) { + (::windows::core::Interface::vtable(self).base__.OMGetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(ppdepthstencilview)) } pub unsafe fn OMGetBlendState(&self, ppblendstate: ::core::option::Option<&mut ::core::option::Option>, blendfactor: ::core::option::Option<&mut f32>, psamplemask: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.OMGetBlendState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppblendstate), ::core::mem::transmute(blendfactor), ::core::mem::transmute(psamplemask)) @@ -8357,18 +8355,18 @@ impl ID3D10Device1 { pub unsafe fn OMGetDepthStencilState(&self, ppdepthstencilstate: ::core::option::Option<&mut ::core::option::Option>, pstencilref: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.OMGetDepthStencilState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppdepthstencilstate), ::core::mem::transmute(pstencilref)) } - pub unsafe fn SOGetTargets(&self, numbuffers: u32, ppsotargets: ::core::option::Option<&mut ::core::option::Option>, poffsets: ::core::option::Option<&mut u32>) { + pub unsafe fn SOGetTargets(&self, numbuffers: u32, ppsotargets: *mut ::core::option::Option, poffsets: *mut u32) { (::windows::core::Interface::vtable(self).base__.SOGetTargets)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppsotargets), ::core::mem::transmute(poffsets)) } pub unsafe fn RSGetState(&self, pprasterizerstate: &mut ::core::option::Option) { (::windows::core::Interface::vtable(self).base__.RSGetState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprasterizerstate)) } - pub unsafe fn RSGetViewports(&self, numviewports: &mut u32, pviewports: ::core::option::Option<&mut D3D10_VIEWPORT>) { + pub unsafe fn RSGetViewports(&self, numviewports: &mut u32, pviewports: *mut D3D10_VIEWPORT) { (::windows::core::Interface::vtable(self).base__.RSGetViewports)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numviewports), ::core::mem::transmute(pviewports)) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RSGetScissorRects(&self, numrects: &mut u32, prects: ::core::option::Option<&mut super::super::Foundation::RECT>) { + pub unsafe fn RSGetScissorRects(&self, numrects: &mut u32, prects: *mut super::super::Foundation::RECT) { (::windows::core::Interface::vtable(self).base__.RSGetScissorRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numrects), ::core::mem::transmute(prects)) } pub unsafe fn GetDeviceRemovedReason(&self) -> ::windows::core::Result<()> { @@ -8383,8 +8381,8 @@ impl ID3D10Device1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -8451,23 +8449,23 @@ impl ID3D10Device1 { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn CreateInputLayout(&self, pinputelementdescs: &[D3D10_INPUT_ELEMENT_DESC], pshaderbytecodewithinputsignature: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputelementdescs)), pinputelementdescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecodewithinputsignature)), pshaderbytecodewithinputsignature.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinputelementdescs.as_ptr()), pinputelementdescs.len() as _, ::core::mem::transmute(pshaderbytecodewithinputsignature.as_ptr()), pshaderbytecodewithinputsignature.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateVertexShader(&self, pshaderbytecode: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateGeometryShader(&self, pshaderbytecode: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateGeometryShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateGeometryShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateGeometryShaderWithStreamOutput(&self, pshaderbytecode: &[u8], psodeclaration: &[D3D10_SO_DECLARATION_ENTRY], outputstreamstride: u32) -> ::windows::core::Result { + pub unsafe fn CreateGeometryShaderWithStreamOutput(&self, pshaderbytecode: &[u8], psodeclaration: ::core::option::Option<&[D3D10_SO_DECLARATION_ENTRY]>, outputstreamstride: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateGeometryShaderWithStreamOutput)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psodeclaration)), psodeclaration.len() as _, outputstreamstride, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateGeometryShaderWithStreamOutput)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, ::core::mem::transmute(psodeclaration.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psodeclaration.as_deref().map_or(0, |slice| slice.len() as _), outputstreamstride, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreatePixelShader(&self, pshaderbytecode: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreatePixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreatePixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8633,8 +8631,8 @@ impl ID3D10DeviceChild { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -8907,11 +8905,11 @@ impl ID3D10EffectBlendVariable { pub unsafe fn AsSampler(&self) -> ::core::option::Option { (::windows::core::Interface::vtable(self).base__.AsSampler)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn SetRawValue(&self, pdata: *const ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn SetRawValue(&self, pdata: &[u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } - pub unsafe fn GetRawValue(&self, pdata: *mut ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn GetRawValue(&self, pdata: &mut [u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } pub unsafe fn GetBlendState(&self, index: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -9055,11 +9053,11 @@ impl ID3D10EffectConstantBuffer { pub unsafe fn AsSampler(&self) -> ::core::option::Option { (::windows::core::Interface::vtable(self).base__.AsSampler)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn SetRawValue(&self, pdata: *const ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn SetRawValue(&self, pdata: &[u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } - pub unsafe fn GetRawValue(&self, pdata: *mut ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn GetRawValue(&self, pdata: &mut [u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } pub unsafe fn SetConstantBuffer<'a, P0>(&self, pconstantbuffer: P0) -> ::windows::core::Result<()> where @@ -9213,11 +9211,11 @@ impl ID3D10EffectDepthStencilVariable { pub unsafe fn AsSampler(&self) -> ::core::option::Option { (::windows::core::Interface::vtable(self).base__.AsSampler)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn SetRawValue(&self, pdata: *const ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn SetRawValue(&self, pdata: &[u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } - pub unsafe fn GetRawValue(&self, pdata: *mut ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn GetRawValue(&self, pdata: &mut [u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } pub unsafe fn GetDepthStencilState(&self, index: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -9362,11 +9360,11 @@ impl ID3D10EffectDepthStencilViewVariable { pub unsafe fn AsSampler(&self) -> ::core::option::Option { (::windows::core::Interface::vtable(self).base__.AsSampler)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn SetRawValue(&self, pdata: *const ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn SetRawValue(&self, pdata: &[u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } - pub unsafe fn GetRawValue(&self, pdata: *mut ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn GetRawValue(&self, pdata: &mut [u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } pub unsafe fn SetDepthStencil<'a, P0>(&self, presource: P0) -> ::windows::core::Result<()> where @@ -9379,10 +9377,10 @@ impl ID3D10EffectDepthStencilViewVariable { (::windows::core::Interface::vtable(self).GetDepthStencil)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetDepthStencilArray(&self, ppresources: &[::core::option::Option], offset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetDepthStencilArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), offset, ppresources.len() as _).ok() + (::windows::core::Interface::vtable(self).SetDepthStencilArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), offset, ppresources.len() as _).ok() } pub unsafe fn GetDepthStencilArray(&self, ppresources: &mut [::core::option::Option], offset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDepthStencilArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppresources)), offset, ppresources.len() as _).ok() + (::windows::core::Interface::vtable(self).GetDepthStencilArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), offset, ppresources.len() as _).ok() } } impl ::core::convert::From for ID3D10EffectVariable { @@ -9516,11 +9514,11 @@ impl ID3D10EffectMatrixVariable { pub unsafe fn AsSampler(&self) -> ::core::option::Option { (::windows::core::Interface::vtable(self).base__.AsSampler)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn SetRawValue(&self, pdata: *const ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn SetRawValue(&self, pdata: &[u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } - pub unsafe fn GetRawValue(&self, pdata: *mut ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn GetRawValue(&self, pdata: &mut [u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } pub unsafe fn SetMatrix(&self, pdata: &mut f32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetMatrix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata)).ok() @@ -9809,11 +9807,11 @@ impl ID3D10EffectRasterizerVariable { pub unsafe fn AsSampler(&self) -> ::core::option::Option { (::windows::core::Interface::vtable(self).base__.AsSampler)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn SetRawValue(&self, pdata: *const ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn SetRawValue(&self, pdata: &[u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } - pub unsafe fn GetRawValue(&self, pdata: *mut ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn GetRawValue(&self, pdata: &mut [u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } pub unsafe fn GetRasterizerState(&self, index: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -9958,11 +9956,11 @@ impl ID3D10EffectRenderTargetViewVariable { pub unsafe fn AsSampler(&self) -> ::core::option::Option { (::windows::core::Interface::vtable(self).base__.AsSampler)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn SetRawValue(&self, pdata: *const ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn SetRawValue(&self, pdata: &[u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } - pub unsafe fn GetRawValue(&self, pdata: *mut ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn GetRawValue(&self, pdata: &mut [u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } pub unsafe fn SetRenderTarget<'a, P0>(&self, presource: P0) -> ::windows::core::Result<()> where @@ -9975,10 +9973,10 @@ impl ID3D10EffectRenderTargetViewVariable { (::windows::core::Interface::vtable(self).GetRenderTarget)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetRenderTargetArray(&self, ppresources: &[::core::option::Option], offset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetRenderTargetArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), offset, ppresources.len() as _).ok() + (::windows::core::Interface::vtable(self).SetRenderTargetArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), offset, ppresources.len() as _).ok() } pub unsafe fn GetRenderTargetArray(&self, ppresources: &mut [::core::option::Option], offset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRenderTargetArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppresources)), offset, ppresources.len() as _).ok() + (::windows::core::Interface::vtable(self).GetRenderTargetArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), offset, ppresources.len() as _).ok() } } impl ::core::convert::From for ID3D10EffectVariable { @@ -10112,11 +10110,11 @@ impl ID3D10EffectSamplerVariable { pub unsafe fn AsSampler(&self) -> ::core::option::Option { (::windows::core::Interface::vtable(self).base__.AsSampler)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn SetRawValue(&self, pdata: *const ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn SetRawValue(&self, pdata: &[u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } - pub unsafe fn GetRawValue(&self, pdata: *mut ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn GetRawValue(&self, pdata: &mut [u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } pub unsafe fn GetSampler(&self, index: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -10256,11 +10254,11 @@ impl ID3D10EffectScalarVariable { pub unsafe fn AsSampler(&self) -> ::core::option::Option { (::windows::core::Interface::vtable(self).base__.AsSampler)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn SetRawValue(&self, pdata: *const ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn SetRawValue(&self, pdata: &[u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } - pub unsafe fn GetRawValue(&self, pdata: *mut ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn GetRawValue(&self, pdata: &mut [u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } pub unsafe fn SetFloat(&self, value: f32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetFloat)(::windows::core::Interface::as_raw(self), value).ok() @@ -10270,10 +10268,10 @@ impl ID3D10EffectScalarVariable { (::windows::core::Interface::vtable(self).GetFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetFloatArray(&self, pdata: &[f32], offset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetFloatArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), offset, pdata.len() as _).ok() + (::windows::core::Interface::vtable(self).SetFloatArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } pub unsafe fn GetFloatArray(&self, pdata: &mut [f32], offset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFloatArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pdata)), offset, pdata.len() as _).ok() + (::windows::core::Interface::vtable(self).GetFloatArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } pub unsafe fn SetInt(&self, value: i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetInt)(::windows::core::Interface::as_raw(self), value).ok() @@ -10283,10 +10281,10 @@ impl ID3D10EffectScalarVariable { (::windows::core::Interface::vtable(self).GetInt)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetIntArray(&self, pdata: &[i32], offset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetIntArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), offset, pdata.len() as _).ok() + (::windows::core::Interface::vtable(self).SetIntArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } pub unsafe fn GetIntArray(&self, pdata: &mut [i32], offset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIntArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pdata)), offset, pdata.len() as _).ok() + (::windows::core::Interface::vtable(self).GetIntArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10305,12 +10303,12 @@ impl ID3D10EffectScalarVariable { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn SetBoolArray(&self, pdata: &[super::super::Foundation::BOOL], offset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetBoolArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), offset, pdata.len() as _).ok() + (::windows::core::Interface::vtable(self).SetBoolArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetBoolArray(&self, pdata: &mut [super::super::Foundation::BOOL], offset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetBoolArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pdata)), offset, pdata.len() as _).ok() + (::windows::core::Interface::vtable(self).GetBoolArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } } impl ::core::convert::From for ID3D10EffectVariable { @@ -10464,11 +10462,11 @@ impl ID3D10EffectShaderResourceVariable { pub unsafe fn AsSampler(&self) -> ::core::option::Option { (::windows::core::Interface::vtable(self).base__.AsSampler)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn SetRawValue(&self, pdata: *const ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn SetRawValue(&self, pdata: &[u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } - pub unsafe fn GetRawValue(&self, pdata: *mut ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn GetRawValue(&self, pdata: &mut [u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } pub unsafe fn SetResource<'a, P0>(&self, presource: P0) -> ::windows::core::Result<()> where @@ -10481,10 +10479,10 @@ impl ID3D10EffectShaderResourceVariable { (::windows::core::Interface::vtable(self).GetResource)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetResourceArray(&self, ppresources: &[::core::option::Option], offset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetResourceArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), offset, ppresources.len() as _).ok() + (::windows::core::Interface::vtable(self).SetResourceArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), offset, ppresources.len() as _).ok() } pub unsafe fn GetResourceArray(&self, ppresources: &mut [::core::option::Option], offset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetResourceArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppresources)), offset, ppresources.len() as _).ok() + (::windows::core::Interface::vtable(self).GetResourceArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), offset, ppresources.len() as _).ok() } } impl ::core::convert::From for ID3D10EffectVariable { @@ -10618,11 +10616,11 @@ impl ID3D10EffectShaderVariable { pub unsafe fn AsSampler(&self) -> ::core::option::Option { (::windows::core::Interface::vtable(self).base__.AsSampler)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn SetRawValue(&self, pdata: *const ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn SetRawValue(&self, pdata: &[u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } - pub unsafe fn GetRawValue(&self, pdata: *mut ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn GetRawValue(&self, pdata: &mut [u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10797,18 +10795,18 @@ impl ID3D10EffectStringVariable { pub unsafe fn AsSampler(&self) -> ::core::option::Option { (::windows::core::Interface::vtable(self).base__.AsSampler)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn SetRawValue(&self, pdata: *const ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn SetRawValue(&self, pdata: &[u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } - pub unsafe fn GetRawValue(&self, pdata: *mut ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn GetRawValue(&self, pdata: &mut [u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } pub unsafe fn GetString(&self) -> ::windows::core::Result<::windows::core::PSTR> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PSTR>(result__) } pub unsafe fn GetStringArray(&self, ppstrings: &mut [::windows::core::PSTR], offset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStringArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppstrings)), offset, ppstrings.len() as _).ok() + (::windows::core::Interface::vtable(self).GetStringArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppstrings.as_ptr()), offset, ppstrings.len() as _).ok() } } impl ::core::convert::From for ID3D10EffectVariable { @@ -11086,11 +11084,11 @@ impl ID3D10EffectVariable { pub unsafe fn AsSampler(&self) -> ::core::option::Option { (::windows::core::Interface::vtable(self).AsSampler)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn SetRawValue(&self, pdata: *const ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn SetRawValue(&self, pdata: &[u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } - pub unsafe fn GetRawValue(&self, pdata: *mut ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn GetRawValue(&self, pdata: &mut [u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } } impl ::core::clone::Clone for ID3D10EffectVariable { @@ -11232,11 +11230,11 @@ impl ID3D10EffectVectorVariable { pub unsafe fn AsSampler(&self) -> ::core::option::Option { (::windows::core::Interface::vtable(self).base__.AsSampler)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn SetRawValue(&self, pdata: *const ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn SetRawValue(&self, pdata: &[u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } - pub unsafe fn GetRawValue(&self, pdata: *mut ::core::ffi::c_void, offset: u32, bytecount: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), offset, bytecount).ok() + pub unsafe fn GetRawValue(&self, pdata: &mut [u8], offset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetRawValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), offset, pdata.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -11359,8 +11357,8 @@ impl ID3D10GeometryShader { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -11436,7 +11434,7 @@ impl ID3D10InfoQueue { pub unsafe fn ClearStoredMessages(&self) { (::windows::core::Interface::vtable(self).ClearStoredMessages)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn GetMessage(&self, messageindex: u64, pmessage: ::core::option::Option<&mut D3D10_MESSAGE>, pmessagebytelength: &mut usize) -> ::windows::core::Result<()> { + pub unsafe fn GetMessage(&self, messageindex: u64, pmessage: *mut D3D10_MESSAGE, pmessagebytelength: &mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetMessage)(::windows::core::Interface::as_raw(self), messageindex, ::core::mem::transmute(pmessage), ::core::mem::transmute(pmessagebytelength)).ok() } pub unsafe fn GetNumMessagesAllowedByStorageFilter(&self) -> u64 { @@ -11460,7 +11458,7 @@ impl ID3D10InfoQueue { pub unsafe fn AddStorageFilterEntries(&self, pfilter: &D3D10_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AddStorageFilterEntries)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter)).ok() } - pub unsafe fn GetStorageFilter(&self, pfilter: ::core::option::Option<&mut D3D10_INFO_QUEUE_FILTER>, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { + pub unsafe fn GetStorageFilter(&self, pfilter: *mut D3D10_INFO_QUEUE_FILTER, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetStorageFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter), ::core::mem::transmute(pfilterbytelength)).ok() } pub unsafe fn ClearStorageFilter(&self) { @@ -11484,7 +11482,7 @@ impl ID3D10InfoQueue { pub unsafe fn AddRetrievalFilterEntries(&self, pfilter: &D3D10_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AddRetrievalFilterEntries)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter)).ok() } - pub unsafe fn GetRetrievalFilter(&self, pfilter: ::core::option::Option<&mut D3D10_INFO_QUEUE_FILTER>, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { + pub unsafe fn GetRetrievalFilter(&self, pfilter: *mut D3D10_INFO_QUEUE_FILTER, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetRetrievalFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter), ::core::mem::transmute(pfilterbytelength)).ok() } pub unsafe fn ClearRetrievalFilter(&self) { @@ -11681,8 +11679,8 @@ impl ID3D10InputLayout { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -11834,8 +11832,8 @@ impl ID3D10PixelShader { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -11911,8 +11909,8 @@ impl ID3D10Predicate { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -11926,8 +11924,8 @@ impl ID3D10Predicate { pub unsafe fn End(&self) { (::windows::core::Interface::vtable(self).base__.base__.End)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn GetData(&self, pdata: *mut ::core::ffi::c_void, datasize: u32, getdataflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), datasize, getdataflags).ok() + pub unsafe fn GetData(&self, pdata: ::core::option::Option<&mut [u8]>, getdataflags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.GetData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), getdataflags).ok() } pub unsafe fn GetDataSize(&self) -> u32 { (::windows::core::Interface::vtable(self).base__.base__.GetDataSize)(::windows::core::Interface::as_raw(self)) @@ -12033,8 +12031,8 @@ impl ID3D10Query { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -12048,8 +12046,8 @@ impl ID3D10Query { pub unsafe fn End(&self) { (::windows::core::Interface::vtable(self).base__.End)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn GetData(&self, pdata: *mut ::core::ffi::c_void, datasize: u32, getdataflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), datasize, getdataflags).ok() + pub unsafe fn GetData(&self, pdata: ::core::option::Option<&mut [u8]>, getdataflags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), getdataflags).ok() } pub unsafe fn GetDataSize(&self) -> u32 { (::windows::core::Interface::vtable(self).base__.GetDataSize)(::windows::core::Interface::as_raw(self)) @@ -12141,8 +12139,8 @@ impl ID3D10RasterizerState { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -12227,8 +12225,8 @@ impl ID3D10RenderTargetView { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -12331,8 +12329,8 @@ impl ID3D10Resource { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -12420,8 +12418,8 @@ impl ID3D10SamplerState { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -12914,8 +12912,8 @@ impl ID3D10ShaderResourceView { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -13018,8 +13016,8 @@ impl ID3D10ShaderResourceView1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -13274,8 +13272,8 @@ impl ID3D10Texture1D { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -13392,8 +13390,8 @@ impl ID3D10Texture2D { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -13511,8 +13509,8 @@ impl ID3D10Texture3D { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -13630,8 +13628,8 @@ impl ID3D10VertexShader { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -13707,8 +13705,8 @@ impl ID3D10View { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D11/impl.rs b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D11/impl.rs index c366b596db..1fb89bccaf 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D11/impl.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D11/impl.rs @@ -18,7 +18,7 @@ impl ID3D11Asynchronous_Vtbl { #[cfg(feature = "Win32_Foundation")] pub trait ID3D11AuthenticatedChannel_Impl: Sized + ID3D11DeviceChild_Impl { fn GetCertificateSize(&self) -> ::windows::core::Result; - fn GetCertificate(&self, certificatesize: u32) -> ::windows::core::Result; + fn GetCertificate(&self, certificatesize: u32, pcertificate: *mut u8) -> ::windows::core::Result<()>; fn GetChannelHandle(&self, pchannelhandle: *mut super::super::Foundation::HANDLE); } #[cfg(feature = "Win32_Foundation")] @@ -40,13 +40,7 @@ impl ID3D11AuthenticatedChannel_Vtbl { unsafe extern "system" fn GetCertificate, Impl: ID3D11AuthenticatedChannel_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, certificatesize: u32, pcertificate: *mut u8) -> ::windows::core::HRESULT { let this = (this as *const *const ()).offset(OFFSET) as *const Identity; let this = (*this).get_impl(); - match this.GetCertificate(::core::mem::transmute_copy(&certificatesize)) { - ::core::result::Result::Ok(ok__) => { - ::core::ptr::write(pcertificate, ::core::mem::transmute(ok__)); - ::windows::core::HRESULT(0) - } - ::core::result::Result::Err(err) => err.into(), - } + this.GetCertificate(::core::mem::transmute_copy(&certificatesize), ::core::mem::transmute_copy(&pcertificate)).into() } unsafe extern "system" fn GetChannelHandle, Impl: ID3D11AuthenticatedChannel_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pchannelhandle: *mut super::super::Foundation::HANDLE) { let this = (this as *const *const ()).offset(OFFSET) as *const Identity; @@ -253,7 +247,7 @@ pub trait ID3D11CryptoSession_Impl: Sized + ID3D11DeviceChild_Impl { fn GetCryptoType(&self, pcryptotype: *mut ::windows::core::GUID); fn GetDecoderProfile(&self, pdecoderprofile: *mut ::windows::core::GUID); fn GetCertificateSize(&self) -> ::windows::core::Result; - fn GetCertificate(&self, certificatesize: u32) -> ::windows::core::Result; + fn GetCertificate(&self, certificatesize: u32, pcertificate: *mut u8) -> ::windows::core::Result<()>; fn GetCryptoSessionHandle(&self, pcryptosessionhandle: *mut super::super::Foundation::HANDLE); } #[cfg(feature = "Win32_Foundation")] @@ -285,13 +279,7 @@ impl ID3D11CryptoSession_Vtbl { unsafe extern "system" fn GetCertificate, Impl: ID3D11CryptoSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, certificatesize: u32, pcertificate: *mut u8) -> ::windows::core::HRESULT { let this = (this as *const *const ()).offset(OFFSET) as *const Identity; let this = (*this).get_impl(); - match this.GetCertificate(::core::mem::transmute_copy(&certificatesize)) { - ::core::result::Result::Ok(ok__) => { - ::core::ptr::write(pcertificate, ::core::mem::transmute(ok__)); - ::windows::core::HRESULT(0) - } - ::core::result::Result::Err(err) => err.into(), - } + this.GetCertificate(::core::mem::transmute_copy(&certificatesize), ::core::mem::transmute_copy(&pcertificate)).into() } unsafe extern "system" fn GetCryptoSessionHandle, Impl: ID3D11CryptoSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcryptosessionhandle: *mut super::super::Foundation::HANDLE) { let this = (this as *const *const ()).offset(OFFSET) as *const Identity; 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 d98efcb344..9a9c22b3d8 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D11/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D11/mod.rs @@ -3,7 +3,7 @@ pub struct CD3D11_VIDEO_DEFAULT(pub u8); #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D\"`, `\"Win32_Graphics_Dxgi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D", feature = "Win32_Graphics_Dxgi"))] #[inline] -pub unsafe fn D3D11CreateDevice<'a, P0, P1>(padapter: P0, drivertype: super::Direct3D::D3D_DRIVER_TYPE, software: P1, flags: D3D11_CREATE_DEVICE_FLAG, pfeaturelevels: &[super::Direct3D::D3D_FEATURE_LEVEL], sdkversion: u32, ppdevice: ::core::option::Option<&mut ::core::option::Option>, pfeaturelevel: ::core::option::Option<&mut super::Direct3D::D3D_FEATURE_LEVEL>, ppimmediatecontext: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> +pub unsafe fn D3D11CreateDevice<'a, P0, P1>(padapter: P0, drivertype: super::Direct3D::D3D_DRIVER_TYPE, software: P1, flags: D3D11_CREATE_DEVICE_FLAG, pfeaturelevels: ::core::option::Option<&[super::Direct3D::D3D_FEATURE_LEVEL]>, sdkversion: u32, ppdevice: ::core::option::Option<&mut ::core::option::Option>, pfeaturelevel: ::core::option::Option<&mut super::Direct3D::D3D_FEATURE_LEVEL>, ppimmediatecontext: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::Dxgi::IDXGIAdapter>>, P1: ::std::convert::Into, @@ -12,12 +12,12 @@ where extern "system" { fn D3D11CreateDevice(padapter: *mut ::core::ffi::c_void, drivertype: super::Direct3D::D3D_DRIVER_TYPE, software: super::super::Foundation::HINSTANCE, flags: D3D11_CREATE_DEVICE_FLAG, pfeaturelevels: *const super::Direct3D::D3D_FEATURE_LEVEL, featurelevels: u32, sdkversion: u32, ppdevice: *mut *mut ::core::ffi::c_void, pfeaturelevel: *mut super::Direct3D::D3D_FEATURE_LEVEL, ppimmediatecontext: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - D3D11CreateDevice(padapter.into().abi(), drivertype, software.into(), flags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfeaturelevels)), pfeaturelevels.len() as _, sdkversion, ::core::mem::transmute(ppdevice), ::core::mem::transmute(pfeaturelevel), ::core::mem::transmute(ppimmediatecontext)).ok() + D3D11CreateDevice(padapter.into().abi(), drivertype, software.into(), flags, ::core::mem::transmute(pfeaturelevels.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pfeaturelevels.as_deref().map_or(0, |slice| slice.len() as _), sdkversion, ::core::mem::transmute(ppdevice), ::core::mem::transmute(pfeaturelevel), ::core::mem::transmute(ppimmediatecontext)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D", feature = "Win32_Graphics_Dxgi_Common"))] #[inline] -pub unsafe fn D3D11CreateDeviceAndSwapChain<'a, P0, P1>(padapter: P0, drivertype: super::Direct3D::D3D_DRIVER_TYPE, software: P1, flags: D3D11_CREATE_DEVICE_FLAG, pfeaturelevels: &[super::Direct3D::D3D_FEATURE_LEVEL], sdkversion: u32, pswapchaindesc: ::core::option::Option<&super::Dxgi::DXGI_SWAP_CHAIN_DESC>, ppswapchain: ::core::option::Option<&mut ::core::option::Option>, ppdevice: ::core::option::Option<&mut ::core::option::Option>, pfeaturelevel: ::core::option::Option<&mut super::Direct3D::D3D_FEATURE_LEVEL>, ppimmediatecontext: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> +pub unsafe fn D3D11CreateDeviceAndSwapChain<'a, P0, P1>(padapter: P0, drivertype: super::Direct3D::D3D_DRIVER_TYPE, software: P1, flags: D3D11_CREATE_DEVICE_FLAG, pfeaturelevels: ::core::option::Option<&[super::Direct3D::D3D_FEATURE_LEVEL]>, sdkversion: u32, pswapchaindesc: ::core::option::Option<&super::Dxgi::DXGI_SWAP_CHAIN_DESC>, ppswapchain: ::core::option::Option<&mut ::core::option::Option>, ppdevice: ::core::option::Option<&mut ::core::option::Option>, pfeaturelevel: ::core::option::Option<&mut super::Direct3D::D3D_FEATURE_LEVEL>, ppimmediatecontext: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::Dxgi::IDXGIAdapter>>, P1: ::std::convert::Into, @@ -26,7 +26,7 @@ where extern "system" { fn D3D11CreateDeviceAndSwapChain(padapter: *mut ::core::ffi::c_void, drivertype: super::Direct3D::D3D_DRIVER_TYPE, software: super::super::Foundation::HINSTANCE, flags: D3D11_CREATE_DEVICE_FLAG, pfeaturelevels: *const super::Direct3D::D3D_FEATURE_LEVEL, featurelevels: u32, sdkversion: u32, pswapchaindesc: *const super::Dxgi::DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut *mut ::core::ffi::c_void, ppdevice: *mut *mut ::core::ffi::c_void, pfeaturelevel: *mut super::Direct3D::D3D_FEATURE_LEVEL, ppimmediatecontext: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - D3D11CreateDeviceAndSwapChain(padapter.into().abi(), drivertype, software.into(), flags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfeaturelevels)), pfeaturelevels.len() as _, sdkversion, ::core::mem::transmute(pswapchaindesc), ::core::mem::transmute(ppswapchain), ::core::mem::transmute(ppdevice), ::core::mem::transmute(pfeaturelevel), ::core::mem::transmute(ppimmediatecontext)).ok() + D3D11CreateDeviceAndSwapChain(padapter.into().abi(), drivertype, software.into(), flags, ::core::mem::transmute(pfeaturelevels.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pfeaturelevels.as_deref().map_or(0, |slice| slice.len() as _), sdkversion, ::core::mem::transmute(pswapchaindesc), ::core::mem::transmute(ppswapchain), ::core::mem::transmute(ppdevice), ::core::mem::transmute(pfeaturelevel), ::core::mem::transmute(ppimmediatecontext)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"] pub const D3D11_16BIT_INDEX_STRIP_CUT_VALUE: u32 = 65535u32; @@ -14963,7 +14963,7 @@ pub const D3DCSX_DLL_W: &str = "d3dcsx_47.dll"; #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`, `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] #[inline] -pub unsafe fn D3DDisassemble11Trace<'a, P0>(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, ptrace: P0, startstep: u32, numsteps: u32, flags: u32) -> ::windows::core::Result +pub unsafe fn D3DDisassemble11Trace<'a, P0>(psrcdata: &[u8], ptrace: P0, startstep: u32, numsteps: u32, flags: u32) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ShaderTrace>>, { @@ -14972,7 +14972,7 @@ where fn D3DDisassemble11Trace(psrcdata: *const ::core::ffi::c_void, srcdatasize: usize, ptrace: *mut ::core::ffi::c_void, startstep: u32, numsteps: u32, flags: u32, ppdisassembly: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - D3DDisassemble11Trace(::core::mem::transmute(psrcdata), srcdatasize, ptrace.into().abi(), startstep, numsteps, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + D3DDisassemble11Trace(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, ptrace.into().abi(), startstep, numsteps, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"] #[inline] @@ -15361,8 +15361,8 @@ impl ID3D11Asynchronous { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -15442,8 +15442,8 @@ impl ID3D11AuthenticatedChannel { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -15455,9 +15455,8 @@ impl ID3D11AuthenticatedChannel { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetCertificateSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetCertificate(&self, certificatesize: u32) -> ::windows::core::Result { - let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetCertificate)(::windows::core::Interface::as_raw(self), certificatesize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + pub unsafe fn GetCertificate(&self, pcertificate: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetCertificate)(::windows::core::Interface::as_raw(self), pcertificate.len() as _, ::core::mem::transmute(pcertificate.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -15538,8 +15537,8 @@ impl ID3D11BlendState { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -15624,8 +15623,8 @@ impl ID3D11BlendState1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -15730,8 +15729,8 @@ impl ID3D11Buffer { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -15835,8 +15834,8 @@ impl ID3D11ClassInstance { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -15933,8 +15932,8 @@ impl ID3D11ClassLinkage { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -16026,8 +16025,8 @@ impl ID3D11CommandList { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -16107,8 +16106,8 @@ impl ID3D11ComputeShader { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -16184,8 +16183,8 @@ impl ID3D11Counter { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -16283,8 +16282,8 @@ impl ID3D11CryptoSession { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -16302,9 +16301,8 @@ impl ID3D11CryptoSession { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetCertificateSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetCertificate(&self, certificatesize: u32) -> ::windows::core::Result { - let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetCertificate)(::windows::core::Interface::as_raw(self), certificatesize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + pub unsafe fn GetCertificate(&self, pcertificate: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetCertificate)(::windows::core::Interface::as_raw(self), pcertificate.len() as _, ::core::mem::transmute(pcertificate.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -16490,8 +16488,8 @@ impl ID3D11DepthStencilState { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -16576,8 +16574,8 @@ impl ID3D11DepthStencilView { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -16736,56 +16734,68 @@ impl ID3D11Device { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn CreateInputLayout(&self, pinputelementdescs: &[D3D11_INPUT_ELEMENT_DESC], pshaderbytecodewithinputsignature: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputelementdescs)), pinputelementdescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecodewithinputsignature)), pshaderbytecodewithinputsignature.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinputelementdescs.as_ptr()), pinputelementdescs.len() as _, ::core::mem::transmute(pshaderbytecodewithinputsignature.as_ptr()), pshaderbytecodewithinputsignature.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateVertexShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateGeometryShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateGeometryShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateGeometryShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateGeometryShaderWithStreamOutput<'a, P0>(&self, pshaderbytecode: &[u8], psodeclaration: &[D3D11_SO_DECLARATION_ENTRY], pbufferstrides: &[u32], rasterizedstream: u32, pclasslinkage: P0) -> ::windows::core::Result + pub unsafe fn CreateGeometryShaderWithStreamOutput<'a, P0>(&self, pshaderbytecode: &[u8], psodeclaration: ::core::option::Option<&[D3D11_SO_DECLARATION_ENTRY]>, pbufferstrides: ::core::option::Option<&[u32]>, rasterizedstream: u32, pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateGeometryShaderWithStreamOutput)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psodeclaration)), psodeclaration.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbufferstrides)), pbufferstrides.len() as _, rasterizedstream, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateGeometryShaderWithStreamOutput)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(pshaderbytecode.as_ptr()), + pshaderbytecode.len() as _, + ::core::mem::transmute(psodeclaration.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + psodeclaration.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pbufferstrides.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pbufferstrides.as_deref().map_or(0, |slice| slice.len() as _), + rasterizedstream, + pclasslinkage.into().abi(), + ::core::mem::transmute(result__.as_mut_ptr()), + ) + .from_abi::(result__) } pub unsafe fn CreatePixelShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreatePixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreatePixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateHullShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateHullShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateHullShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateDomainShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateDomainShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateDomainShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateComputeShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateClassLinkage(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -16856,14 +16866,14 @@ impl ID3D11Device { pub unsafe fn CheckCounter(&self, pdesc: &D3D11_COUNTER_DESC, ptype: &mut D3D11_COUNTER_TYPE, pactivecounters: &mut u32, szname: ::windows::core::PSTR, pnamelength: ::core::option::Option<&mut u32>, szunits: ::windows::core::PSTR, punitslength: ::core::option::Option<&mut u32>, szdescription: ::windows::core::PSTR, pdescriptionlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CheckCounter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(ptype), ::core::mem::transmute(pactivecounters), ::core::mem::transmute(szname), ::core::mem::transmute(pnamelength), ::core::mem::transmute(szunits), ::core::mem::transmute(punitslength), ::core::mem::transmute(szdescription), ::core::mem::transmute(pdescriptionlength)).ok() } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D11_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D11_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -17085,56 +17095,68 @@ impl ID3D11Device1 { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn CreateInputLayout(&self, pinputelementdescs: &[D3D11_INPUT_ELEMENT_DESC], pshaderbytecodewithinputsignature: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputelementdescs)), pinputelementdescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecodewithinputsignature)), pshaderbytecodewithinputsignature.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinputelementdescs.as_ptr()), pinputelementdescs.len() as _, ::core::mem::transmute(pshaderbytecodewithinputsignature.as_ptr()), pshaderbytecodewithinputsignature.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateVertexShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateGeometryShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateGeometryShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateGeometryShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateGeometryShaderWithStreamOutput<'a, P0>(&self, pshaderbytecode: &[u8], psodeclaration: &[D3D11_SO_DECLARATION_ENTRY], pbufferstrides: &[u32], rasterizedstream: u32, pclasslinkage: P0) -> ::windows::core::Result + pub unsafe fn CreateGeometryShaderWithStreamOutput<'a, P0>(&self, pshaderbytecode: &[u8], psodeclaration: ::core::option::Option<&[D3D11_SO_DECLARATION_ENTRY]>, pbufferstrides: ::core::option::Option<&[u32]>, rasterizedstream: u32, pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateGeometryShaderWithStreamOutput)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psodeclaration)), psodeclaration.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbufferstrides)), pbufferstrides.len() as _, rasterizedstream, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateGeometryShaderWithStreamOutput)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(pshaderbytecode.as_ptr()), + pshaderbytecode.len() as _, + ::core::mem::transmute(psodeclaration.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + psodeclaration.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pbufferstrides.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pbufferstrides.as_deref().map_or(0, |slice| slice.len() as _), + rasterizedstream, + pclasslinkage.into().abi(), + ::core::mem::transmute(result__.as_mut_ptr()), + ) + .from_abi::(result__) } pub unsafe fn CreatePixelShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreatePixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreatePixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateHullShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateHullShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateHullShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateDomainShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateDomainShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateDomainShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateComputeShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateClassLinkage(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -17205,14 +17227,14 @@ impl ID3D11Device1 { pub unsafe fn CheckCounter(&self, pdesc: &D3D11_COUNTER_DESC, ptype: &mut D3D11_COUNTER_TYPE, pactivecounters: &mut u32, szname: ::windows::core::PSTR, pnamelength: ::core::option::Option<&mut u32>, szunits: ::windows::core::PSTR, punitslength: ::core::option::Option<&mut u32>, szdescription: ::windows::core::PSTR, pdescriptionlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.CheckCounter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(ptype), ::core::mem::transmute(pactivecounters), ::core::mem::transmute(szname), ::core::mem::transmute(pnamelength), ::core::mem::transmute(szunits), ::core::mem::transmute(punitslength), ::core::mem::transmute(szdescription), ::core::mem::transmute(pdescriptionlength)).ok() } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D11_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D11_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -17262,7 +17284,7 @@ impl ID3D11Device1 { #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] pub unsafe fn CreateDeviceContextState(&self, flags: u32, pfeaturelevels: &[super::Direct3D::D3D_FEATURE_LEVEL], sdkversion: u32, emulatedinterface: &::windows::core::GUID, pchosenfeaturelevel: ::core::option::Option<&mut super::Direct3D::D3D_FEATURE_LEVEL>, ppcontextstate: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CreateDeviceContextState)(::windows::core::Interface::as_raw(self), flags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfeaturelevels)), pfeaturelevels.len() as _, sdkversion, ::core::mem::transmute(emulatedinterface), ::core::mem::transmute(pchosenfeaturelevel), ::core::mem::transmute(ppcontextstate)).ok() + (::windows::core::Interface::vtable(self).CreateDeviceContextState)(::windows::core::Interface::as_raw(self), flags, ::core::mem::transmute(pfeaturelevels.as_ptr()), pfeaturelevels.len() as _, sdkversion, ::core::mem::transmute(emulatedinterface), ::core::mem::transmute(pchosenfeaturelevel), ::core::mem::transmute(ppcontextstate)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -17425,56 +17447,68 @@ impl ID3D11Device2 { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn CreateInputLayout(&self, pinputelementdescs: &[D3D11_INPUT_ELEMENT_DESC], pshaderbytecodewithinputsignature: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputelementdescs)), pinputelementdescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecodewithinputsignature)), pshaderbytecodewithinputsignature.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinputelementdescs.as_ptr()), pinputelementdescs.len() as _, ::core::mem::transmute(pshaderbytecodewithinputsignature.as_ptr()), pshaderbytecodewithinputsignature.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateVertexShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateGeometryShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateGeometryShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateGeometryShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateGeometryShaderWithStreamOutput<'a, P0>(&self, pshaderbytecode: &[u8], psodeclaration: &[D3D11_SO_DECLARATION_ENTRY], pbufferstrides: &[u32], rasterizedstream: u32, pclasslinkage: P0) -> ::windows::core::Result + pub unsafe fn CreateGeometryShaderWithStreamOutput<'a, P0>(&self, pshaderbytecode: &[u8], psodeclaration: ::core::option::Option<&[D3D11_SO_DECLARATION_ENTRY]>, pbufferstrides: ::core::option::Option<&[u32]>, rasterizedstream: u32, pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateGeometryShaderWithStreamOutput)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psodeclaration)), psodeclaration.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbufferstrides)), pbufferstrides.len() as _, rasterizedstream, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateGeometryShaderWithStreamOutput)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(pshaderbytecode.as_ptr()), + pshaderbytecode.len() as _, + ::core::mem::transmute(psodeclaration.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + psodeclaration.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pbufferstrides.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pbufferstrides.as_deref().map_or(0, |slice| slice.len() as _), + rasterizedstream, + pclasslinkage.into().abi(), + ::core::mem::transmute(result__.as_mut_ptr()), + ) + .from_abi::(result__) } pub unsafe fn CreatePixelShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreatePixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreatePixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateHullShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateHullShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateHullShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateDomainShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateDomainShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateDomainShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateComputeShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateClassLinkage(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -17545,14 +17579,14 @@ impl ID3D11Device2 { pub unsafe fn CheckCounter(&self, pdesc: &D3D11_COUNTER_DESC, ptype: &mut D3D11_COUNTER_TYPE, pactivecounters: &mut u32, szname: ::windows::core::PSTR, pnamelength: ::core::option::Option<&mut u32>, szunits: ::windows::core::PSTR, punitslength: ::core::option::Option<&mut u32>, szdescription: ::windows::core::PSTR, pdescriptionlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.CheckCounter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(ptype), ::core::mem::transmute(pactivecounters), ::core::mem::transmute(szname), ::core::mem::transmute(pnamelength), ::core::mem::transmute(szunits), ::core::mem::transmute(punitslength), ::core::mem::transmute(szdescription), ::core::mem::transmute(pdescriptionlength)).ok() } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D11_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D11_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -17602,7 +17636,7 @@ impl ID3D11Device2 { #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] pub unsafe fn CreateDeviceContextState(&self, flags: u32, pfeaturelevels: &[super::Direct3D::D3D_FEATURE_LEVEL], sdkversion: u32, emulatedinterface: &::windows::core::GUID, pchosenfeaturelevel: ::core::option::Option<&mut super::Direct3D::D3D_FEATURE_LEVEL>, ppcontextstate: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.CreateDeviceContextState)(::windows::core::Interface::as_raw(self), flags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfeaturelevels)), pfeaturelevels.len() as _, sdkversion, ::core::mem::transmute(emulatedinterface), ::core::mem::transmute(pchosenfeaturelevel), ::core::mem::transmute(ppcontextstate)).ok() + (::windows::core::Interface::vtable(self).base__.CreateDeviceContextState)(::windows::core::Interface::as_raw(self), flags, ::core::mem::transmute(pfeaturelevels.as_ptr()), pfeaturelevels.len() as _, sdkversion, ::core::mem::transmute(emulatedinterface), ::core::mem::transmute(pchosenfeaturelevel), ::core::mem::transmute(ppcontextstate)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -17629,7 +17663,7 @@ impl ID3D11Device2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).CreateDeferredContext2)(::windows::core::Interface::as_raw(self), contextflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D11_PACKED_MIP_DESC>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D11_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: &mut D3D11_SUBRESOURCE_TILING) + pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D11_PACKED_MIP_DESC>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D11_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D11_SUBRESOURCE_TILING) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Resource>>, { @@ -17787,56 +17821,68 @@ impl ID3D11Device3 { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn CreateInputLayout(&self, pinputelementdescs: &[D3D11_INPUT_ELEMENT_DESC], pshaderbytecodewithinputsignature: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputelementdescs)), pinputelementdescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecodewithinputsignature)), pshaderbytecodewithinputsignature.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinputelementdescs.as_ptr()), pinputelementdescs.len() as _, ::core::mem::transmute(pshaderbytecodewithinputsignature.as_ptr()), pshaderbytecodewithinputsignature.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateVertexShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateGeometryShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateGeometryShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateGeometryShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateGeometryShaderWithStreamOutput<'a, P0>(&self, pshaderbytecode: &[u8], psodeclaration: &[D3D11_SO_DECLARATION_ENTRY], pbufferstrides: &[u32], rasterizedstream: u32, pclasslinkage: P0) -> ::windows::core::Result + pub unsafe fn CreateGeometryShaderWithStreamOutput<'a, P0>(&self, pshaderbytecode: &[u8], psodeclaration: ::core::option::Option<&[D3D11_SO_DECLARATION_ENTRY]>, pbufferstrides: ::core::option::Option<&[u32]>, rasterizedstream: u32, pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateGeometryShaderWithStreamOutput)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psodeclaration)), psodeclaration.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbufferstrides)), pbufferstrides.len() as _, rasterizedstream, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateGeometryShaderWithStreamOutput)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(pshaderbytecode.as_ptr()), + pshaderbytecode.len() as _, + ::core::mem::transmute(psodeclaration.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + psodeclaration.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pbufferstrides.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pbufferstrides.as_deref().map_or(0, |slice| slice.len() as _), + rasterizedstream, + pclasslinkage.into().abi(), + ::core::mem::transmute(result__.as_mut_ptr()), + ) + .from_abi::(result__) } pub unsafe fn CreatePixelShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreatePixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreatePixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateHullShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateHullShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateHullShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateDomainShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateDomainShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateDomainShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateComputeShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateClassLinkage(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -17907,14 +17953,14 @@ impl ID3D11Device3 { pub unsafe fn CheckCounter(&self, pdesc: &D3D11_COUNTER_DESC, ptype: &mut D3D11_COUNTER_TYPE, pactivecounters: &mut u32, szname: ::windows::core::PSTR, pnamelength: ::core::option::Option<&mut u32>, szunits: ::windows::core::PSTR, punitslength: ::core::option::Option<&mut u32>, szdescription: ::windows::core::PSTR, pdescriptionlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.CheckCounter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(ptype), ::core::mem::transmute(pactivecounters), ::core::mem::transmute(szname), ::core::mem::transmute(pnamelength), ::core::mem::transmute(szunits), ::core::mem::transmute(punitslength), ::core::mem::transmute(szdescription), ::core::mem::transmute(pdescriptionlength)).ok() } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D11_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D11_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -17964,7 +18010,7 @@ impl ID3D11Device3 { #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] pub unsafe fn CreateDeviceContextState(&self, flags: u32, pfeaturelevels: &[super::Direct3D::D3D_FEATURE_LEVEL], sdkversion: u32, emulatedinterface: &::windows::core::GUID, pchosenfeaturelevel: ::core::option::Option<&mut super::Direct3D::D3D_FEATURE_LEVEL>, ppcontextstate: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.CreateDeviceContextState)(::windows::core::Interface::as_raw(self), flags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfeaturelevels)), pfeaturelevels.len() as _, sdkversion, ::core::mem::transmute(emulatedinterface), ::core::mem::transmute(pchosenfeaturelevel), ::core::mem::transmute(ppcontextstate)).ok() + (::windows::core::Interface::vtable(self).base__.base__.CreateDeviceContextState)(::windows::core::Interface::as_raw(self), flags, ::core::mem::transmute(pfeaturelevels.as_ptr()), pfeaturelevels.len() as _, sdkversion, ::core::mem::transmute(emulatedinterface), ::core::mem::transmute(pchosenfeaturelevel), ::core::mem::transmute(ppcontextstate)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -17991,7 +18037,7 @@ impl ID3D11Device3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.CreateDeferredContext2)(::windows::core::Interface::as_raw(self), contextflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D11_PACKED_MIP_DESC>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D11_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: &mut D3D11_SUBRESOURCE_TILING) + pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D11_PACKED_MIP_DESC>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D11_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D11_SUBRESOURCE_TILING) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Resource>>, { @@ -18254,56 +18300,68 @@ impl ID3D11Device4 { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn CreateInputLayout(&self, pinputelementdescs: &[D3D11_INPUT_ELEMENT_DESC], pshaderbytecodewithinputsignature: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputelementdescs)), pinputelementdescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecodewithinputsignature)), pshaderbytecodewithinputsignature.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinputelementdescs.as_ptr()), pinputelementdescs.len() as _, ::core::mem::transmute(pshaderbytecodewithinputsignature.as_ptr()), pshaderbytecodewithinputsignature.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateVertexShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateGeometryShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateGeometryShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateGeometryShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateGeometryShaderWithStreamOutput<'a, P0>(&self, pshaderbytecode: &[u8], psodeclaration: &[D3D11_SO_DECLARATION_ENTRY], pbufferstrides: &[u32], rasterizedstream: u32, pclasslinkage: P0) -> ::windows::core::Result + pub unsafe fn CreateGeometryShaderWithStreamOutput<'a, P0>(&self, pshaderbytecode: &[u8], psodeclaration: ::core::option::Option<&[D3D11_SO_DECLARATION_ENTRY]>, pbufferstrides: ::core::option::Option<&[u32]>, rasterizedstream: u32, pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateGeometryShaderWithStreamOutput)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psodeclaration)), psodeclaration.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbufferstrides)), pbufferstrides.len() as _, rasterizedstream, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateGeometryShaderWithStreamOutput)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(pshaderbytecode.as_ptr()), + pshaderbytecode.len() as _, + ::core::mem::transmute(psodeclaration.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + psodeclaration.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pbufferstrides.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pbufferstrides.as_deref().map_or(0, |slice| slice.len() as _), + rasterizedstream, + pclasslinkage.into().abi(), + ::core::mem::transmute(result__.as_mut_ptr()), + ) + .from_abi::(result__) } pub unsafe fn CreatePixelShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreatePixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreatePixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateHullShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateHullShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateHullShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateDomainShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateDomainShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateDomainShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateComputeShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateClassLinkage(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -18374,14 +18432,14 @@ impl ID3D11Device4 { pub unsafe fn CheckCounter(&self, pdesc: &D3D11_COUNTER_DESC, ptype: &mut D3D11_COUNTER_TYPE, pactivecounters: &mut u32, szname: ::windows::core::PSTR, pnamelength: ::core::option::Option<&mut u32>, szunits: ::windows::core::PSTR, punitslength: ::core::option::Option<&mut u32>, szdescription: ::windows::core::PSTR, pdescriptionlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CheckCounter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(ptype), ::core::mem::transmute(pactivecounters), ::core::mem::transmute(szname), ::core::mem::transmute(pnamelength), ::core::mem::transmute(szunits), ::core::mem::transmute(punitslength), ::core::mem::transmute(szdescription), ::core::mem::transmute(pdescriptionlength)).ok() } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D11_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D11_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -18431,7 +18489,7 @@ impl ID3D11Device4 { #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] pub unsafe fn CreateDeviceContextState(&self, flags: u32, pfeaturelevels: &[super::Direct3D::D3D_FEATURE_LEVEL], sdkversion: u32, emulatedinterface: &::windows::core::GUID, pchosenfeaturelevel: ::core::option::Option<&mut super::Direct3D::D3D_FEATURE_LEVEL>, ppcontextstate: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateDeviceContextState)(::windows::core::Interface::as_raw(self), flags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfeaturelevels)), pfeaturelevels.len() as _, sdkversion, ::core::mem::transmute(emulatedinterface), ::core::mem::transmute(pchosenfeaturelevel), ::core::mem::transmute(ppcontextstate)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateDeviceContextState)(::windows::core::Interface::as_raw(self), flags, ::core::mem::transmute(pfeaturelevels.as_ptr()), pfeaturelevels.len() as _, sdkversion, ::core::mem::transmute(emulatedinterface), ::core::mem::transmute(pchosenfeaturelevel), ::core::mem::transmute(ppcontextstate)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -18458,7 +18516,7 @@ impl ID3D11Device4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.CreateDeferredContext2)(::windows::core::Interface::as_raw(self), contextflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D11_PACKED_MIP_DESC>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D11_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: &mut D3D11_SUBRESOURCE_TILING) + pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D11_PACKED_MIP_DESC>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D11_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D11_SUBRESOURCE_TILING) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Resource>>, { @@ -18724,56 +18782,68 @@ impl ID3D11Device5 { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn CreateInputLayout(&self, pinputelementdescs: &[D3D11_INPUT_ELEMENT_DESC], pshaderbytecodewithinputsignature: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputelementdescs)), pinputelementdescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecodewithinputsignature)), pshaderbytecodewithinputsignature.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinputelementdescs.as_ptr()), pinputelementdescs.len() as _, ::core::mem::transmute(pshaderbytecodewithinputsignature.as_ptr()), pshaderbytecodewithinputsignature.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateVertexShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateVertexShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateGeometryShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateGeometryShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateGeometryShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateGeometryShaderWithStreamOutput<'a, P0>(&self, pshaderbytecode: &[u8], psodeclaration: &[D3D11_SO_DECLARATION_ENTRY], pbufferstrides: &[u32], rasterizedstream: u32, pclasslinkage: P0) -> ::windows::core::Result + pub unsafe fn CreateGeometryShaderWithStreamOutput<'a, P0>(&self, pshaderbytecode: &[u8], psodeclaration: ::core::option::Option<&[D3D11_SO_DECLARATION_ENTRY]>, pbufferstrides: ::core::option::Option<&[u32]>, rasterizedstream: u32, pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateGeometryShaderWithStreamOutput)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psodeclaration)), psodeclaration.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbufferstrides)), pbufferstrides.len() as _, rasterizedstream, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateGeometryShaderWithStreamOutput)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(pshaderbytecode.as_ptr()), + pshaderbytecode.len() as _, + ::core::mem::transmute(psodeclaration.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + psodeclaration.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pbufferstrides.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pbufferstrides.as_deref().map_or(0, |slice| slice.len() as _), + rasterizedstream, + pclasslinkage.into().abi(), + ::core::mem::transmute(result__.as_mut_ptr()), + ) + .from_abi::(result__) } pub unsafe fn CreatePixelShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreatePixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreatePixelShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateHullShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateHullShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateHullShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateDomainShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateDomainShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateDomainShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateComputeShader<'a, P0>(&self, pshaderbytecode: &[u8], pclasslinkage: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ClassLinkage>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pshaderbytecode)), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateComputeShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pshaderbytecode.as_ptr()), pshaderbytecode.len() as _, pclasslinkage.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateClassLinkage(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -18844,14 +18914,14 @@ impl ID3D11Device5 { pub unsafe fn CheckCounter(&self, pdesc: &D3D11_COUNTER_DESC, ptype: &mut D3D11_COUNTER_TYPE, pactivecounters: &mut u32, szname: ::windows::core::PSTR, pnamelength: ::core::option::Option<&mut u32>, szunits: ::windows::core::PSTR, punitslength: ::core::option::Option<&mut u32>, szdescription: ::windows::core::PSTR, pdescriptionlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CheckCounter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(ptype), ::core::mem::transmute(pactivecounters), ::core::mem::transmute(szname), ::core::mem::transmute(pnamelength), ::core::mem::transmute(szunits), ::core::mem::transmute(punitslength), ::core::mem::transmute(szdescription), ::core::mem::transmute(pdescriptionlength)).ok() } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D11_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D11_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -18901,7 +18971,7 @@ impl ID3D11Device5 { #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] pub unsafe fn CreateDeviceContextState(&self, flags: u32, pfeaturelevels: &[super::Direct3D::D3D_FEATURE_LEVEL], sdkversion: u32, emulatedinterface: &::windows::core::GUID, pchosenfeaturelevel: ::core::option::Option<&mut super::Direct3D::D3D_FEATURE_LEVEL>, ppcontextstate: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateDeviceContextState)(::windows::core::Interface::as_raw(self), flags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfeaturelevels)), pfeaturelevels.len() as _, sdkversion, ::core::mem::transmute(emulatedinterface), ::core::mem::transmute(pchosenfeaturelevel), ::core::mem::transmute(ppcontextstate)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateDeviceContextState)(::windows::core::Interface::as_raw(self), flags, ::core::mem::transmute(pfeaturelevels.as_ptr()), pfeaturelevels.len() as _, sdkversion, ::core::mem::transmute(emulatedinterface), ::core::mem::transmute(pchosenfeaturelevel), ::core::mem::transmute(ppcontextstate)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -18928,7 +18998,7 @@ impl ID3D11Device5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.CreateDeferredContext2)(::windows::core::Interface::as_raw(self), contextflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D11_PACKED_MIP_DESC>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D11_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: &mut D3D11_SUBRESOURCE_TILING) + pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D11_PACKED_MIP_DESC>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D11_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D11_SUBRESOURCE_TILING) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Resource>>, { @@ -19168,8 +19238,8 @@ impl ID3D11DeviceChild { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -19234,8 +19304,8 @@ impl ID3D11DeviceContext { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -19243,26 +19313,26 @@ impl ID3D11DeviceContext { { (::windows::core::Interface::vtable(self).base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.into().abi()).ok() } - pub unsafe fn VSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).VSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn VSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).VSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).PSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn PSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).PSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSSetShader<'a, P0>(&self, ppixelshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn PSSetShader<'a, P0>(&self, ppixelshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11PixelShader>>, { - (::windows::core::Interface::vtable(self).PSSetShader)(::windows::core::Interface::as_raw(self), ppixelshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).PSSetShader)(::windows::core::Interface::as_raw(self), ppixelshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn PSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).PSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn PSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).PSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSSetShader<'a, P0>(&self, pvertexshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn VSSetShader<'a, P0>(&self, pvertexshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VertexShader>>, { - (::windows::core::Interface::vtable(self).VSSetShader)(::windows::core::Interface::as_raw(self), pvertexshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).VSSetShader)(::windows::core::Interface::as_raw(self), pvertexshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn DrawIndexed(&self, indexcount: u32, startindexlocation: u32, basevertexlocation: i32) { (::windows::core::Interface::vtable(self).DrawIndexed)(::windows::core::Interface::as_raw(self), indexcount, startindexlocation, basevertexlocation) @@ -19283,8 +19353,8 @@ impl ID3D11DeviceContext { { (::windows::core::Interface::vtable(self).Unmap)(::windows::core::Interface::as_raw(self), presource.into().abi(), subresource) } - pub unsafe fn PSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).PSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn PSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).PSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn IASetInputLayout<'a, P0>(&self, pinputlayout: P0) where @@ -19292,7 +19362,7 @@ impl ID3D11DeviceContext { { (::windows::core::Interface::vtable(self).IASetInputLayout)(::windows::core::Interface::as_raw(self), pinputlayout.into().abi()) } - pub unsafe fn IASetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: ::core::option::Option<&::core::option::Option>, pstrides: ::core::option::Option<&u32>, poffsets: ::core::option::Option<&u32>) { + pub unsafe fn IASetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: *const ::core::option::Option, pstrides: *const u32, poffsets: *const u32) { (::windows::core::Interface::vtable(self).IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppvertexbuffers), ::core::mem::transmute(pstrides), ::core::mem::transmute(poffsets)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -19309,25 +19379,25 @@ impl ID3D11DeviceContext { pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) { (::windows::core::Interface::vtable(self).DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation) } - pub unsafe fn GSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).GSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn GSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).GSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSSetShader<'a, P0>(&self, pshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn GSSetShader<'a, P0>(&self, pshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11GeometryShader>>, { - (::windows::core::Interface::vtable(self).GSSetShader)(::windows::core::Interface::as_raw(self), pshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).GSSetShader)(::windows::core::Interface::as_raw(self), pshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] pub unsafe fn IASetPrimitiveTopology(&self, topology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) { (::windows::core::Interface::vtable(self).IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), topology) } - pub unsafe fn VSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).VSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn VSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).VSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).VSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn VSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).VSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn Begin<'a, P0>(&self, pasync: P0) where @@ -19341,11 +19411,11 @@ impl ID3D11DeviceContext { { (::windows::core::Interface::vtable(self).End)(::windows::core::Interface::as_raw(self), pasync.into().abi()) } - pub unsafe fn GetData<'a, P0>(&self, pasync: P0, pdata: *mut ::core::ffi::c_void, datasize: u32, getdataflags: u32) -> ::windows::core::Result<()> + pub unsafe fn GetData<'a, P0>(&self, pasync: P0, pdata: ::core::option::Option<&mut [u8]>, getdataflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Asynchronous>>, { - (::windows::core::Interface::vtable(self).GetData)(::windows::core::Interface::as_raw(self), pasync.into().abi(), ::core::mem::transmute(pdata), datasize, getdataflags).ok() + (::windows::core::Interface::vtable(self).GetData)(::windows::core::Interface::as_raw(self), pasync.into().abi(), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), getdataflags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -19356,23 +19426,23 @@ impl ID3D11DeviceContext { { (::windows::core::Interface::vtable(self).SetPredication)(::windows::core::Interface::as_raw(self), ppredicate.into().abi(), predicatevalue.into()) } - pub unsafe fn GSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).GSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn GSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).GSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).GSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn GSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).GSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn OMSetRenderTargets<'a, P0>(&self, pprendertargetviews: &[::core::option::Option], pdepthstencilview: P0) + pub unsafe fn OMSetRenderTargets<'a, P0>(&self, pprendertargetviews: ::core::option::Option<&[::core::option::Option]>, pdepthstencilview: P0) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11DepthStencilView>>, { - (::windows::core::Interface::vtable(self).OMSetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pprendertargetviews)), pdepthstencilview.into().abi()) + (::windows::core::Interface::vtable(self).OMSetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdepthstencilview.into().abi()) } - pub unsafe fn OMSetRenderTargetsAndUnorderedAccessViews<'a, P0>(&self, pprendertargetviews: &[::core::option::Option], pdepthstencilview: P0, uavstartslot: u32, numuavs: u32, ppunorderedaccessviews: ::core::option::Option<&::core::option::Option>, puavinitialcounts: ::core::option::Option<&u32>) + pub unsafe fn OMSetRenderTargetsAndUnorderedAccessViews<'a, P0>(&self, pprendertargetviews: ::core::option::Option<&[::core::option::Option]>, pdepthstencilview: P0, uavstartslot: u32, numuavs: u32, ppunorderedaccessviews: *const ::core::option::Option, puavinitialcounts: *const u32) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11DepthStencilView>>, { - (::windows::core::Interface::vtable(self).OMSetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pprendertargetviews)), pdepthstencilview.into().abi(), uavstartslot, ::core::mem::transmute(numuavs), ::core::mem::transmute(ppunorderedaccessviews), ::core::mem::transmute(puavinitialcounts)) + (::windows::core::Interface::vtable(self).OMSetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdepthstencilview.into().abi(), uavstartslot, ::core::mem::transmute(numuavs), ::core::mem::transmute(ppunorderedaccessviews), ::core::mem::transmute(puavinitialcounts)) } pub unsafe fn OMSetBlendState<'a, P0>(&self, pblendstate: P0, blendfactor: ::core::option::Option<&f32>, samplemask: u32) where @@ -19386,7 +19456,7 @@ impl ID3D11DeviceContext { { (::windows::core::Interface::vtable(self).OMSetDepthStencilState)(::windows::core::Interface::as_raw(self), pdepthstencilstate.into().abi(), stencilref) } - pub unsafe fn SOSetTargets(&self, numbuffers: u32, ppsotargets: ::core::option::Option<&::core::option::Option>, poffsets: ::core::option::Option<&u32>) { + pub unsafe fn SOSetTargets(&self, numbuffers: u32, ppsotargets: *const ::core::option::Option, poffsets: *const u32) { (::windows::core::Interface::vtable(self).SOSetTargets)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppsotargets), ::core::mem::transmute(poffsets)) } pub unsafe fn DrawAuto(&self) { @@ -19419,13 +19489,13 @@ impl ID3D11DeviceContext { { (::windows::core::Interface::vtable(self).RSSetState)(::windows::core::Interface::as_raw(self), prasterizerstate.into().abi()) } - pub unsafe fn RSSetViewports(&self, pviewports: &[D3D11_VIEWPORT]) { - (::windows::core::Interface::vtable(self).RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviewports))) + pub unsafe fn RSSetViewports(&self, pviewports: ::core::option::Option<&[D3D11_VIEWPORT]>) { + (::windows::core::Interface::vtable(self).RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviewports.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + pub unsafe fn RSSetScissorRects(&self, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) { + (::windows::core::Interface::vtable(self).RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn CopySubresourceRegion<'a, P0, P1>(&self, pdstresource: P0, dstsubresource: u32, dstx: u32, dsty: u32, dstz: u32, psrcresource: P1, srcsubresource: u32, psrcbox: ::core::option::Option<&D3D11_BOX>) where @@ -19514,76 +19584,76 @@ impl ID3D11DeviceContext { { (::windows::core::Interface::vtable(self).ExecuteCommandList)(::windows::core::Interface::as_raw(self), pcommandlist.into().abi(), restorecontextstate.into()) } - pub unsafe fn HSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).HSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn HSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).HSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSSetShader<'a, P0>(&self, phullshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn HSSetShader<'a, P0>(&self, phullshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11HullShader>>, { - (::windows::core::Interface::vtable(self).HSSetShader)(::windows::core::Interface::as_raw(self), phullshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).HSSetShader)(::windows::core::Interface::as_raw(self), phullshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn HSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).HSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn HSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).HSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).HSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn HSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).HSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).DSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn DSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).DSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSSetShader<'a, P0>(&self, pdomainshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn DSSetShader<'a, P0>(&self, pdomainshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11DomainShader>>, { - (::windows::core::Interface::vtable(self).DSSetShader)(::windows::core::Interface::as_raw(self), pdomainshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).DSSetShader)(::windows::core::Interface::as_raw(self), pdomainshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn DSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).DSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn DSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).DSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).DSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn DSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).DSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).CSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn CSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).CSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSSetUnorderedAccessViews(&self, startslot: u32, numuavs: u32, ppunorderedaccessviews: ::core::option::Option<&::core::option::Option>, puavinitialcounts: ::core::option::Option<&u32>) { + pub unsafe fn CSSetUnorderedAccessViews(&self, startslot: u32, numuavs: u32, ppunorderedaccessviews: *const ::core::option::Option, puavinitialcounts: *const u32) { (::windows::core::Interface::vtable(self).CSSetUnorderedAccessViews)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numuavs), ::core::mem::transmute(ppunorderedaccessviews), ::core::mem::transmute(puavinitialcounts)) } - pub unsafe fn CSSetShader<'a, P0>(&self, pcomputeshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn CSSetShader<'a, P0>(&self, pcomputeshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ComputeShader>>, { - (::windows::core::Interface::vtable(self).CSSetShader)(::windows::core::Interface::as_raw(self), pcomputeshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).CSSetShader)(::windows::core::Interface::as_raw(self), pcomputeshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn CSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).CSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn CSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).CSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).CSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn CSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).CSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).VSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn VSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).VSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).PSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn PSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).PSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSGetShader(&self, pppixelshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn PSGetShader(&self, pppixelshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).PSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppixelshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn PSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).PSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn PSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).PSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetShader(&self, ppvertexshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn VSGetShader(&self, ppvertexshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).VSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppvertexshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn PSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).PSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn PSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).PSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn IAGetInputLayout(&self, ppinputlayout: ::core::option::Option<&mut ::core::option::Option>) { (::windows::core::Interface::vtable(self).IAGetInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppinputlayout)) } - pub unsafe fn IAGetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: ::core::option::Option<&mut ::core::option::Option>, pstrides: ::core::option::Option<&mut u32>, poffsets: ::core::option::Option<&mut u32>) { + pub unsafe fn IAGetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: *mut ::core::option::Option, pstrides: *mut u32, poffsets: *mut u32) { (::windows::core::Interface::vtable(self).IAGetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppvertexbuffers), ::core::mem::transmute(pstrides), ::core::mem::transmute(poffsets)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -19591,10 +19661,10 @@ impl ID3D11DeviceContext { pub unsafe fn IAGetIndexBuffer(&self, pindexbuffer: ::core::option::Option<&mut ::core::option::Option>, format: ::core::option::Option<&mut super::Dxgi::Common::DXGI_FORMAT>, offset: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).IAGetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pindexbuffer), ::core::mem::transmute(format), ::core::mem::transmute(offset)) } - pub unsafe fn GSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).GSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn GSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).GSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSGetShader(&self, ppgeometryshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn GSGetShader(&self, ppgeometryshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).GSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppgeometryshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] @@ -19602,28 +19672,28 @@ impl ID3D11DeviceContext { pub unsafe fn IAGetPrimitiveTopology(&self, ptopology: &mut super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) { (::windows::core::Interface::vtable(self).IAGetPrimitiveTopology)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptopology)) } - pub unsafe fn VSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).VSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn VSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).VSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).VSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn VSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).VSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetPredication(&self, pppredicate: ::core::option::Option<&mut ::core::option::Option>, ppredicatevalue: ::core::option::Option<&mut super::super::Foundation::BOOL>) { (::windows::core::Interface::vtable(self).GetPredication)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppredicate), ::core::mem::transmute(ppredicatevalue)) } - pub unsafe fn GSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).GSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn GSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).GSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).GSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn GSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).GSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn OMGetRenderTargets(&self, pprendertargetviews: &mut [::core::option::Option], ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>) { - (::windows::core::Interface::vtable(self).OMGetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprendertargetviews)), ::core::mem::transmute(ppdepthstencilview)) + pub unsafe fn OMGetRenderTargets(&self, pprendertargetviews: ::core::option::Option<&mut [::core::option::Option]>, ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>) { + (::windows::core::Interface::vtable(self).OMGetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(ppdepthstencilview)) } - pub unsafe fn OMGetRenderTargetsAndUnorderedAccessViews(&self, pprendertargetviews: &mut [::core::option::Option], ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>, uavstartslot: u32, ppunorderedaccessviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).OMGetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprendertargetviews)), ::core::mem::transmute(ppdepthstencilview), uavstartslot, ppunorderedaccessviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppunorderedaccessviews))) + pub unsafe fn OMGetRenderTargetsAndUnorderedAccessViews(&self, pprendertargetviews: ::core::option::Option<&mut [::core::option::Option]>, ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>, uavstartslot: u32, ppunorderedaccessviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).OMGetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(ppdepthstencilview), uavstartslot, ppunorderedaccessviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppunorderedaccessviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn OMGetBlendState(&self, ppblendstate: ::core::option::Option<&mut ::core::option::Option>, blendfactor: ::core::option::Option<&mut f32>, psamplemask: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).OMGetBlendState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppblendstate), ::core::mem::transmute(blendfactor), ::core::mem::transmute(psamplemask)) @@ -19631,58 +19701,58 @@ impl ID3D11DeviceContext { pub unsafe fn OMGetDepthStencilState(&self, ppdepthstencilstate: ::core::option::Option<&mut ::core::option::Option>, pstencilref: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).OMGetDepthStencilState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppdepthstencilstate), ::core::mem::transmute(pstencilref)) } - pub unsafe fn SOGetTargets(&self, ppsotargets: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).SOGetTargets)(::windows::core::Interface::as_raw(self), ppsotargets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsotargets))) + pub unsafe fn SOGetTargets(&self, ppsotargets: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).SOGetTargets)(::windows::core::Interface::as_raw(self), ppsotargets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsotargets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn RSGetState(&self, pprasterizerstate: ::core::option::Option<&mut ::core::option::Option>) { (::windows::core::Interface::vtable(self).RSGetState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprasterizerstate)) } - pub unsafe fn RSGetViewports(&self, pnumviewports: &mut u32, pviewports: ::core::option::Option<&mut D3D11_VIEWPORT>) { + pub unsafe fn RSGetViewports(&self, pnumviewports: &mut u32, pviewports: *mut D3D11_VIEWPORT) { (::windows::core::Interface::vtable(self).RSGetViewports)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnumviewports), ::core::mem::transmute(pviewports)) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RSGetScissorRects(&self, pnumrects: &mut u32, prects: ::core::option::Option<&mut super::super::Foundation::RECT>) { + pub unsafe fn RSGetScissorRects(&self, pnumrects: &mut u32, prects: *mut super::super::Foundation::RECT) { (::windows::core::Interface::vtable(self).RSGetScissorRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnumrects), ::core::mem::transmute(prects)) } - pub unsafe fn HSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).HSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn HSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).HSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSGetShader(&self, pphullshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn HSGetShader(&self, pphullshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).HSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pphullshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn HSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).HSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn HSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).HSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).HSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn HSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).HSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).DSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn DSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).DSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSGetShader(&self, ppdomainshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn DSGetShader(&self, ppdomainshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).DSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppdomainshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn DSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).DSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn DSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).DSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).DSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn DSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).DSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).CSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn CSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).CSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetUnorderedAccessViews(&self, startslot: u32, ppunorderedaccessviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).CSGetUnorderedAccessViews)(::windows::core::Interface::as_raw(self), startslot, ppunorderedaccessviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppunorderedaccessviews))) + pub unsafe fn CSGetUnorderedAccessViews(&self, startslot: u32, ppunorderedaccessviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).CSGetUnorderedAccessViews)(::windows::core::Interface::as_raw(self), startslot, ppunorderedaccessviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppunorderedaccessviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetShader(&self, ppcomputeshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn CSGetShader(&self, ppcomputeshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).CSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppcomputeshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn CSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).CSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn CSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).CSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).CSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn CSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).CSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn ClearState(&self) { (::windows::core::Interface::vtable(self).ClearState)(::windows::core::Interface::as_raw(self)) @@ -19914,8 +19984,8 @@ impl ID3D11DeviceContext1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -19923,26 +19993,26 @@ impl ID3D11DeviceContext1 { { (::windows::core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.into().abi()).ok() } - pub unsafe fn VSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.VSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn VSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.VSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.PSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn PSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.PSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSSetShader<'a, P0>(&self, ppixelshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn PSSetShader<'a, P0>(&self, ppixelshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11PixelShader>>, { - (::windows::core::Interface::vtable(self).base__.PSSetShader)(::windows::core::Interface::as_raw(self), ppixelshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.PSSetShader)(::windows::core::Interface::as_raw(self), ppixelshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn PSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.PSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn PSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.PSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSSetShader<'a, P0>(&self, pvertexshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn VSSetShader<'a, P0>(&self, pvertexshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VertexShader>>, { - (::windows::core::Interface::vtable(self).base__.VSSetShader)(::windows::core::Interface::as_raw(self), pvertexshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.VSSetShader)(::windows::core::Interface::as_raw(self), pvertexshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn DrawIndexed(&self, indexcount: u32, startindexlocation: u32, basevertexlocation: i32) { (::windows::core::Interface::vtable(self).base__.DrawIndexed)(::windows::core::Interface::as_raw(self), indexcount, startindexlocation, basevertexlocation) @@ -19963,8 +20033,8 @@ impl ID3D11DeviceContext1 { { (::windows::core::Interface::vtable(self).base__.Unmap)(::windows::core::Interface::as_raw(self), presource.into().abi(), subresource) } - pub unsafe fn PSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.PSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn PSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.PSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn IASetInputLayout<'a, P0>(&self, pinputlayout: P0) where @@ -19972,7 +20042,7 @@ impl ID3D11DeviceContext1 { { (::windows::core::Interface::vtable(self).base__.IASetInputLayout)(::windows::core::Interface::as_raw(self), pinputlayout.into().abi()) } - pub unsafe fn IASetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: ::core::option::Option<&::core::option::Option>, pstrides: ::core::option::Option<&u32>, poffsets: ::core::option::Option<&u32>) { + pub unsafe fn IASetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: *const ::core::option::Option, pstrides: *const u32, poffsets: *const u32) { (::windows::core::Interface::vtable(self).base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppvertexbuffers), ::core::mem::transmute(pstrides), ::core::mem::transmute(poffsets)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -19989,25 +20059,25 @@ impl ID3D11DeviceContext1 { pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) { (::windows::core::Interface::vtable(self).base__.DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation) } - pub unsafe fn GSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.GSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn GSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.GSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSSetShader<'a, P0>(&self, pshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn GSSetShader<'a, P0>(&self, pshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11GeometryShader>>, { - (::windows::core::Interface::vtable(self).base__.GSSetShader)(::windows::core::Interface::as_raw(self), pshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.GSSetShader)(::windows::core::Interface::as_raw(self), pshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] pub unsafe fn IASetPrimitiveTopology(&self, topology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) { (::windows::core::Interface::vtable(self).base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), topology) } - pub unsafe fn VSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.VSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn VSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.VSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.VSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn VSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.VSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn Begin<'a, P0>(&self, pasync: P0) where @@ -20021,11 +20091,11 @@ impl ID3D11DeviceContext1 { { (::windows::core::Interface::vtable(self).base__.End)(::windows::core::Interface::as_raw(self), pasync.into().abi()) } - pub unsafe fn GetData<'a, P0>(&self, pasync: P0, pdata: *mut ::core::ffi::c_void, datasize: u32, getdataflags: u32) -> ::windows::core::Result<()> + pub unsafe fn GetData<'a, P0>(&self, pasync: P0, pdata: ::core::option::Option<&mut [u8]>, getdataflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Asynchronous>>, { - (::windows::core::Interface::vtable(self).base__.GetData)(::windows::core::Interface::as_raw(self), pasync.into().abi(), ::core::mem::transmute(pdata), datasize, getdataflags).ok() + (::windows::core::Interface::vtable(self).base__.GetData)(::windows::core::Interface::as_raw(self), pasync.into().abi(), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), getdataflags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -20036,23 +20106,23 @@ impl ID3D11DeviceContext1 { { (::windows::core::Interface::vtable(self).base__.SetPredication)(::windows::core::Interface::as_raw(self), ppredicate.into().abi(), predicatevalue.into()) } - pub unsafe fn GSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.GSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn GSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.GSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.GSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn GSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.GSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn OMSetRenderTargets<'a, P0>(&self, pprendertargetviews: &[::core::option::Option], pdepthstencilview: P0) + pub unsafe fn OMSetRenderTargets<'a, P0>(&self, pprendertargetviews: ::core::option::Option<&[::core::option::Option]>, pdepthstencilview: P0) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11DepthStencilView>>, { - (::windows::core::Interface::vtable(self).base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pprendertargetviews)), pdepthstencilview.into().abi()) + (::windows::core::Interface::vtable(self).base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdepthstencilview.into().abi()) } - pub unsafe fn OMSetRenderTargetsAndUnorderedAccessViews<'a, P0>(&self, pprendertargetviews: &[::core::option::Option], pdepthstencilview: P0, uavstartslot: u32, numuavs: u32, ppunorderedaccessviews: ::core::option::Option<&::core::option::Option>, puavinitialcounts: ::core::option::Option<&u32>) + pub unsafe fn OMSetRenderTargetsAndUnorderedAccessViews<'a, P0>(&self, pprendertargetviews: ::core::option::Option<&[::core::option::Option]>, pdepthstencilview: P0, uavstartslot: u32, numuavs: u32, ppunorderedaccessviews: *const ::core::option::Option, puavinitialcounts: *const u32) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11DepthStencilView>>, { - (::windows::core::Interface::vtable(self).base__.OMSetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pprendertargetviews)), pdepthstencilview.into().abi(), uavstartslot, ::core::mem::transmute(numuavs), ::core::mem::transmute(ppunorderedaccessviews), ::core::mem::transmute(puavinitialcounts)) + (::windows::core::Interface::vtable(self).base__.OMSetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdepthstencilview.into().abi(), uavstartslot, ::core::mem::transmute(numuavs), ::core::mem::transmute(ppunorderedaccessviews), ::core::mem::transmute(puavinitialcounts)) } pub unsafe fn OMSetBlendState<'a, P0>(&self, pblendstate: P0, blendfactor: ::core::option::Option<&f32>, samplemask: u32) where @@ -20066,7 +20136,7 @@ impl ID3D11DeviceContext1 { { (::windows::core::Interface::vtable(self).base__.OMSetDepthStencilState)(::windows::core::Interface::as_raw(self), pdepthstencilstate.into().abi(), stencilref) } - pub unsafe fn SOSetTargets(&self, numbuffers: u32, ppsotargets: ::core::option::Option<&::core::option::Option>, poffsets: ::core::option::Option<&u32>) { + pub unsafe fn SOSetTargets(&self, numbuffers: u32, ppsotargets: *const ::core::option::Option, poffsets: *const u32) { (::windows::core::Interface::vtable(self).base__.SOSetTargets)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppsotargets), ::core::mem::transmute(poffsets)) } pub unsafe fn DrawAuto(&self) { @@ -20099,13 +20169,13 @@ impl ID3D11DeviceContext1 { { (::windows::core::Interface::vtable(self).base__.RSSetState)(::windows::core::Interface::as_raw(self), prasterizerstate.into().abi()) } - pub unsafe fn RSSetViewports(&self, pviewports: &[D3D11_VIEWPORT]) { - (::windows::core::Interface::vtable(self).base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviewports))) + pub unsafe fn RSSetViewports(&self, pviewports: ::core::option::Option<&[D3D11_VIEWPORT]>) { + (::windows::core::Interface::vtable(self).base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviewports.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + pub unsafe fn RSSetScissorRects(&self, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) { + (::windows::core::Interface::vtable(self).base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn CopySubresourceRegion<'a, P0, P1>(&self, pdstresource: P0, dstsubresource: u32, dstx: u32, dsty: u32, dstz: u32, psrcresource: P1, srcsubresource: u32, psrcbox: ::core::option::Option<&D3D11_BOX>) where @@ -20194,76 +20264,76 @@ impl ID3D11DeviceContext1 { { (::windows::core::Interface::vtable(self).base__.ExecuteCommandList)(::windows::core::Interface::as_raw(self), pcommandlist.into().abi(), restorecontextstate.into()) } - pub unsafe fn HSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.HSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn HSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.HSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSSetShader<'a, P0>(&self, phullshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn HSSetShader<'a, P0>(&self, phullshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11HullShader>>, { - (::windows::core::Interface::vtable(self).base__.HSSetShader)(::windows::core::Interface::as_raw(self), phullshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.HSSetShader)(::windows::core::Interface::as_raw(self), phullshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn HSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.HSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn HSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.HSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.HSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn HSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.HSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.DSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn DSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.DSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSSetShader<'a, P0>(&self, pdomainshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn DSSetShader<'a, P0>(&self, pdomainshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11DomainShader>>, { - (::windows::core::Interface::vtable(self).base__.DSSetShader)(::windows::core::Interface::as_raw(self), pdomainshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.DSSetShader)(::windows::core::Interface::as_raw(self), pdomainshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn DSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.DSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn DSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.DSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.DSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn DSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.DSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.CSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn CSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.CSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSSetUnorderedAccessViews(&self, startslot: u32, numuavs: u32, ppunorderedaccessviews: ::core::option::Option<&::core::option::Option>, puavinitialcounts: ::core::option::Option<&u32>) { + pub unsafe fn CSSetUnorderedAccessViews(&self, startslot: u32, numuavs: u32, ppunorderedaccessviews: *const ::core::option::Option, puavinitialcounts: *const u32) { (::windows::core::Interface::vtable(self).base__.CSSetUnorderedAccessViews)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numuavs), ::core::mem::transmute(ppunorderedaccessviews), ::core::mem::transmute(puavinitialcounts)) } - pub unsafe fn CSSetShader<'a, P0>(&self, pcomputeshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn CSSetShader<'a, P0>(&self, pcomputeshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ComputeShader>>, { - (::windows::core::Interface::vtable(self).base__.CSSetShader)(::windows::core::Interface::as_raw(self), pcomputeshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.CSSetShader)(::windows::core::Interface::as_raw(self), pcomputeshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn CSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.CSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn CSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.CSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.CSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn CSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.CSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.VSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn VSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.VSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.PSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn PSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.PSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSGetShader(&self, pppixelshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn PSGetShader(&self, pppixelshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.PSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppixelshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn PSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.PSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn PSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.PSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetShader(&self, ppvertexshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn VSGetShader(&self, ppvertexshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.VSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppvertexshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn PSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.PSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn PSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.PSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn IAGetInputLayout(&self, ppinputlayout: ::core::option::Option<&mut ::core::option::Option>) { (::windows::core::Interface::vtable(self).base__.IAGetInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppinputlayout)) } - pub unsafe fn IAGetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: ::core::option::Option<&mut ::core::option::Option>, pstrides: ::core::option::Option<&mut u32>, poffsets: ::core::option::Option<&mut u32>) { + pub unsafe fn IAGetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: *mut ::core::option::Option, pstrides: *mut u32, poffsets: *mut u32) { (::windows::core::Interface::vtable(self).base__.IAGetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppvertexbuffers), ::core::mem::transmute(pstrides), ::core::mem::transmute(poffsets)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -20271,10 +20341,10 @@ impl ID3D11DeviceContext1 { pub unsafe fn IAGetIndexBuffer(&self, pindexbuffer: ::core::option::Option<&mut ::core::option::Option>, format: ::core::option::Option<&mut super::Dxgi::Common::DXGI_FORMAT>, offset: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.IAGetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pindexbuffer), ::core::mem::transmute(format), ::core::mem::transmute(offset)) } - pub unsafe fn GSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.GSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn GSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.GSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSGetShader(&self, ppgeometryshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn GSGetShader(&self, ppgeometryshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.GSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppgeometryshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] @@ -20282,28 +20352,28 @@ impl ID3D11DeviceContext1 { pub unsafe fn IAGetPrimitiveTopology(&self, ptopology: &mut super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) { (::windows::core::Interface::vtable(self).base__.IAGetPrimitiveTopology)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptopology)) } - pub unsafe fn VSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.VSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn VSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.VSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.VSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn VSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.VSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetPredication(&self, pppredicate: ::core::option::Option<&mut ::core::option::Option>, ppredicatevalue: ::core::option::Option<&mut super::super::Foundation::BOOL>) { (::windows::core::Interface::vtable(self).base__.GetPredication)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppredicate), ::core::mem::transmute(ppredicatevalue)) } - pub unsafe fn GSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.GSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn GSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.GSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.GSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn GSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.GSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn OMGetRenderTargets(&self, pprendertargetviews: &mut [::core::option::Option], ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>) { - (::windows::core::Interface::vtable(self).base__.OMGetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprendertargetviews)), ::core::mem::transmute(ppdepthstencilview)) + pub unsafe fn OMGetRenderTargets(&self, pprendertargetviews: ::core::option::Option<&mut [::core::option::Option]>, ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>) { + (::windows::core::Interface::vtable(self).base__.OMGetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(ppdepthstencilview)) } - pub unsafe fn OMGetRenderTargetsAndUnorderedAccessViews(&self, pprendertargetviews: &mut [::core::option::Option], ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>, uavstartslot: u32, ppunorderedaccessviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.OMGetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprendertargetviews)), ::core::mem::transmute(ppdepthstencilview), uavstartslot, ppunorderedaccessviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppunorderedaccessviews))) + pub unsafe fn OMGetRenderTargetsAndUnorderedAccessViews(&self, pprendertargetviews: ::core::option::Option<&mut [::core::option::Option]>, ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>, uavstartslot: u32, ppunorderedaccessviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.OMGetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(ppdepthstencilview), uavstartslot, ppunorderedaccessviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppunorderedaccessviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn OMGetBlendState(&self, ppblendstate: ::core::option::Option<&mut ::core::option::Option>, blendfactor: ::core::option::Option<&mut f32>, psamplemask: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.OMGetBlendState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppblendstate), ::core::mem::transmute(blendfactor), ::core::mem::transmute(psamplemask)) @@ -20311,58 +20381,58 @@ impl ID3D11DeviceContext1 { pub unsafe fn OMGetDepthStencilState(&self, ppdepthstencilstate: ::core::option::Option<&mut ::core::option::Option>, pstencilref: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.OMGetDepthStencilState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppdepthstencilstate), ::core::mem::transmute(pstencilref)) } - pub unsafe fn SOGetTargets(&self, ppsotargets: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.SOGetTargets)(::windows::core::Interface::as_raw(self), ppsotargets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsotargets))) + pub unsafe fn SOGetTargets(&self, ppsotargets: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.SOGetTargets)(::windows::core::Interface::as_raw(self), ppsotargets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsotargets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn RSGetState(&self, pprasterizerstate: ::core::option::Option<&mut ::core::option::Option>) { (::windows::core::Interface::vtable(self).base__.RSGetState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprasterizerstate)) } - pub unsafe fn RSGetViewports(&self, pnumviewports: &mut u32, pviewports: ::core::option::Option<&mut D3D11_VIEWPORT>) { + pub unsafe fn RSGetViewports(&self, pnumviewports: &mut u32, pviewports: *mut D3D11_VIEWPORT) { (::windows::core::Interface::vtable(self).base__.RSGetViewports)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnumviewports), ::core::mem::transmute(pviewports)) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RSGetScissorRects(&self, pnumrects: &mut u32, prects: ::core::option::Option<&mut super::super::Foundation::RECT>) { + pub unsafe fn RSGetScissorRects(&self, pnumrects: &mut u32, prects: *mut super::super::Foundation::RECT) { (::windows::core::Interface::vtable(self).base__.RSGetScissorRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnumrects), ::core::mem::transmute(prects)) } - pub unsafe fn HSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.HSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn HSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.HSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSGetShader(&self, pphullshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn HSGetShader(&self, pphullshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.HSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pphullshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn HSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.HSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn HSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.HSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.HSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn HSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.HSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.DSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn DSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.DSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSGetShader(&self, ppdomainshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn DSGetShader(&self, ppdomainshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.DSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppdomainshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn DSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.DSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn DSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.DSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.DSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn DSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.DSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.CSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn CSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.CSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetUnorderedAccessViews(&self, startslot: u32, ppunorderedaccessviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.CSGetUnorderedAccessViews)(::windows::core::Interface::as_raw(self), startslot, ppunorderedaccessviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppunorderedaccessviews))) + pub unsafe fn CSGetUnorderedAccessViews(&self, startslot: u32, ppunorderedaccessviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.CSGetUnorderedAccessViews)(::windows::core::Interface::as_raw(self), startslot, ppunorderedaccessviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppunorderedaccessviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetShader(&self, ppcomputeshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn CSGetShader(&self, ppcomputeshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.CSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppcomputeshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn CSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.CSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn CSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.CSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.CSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn CSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.CSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn ClearState(&self) { (::windows::core::Interface::vtable(self).base__.ClearState)(::windows::core::Interface::as_raw(self)) @@ -20410,40 +20480,40 @@ impl ID3D11DeviceContext1 { { (::windows::core::Interface::vtable(self).DiscardView)(::windows::core::Interface::as_raw(self), presourceview.into().abi()) } - pub unsafe fn VSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn VSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).VSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn HSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn HSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).HSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn DSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn DSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).DSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn GSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn GSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).GSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn PSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn PSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).PSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn CSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn CSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).CSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn VSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn VSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).VSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn HSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn HSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).HSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn DSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn DSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).DSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn GSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn GSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).GSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn PSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn PSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).PSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn CSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn CSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).CSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } pub unsafe fn SwapDeviceContextState<'a, P0>(&self, pstate: P0, pppreviousstate: ::core::option::Option<&mut ::core::option::Option>) @@ -20454,19 +20524,19 @@ impl ID3D11DeviceContext1 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn ClearView<'a, P0>(&self, pview: P0, color: &f32, prect: &[super::super::Foundation::RECT]) + pub unsafe fn ClearView<'a, P0>(&self, pview: P0, color: &f32, prect: ::core::option::Option<&[super::super::Foundation::RECT]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11View>>, { - (::windows::core::Interface::vtable(self).ClearView)(::windows::core::Interface::as_raw(self), pview.into().abi(), ::core::mem::transmute(color), ::core::mem::transmute(::windows::core::as_ptr_or_null(prect)), prect.len() as _) + (::windows::core::Interface::vtable(self).ClearView)(::windows::core::Interface::as_raw(self), pview.into().abi(), ::core::mem::transmute(color), ::core::mem::transmute(prect.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prect.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn DiscardView1<'a, P0>(&self, presourceview: P0, prects: &[super::super::Foundation::RECT]) + pub unsafe fn DiscardView1<'a, P0>(&self, presourceview: P0, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11View>>, { - (::windows::core::Interface::vtable(self).DiscardView1)(::windows::core::Interface::as_raw(self), presourceview.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(prects)), prects.len() as _) + (::windows::core::Interface::vtable(self).DiscardView1)(::windows::core::Interface::as_raw(self), presourceview.into().abi(), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prects.as_deref().map_or(0, |slice| slice.len() as _)) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -20576,8 +20646,8 @@ impl ID3D11DeviceContext2 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -20585,26 +20655,26 @@ impl ID3D11DeviceContext2 { { (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.into().abi()).ok() } - pub unsafe fn VSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.VSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn VSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.VSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.PSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn PSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.PSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSSetShader<'a, P0>(&self, ppixelshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn PSSetShader<'a, P0>(&self, ppixelshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11PixelShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.PSSetShader)(::windows::core::Interface::as_raw(self), ppixelshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.PSSetShader)(::windows::core::Interface::as_raw(self), ppixelshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn PSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.PSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn PSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.PSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSSetShader<'a, P0>(&self, pvertexshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn VSSetShader<'a, P0>(&self, pvertexshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VertexShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.VSSetShader)(::windows::core::Interface::as_raw(self), pvertexshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.VSSetShader)(::windows::core::Interface::as_raw(self), pvertexshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn DrawIndexed(&self, indexcount: u32, startindexlocation: u32, basevertexlocation: i32) { (::windows::core::Interface::vtable(self).base__.base__.DrawIndexed)(::windows::core::Interface::as_raw(self), indexcount, startindexlocation, basevertexlocation) @@ -20625,8 +20695,8 @@ impl ID3D11DeviceContext2 { { (::windows::core::Interface::vtable(self).base__.base__.Unmap)(::windows::core::Interface::as_raw(self), presource.into().abi(), subresource) } - pub unsafe fn PSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.PSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn PSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.PSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn IASetInputLayout<'a, P0>(&self, pinputlayout: P0) where @@ -20634,7 +20704,7 @@ impl ID3D11DeviceContext2 { { (::windows::core::Interface::vtable(self).base__.base__.IASetInputLayout)(::windows::core::Interface::as_raw(self), pinputlayout.into().abi()) } - pub unsafe fn IASetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: ::core::option::Option<&::core::option::Option>, pstrides: ::core::option::Option<&u32>, poffsets: ::core::option::Option<&u32>) { + pub unsafe fn IASetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: *const ::core::option::Option, pstrides: *const u32, poffsets: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppvertexbuffers), ::core::mem::transmute(pstrides), ::core::mem::transmute(poffsets)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -20651,25 +20721,25 @@ impl ID3D11DeviceContext2 { pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) { (::windows::core::Interface::vtable(self).base__.base__.DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation) } - pub unsafe fn GSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.GSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn GSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.GSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSSetShader<'a, P0>(&self, pshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn GSSetShader<'a, P0>(&self, pshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11GeometryShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.GSSetShader)(::windows::core::Interface::as_raw(self), pshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.GSSetShader)(::windows::core::Interface::as_raw(self), pshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] pub unsafe fn IASetPrimitiveTopology(&self, topology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) { (::windows::core::Interface::vtable(self).base__.base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), topology) } - pub unsafe fn VSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.VSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn VSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.VSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.VSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn VSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.VSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn Begin<'a, P0>(&self, pasync: P0) where @@ -20683,11 +20753,11 @@ impl ID3D11DeviceContext2 { { (::windows::core::Interface::vtable(self).base__.base__.End)(::windows::core::Interface::as_raw(self), pasync.into().abi()) } - pub unsafe fn GetData<'a, P0>(&self, pasync: P0, pdata: *mut ::core::ffi::c_void, datasize: u32, getdataflags: u32) -> ::windows::core::Result<()> + pub unsafe fn GetData<'a, P0>(&self, pasync: P0, pdata: ::core::option::Option<&mut [u8]>, getdataflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Asynchronous>>, { - (::windows::core::Interface::vtable(self).base__.base__.GetData)(::windows::core::Interface::as_raw(self), pasync.into().abi(), ::core::mem::transmute(pdata), datasize, getdataflags).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetData)(::windows::core::Interface::as_raw(self), pasync.into().abi(), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), getdataflags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -20698,23 +20768,23 @@ impl ID3D11DeviceContext2 { { (::windows::core::Interface::vtable(self).base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), ppredicate.into().abi(), predicatevalue.into()) } - pub unsafe fn GSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.GSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn GSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.GSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.GSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn GSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.GSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn OMSetRenderTargets<'a, P0>(&self, pprendertargetviews: &[::core::option::Option], pdepthstencilview: P0) + pub unsafe fn OMSetRenderTargets<'a, P0>(&self, pprendertargetviews: ::core::option::Option<&[::core::option::Option]>, pdepthstencilview: P0) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11DepthStencilView>>, { - (::windows::core::Interface::vtable(self).base__.base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pprendertargetviews)), pdepthstencilview.into().abi()) + (::windows::core::Interface::vtable(self).base__.base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdepthstencilview.into().abi()) } - pub unsafe fn OMSetRenderTargetsAndUnorderedAccessViews<'a, P0>(&self, pprendertargetviews: &[::core::option::Option], pdepthstencilview: P0, uavstartslot: u32, numuavs: u32, ppunorderedaccessviews: ::core::option::Option<&::core::option::Option>, puavinitialcounts: ::core::option::Option<&u32>) + pub unsafe fn OMSetRenderTargetsAndUnorderedAccessViews<'a, P0>(&self, pprendertargetviews: ::core::option::Option<&[::core::option::Option]>, pdepthstencilview: P0, uavstartslot: u32, numuavs: u32, ppunorderedaccessviews: *const ::core::option::Option, puavinitialcounts: *const u32) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11DepthStencilView>>, { - (::windows::core::Interface::vtable(self).base__.base__.OMSetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pprendertargetviews)), pdepthstencilview.into().abi(), uavstartslot, ::core::mem::transmute(numuavs), ::core::mem::transmute(ppunorderedaccessviews), ::core::mem::transmute(puavinitialcounts)) + (::windows::core::Interface::vtable(self).base__.base__.OMSetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdepthstencilview.into().abi(), uavstartslot, ::core::mem::transmute(numuavs), ::core::mem::transmute(ppunorderedaccessviews), ::core::mem::transmute(puavinitialcounts)) } pub unsafe fn OMSetBlendState<'a, P0>(&self, pblendstate: P0, blendfactor: ::core::option::Option<&f32>, samplemask: u32) where @@ -20728,7 +20798,7 @@ impl ID3D11DeviceContext2 { { (::windows::core::Interface::vtable(self).base__.base__.OMSetDepthStencilState)(::windows::core::Interface::as_raw(self), pdepthstencilstate.into().abi(), stencilref) } - pub unsafe fn SOSetTargets(&self, numbuffers: u32, ppsotargets: ::core::option::Option<&::core::option::Option>, poffsets: ::core::option::Option<&u32>) { + pub unsafe fn SOSetTargets(&self, numbuffers: u32, ppsotargets: *const ::core::option::Option, poffsets: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppsotargets), ::core::mem::transmute(poffsets)) } pub unsafe fn DrawAuto(&self) { @@ -20761,13 +20831,13 @@ impl ID3D11DeviceContext2 { { (::windows::core::Interface::vtable(self).base__.base__.RSSetState)(::windows::core::Interface::as_raw(self), prasterizerstate.into().abi()) } - pub unsafe fn RSSetViewports(&self, pviewports: &[D3D11_VIEWPORT]) { - (::windows::core::Interface::vtable(self).base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviewports))) + pub unsafe fn RSSetViewports(&self, pviewports: ::core::option::Option<&[D3D11_VIEWPORT]>) { + (::windows::core::Interface::vtable(self).base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviewports.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + pub unsafe fn RSSetScissorRects(&self, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) { + (::windows::core::Interface::vtable(self).base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn CopySubresourceRegion<'a, P0, P1>(&self, pdstresource: P0, dstsubresource: u32, dstx: u32, dsty: u32, dstz: u32, psrcresource: P1, srcsubresource: u32, psrcbox: ::core::option::Option<&D3D11_BOX>) where @@ -20856,76 +20926,76 @@ impl ID3D11DeviceContext2 { { (::windows::core::Interface::vtable(self).base__.base__.ExecuteCommandList)(::windows::core::Interface::as_raw(self), pcommandlist.into().abi(), restorecontextstate.into()) } - pub unsafe fn HSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.HSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn HSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.HSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSSetShader<'a, P0>(&self, phullshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn HSSetShader<'a, P0>(&self, phullshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11HullShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.HSSetShader)(::windows::core::Interface::as_raw(self), phullshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.HSSetShader)(::windows::core::Interface::as_raw(self), phullshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn HSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.HSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn HSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.HSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.HSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn HSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.HSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.DSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn DSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.DSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSSetShader<'a, P0>(&self, pdomainshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn DSSetShader<'a, P0>(&self, pdomainshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11DomainShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.DSSetShader)(::windows::core::Interface::as_raw(self), pdomainshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.DSSetShader)(::windows::core::Interface::as_raw(self), pdomainshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn DSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.DSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn DSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.DSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.DSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn DSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.DSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.CSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn CSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.CSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSSetUnorderedAccessViews(&self, startslot: u32, numuavs: u32, ppunorderedaccessviews: ::core::option::Option<&::core::option::Option>, puavinitialcounts: ::core::option::Option<&u32>) { + pub unsafe fn CSSetUnorderedAccessViews(&self, startslot: u32, numuavs: u32, ppunorderedaccessviews: *const ::core::option::Option, puavinitialcounts: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.CSSetUnorderedAccessViews)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numuavs), ::core::mem::transmute(ppunorderedaccessviews), ::core::mem::transmute(puavinitialcounts)) } - pub unsafe fn CSSetShader<'a, P0>(&self, pcomputeshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn CSSetShader<'a, P0>(&self, pcomputeshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ComputeShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.CSSetShader)(::windows::core::Interface::as_raw(self), pcomputeshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.CSSetShader)(::windows::core::Interface::as_raw(self), pcomputeshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn CSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.CSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn CSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.CSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.CSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn CSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.CSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.VSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn VSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.VSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.PSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn PSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.PSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSGetShader(&self, pppixelshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn PSGetShader(&self, pppixelshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.PSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppixelshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn PSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.PSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn PSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.PSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetShader(&self, ppvertexshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn VSGetShader(&self, ppvertexshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.VSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppvertexshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn PSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.PSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn PSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.PSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn IAGetInputLayout(&self, ppinputlayout: ::core::option::Option<&mut ::core::option::Option>) { (::windows::core::Interface::vtable(self).base__.base__.IAGetInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppinputlayout)) } - pub unsafe fn IAGetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: ::core::option::Option<&mut ::core::option::Option>, pstrides: ::core::option::Option<&mut u32>, poffsets: ::core::option::Option<&mut u32>) { + pub unsafe fn IAGetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: *mut ::core::option::Option, pstrides: *mut u32, poffsets: *mut u32) { (::windows::core::Interface::vtable(self).base__.base__.IAGetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppvertexbuffers), ::core::mem::transmute(pstrides), ::core::mem::transmute(poffsets)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -20933,10 +21003,10 @@ impl ID3D11DeviceContext2 { pub unsafe fn IAGetIndexBuffer(&self, pindexbuffer: ::core::option::Option<&mut ::core::option::Option>, format: ::core::option::Option<&mut super::Dxgi::Common::DXGI_FORMAT>, offset: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.IAGetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pindexbuffer), ::core::mem::transmute(format), ::core::mem::transmute(offset)) } - pub unsafe fn GSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.GSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn GSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.GSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSGetShader(&self, ppgeometryshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn GSGetShader(&self, ppgeometryshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.GSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppgeometryshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] @@ -20944,28 +21014,28 @@ impl ID3D11DeviceContext2 { pub unsafe fn IAGetPrimitiveTopology(&self, ptopology: &mut super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) { (::windows::core::Interface::vtable(self).base__.base__.IAGetPrimitiveTopology)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptopology)) } - pub unsafe fn VSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.VSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn VSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.VSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.VSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn VSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.VSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetPredication(&self, pppredicate: ::core::option::Option<&mut ::core::option::Option>, ppredicatevalue: ::core::option::Option<&mut super::super::Foundation::BOOL>) { (::windows::core::Interface::vtable(self).base__.base__.GetPredication)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppredicate), ::core::mem::transmute(ppredicatevalue)) } - pub unsafe fn GSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.GSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn GSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.GSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.GSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn GSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.GSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn OMGetRenderTargets(&self, pprendertargetviews: &mut [::core::option::Option], ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>) { - (::windows::core::Interface::vtable(self).base__.base__.OMGetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprendertargetviews)), ::core::mem::transmute(ppdepthstencilview)) + pub unsafe fn OMGetRenderTargets(&self, pprendertargetviews: ::core::option::Option<&mut [::core::option::Option]>, ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>) { + (::windows::core::Interface::vtable(self).base__.base__.OMGetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(ppdepthstencilview)) } - pub unsafe fn OMGetRenderTargetsAndUnorderedAccessViews(&self, pprendertargetviews: &mut [::core::option::Option], ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>, uavstartslot: u32, ppunorderedaccessviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.OMGetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprendertargetviews)), ::core::mem::transmute(ppdepthstencilview), uavstartslot, ppunorderedaccessviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppunorderedaccessviews))) + pub unsafe fn OMGetRenderTargetsAndUnorderedAccessViews(&self, pprendertargetviews: ::core::option::Option<&mut [::core::option::Option]>, ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>, uavstartslot: u32, ppunorderedaccessviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.OMGetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(ppdepthstencilview), uavstartslot, ppunorderedaccessviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppunorderedaccessviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn OMGetBlendState(&self, ppblendstate: ::core::option::Option<&mut ::core::option::Option>, blendfactor: ::core::option::Option<&mut f32>, psamplemask: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.OMGetBlendState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppblendstate), ::core::mem::transmute(blendfactor), ::core::mem::transmute(psamplemask)) @@ -20973,58 +21043,58 @@ impl ID3D11DeviceContext2 { pub unsafe fn OMGetDepthStencilState(&self, ppdepthstencilstate: ::core::option::Option<&mut ::core::option::Option>, pstencilref: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.OMGetDepthStencilState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppdepthstencilstate), ::core::mem::transmute(pstencilref)) } - pub unsafe fn SOGetTargets(&self, ppsotargets: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.SOGetTargets)(::windows::core::Interface::as_raw(self), ppsotargets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsotargets))) + pub unsafe fn SOGetTargets(&self, ppsotargets: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.SOGetTargets)(::windows::core::Interface::as_raw(self), ppsotargets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsotargets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn RSGetState(&self, pprasterizerstate: ::core::option::Option<&mut ::core::option::Option>) { (::windows::core::Interface::vtable(self).base__.base__.RSGetState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprasterizerstate)) } - pub unsafe fn RSGetViewports(&self, pnumviewports: &mut u32, pviewports: ::core::option::Option<&mut D3D11_VIEWPORT>) { + pub unsafe fn RSGetViewports(&self, pnumviewports: &mut u32, pviewports: *mut D3D11_VIEWPORT) { (::windows::core::Interface::vtable(self).base__.base__.RSGetViewports)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnumviewports), ::core::mem::transmute(pviewports)) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RSGetScissorRects(&self, pnumrects: &mut u32, prects: ::core::option::Option<&mut super::super::Foundation::RECT>) { + pub unsafe fn RSGetScissorRects(&self, pnumrects: &mut u32, prects: *mut super::super::Foundation::RECT) { (::windows::core::Interface::vtable(self).base__.base__.RSGetScissorRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnumrects), ::core::mem::transmute(prects)) } - pub unsafe fn HSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.HSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn HSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.HSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSGetShader(&self, pphullshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn HSGetShader(&self, pphullshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.HSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pphullshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn HSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.HSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn HSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.HSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.HSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn HSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.HSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.DSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn DSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.DSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSGetShader(&self, ppdomainshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn DSGetShader(&self, ppdomainshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.DSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppdomainshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn DSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.DSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn DSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.DSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.DSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn DSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.DSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.CSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn CSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.CSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetUnorderedAccessViews(&self, startslot: u32, ppunorderedaccessviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.CSGetUnorderedAccessViews)(::windows::core::Interface::as_raw(self), startslot, ppunorderedaccessviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppunorderedaccessviews))) + pub unsafe fn CSGetUnorderedAccessViews(&self, startslot: u32, ppunorderedaccessviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.CSGetUnorderedAccessViews)(::windows::core::Interface::as_raw(self), startslot, ppunorderedaccessviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppunorderedaccessviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetShader(&self, ppcomputeshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn CSGetShader(&self, ppcomputeshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.CSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppcomputeshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn CSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.CSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn CSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.CSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.CSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn CSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.CSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn ClearState(&self) { (::windows::core::Interface::vtable(self).base__.base__.ClearState)(::windows::core::Interface::as_raw(self)) @@ -21072,40 +21142,40 @@ impl ID3D11DeviceContext2 { { (::windows::core::Interface::vtable(self).base__.DiscardView)(::windows::core::Interface::as_raw(self), presourceview.into().abi()) } - pub unsafe fn VSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn VSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.VSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn HSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn HSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.HSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn DSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn DSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.DSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn GSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn GSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.GSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn PSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn PSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.PSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn CSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn CSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.CSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn VSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn VSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.VSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn HSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn HSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.HSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn DSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn DSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.DSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn GSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn GSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.GSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn PSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn PSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.PSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn CSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn CSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.CSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } pub unsafe fn SwapDeviceContextState<'a, P0>(&self, pstate: P0, pppreviousstate: ::core::option::Option<&mut ::core::option::Option>) @@ -21116,23 +21186,23 @@ impl ID3D11DeviceContext2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn ClearView<'a, P0>(&self, pview: P0, color: &f32, prect: &[super::super::Foundation::RECT]) + pub unsafe fn ClearView<'a, P0>(&self, pview: P0, color: &f32, prect: ::core::option::Option<&[super::super::Foundation::RECT]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11View>>, { - (::windows::core::Interface::vtable(self).base__.ClearView)(::windows::core::Interface::as_raw(self), pview.into().abi(), ::core::mem::transmute(color), ::core::mem::transmute(::windows::core::as_ptr_or_null(prect)), prect.len() as _) + (::windows::core::Interface::vtable(self).base__.ClearView)(::windows::core::Interface::as_raw(self), pview.into().abi(), ::core::mem::transmute(color), ::core::mem::transmute(prect.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prect.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn DiscardView1<'a, P0>(&self, presourceview: P0, prects: &[super::super::Foundation::RECT]) + pub unsafe fn DiscardView1<'a, P0>(&self, presourceview: P0, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11View>>, { - (::windows::core::Interface::vtable(self).base__.DiscardView1)(::windows::core::Interface::as_raw(self), presourceview.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(prects)), prects.len() as _) + (::windows::core::Interface::vtable(self).base__.DiscardView1)(::windows::core::Interface::as_raw(self), presourceview.into().abi(), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prects.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn UpdateTileMappings<'a, P0, P1>(&self, ptiledresource: P0, numtiledresourceregions: u32, ptiledresourceregionstartcoordinates: ::core::option::Option<&D3D11_TILED_RESOURCE_COORDINATE>, ptiledresourceregionsizes: ::core::option::Option<&D3D11_TILE_REGION_SIZE>, ptilepool: P1, numranges: u32, prangeflags: ::core::option::Option<&u32>, ptilepoolstartoffsets: ::core::option::Option<&u32>, prangetilecounts: ::core::option::Option<&u32>, flags: u32) -> ::windows::core::Result<()> + pub unsafe fn UpdateTileMappings<'a, P0, P1>(&self, ptiledresource: P0, numtiledresourceregions: u32, ptiledresourceregionstartcoordinates: *const D3D11_TILED_RESOURCE_COORDINATE, ptiledresourceregionsizes: *const D3D11_TILE_REGION_SIZE, ptilepool: P1, numranges: u32, prangeflags: *const u32, ptilepoolstartoffsets: *const u32, prangetilecounts: *const u32, flags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Resource>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Buffer>>, @@ -21321,8 +21391,8 @@ impl ID3D11DeviceContext3 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -21330,26 +21400,26 @@ impl ID3D11DeviceContext3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.into().abi()).ok() } - pub unsafe fn VSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.VSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn VSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.VSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.PSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn PSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.PSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSSetShader<'a, P0>(&self, ppixelshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn PSSetShader<'a, P0>(&self, ppixelshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11PixelShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.PSSetShader)(::windows::core::Interface::as_raw(self), ppixelshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.base__.PSSetShader)(::windows::core::Interface::as_raw(self), ppixelshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn PSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.PSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn PSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.PSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSSetShader<'a, P0>(&self, pvertexshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn VSSetShader<'a, P0>(&self, pvertexshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VertexShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.VSSetShader)(::windows::core::Interface::as_raw(self), pvertexshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.base__.VSSetShader)(::windows::core::Interface::as_raw(self), pvertexshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn DrawIndexed(&self, indexcount: u32, startindexlocation: u32, basevertexlocation: i32) { (::windows::core::Interface::vtable(self).base__.base__.base__.DrawIndexed)(::windows::core::Interface::as_raw(self), indexcount, startindexlocation, basevertexlocation) @@ -21370,8 +21440,8 @@ impl ID3D11DeviceContext3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.Unmap)(::windows::core::Interface::as_raw(self), presource.into().abi(), subresource) } - pub unsafe fn PSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.PSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn PSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.PSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn IASetInputLayout<'a, P0>(&self, pinputlayout: P0) where @@ -21379,7 +21449,7 @@ impl ID3D11DeviceContext3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.IASetInputLayout)(::windows::core::Interface::as_raw(self), pinputlayout.into().abi()) } - pub unsafe fn IASetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: ::core::option::Option<&::core::option::Option>, pstrides: ::core::option::Option<&u32>, poffsets: ::core::option::Option<&u32>) { + pub unsafe fn IASetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: *const ::core::option::Option, pstrides: *const u32, poffsets: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppvertexbuffers), ::core::mem::transmute(pstrides), ::core::mem::transmute(poffsets)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -21396,25 +21466,25 @@ impl ID3D11DeviceContext3 { pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation) } - pub unsafe fn GSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.GSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn GSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.GSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSSetShader<'a, P0>(&self, pshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn GSSetShader<'a, P0>(&self, pshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11GeometryShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.GSSetShader)(::windows::core::Interface::as_raw(self), pshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.base__.GSSetShader)(::windows::core::Interface::as_raw(self), pshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] pub unsafe fn IASetPrimitiveTopology(&self, topology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) { (::windows::core::Interface::vtable(self).base__.base__.base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), topology) } - pub unsafe fn VSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.VSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn VSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.VSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.VSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn VSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.VSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn Begin<'a, P0>(&self, pasync: P0) where @@ -21428,11 +21498,11 @@ impl ID3D11DeviceContext3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.End)(::windows::core::Interface::as_raw(self), pasync.into().abi()) } - pub unsafe fn GetData<'a, P0>(&self, pasync: P0, pdata: *mut ::core::ffi::c_void, datasize: u32, getdataflags: u32) -> ::windows::core::Result<()> + pub unsafe fn GetData<'a, P0>(&self, pasync: P0, pdata: ::core::option::Option<&mut [u8]>, getdataflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Asynchronous>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetData)(::windows::core::Interface::as_raw(self), pasync.into().abi(), ::core::mem::transmute(pdata), datasize, getdataflags).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.GetData)(::windows::core::Interface::as_raw(self), pasync.into().abi(), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), getdataflags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -21443,23 +21513,23 @@ impl ID3D11DeviceContext3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), ppredicate.into().abi(), predicatevalue.into()) } - pub unsafe fn GSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.GSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn GSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.GSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.GSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn GSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.GSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn OMSetRenderTargets<'a, P0>(&self, pprendertargetviews: &[::core::option::Option], pdepthstencilview: P0) + pub unsafe fn OMSetRenderTargets<'a, P0>(&self, pprendertargetviews: ::core::option::Option<&[::core::option::Option]>, pdepthstencilview: P0) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11DepthStencilView>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pprendertargetviews)), pdepthstencilview.into().abi()) + (::windows::core::Interface::vtable(self).base__.base__.base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdepthstencilview.into().abi()) } - pub unsafe fn OMSetRenderTargetsAndUnorderedAccessViews<'a, P0>(&self, pprendertargetviews: &[::core::option::Option], pdepthstencilview: P0, uavstartslot: u32, numuavs: u32, ppunorderedaccessviews: ::core::option::Option<&::core::option::Option>, puavinitialcounts: ::core::option::Option<&u32>) + pub unsafe fn OMSetRenderTargetsAndUnorderedAccessViews<'a, P0>(&self, pprendertargetviews: ::core::option::Option<&[::core::option::Option]>, pdepthstencilview: P0, uavstartslot: u32, numuavs: u32, ppunorderedaccessviews: *const ::core::option::Option, puavinitialcounts: *const u32) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11DepthStencilView>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.OMSetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pprendertargetviews)), pdepthstencilview.into().abi(), uavstartslot, ::core::mem::transmute(numuavs), ::core::mem::transmute(ppunorderedaccessviews), ::core::mem::transmute(puavinitialcounts)) + (::windows::core::Interface::vtable(self).base__.base__.base__.OMSetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdepthstencilview.into().abi(), uavstartslot, ::core::mem::transmute(numuavs), ::core::mem::transmute(ppunorderedaccessviews), ::core::mem::transmute(puavinitialcounts)) } pub unsafe fn OMSetBlendState<'a, P0>(&self, pblendstate: P0, blendfactor: ::core::option::Option<&f32>, samplemask: u32) where @@ -21473,7 +21543,7 @@ impl ID3D11DeviceContext3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.OMSetDepthStencilState)(::windows::core::Interface::as_raw(self), pdepthstencilstate.into().abi(), stencilref) } - pub unsafe fn SOSetTargets(&self, numbuffers: u32, ppsotargets: ::core::option::Option<&::core::option::Option>, poffsets: ::core::option::Option<&u32>) { + pub unsafe fn SOSetTargets(&self, numbuffers: u32, ppsotargets: *const ::core::option::Option, poffsets: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppsotargets), ::core::mem::transmute(poffsets)) } pub unsafe fn DrawAuto(&self) { @@ -21506,13 +21576,13 @@ impl ID3D11DeviceContext3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.RSSetState)(::windows::core::Interface::as_raw(self), prasterizerstate.into().abi()) } - pub unsafe fn RSSetViewports(&self, pviewports: &[D3D11_VIEWPORT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviewports))) + pub unsafe fn RSSetViewports(&self, pviewports: ::core::option::Option<&[D3D11_VIEWPORT]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviewports.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + pub unsafe fn RSSetScissorRects(&self, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn CopySubresourceRegion<'a, P0, P1>(&self, pdstresource: P0, dstsubresource: u32, dstx: u32, dsty: u32, dstz: u32, psrcresource: P1, srcsubresource: u32, psrcbox: ::core::option::Option<&D3D11_BOX>) where @@ -21601,76 +21671,76 @@ impl ID3D11DeviceContext3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.ExecuteCommandList)(::windows::core::Interface::as_raw(self), pcommandlist.into().abi(), restorecontextstate.into()) } - pub unsafe fn HSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.HSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn HSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.HSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSSetShader<'a, P0>(&self, phullshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn HSSetShader<'a, P0>(&self, phullshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11HullShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.HSSetShader)(::windows::core::Interface::as_raw(self), phullshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.base__.HSSetShader)(::windows::core::Interface::as_raw(self), phullshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn HSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.HSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn HSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.HSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.HSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn HSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.HSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.DSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn DSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.DSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSSetShader<'a, P0>(&self, pdomainshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn DSSetShader<'a, P0>(&self, pdomainshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11DomainShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.DSSetShader)(::windows::core::Interface::as_raw(self), pdomainshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.base__.DSSetShader)(::windows::core::Interface::as_raw(self), pdomainshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn DSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.DSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn DSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.DSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.DSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn DSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.DSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.CSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn CSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.CSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSSetUnorderedAccessViews(&self, startslot: u32, numuavs: u32, ppunorderedaccessviews: ::core::option::Option<&::core::option::Option>, puavinitialcounts: ::core::option::Option<&u32>) { + pub unsafe fn CSSetUnorderedAccessViews(&self, startslot: u32, numuavs: u32, ppunorderedaccessviews: *const ::core::option::Option, puavinitialcounts: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.CSSetUnorderedAccessViews)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numuavs), ::core::mem::transmute(ppunorderedaccessviews), ::core::mem::transmute(puavinitialcounts)) } - pub unsafe fn CSSetShader<'a, P0>(&self, pcomputeshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn CSSetShader<'a, P0>(&self, pcomputeshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ComputeShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.CSSetShader)(::windows::core::Interface::as_raw(self), pcomputeshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.base__.CSSetShader)(::windows::core::Interface::as_raw(self), pcomputeshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn CSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.CSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn CSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.CSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.CSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn CSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.CSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.VSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn VSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.VSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.PSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn PSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.PSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSGetShader(&self, pppixelshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn PSGetShader(&self, pppixelshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.PSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppixelshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn PSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.PSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn PSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.PSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetShader(&self, ppvertexshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn VSGetShader(&self, ppvertexshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.VSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppvertexshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn PSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.PSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn PSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.PSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn IAGetInputLayout(&self, ppinputlayout: ::core::option::Option<&mut ::core::option::Option>) { (::windows::core::Interface::vtable(self).base__.base__.base__.IAGetInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppinputlayout)) } - pub unsafe fn IAGetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: ::core::option::Option<&mut ::core::option::Option>, pstrides: ::core::option::Option<&mut u32>, poffsets: ::core::option::Option<&mut u32>) { + pub unsafe fn IAGetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: *mut ::core::option::Option, pstrides: *mut u32, poffsets: *mut u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.IAGetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppvertexbuffers), ::core::mem::transmute(pstrides), ::core::mem::transmute(poffsets)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -21678,10 +21748,10 @@ impl ID3D11DeviceContext3 { pub unsafe fn IAGetIndexBuffer(&self, pindexbuffer: ::core::option::Option<&mut ::core::option::Option>, format: ::core::option::Option<&mut super::Dxgi::Common::DXGI_FORMAT>, offset: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.IAGetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pindexbuffer), ::core::mem::transmute(format), ::core::mem::transmute(offset)) } - pub unsafe fn GSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.GSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn GSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.GSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSGetShader(&self, ppgeometryshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn GSGetShader(&self, ppgeometryshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.GSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppgeometryshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] @@ -21689,28 +21759,28 @@ impl ID3D11DeviceContext3 { pub unsafe fn IAGetPrimitiveTopology(&self, ptopology: &mut super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) { (::windows::core::Interface::vtable(self).base__.base__.base__.IAGetPrimitiveTopology)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptopology)) } - pub unsafe fn VSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.VSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn VSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.VSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.VSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn VSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.VSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetPredication(&self, pppredicate: ::core::option::Option<&mut ::core::option::Option>, ppredicatevalue: ::core::option::Option<&mut super::super::Foundation::BOOL>) { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPredication)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppredicate), ::core::mem::transmute(ppredicatevalue)) } - pub unsafe fn GSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.GSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn GSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.GSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.GSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn GSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.GSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn OMGetRenderTargets(&self, pprendertargetviews: &mut [::core::option::Option], ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>) { - (::windows::core::Interface::vtable(self).base__.base__.base__.OMGetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprendertargetviews)), ::core::mem::transmute(ppdepthstencilview)) + pub unsafe fn OMGetRenderTargets(&self, pprendertargetviews: ::core::option::Option<&mut [::core::option::Option]>, ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.OMGetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(ppdepthstencilview)) } - pub unsafe fn OMGetRenderTargetsAndUnorderedAccessViews(&self, pprendertargetviews: &mut [::core::option::Option], ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>, uavstartslot: u32, ppunorderedaccessviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.OMGetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprendertargetviews)), ::core::mem::transmute(ppdepthstencilview), uavstartslot, ppunorderedaccessviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppunorderedaccessviews))) + pub unsafe fn OMGetRenderTargetsAndUnorderedAccessViews(&self, pprendertargetviews: ::core::option::Option<&mut [::core::option::Option]>, ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>, uavstartslot: u32, ppunorderedaccessviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.OMGetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(ppdepthstencilview), uavstartslot, ppunorderedaccessviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppunorderedaccessviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn OMGetBlendState(&self, ppblendstate: ::core::option::Option<&mut ::core::option::Option>, blendfactor: ::core::option::Option<&mut f32>, psamplemask: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.OMGetBlendState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppblendstate), ::core::mem::transmute(blendfactor), ::core::mem::transmute(psamplemask)) @@ -21718,58 +21788,58 @@ impl ID3D11DeviceContext3 { pub unsafe fn OMGetDepthStencilState(&self, ppdepthstencilstate: ::core::option::Option<&mut ::core::option::Option>, pstencilref: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.OMGetDepthStencilState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppdepthstencilstate), ::core::mem::transmute(pstencilref)) } - pub unsafe fn SOGetTargets(&self, ppsotargets: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.SOGetTargets)(::windows::core::Interface::as_raw(self), ppsotargets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsotargets))) + pub unsafe fn SOGetTargets(&self, ppsotargets: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.SOGetTargets)(::windows::core::Interface::as_raw(self), ppsotargets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsotargets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn RSGetState(&self, pprasterizerstate: ::core::option::Option<&mut ::core::option::Option>) { (::windows::core::Interface::vtable(self).base__.base__.base__.RSGetState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprasterizerstate)) } - pub unsafe fn RSGetViewports(&self, pnumviewports: &mut u32, pviewports: ::core::option::Option<&mut D3D11_VIEWPORT>) { + pub unsafe fn RSGetViewports(&self, pnumviewports: &mut u32, pviewports: *mut D3D11_VIEWPORT) { (::windows::core::Interface::vtable(self).base__.base__.base__.RSGetViewports)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnumviewports), ::core::mem::transmute(pviewports)) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RSGetScissorRects(&self, pnumrects: &mut u32, prects: ::core::option::Option<&mut super::super::Foundation::RECT>) { + pub unsafe fn RSGetScissorRects(&self, pnumrects: &mut u32, prects: *mut super::super::Foundation::RECT) { (::windows::core::Interface::vtable(self).base__.base__.base__.RSGetScissorRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnumrects), ::core::mem::transmute(prects)) } - pub unsafe fn HSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.HSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn HSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.HSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSGetShader(&self, pphullshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn HSGetShader(&self, pphullshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.HSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pphullshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn HSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.HSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn HSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.HSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.HSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn HSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.HSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.DSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn DSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.DSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSGetShader(&self, ppdomainshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn DSGetShader(&self, ppdomainshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.DSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppdomainshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn DSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.DSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn DSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.DSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.DSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn DSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.DSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.CSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn CSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.CSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetUnorderedAccessViews(&self, startslot: u32, ppunorderedaccessviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.CSGetUnorderedAccessViews)(::windows::core::Interface::as_raw(self), startslot, ppunorderedaccessviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppunorderedaccessviews))) + pub unsafe fn CSGetUnorderedAccessViews(&self, startslot: u32, ppunorderedaccessviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.CSGetUnorderedAccessViews)(::windows::core::Interface::as_raw(self), startslot, ppunorderedaccessviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppunorderedaccessviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetShader(&self, ppcomputeshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn CSGetShader(&self, ppcomputeshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.CSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppcomputeshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn CSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.CSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn CSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.CSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.CSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn CSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.CSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn ClearState(&self) { (::windows::core::Interface::vtable(self).base__.base__.base__.ClearState)(::windows::core::Interface::as_raw(self)) @@ -21817,40 +21887,40 @@ impl ID3D11DeviceContext3 { { (::windows::core::Interface::vtable(self).base__.base__.DiscardView)(::windows::core::Interface::as_raw(self), presourceview.into().abi()) } - pub unsafe fn VSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn VSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.VSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn HSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn HSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.HSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn DSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn DSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.DSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn GSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn GSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.GSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn PSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn PSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.PSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn CSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn CSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.CSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn VSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn VSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.base__.VSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn HSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn HSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.base__.HSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn DSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn DSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.base__.DSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn GSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn GSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.base__.GSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn PSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn PSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.base__.PSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn CSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn CSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.base__.CSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } pub unsafe fn SwapDeviceContextState<'a, P0>(&self, pstate: P0, pppreviousstate: ::core::option::Option<&mut ::core::option::Option>) @@ -21861,23 +21931,23 @@ impl ID3D11DeviceContext3 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn ClearView<'a, P0>(&self, pview: P0, color: &f32, prect: &[super::super::Foundation::RECT]) + pub unsafe fn ClearView<'a, P0>(&self, pview: P0, color: &f32, prect: ::core::option::Option<&[super::super::Foundation::RECT]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11View>>, { - (::windows::core::Interface::vtable(self).base__.base__.ClearView)(::windows::core::Interface::as_raw(self), pview.into().abi(), ::core::mem::transmute(color), ::core::mem::transmute(::windows::core::as_ptr_or_null(prect)), prect.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.ClearView)(::windows::core::Interface::as_raw(self), pview.into().abi(), ::core::mem::transmute(color), ::core::mem::transmute(prect.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prect.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn DiscardView1<'a, P0>(&self, presourceview: P0, prects: &[super::super::Foundation::RECT]) + pub unsafe fn DiscardView1<'a, P0>(&self, presourceview: P0, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11View>>, { - (::windows::core::Interface::vtable(self).base__.base__.DiscardView1)(::windows::core::Interface::as_raw(self), presourceview.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(prects)), prects.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.DiscardView1)(::windows::core::Interface::as_raw(self), presourceview.into().abi(), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prects.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn UpdateTileMappings<'a, P0, P1>(&self, ptiledresource: P0, numtiledresourceregions: u32, ptiledresourceregionstartcoordinates: ::core::option::Option<&D3D11_TILED_RESOURCE_COORDINATE>, ptiledresourceregionsizes: ::core::option::Option<&D3D11_TILE_REGION_SIZE>, ptilepool: P1, numranges: u32, prangeflags: ::core::option::Option<&u32>, ptilepoolstartoffsets: ::core::option::Option<&u32>, prangetilecounts: ::core::option::Option<&u32>, flags: u32) -> ::windows::core::Result<()> + pub unsafe fn UpdateTileMappings<'a, P0, P1>(&self, ptiledresource: P0, numtiledresourceregions: u32, ptiledresourceregionstartcoordinates: *const D3D11_TILED_RESOURCE_COORDINATE, ptiledresourceregionsizes: *const D3D11_TILE_REGION_SIZE, ptilepool: P1, numranges: u32, prangeflags: *const u32, ptilepoolstartoffsets: *const u32, prangetilecounts: *const u32, flags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Resource>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Buffer>>, @@ -22089,8 +22159,8 @@ impl ID3D11DeviceContext4 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -22098,26 +22168,26 @@ impl ID3D11DeviceContext4 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.into().abi()).ok() } - pub unsafe fn VSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.VSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn VSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.VSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.PSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn PSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.PSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSSetShader<'a, P0>(&self, ppixelshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn PSSetShader<'a, P0>(&self, ppixelshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11PixelShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.PSSetShader)(::windows::core::Interface::as_raw(self), ppixelshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.PSSetShader)(::windows::core::Interface::as_raw(self), ppixelshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn PSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.PSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn PSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.PSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSSetShader<'a, P0>(&self, pvertexshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn VSSetShader<'a, P0>(&self, pvertexshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VertexShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.VSSetShader)(::windows::core::Interface::as_raw(self), pvertexshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.VSSetShader)(::windows::core::Interface::as_raw(self), pvertexshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn DrawIndexed(&self, indexcount: u32, startindexlocation: u32, basevertexlocation: i32) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DrawIndexed)(::windows::core::Interface::as_raw(self), indexcount, startindexlocation, basevertexlocation) @@ -22138,8 +22208,8 @@ impl ID3D11DeviceContext4 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.Unmap)(::windows::core::Interface::as_raw(self), presource.into().abi(), subresource) } - pub unsafe fn PSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.PSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn PSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.PSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn IASetInputLayout<'a, P0>(&self, pinputlayout: P0) where @@ -22147,7 +22217,7 @@ impl ID3D11DeviceContext4 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IASetInputLayout)(::windows::core::Interface::as_raw(self), pinputlayout.into().abi()) } - pub unsafe fn IASetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: ::core::option::Option<&::core::option::Option>, pstrides: ::core::option::Option<&u32>, poffsets: ::core::option::Option<&u32>) { + pub unsafe fn IASetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: *const ::core::option::Option, pstrides: *const u32, poffsets: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppvertexbuffers), ::core::mem::transmute(pstrides), ::core::mem::transmute(poffsets)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -22164,25 +22234,25 @@ impl ID3D11DeviceContext4 { pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation) } - pub unsafe fn GSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn GSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSSetShader<'a, P0>(&self, pshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn GSSetShader<'a, P0>(&self, pshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11GeometryShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GSSetShader)(::windows::core::Interface::as_raw(self), pshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GSSetShader)(::windows::core::Interface::as_raw(self), pshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] pub unsafe fn IASetPrimitiveTopology(&self, topology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), topology) } - pub unsafe fn VSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.VSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn VSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.VSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.VSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn VSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.VSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn Begin<'a, P0>(&self, pasync: P0) where @@ -22196,11 +22266,11 @@ impl ID3D11DeviceContext4 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.End)(::windows::core::Interface::as_raw(self), pasync.into().abi()) } - pub unsafe fn GetData<'a, P0>(&self, pasync: P0, pdata: *mut ::core::ffi::c_void, datasize: u32, getdataflags: u32) -> ::windows::core::Result<()> + pub unsafe fn GetData<'a, P0>(&self, pasync: P0, pdata: ::core::option::Option<&mut [u8]>, getdataflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Asynchronous>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetData)(::windows::core::Interface::as_raw(self), pasync.into().abi(), ::core::mem::transmute(pdata), datasize, getdataflags).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetData)(::windows::core::Interface::as_raw(self), pasync.into().abi(), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), getdataflags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -22211,23 +22281,23 @@ impl ID3D11DeviceContext4 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), ppredicate.into().abi(), predicatevalue.into()) } - pub unsafe fn GSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn GSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn GSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn OMSetRenderTargets<'a, P0>(&self, pprendertargetviews: &[::core::option::Option], pdepthstencilview: P0) + pub unsafe fn OMSetRenderTargets<'a, P0>(&self, pprendertargetviews: ::core::option::Option<&[::core::option::Option]>, pdepthstencilview: P0) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11DepthStencilView>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pprendertargetviews)), pdepthstencilview.into().abi()) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdepthstencilview.into().abi()) } - pub unsafe fn OMSetRenderTargetsAndUnorderedAccessViews<'a, P0>(&self, pprendertargetviews: &[::core::option::Option], pdepthstencilview: P0, uavstartslot: u32, numuavs: u32, ppunorderedaccessviews: ::core::option::Option<&::core::option::Option>, puavinitialcounts: ::core::option::Option<&u32>) + pub unsafe fn OMSetRenderTargetsAndUnorderedAccessViews<'a, P0>(&self, pprendertargetviews: ::core::option::Option<&[::core::option::Option]>, pdepthstencilview: P0, uavstartslot: u32, numuavs: u32, ppunorderedaccessviews: *const ::core::option::Option, puavinitialcounts: *const u32) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11DepthStencilView>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMSetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pprendertargetviews)), pdepthstencilview.into().abi(), uavstartslot, ::core::mem::transmute(numuavs), ::core::mem::transmute(ppunorderedaccessviews), ::core::mem::transmute(puavinitialcounts)) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMSetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdepthstencilview.into().abi(), uavstartslot, ::core::mem::transmute(numuavs), ::core::mem::transmute(ppunorderedaccessviews), ::core::mem::transmute(puavinitialcounts)) } pub unsafe fn OMSetBlendState<'a, P0>(&self, pblendstate: P0, blendfactor: ::core::option::Option<&f32>, samplemask: u32) where @@ -22241,7 +22311,7 @@ impl ID3D11DeviceContext4 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMSetDepthStencilState)(::windows::core::Interface::as_raw(self), pdepthstencilstate.into().abi(), stencilref) } - pub unsafe fn SOSetTargets(&self, numbuffers: u32, ppsotargets: ::core::option::Option<&::core::option::Option>, poffsets: ::core::option::Option<&u32>) { + pub unsafe fn SOSetTargets(&self, numbuffers: u32, ppsotargets: *const ::core::option::Option, poffsets: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppsotargets), ::core::mem::transmute(poffsets)) } pub unsafe fn DrawAuto(&self) { @@ -22274,13 +22344,13 @@ impl ID3D11DeviceContext4 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RSSetState)(::windows::core::Interface::as_raw(self), prasterizerstate.into().abi()) } - pub unsafe fn RSSetViewports(&self, pviewports: &[D3D11_VIEWPORT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviewports))) + pub unsafe fn RSSetViewports(&self, pviewports: ::core::option::Option<&[D3D11_VIEWPORT]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviewports.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + pub unsafe fn RSSetScissorRects(&self, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn CopySubresourceRegion<'a, P0, P1>(&self, pdstresource: P0, dstsubresource: u32, dstx: u32, dsty: u32, dstz: u32, psrcresource: P1, srcsubresource: u32, psrcbox: ::core::option::Option<&D3D11_BOX>) where @@ -22369,76 +22439,76 @@ impl ID3D11DeviceContext4 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ExecuteCommandList)(::windows::core::Interface::as_raw(self), pcommandlist.into().abi(), restorecontextstate.into()) } - pub unsafe fn HSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn HSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSSetShader<'a, P0>(&self, phullshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn HSSetShader<'a, P0>(&self, phullshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11HullShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HSSetShader)(::windows::core::Interface::as_raw(self), phullshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HSSetShader)(::windows::core::Interface::as_raw(self), phullshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn HSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn HSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn HSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn DSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSSetShader<'a, P0>(&self, pdomainshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn DSSetShader<'a, P0>(&self, pdomainshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11DomainShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DSSetShader)(::windows::core::Interface::as_raw(self), pdomainshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DSSetShader)(::windows::core::Interface::as_raw(self), pdomainshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn DSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn DSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn DSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn CSSetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSSetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSSetUnorderedAccessViews(&self, startslot: u32, numuavs: u32, ppunorderedaccessviews: ::core::option::Option<&::core::option::Option>, puavinitialcounts: ::core::option::Option<&u32>) { + pub unsafe fn CSSetUnorderedAccessViews(&self, startslot: u32, numuavs: u32, ppunorderedaccessviews: *const ::core::option::Option, puavinitialcounts: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSSetUnorderedAccessViews)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numuavs), ::core::mem::transmute(ppunorderedaccessviews), ::core::mem::transmute(puavinitialcounts)) } - pub unsafe fn CSSetShader<'a, P0>(&self, pcomputeshader: P0, ppclassinstances: &[::core::option::Option]) + pub unsafe fn CSSetShader<'a, P0>(&self, pcomputeshader: P0, ppclassinstances: ::core::option::Option<&[::core::option::Option]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11ComputeShader>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSSetShader)(::windows::core::Interface::as_raw(self), pcomputeshader.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppclassinstances)), ppclassinstances.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSSetShader)(::windows::core::Interface::as_raw(self), pcomputeshader.into().abi(), ::core::mem::transmute(ppclassinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppclassinstances.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn CSSetSamplers(&self, startslot: u32, ppsamplers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsamplers))) + pub unsafe fn CSSetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSSetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppconstantbuffers))) + pub unsafe fn CSSetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&[::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSSetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.VSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn VSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.VSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.PSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn PSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.PSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn PSGetShader(&self, pppixelshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn PSGetShader(&self, pppixelshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.PSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppixelshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn PSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.PSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn PSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.PSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetShader(&self, ppvertexshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn VSGetShader(&self, ppvertexshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.VSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppvertexshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn PSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.PSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn PSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.PSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn IAGetInputLayout(&self, ppinputlayout: ::core::option::Option<&mut ::core::option::Option>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IAGetInputLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppinputlayout)) } - pub unsafe fn IAGetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: ::core::option::Option<&mut ::core::option::Option>, pstrides: ::core::option::Option<&mut u32>, poffsets: ::core::option::Option<&mut u32>) { + pub unsafe fn IAGetVertexBuffers(&self, startslot: u32, numbuffers: u32, ppvertexbuffers: *mut ::core::option::Option, pstrides: *mut u32, poffsets: *mut u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IAGetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppvertexbuffers), ::core::mem::transmute(pstrides), ::core::mem::transmute(poffsets)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -22446,10 +22516,10 @@ impl ID3D11DeviceContext4 { pub unsafe fn IAGetIndexBuffer(&self, pindexbuffer: ::core::option::Option<&mut ::core::option::Option>, format: ::core::option::Option<&mut super::Dxgi::Common::DXGI_FORMAT>, offset: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IAGetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pindexbuffer), ::core::mem::transmute(format), ::core::mem::transmute(offset)) } - pub unsafe fn GSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn GSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSGetShader(&self, ppgeometryshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn GSGetShader(&self, ppgeometryshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppgeometryshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] @@ -22457,28 +22527,28 @@ impl ID3D11DeviceContext4 { pub unsafe fn IAGetPrimitiveTopology(&self, ptopology: &mut super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IAGetPrimitiveTopology)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptopology)) } - pub unsafe fn VSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.VSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn VSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.VSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn VSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.VSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn VSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.VSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetPredication(&self, pppredicate: ::core::option::Option<&mut ::core::option::Option>, ppredicatevalue: ::core::option::Option<&mut super::super::Foundation::BOOL>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPredication)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppredicate), ::core::mem::transmute(ppredicatevalue)) } - pub unsafe fn GSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn GSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn GSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn GSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn OMGetRenderTargets(&self, pprendertargetviews: &mut [::core::option::Option], ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMGetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprendertargetviews)), ::core::mem::transmute(ppdepthstencilview)) + pub unsafe fn OMGetRenderTargets(&self, pprendertargetviews: ::core::option::Option<&mut [::core::option::Option]>, ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMGetRenderTargets)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(ppdepthstencilview)) } - pub unsafe fn OMGetRenderTargetsAndUnorderedAccessViews(&self, pprendertargetviews: &mut [::core::option::Option], ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>, uavstartslot: u32, ppunorderedaccessviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMGetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprendertargetviews)), ::core::mem::transmute(ppdepthstencilview), uavstartslot, ppunorderedaccessviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppunorderedaccessviews))) + pub unsafe fn OMGetRenderTargetsAndUnorderedAccessViews(&self, pprendertargetviews: ::core::option::Option<&mut [::core::option::Option]>, ppdepthstencilview: ::core::option::Option<&mut ::core::option::Option>, uavstartslot: u32, ppunorderedaccessviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMGetRenderTargetsAndUnorderedAccessViews)(::windows::core::Interface::as_raw(self), pprendertargetviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pprendertargetviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(ppdepthstencilview), uavstartslot, ppunorderedaccessviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppunorderedaccessviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn OMGetBlendState(&self, ppblendstate: ::core::option::Option<&mut ::core::option::Option>, blendfactor: ::core::option::Option<&mut f32>, psamplemask: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMGetBlendState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppblendstate), ::core::mem::transmute(blendfactor), ::core::mem::transmute(psamplemask)) @@ -22486,58 +22556,58 @@ impl ID3D11DeviceContext4 { pub unsafe fn OMGetDepthStencilState(&self, ppdepthstencilstate: ::core::option::Option<&mut ::core::option::Option>, pstencilref: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMGetDepthStencilState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppdepthstencilstate), ::core::mem::transmute(pstencilref)) } - pub unsafe fn SOGetTargets(&self, ppsotargets: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SOGetTargets)(::windows::core::Interface::as_raw(self), ppsotargets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsotargets))) + pub unsafe fn SOGetTargets(&self, ppsotargets: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SOGetTargets)(::windows::core::Interface::as_raw(self), ppsotargets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsotargets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn RSGetState(&self, pprasterizerstate: ::core::option::Option<&mut ::core::option::Option>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RSGetState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprasterizerstate)) } - pub unsafe fn RSGetViewports(&self, pnumviewports: &mut u32, pviewports: ::core::option::Option<&mut D3D11_VIEWPORT>) { + pub unsafe fn RSGetViewports(&self, pnumviewports: &mut u32, pviewports: *mut D3D11_VIEWPORT) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RSGetViewports)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnumviewports), ::core::mem::transmute(pviewports)) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RSGetScissorRects(&self, pnumrects: &mut u32, prects: ::core::option::Option<&mut super::super::Foundation::RECT>) { + pub unsafe fn RSGetScissorRects(&self, pnumrects: &mut u32, prects: *mut super::super::Foundation::RECT) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RSGetScissorRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnumrects), ::core::mem::transmute(prects)) } - pub unsafe fn HSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn HSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSGetShader(&self, pphullshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn HSGetShader(&self, pphullshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pphullshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn HSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn HSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn HSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn HSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn DSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSGetShader(&self, ppdomainshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn DSGetShader(&self, ppdomainshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppdomainshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn DSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn DSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn DSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppshaderresourceviews))) + pub unsafe fn CSGetShaderResources(&self, startslot: u32, ppshaderresourceviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSGetShaderResources)(::windows::core::Interface::as_raw(self), startslot, ppshaderresourceviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppshaderresourceviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetUnorderedAccessViews(&self, startslot: u32, ppunorderedaccessviews: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSGetUnorderedAccessViews)(::windows::core::Interface::as_raw(self), startslot, ppunorderedaccessviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppunorderedaccessviews))) + pub unsafe fn CSGetUnorderedAccessViews(&self, startslot: u32, ppunorderedaccessviews: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSGetUnorderedAccessViews)(::windows::core::Interface::as_raw(self), startslot, ppunorderedaccessviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppunorderedaccessviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetShader(&self, ppcomputeshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: ::core::option::Option<&mut ::core::option::Option>, pnumclassinstances: ::core::option::Option<&mut u32>) { + pub unsafe fn CSGetShader(&self, ppcomputeshader: ::core::option::Option<&mut ::core::option::Option>, ppclassinstances: *mut ::core::option::Option, pnumclassinstances: ::core::option::Option<&mut u32>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSGetShader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppcomputeshader), ::core::mem::transmute(ppclassinstances), ::core::mem::transmute(pnumclassinstances)) } - pub unsafe fn CSGetSamplers(&self, startslot: u32, ppsamplers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsamplers))) + pub unsafe fn CSGetSamplers(&self, startslot: u32, ppsamplers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSGetSamplers)(::windows::core::Interface::as_raw(self), startslot, ppsamplers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppsamplers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn CSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: &mut [::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppconstantbuffers))) + pub unsafe fn CSGetConstantBuffers(&self, startslot: u32, ppconstantbuffers: ::core::option::Option<&mut [::core::option::Option]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CSGetConstantBuffers)(::windows::core::Interface::as_raw(self), startslot, ppconstantbuffers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppconstantbuffers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn ClearState(&self) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ClearState)(::windows::core::Interface::as_raw(self)) @@ -22585,40 +22655,40 @@ impl ID3D11DeviceContext4 { { (::windows::core::Interface::vtable(self).base__.base__.base__.DiscardView)(::windows::core::Interface::as_raw(self), presourceview.into().abi()) } - pub unsafe fn VSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn VSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.VSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn HSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn HSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.HSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn DSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn DSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.DSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn GSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn GSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.GSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn PSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn PSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.PSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn CSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&::core::option::Option>, pfirstconstant: ::core::option::Option<&u32>, pnumconstants: ::core::option::Option<&u32>) { + pub unsafe fn CSSetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *const ::core::option::Option, pfirstconstant: *const u32, pnumconstants: *const u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.CSSetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn VSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn VSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.VSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn HSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn HSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.HSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn DSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn DSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.DSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn GSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn GSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.GSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn PSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn PSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.PSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } - pub unsafe fn CSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: ::core::option::Option<&mut ::core::option::Option>, pfirstconstant: ::core::option::Option<&mut u32>, pnumconstants: ::core::option::Option<&mut u32>) { + pub unsafe fn CSGetConstantBuffers1(&self, startslot: u32, numbuffers: u32, ppconstantbuffers: *mut ::core::option::Option, pfirstconstant: *mut u32, pnumconstants: *mut u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.CSGetConstantBuffers1)(::windows::core::Interface::as_raw(self), startslot, ::core::mem::transmute(numbuffers), ::core::mem::transmute(ppconstantbuffers), ::core::mem::transmute(pfirstconstant), ::core::mem::transmute(pnumconstants)) } pub unsafe fn SwapDeviceContextState<'a, P0>(&self, pstate: P0, pppreviousstate: ::core::option::Option<&mut ::core::option::Option>) @@ -22629,23 +22699,23 @@ impl ID3D11DeviceContext4 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn ClearView<'a, P0>(&self, pview: P0, color: &f32, prect: &[super::super::Foundation::RECT]) + pub unsafe fn ClearView<'a, P0>(&self, pview: P0, color: &f32, prect: ::core::option::Option<&[super::super::Foundation::RECT]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11View>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.ClearView)(::windows::core::Interface::as_raw(self), pview.into().abi(), ::core::mem::transmute(color), ::core::mem::transmute(::windows::core::as_ptr_or_null(prect)), prect.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.base__.ClearView)(::windows::core::Interface::as_raw(self), pview.into().abi(), ::core::mem::transmute(color), ::core::mem::transmute(prect.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prect.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn DiscardView1<'a, P0>(&self, presourceview: P0, prects: &[super::super::Foundation::RECT]) + pub unsafe fn DiscardView1<'a, P0>(&self, presourceview: P0, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11View>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.DiscardView1)(::windows::core::Interface::as_raw(self), presourceview.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(prects)), prects.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.base__.DiscardView1)(::windows::core::Interface::as_raw(self), presourceview.into().abi(), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prects.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn UpdateTileMappings<'a, P0, P1>(&self, ptiledresource: P0, numtiledresourceregions: u32, ptiledresourceregionstartcoordinates: ::core::option::Option<&D3D11_TILED_RESOURCE_COORDINATE>, ptiledresourceregionsizes: ::core::option::Option<&D3D11_TILE_REGION_SIZE>, ptilepool: P1, numranges: u32, prangeflags: ::core::option::Option<&u32>, ptilepoolstartoffsets: ::core::option::Option<&u32>, prangetilecounts: ::core::option::Option<&u32>, flags: u32) -> ::windows::core::Result<()> + pub unsafe fn UpdateTileMappings<'a, P0, P1>(&self, ptiledresource: P0, numtiledresourceregions: u32, ptiledresourceregionstartcoordinates: *const D3D11_TILED_RESOURCE_COORDINATE, ptiledresourceregionsizes: *const D3D11_TILE_REGION_SIZE, ptilepool: P1, numranges: u32, prangeflags: *const u32, ptilepoolstartoffsets: *const u32, prangetilecounts: *const u32, flags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Resource>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Buffer>>, @@ -22874,8 +22944,8 @@ impl ID3D11DomainShader { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -22951,8 +23021,8 @@ impl ID3D11Fence { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -23060,13 +23130,13 @@ impl ID3D11FunctionLinkingGraph { #[cfg(feature = "Win32_Graphics_Direct3D")] pub unsafe fn SetInputSignature(&self, pinputparameters: &[D3D11_PARAMETER_DESC]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).SetInputSignature)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputparameters)), pinputparameters.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).SetInputSignature)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinputparameters.as_ptr()), pinputparameters.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] pub unsafe fn SetOutputSignature(&self, poutputparameters: &[D3D11_PARAMETER_DESC]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).SetOutputSignature)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(poutputparameters)), poutputparameters.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).SetOutputSignature)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poutputparameters.as_ptr()), poutputparameters.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CallFunction<'a, P0, P1, P2>(&self, pmoduleinstancenamespace: P0, pmodulewithfunctionprototype: P1, pfunctionname: P2) -> ::windows::core::Result where @@ -23308,8 +23378,8 @@ impl ID3D11GeometryShader { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -23385,8 +23455,8 @@ impl ID3D11HullShader { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -23462,7 +23532,7 @@ impl ID3D11InfoQueue { pub unsafe fn ClearStoredMessages(&self) { (::windows::core::Interface::vtable(self).ClearStoredMessages)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn GetMessage(&self, messageindex: u64, pmessage: ::core::option::Option<&mut D3D11_MESSAGE>, pmessagebytelength: &mut usize) -> ::windows::core::Result<()> { + pub unsafe fn GetMessage(&self, messageindex: u64, pmessage: *mut D3D11_MESSAGE, pmessagebytelength: &mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetMessage)(::windows::core::Interface::as_raw(self), messageindex, ::core::mem::transmute(pmessage), ::core::mem::transmute(pmessagebytelength)).ok() } pub unsafe fn GetNumMessagesAllowedByStorageFilter(&self) -> u64 { @@ -23486,7 +23556,7 @@ impl ID3D11InfoQueue { pub unsafe fn AddStorageFilterEntries(&self, pfilter: &D3D11_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AddStorageFilterEntries)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter)).ok() } - pub unsafe fn GetStorageFilter(&self, pfilter: ::core::option::Option<&mut D3D11_INFO_QUEUE_FILTER>, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { + pub unsafe fn GetStorageFilter(&self, pfilter: *mut D3D11_INFO_QUEUE_FILTER, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetStorageFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter), ::core::mem::transmute(pfilterbytelength)).ok() } pub unsafe fn ClearStorageFilter(&self) { @@ -23510,7 +23580,7 @@ impl ID3D11InfoQueue { pub unsafe fn AddRetrievalFilterEntries(&self, pfilter: &D3D11_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AddRetrievalFilterEntries)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter)).ok() } - pub unsafe fn GetRetrievalFilter(&self, pfilter: ::core::option::Option<&mut D3D11_INFO_QUEUE_FILTER>, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { + pub unsafe fn GetRetrievalFilter(&self, pfilter: *mut D3D11_INFO_QUEUE_FILTER, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetRetrievalFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter), ::core::mem::transmute(pfilterbytelength)).ok() } pub unsafe fn ClearRetrievalFilter(&self) { @@ -23707,8 +23777,8 @@ impl ID3D11InputLayout { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -24191,8 +24261,8 @@ impl ID3D11PixelShader { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -24268,8 +24338,8 @@ impl ID3D11Predicate { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -24381,8 +24451,8 @@ impl ID3D11Query { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -24480,8 +24550,8 @@ impl ID3D11Query1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -24597,8 +24667,8 @@ impl ID3D11RasterizerState { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -24683,8 +24753,8 @@ impl ID3D11RasterizerState1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -24789,8 +24859,8 @@ impl ID3D11RasterizerState2 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -25017,8 +25087,8 @@ impl ID3D11RenderTargetView { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -25121,8 +25191,8 @@ impl ID3D11RenderTargetView1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -25245,8 +25315,8 @@ impl ID3D11Resource { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -25334,8 +25404,8 @@ impl ID3D11SamplerState { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -25791,8 +25861,8 @@ impl ID3D11ShaderResourceView { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -25895,8 +25965,8 @@ impl ID3D11ShaderResourceView1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -26235,8 +26305,8 @@ impl ID3D11Texture1D { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -26345,8 +26415,8 @@ impl ID3D11Texture2D { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -26455,8 +26525,8 @@ impl ID3D11Texture2D1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -26585,8 +26655,8 @@ impl ID3D11Texture3D { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -26695,8 +26765,8 @@ impl ID3D11Texture3D1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -26883,8 +26953,8 @@ impl ID3D11UnorderedAccessView { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -26987,8 +27057,8 @@ impl ID3D11UnorderedAccessView1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -27111,8 +27181,8 @@ impl ID3D11VertexShader { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -27188,8 +27258,8 @@ impl ID3D11VideoContext { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -27209,12 +27279,12 @@ impl ID3D11VideoContext { { (::windows::core::Interface::vtable(self).ReleaseDecoderBuffer)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), r#type).ok() } - pub unsafe fn DecoderBeginFrame<'a, P0, P1>(&self, pdecoder: P0, pview: P1, contentkeysize: u32, pcontentkey: *const ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn DecoderBeginFrame<'a, P0, P1>(&self, pdecoder: P0, pview: P1, pcontentkey: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoder>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoderOutputView>>, { - (::windows::core::Interface::vtable(self).DecoderBeginFrame)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pview.into().abi(), contentkeysize, ::core::mem::transmute(pcontentkey)).ok() + (::windows::core::Interface::vtable(self).DecoderBeginFrame)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pview.into().abi(), pcontentkey.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcontentkey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn DecoderEndFrame<'a, P0>(&self, pdecoder: P0) -> ::windows::core::Result<()> where @@ -27228,7 +27298,7 @@ impl ID3D11VideoContext { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoder>>, { - (::windows::core::Interface::vtable(self).SubmitDecoderBuffers)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pbufferdesc.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbufferdesc))).ok() + (::windows::core::Interface::vtable(self).SubmitDecoderBuffers)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pbufferdesc.len() as _, ::core::mem::transmute(pbufferdesc.as_ptr())).ok() } pub unsafe fn DecoderExtension<'a, P0>(&self, pdecoder: P0, pextensiondata: &D3D11_VIDEO_DECODER_EXTENSION) -> i32 where @@ -27334,11 +27404,11 @@ impl ID3D11VideoContext { { (::windows::core::Interface::vtable(self).VideoProcessorGetOutputStereoMode)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(penabled)) } - pub unsafe fn VideoProcessorGetOutputExtension<'a, P0>(&self, pvideoprocessor: P0, pextensionguid: &::windows::core::GUID, datasize: u32, pdata: *mut ::core::ffi::c_void) -> i32 + pub unsafe fn VideoProcessorGetOutputExtension<'a, P0>(&self, pvideoprocessor: P0, pextensionguid: &::windows::core::GUID, pdata: &mut [u8]) -> i32 where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).VideoProcessorGetOutputExtension)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(pextensionguid), datasize, ::core::mem::transmute(pdata)) + (::windows::core::Interface::vtable(self).VideoProcessorGetOutputExtension)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(pextensionguid), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())) } pub unsafe fn VideoProcessorSetStreamFrameFormat<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, frameformat: D3D11_VIDEO_FRAME_FORMAT) where @@ -27388,11 +27458,11 @@ impl ID3D11VideoContext { { (::windows::core::Interface::vtable(self).VideoProcessorSetStreamAlpha)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, enable.into(), alpha) } - pub unsafe fn VideoProcessorSetStreamPalette<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, pentries: &[u32]) + pub unsafe fn VideoProcessorSetStreamPalette<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, pentries: ::core::option::Option<&[u32]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).VideoProcessorSetStreamPalette)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, pentries.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pentries))) + (::windows::core::Interface::vtable(self).VideoProcessorSetStreamPalette)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, pentries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pentries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] @@ -27495,7 +27565,7 @@ impl ID3D11VideoContext { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).VideoProcessorGetStreamPalette)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, pentries.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pentries))) + (::windows::core::Interface::vtable(self).VideoProcessorGetStreamPalette)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, pentries.len() as _, ::core::mem::transmute(pentries.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] @@ -27537,11 +27607,11 @@ impl ID3D11VideoContext { { (::windows::core::Interface::vtable(self).VideoProcessorGetStreamFilter)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, filter, ::core::mem::transmute(penabled), ::core::mem::transmute(plevel)) } - pub unsafe fn VideoProcessorGetStreamExtension<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, pextensionguid: &::windows::core::GUID, datasize: u32, pdata: *mut ::core::ffi::c_void) -> i32 + pub unsafe fn VideoProcessorGetStreamExtension<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, pextensionguid: &::windows::core::GUID, pdata: &mut [u8]) -> i32 where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).VideoProcessorGetStreamExtension)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, ::core::mem::transmute(pextensionguid), datasize, ::core::mem::transmute(pdata)) + (::windows::core::Interface::vtable(self).VideoProcessorGetStreamExtension)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, ::core::mem::transmute(pextensionguid), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -27550,35 +27620,35 @@ impl ID3D11VideoContext { P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessorOutputView>>, { - (::windows::core::Interface::vtable(self).VideoProcessorBlt)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), pview.into().abi(), outputframe, pstreams.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pstreams))).ok() + (::windows::core::Interface::vtable(self).VideoProcessorBlt)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), pview.into().abi(), outputframe, pstreams.len() as _, ::core::mem::transmute(pstreams.as_ptr())).ok() } - pub unsafe fn NegotiateCryptoSessionKeyExchange<'a, P0>(&self, pcryptosession: P0, datasize: u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn NegotiateCryptoSessionKeyExchange<'a, P0>(&self, pcryptosession: P0, pdata: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, { - (::windows::core::Interface::vtable(self).NegotiateCryptoSessionKeyExchange)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), datasize, ::core::mem::transmute(pdata)).ok() + (::windows::core::Interface::vtable(self).NegotiateCryptoSessionKeyExchange)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } - pub unsafe fn EncryptionBlt<'a, P0, P1, P2>(&self, pcryptosession: P0, psrcsurface: P1, pdstsurface: P2, ivsize: u32, piv: *const ::core::ffi::c_void) + pub unsafe fn EncryptionBlt<'a, P0, P1, P2>(&self, pcryptosession: P0, psrcsurface: P1, pdstsurface: P2, piv: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Texture2D>>, P2: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Texture2D>>, { - (::windows::core::Interface::vtable(self).EncryptionBlt)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), psrcsurface.into().abi(), pdstsurface.into().abi(), ivsize, ::core::mem::transmute(piv)) + (::windows::core::Interface::vtable(self).EncryptionBlt)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), psrcsurface.into().abi(), pdstsurface.into().abi(), piv.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(piv.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DecryptionBlt<'a, P0, P1, P2>(&self, pcryptosession: P0, psrcsurface: P1, pdstsurface: P2, pencryptedblockinfo: ::core::option::Option<&D3D11_ENCRYPTED_BLOCK_INFO>, contentkeysize: u32, pcontentkey: *const ::core::ffi::c_void, ivsize: u32, piv: *const ::core::ffi::c_void) + pub unsafe fn DecryptionBlt<'a, P0, P1, P2>(&self, pcryptosession: P0, psrcsurface: P1, pdstsurface: P2, pencryptedblockinfo: ::core::option::Option<&D3D11_ENCRYPTED_BLOCK_INFO>, pcontentkey: ::core::option::Option<&[u8]>, piv: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Texture2D>>, P2: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Texture2D>>, { - (::windows::core::Interface::vtable(self).DecryptionBlt)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), psrcsurface.into().abi(), pdstsurface.into().abi(), ::core::mem::transmute(pencryptedblockinfo), contentkeysize, ::core::mem::transmute(pcontentkey), ivsize, ::core::mem::transmute(piv)) + (::windows::core::Interface::vtable(self).DecryptionBlt)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), psrcsurface.into().abi(), pdstsurface.into().abi(), ::core::mem::transmute(pencryptedblockinfo), pcontentkey.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcontentkey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), piv.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(piv.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn StartSessionKeyRefresh<'a, P0>(&self, pcryptosession: P0, randomnumbersize: u32, prandomnumber: *mut ::core::ffi::c_void) + pub unsafe fn StartSessionKeyRefresh<'a, P0>(&self, pcryptosession: P0, prandomnumber: &mut [u8]) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, { - (::windows::core::Interface::vtable(self).StartSessionKeyRefresh)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), randomnumbersize, ::core::mem::transmute(prandomnumber)) + (::windows::core::Interface::vtable(self).StartSessionKeyRefresh)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), prandomnumber.len() as _, ::core::mem::transmute(prandomnumber.as_ptr())) } pub unsafe fn FinishSessionKeyRefresh<'a, P0>(&self, pcryptosession: P0) where @@ -27586,32 +27656,32 @@ impl ID3D11VideoContext { { (::windows::core::Interface::vtable(self).FinishSessionKeyRefresh)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi()) } - pub unsafe fn GetEncryptionBltKey<'a, P0>(&self, pcryptosession: P0, keysize: u32, preadbackkey: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn GetEncryptionBltKey<'a, P0>(&self, pcryptosession: P0, preadbackkey: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, { - (::windows::core::Interface::vtable(self).GetEncryptionBltKey)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), keysize, ::core::mem::transmute(preadbackkey)).ok() + (::windows::core::Interface::vtable(self).GetEncryptionBltKey)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), preadbackkey.len() as _, ::core::mem::transmute(preadbackkey.as_ptr())).ok() } - pub unsafe fn NegotiateAuthenticatedChannelKeyExchange<'a, P0>(&self, pchannel: P0, datasize: u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn NegotiateAuthenticatedChannelKeyExchange<'a, P0>(&self, pchannel: P0, pdata: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11AuthenticatedChannel>>, { - (::windows::core::Interface::vtable(self).NegotiateAuthenticatedChannelKeyExchange)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), datasize, ::core::mem::transmute(pdata)).ok() + (::windows::core::Interface::vtable(self).NegotiateAuthenticatedChannelKeyExchange)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } - pub unsafe fn QueryAuthenticatedChannel<'a, P0>(&self, pchannel: P0, inputsize: u32, pinput: *const ::core::ffi::c_void, outputsize: u32, poutput: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn QueryAuthenticatedChannel<'a, P0>(&self, pchannel: P0, pinput: &[u8], poutput: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11AuthenticatedChannel>>, { - (::windows::core::Interface::vtable(self).QueryAuthenticatedChannel)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), inputsize, ::core::mem::transmute(pinput), outputsize, ::core::mem::transmute(poutput)).ok() + (::windows::core::Interface::vtable(self).QueryAuthenticatedChannel)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), pinput.len() as _, ::core::mem::transmute(pinput.as_ptr()), poutput.len() as _, ::core::mem::transmute(poutput.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn ConfigureAuthenticatedChannel<'a, P0>(&self, pchannel: P0, inputsize: u32, pinput: *const ::core::ffi::c_void) -> ::windows::core::Result + pub unsafe fn ConfigureAuthenticatedChannel<'a, P0>(&self, pchannel: P0, pinput: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11AuthenticatedChannel>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).ConfigureAuthenticatedChannel)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), inputsize, ::core::mem::transmute(pinput), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).ConfigureAuthenticatedChannel)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), pinput.len() as _, ::core::mem::transmute(pinput.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -27849,8 +27919,8 @@ impl ID3D11VideoContext1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -27870,12 +27940,12 @@ impl ID3D11VideoContext1 { { (::windows::core::Interface::vtable(self).base__.ReleaseDecoderBuffer)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), r#type).ok() } - pub unsafe fn DecoderBeginFrame<'a, P0, P1>(&self, pdecoder: P0, pview: P1, contentkeysize: u32, pcontentkey: *const ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn DecoderBeginFrame<'a, P0, P1>(&self, pdecoder: P0, pview: P1, pcontentkey: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoder>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoderOutputView>>, { - (::windows::core::Interface::vtable(self).base__.DecoderBeginFrame)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pview.into().abi(), contentkeysize, ::core::mem::transmute(pcontentkey)).ok() + (::windows::core::Interface::vtable(self).base__.DecoderBeginFrame)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pview.into().abi(), pcontentkey.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcontentkey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn DecoderEndFrame<'a, P0>(&self, pdecoder: P0) -> ::windows::core::Result<()> where @@ -27889,7 +27959,7 @@ impl ID3D11VideoContext1 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoder>>, { - (::windows::core::Interface::vtable(self).base__.SubmitDecoderBuffers)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pbufferdesc.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbufferdesc))).ok() + (::windows::core::Interface::vtable(self).base__.SubmitDecoderBuffers)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pbufferdesc.len() as _, ::core::mem::transmute(pbufferdesc.as_ptr())).ok() } pub unsafe fn DecoderExtension<'a, P0>(&self, pdecoder: P0, pextensiondata: &D3D11_VIDEO_DECODER_EXTENSION) -> i32 where @@ -27995,11 +28065,11 @@ impl ID3D11VideoContext1 { { (::windows::core::Interface::vtable(self).base__.VideoProcessorGetOutputStereoMode)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(penabled)) } - pub unsafe fn VideoProcessorGetOutputExtension<'a, P0>(&self, pvideoprocessor: P0, pextensionguid: &::windows::core::GUID, datasize: u32, pdata: *mut ::core::ffi::c_void) -> i32 + pub unsafe fn VideoProcessorGetOutputExtension<'a, P0>(&self, pvideoprocessor: P0, pextensionguid: &::windows::core::GUID, pdata: &mut [u8]) -> i32 where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.VideoProcessorGetOutputExtension)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(pextensionguid), datasize, ::core::mem::transmute(pdata)) + (::windows::core::Interface::vtable(self).base__.VideoProcessorGetOutputExtension)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(pextensionguid), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())) } pub unsafe fn VideoProcessorSetStreamFrameFormat<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, frameformat: D3D11_VIDEO_FRAME_FORMAT) where @@ -28049,11 +28119,11 @@ impl ID3D11VideoContext1 { { (::windows::core::Interface::vtable(self).base__.VideoProcessorSetStreamAlpha)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, enable.into(), alpha) } - pub unsafe fn VideoProcessorSetStreamPalette<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, pentries: &[u32]) + pub unsafe fn VideoProcessorSetStreamPalette<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, pentries: ::core::option::Option<&[u32]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.VideoProcessorSetStreamPalette)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, pentries.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pentries))) + (::windows::core::Interface::vtable(self).base__.VideoProcessorSetStreamPalette)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, pentries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pentries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] @@ -28156,7 +28226,7 @@ impl ID3D11VideoContext1 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.VideoProcessorGetStreamPalette)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, pentries.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pentries))) + (::windows::core::Interface::vtable(self).base__.VideoProcessorGetStreamPalette)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, pentries.len() as _, ::core::mem::transmute(pentries.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] @@ -28198,11 +28268,11 @@ impl ID3D11VideoContext1 { { (::windows::core::Interface::vtable(self).base__.VideoProcessorGetStreamFilter)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, filter, ::core::mem::transmute(penabled), ::core::mem::transmute(plevel)) } - pub unsafe fn VideoProcessorGetStreamExtension<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, pextensionguid: &::windows::core::GUID, datasize: u32, pdata: *mut ::core::ffi::c_void) -> i32 + pub unsafe fn VideoProcessorGetStreamExtension<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, pextensionguid: &::windows::core::GUID, pdata: &mut [u8]) -> i32 where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.VideoProcessorGetStreamExtension)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, ::core::mem::transmute(pextensionguid), datasize, ::core::mem::transmute(pdata)) + (::windows::core::Interface::vtable(self).base__.VideoProcessorGetStreamExtension)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, ::core::mem::transmute(pextensionguid), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -28211,35 +28281,35 @@ impl ID3D11VideoContext1 { P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessorOutputView>>, { - (::windows::core::Interface::vtable(self).base__.VideoProcessorBlt)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), pview.into().abi(), outputframe, pstreams.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pstreams))).ok() + (::windows::core::Interface::vtable(self).base__.VideoProcessorBlt)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), pview.into().abi(), outputframe, pstreams.len() as _, ::core::mem::transmute(pstreams.as_ptr())).ok() } - pub unsafe fn NegotiateCryptoSessionKeyExchange<'a, P0>(&self, pcryptosession: P0, datasize: u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn NegotiateCryptoSessionKeyExchange<'a, P0>(&self, pcryptosession: P0, pdata: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, { - (::windows::core::Interface::vtable(self).base__.NegotiateCryptoSessionKeyExchange)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), datasize, ::core::mem::transmute(pdata)).ok() + (::windows::core::Interface::vtable(self).base__.NegotiateCryptoSessionKeyExchange)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } - pub unsafe fn EncryptionBlt<'a, P0, P1, P2>(&self, pcryptosession: P0, psrcsurface: P1, pdstsurface: P2, ivsize: u32, piv: *const ::core::ffi::c_void) + pub unsafe fn EncryptionBlt<'a, P0, P1, P2>(&self, pcryptosession: P0, psrcsurface: P1, pdstsurface: P2, piv: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Texture2D>>, P2: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Texture2D>>, { - (::windows::core::Interface::vtable(self).base__.EncryptionBlt)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), psrcsurface.into().abi(), pdstsurface.into().abi(), ivsize, ::core::mem::transmute(piv)) + (::windows::core::Interface::vtable(self).base__.EncryptionBlt)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), psrcsurface.into().abi(), pdstsurface.into().abi(), piv.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(piv.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DecryptionBlt<'a, P0, P1, P2>(&self, pcryptosession: P0, psrcsurface: P1, pdstsurface: P2, pencryptedblockinfo: ::core::option::Option<&D3D11_ENCRYPTED_BLOCK_INFO>, contentkeysize: u32, pcontentkey: *const ::core::ffi::c_void, ivsize: u32, piv: *const ::core::ffi::c_void) + pub unsafe fn DecryptionBlt<'a, P0, P1, P2>(&self, pcryptosession: P0, psrcsurface: P1, pdstsurface: P2, pencryptedblockinfo: ::core::option::Option<&D3D11_ENCRYPTED_BLOCK_INFO>, pcontentkey: ::core::option::Option<&[u8]>, piv: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Texture2D>>, P2: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Texture2D>>, { - (::windows::core::Interface::vtable(self).base__.DecryptionBlt)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), psrcsurface.into().abi(), pdstsurface.into().abi(), ::core::mem::transmute(pencryptedblockinfo), contentkeysize, ::core::mem::transmute(pcontentkey), ivsize, ::core::mem::transmute(piv)) + (::windows::core::Interface::vtable(self).base__.DecryptionBlt)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), psrcsurface.into().abi(), pdstsurface.into().abi(), ::core::mem::transmute(pencryptedblockinfo), pcontentkey.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcontentkey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), piv.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(piv.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn StartSessionKeyRefresh<'a, P0>(&self, pcryptosession: P0, randomnumbersize: u32, prandomnumber: *mut ::core::ffi::c_void) + pub unsafe fn StartSessionKeyRefresh<'a, P0>(&self, pcryptosession: P0, prandomnumber: &mut [u8]) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, { - (::windows::core::Interface::vtable(self).base__.StartSessionKeyRefresh)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), randomnumbersize, ::core::mem::transmute(prandomnumber)) + (::windows::core::Interface::vtable(self).base__.StartSessionKeyRefresh)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), prandomnumber.len() as _, ::core::mem::transmute(prandomnumber.as_ptr())) } pub unsafe fn FinishSessionKeyRefresh<'a, P0>(&self, pcryptosession: P0) where @@ -28247,32 +28317,32 @@ impl ID3D11VideoContext1 { { (::windows::core::Interface::vtable(self).base__.FinishSessionKeyRefresh)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi()) } - pub unsafe fn GetEncryptionBltKey<'a, P0>(&self, pcryptosession: P0, keysize: u32, preadbackkey: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn GetEncryptionBltKey<'a, P0>(&self, pcryptosession: P0, preadbackkey: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, { - (::windows::core::Interface::vtable(self).base__.GetEncryptionBltKey)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), keysize, ::core::mem::transmute(preadbackkey)).ok() + (::windows::core::Interface::vtable(self).base__.GetEncryptionBltKey)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), preadbackkey.len() as _, ::core::mem::transmute(preadbackkey.as_ptr())).ok() } - pub unsafe fn NegotiateAuthenticatedChannelKeyExchange<'a, P0>(&self, pchannel: P0, datasize: u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn NegotiateAuthenticatedChannelKeyExchange<'a, P0>(&self, pchannel: P0, pdata: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11AuthenticatedChannel>>, { - (::windows::core::Interface::vtable(self).base__.NegotiateAuthenticatedChannelKeyExchange)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), datasize, ::core::mem::transmute(pdata)).ok() + (::windows::core::Interface::vtable(self).base__.NegotiateAuthenticatedChannelKeyExchange)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } - pub unsafe fn QueryAuthenticatedChannel<'a, P0>(&self, pchannel: P0, inputsize: u32, pinput: *const ::core::ffi::c_void, outputsize: u32, poutput: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn QueryAuthenticatedChannel<'a, P0>(&self, pchannel: P0, pinput: &[u8], poutput: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11AuthenticatedChannel>>, { - (::windows::core::Interface::vtable(self).base__.QueryAuthenticatedChannel)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), inputsize, ::core::mem::transmute(pinput), outputsize, ::core::mem::transmute(poutput)).ok() + (::windows::core::Interface::vtable(self).base__.QueryAuthenticatedChannel)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), pinput.len() as _, ::core::mem::transmute(pinput.as_ptr()), poutput.len() as _, ::core::mem::transmute(poutput.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn ConfigureAuthenticatedChannel<'a, P0>(&self, pchannel: P0, inputsize: u32, pinput: *const ::core::ffi::c_void) -> ::windows::core::Result + pub unsafe fn ConfigureAuthenticatedChannel<'a, P0>(&self, pchannel: P0, pinput: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11AuthenticatedChannel>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.ConfigureAuthenticatedChannel)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), inputsize, ::core::mem::transmute(pinput), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.ConfigureAuthenticatedChannel)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), pinput.len() as _, ::core::mem::transmute(pinput.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -28295,14 +28365,14 @@ impl ID3D11VideoContext1 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoder>>, { - (::windows::core::Interface::vtable(self).SubmitDecoderBuffers1)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pbufferdesc.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbufferdesc))).ok() + (::windows::core::Interface::vtable(self).SubmitDecoderBuffers1)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pbufferdesc.len() as _, ::core::mem::transmute(pbufferdesc.as_ptr())).ok() } pub unsafe fn GetDataForNewHardwareKey<'a, P0>(&self, pcryptosession: P0, pprivatinputdata: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetDataForNewHardwareKey)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), pprivatinputdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pprivatinputdata)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetDataForNewHardwareKey)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), pprivatinputdata.len() as _, ::core::mem::transmute(pprivatinputdata.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CheckCryptoSessionStatus<'a, P0>(&self, pcryptosession: P0) -> ::windows::core::Result where @@ -28402,7 +28472,7 @@ impl ID3D11VideoContext1 { P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).VideoProcessorGetBehaviorHints)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), outputwidth, outputheight, outputformat, pstreams.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pstreams)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).VideoProcessorGetBehaviorHints)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), outputwidth, outputheight, outputformat, pstreams.len() as _, ::core::mem::transmute(pstreams.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -28534,8 +28604,8 @@ impl ID3D11VideoContext2 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -28555,12 +28625,12 @@ impl ID3D11VideoContext2 { { (::windows::core::Interface::vtable(self).base__.base__.ReleaseDecoderBuffer)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), r#type).ok() } - pub unsafe fn DecoderBeginFrame<'a, P0, P1>(&self, pdecoder: P0, pview: P1, contentkeysize: u32, pcontentkey: *const ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn DecoderBeginFrame<'a, P0, P1>(&self, pdecoder: P0, pview: P1, pcontentkey: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoder>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoderOutputView>>, { - (::windows::core::Interface::vtable(self).base__.base__.DecoderBeginFrame)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pview.into().abi(), contentkeysize, ::core::mem::transmute(pcontentkey)).ok() + (::windows::core::Interface::vtable(self).base__.base__.DecoderBeginFrame)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pview.into().abi(), pcontentkey.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcontentkey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn DecoderEndFrame<'a, P0>(&self, pdecoder: P0) -> ::windows::core::Result<()> where @@ -28574,7 +28644,7 @@ impl ID3D11VideoContext2 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoder>>, { - (::windows::core::Interface::vtable(self).base__.base__.SubmitDecoderBuffers)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pbufferdesc.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbufferdesc))).ok() + (::windows::core::Interface::vtable(self).base__.base__.SubmitDecoderBuffers)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pbufferdesc.len() as _, ::core::mem::transmute(pbufferdesc.as_ptr())).ok() } pub unsafe fn DecoderExtension<'a, P0>(&self, pdecoder: P0, pextensiondata: &D3D11_VIDEO_DECODER_EXTENSION) -> i32 where @@ -28680,11 +28750,11 @@ impl ID3D11VideoContext2 { { (::windows::core::Interface::vtable(self).base__.base__.VideoProcessorGetOutputStereoMode)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(penabled)) } - pub unsafe fn VideoProcessorGetOutputExtension<'a, P0>(&self, pvideoprocessor: P0, pextensionguid: &::windows::core::GUID, datasize: u32, pdata: *mut ::core::ffi::c_void) -> i32 + pub unsafe fn VideoProcessorGetOutputExtension<'a, P0>(&self, pvideoprocessor: P0, pextensionguid: &::windows::core::GUID, pdata: &mut [u8]) -> i32 where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.base__.VideoProcessorGetOutputExtension)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(pextensionguid), datasize, ::core::mem::transmute(pdata)) + (::windows::core::Interface::vtable(self).base__.base__.VideoProcessorGetOutputExtension)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(pextensionguid), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())) } pub unsafe fn VideoProcessorSetStreamFrameFormat<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, frameformat: D3D11_VIDEO_FRAME_FORMAT) where @@ -28734,11 +28804,11 @@ impl ID3D11VideoContext2 { { (::windows::core::Interface::vtable(self).base__.base__.VideoProcessorSetStreamAlpha)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, enable.into(), alpha) } - pub unsafe fn VideoProcessorSetStreamPalette<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, pentries: &[u32]) + pub unsafe fn VideoProcessorSetStreamPalette<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, pentries: ::core::option::Option<&[u32]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.base__.VideoProcessorSetStreamPalette)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, pentries.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pentries))) + (::windows::core::Interface::vtable(self).base__.base__.VideoProcessorSetStreamPalette)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, pentries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pentries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] @@ -28841,7 +28911,7 @@ impl ID3D11VideoContext2 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.base__.VideoProcessorGetStreamPalette)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, pentries.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pentries))) + (::windows::core::Interface::vtable(self).base__.base__.VideoProcessorGetStreamPalette)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, pentries.len() as _, ::core::mem::transmute(pentries.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] @@ -28883,11 +28953,11 @@ impl ID3D11VideoContext2 { { (::windows::core::Interface::vtable(self).base__.base__.VideoProcessorGetStreamFilter)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, filter, ::core::mem::transmute(penabled), ::core::mem::transmute(plevel)) } - pub unsafe fn VideoProcessorGetStreamExtension<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, pextensionguid: &::windows::core::GUID, datasize: u32, pdata: *mut ::core::ffi::c_void) -> i32 + pub unsafe fn VideoProcessorGetStreamExtension<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, pextensionguid: &::windows::core::GUID, pdata: &mut [u8]) -> i32 where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.base__.VideoProcessorGetStreamExtension)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, ::core::mem::transmute(pextensionguid), datasize, ::core::mem::transmute(pdata)) + (::windows::core::Interface::vtable(self).base__.base__.VideoProcessorGetStreamExtension)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, ::core::mem::transmute(pextensionguid), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -28896,35 +28966,35 @@ impl ID3D11VideoContext2 { P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessorOutputView>>, { - (::windows::core::Interface::vtable(self).base__.base__.VideoProcessorBlt)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), pview.into().abi(), outputframe, pstreams.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pstreams))).ok() + (::windows::core::Interface::vtable(self).base__.base__.VideoProcessorBlt)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), pview.into().abi(), outputframe, pstreams.len() as _, ::core::mem::transmute(pstreams.as_ptr())).ok() } - pub unsafe fn NegotiateCryptoSessionKeyExchange<'a, P0>(&self, pcryptosession: P0, datasize: u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn NegotiateCryptoSessionKeyExchange<'a, P0>(&self, pcryptosession: P0, pdata: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, { - (::windows::core::Interface::vtable(self).base__.base__.NegotiateCryptoSessionKeyExchange)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), datasize, ::core::mem::transmute(pdata)).ok() + (::windows::core::Interface::vtable(self).base__.base__.NegotiateCryptoSessionKeyExchange)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } - pub unsafe fn EncryptionBlt<'a, P0, P1, P2>(&self, pcryptosession: P0, psrcsurface: P1, pdstsurface: P2, ivsize: u32, piv: *const ::core::ffi::c_void) + pub unsafe fn EncryptionBlt<'a, P0, P1, P2>(&self, pcryptosession: P0, psrcsurface: P1, pdstsurface: P2, piv: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Texture2D>>, P2: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Texture2D>>, { - (::windows::core::Interface::vtable(self).base__.base__.EncryptionBlt)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), psrcsurface.into().abi(), pdstsurface.into().abi(), ivsize, ::core::mem::transmute(piv)) + (::windows::core::Interface::vtable(self).base__.base__.EncryptionBlt)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), psrcsurface.into().abi(), pdstsurface.into().abi(), piv.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(piv.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DecryptionBlt<'a, P0, P1, P2>(&self, pcryptosession: P0, psrcsurface: P1, pdstsurface: P2, pencryptedblockinfo: ::core::option::Option<&D3D11_ENCRYPTED_BLOCK_INFO>, contentkeysize: u32, pcontentkey: *const ::core::ffi::c_void, ivsize: u32, piv: *const ::core::ffi::c_void) + pub unsafe fn DecryptionBlt<'a, P0, P1, P2>(&self, pcryptosession: P0, psrcsurface: P1, pdstsurface: P2, pencryptedblockinfo: ::core::option::Option<&D3D11_ENCRYPTED_BLOCK_INFO>, pcontentkey: ::core::option::Option<&[u8]>, piv: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Texture2D>>, P2: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Texture2D>>, { - (::windows::core::Interface::vtable(self).base__.base__.DecryptionBlt)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), psrcsurface.into().abi(), pdstsurface.into().abi(), ::core::mem::transmute(pencryptedblockinfo), contentkeysize, ::core::mem::transmute(pcontentkey), ivsize, ::core::mem::transmute(piv)) + (::windows::core::Interface::vtable(self).base__.base__.DecryptionBlt)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), psrcsurface.into().abi(), pdstsurface.into().abi(), ::core::mem::transmute(pencryptedblockinfo), pcontentkey.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcontentkey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), piv.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(piv.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn StartSessionKeyRefresh<'a, P0>(&self, pcryptosession: P0, randomnumbersize: u32, prandomnumber: *mut ::core::ffi::c_void) + pub unsafe fn StartSessionKeyRefresh<'a, P0>(&self, pcryptosession: P0, prandomnumber: &mut [u8]) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, { - (::windows::core::Interface::vtable(self).base__.base__.StartSessionKeyRefresh)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), randomnumbersize, ::core::mem::transmute(prandomnumber)) + (::windows::core::Interface::vtable(self).base__.base__.StartSessionKeyRefresh)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), prandomnumber.len() as _, ::core::mem::transmute(prandomnumber.as_ptr())) } pub unsafe fn FinishSessionKeyRefresh<'a, P0>(&self, pcryptosession: P0) where @@ -28932,32 +29002,32 @@ impl ID3D11VideoContext2 { { (::windows::core::Interface::vtable(self).base__.base__.FinishSessionKeyRefresh)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi()) } - pub unsafe fn GetEncryptionBltKey<'a, P0>(&self, pcryptosession: P0, keysize: u32, preadbackkey: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn GetEncryptionBltKey<'a, P0>(&self, pcryptosession: P0, preadbackkey: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, { - (::windows::core::Interface::vtable(self).base__.base__.GetEncryptionBltKey)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), keysize, ::core::mem::transmute(preadbackkey)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetEncryptionBltKey)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), preadbackkey.len() as _, ::core::mem::transmute(preadbackkey.as_ptr())).ok() } - pub unsafe fn NegotiateAuthenticatedChannelKeyExchange<'a, P0>(&self, pchannel: P0, datasize: u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn NegotiateAuthenticatedChannelKeyExchange<'a, P0>(&self, pchannel: P0, pdata: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11AuthenticatedChannel>>, { - (::windows::core::Interface::vtable(self).base__.base__.NegotiateAuthenticatedChannelKeyExchange)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), datasize, ::core::mem::transmute(pdata)).ok() + (::windows::core::Interface::vtable(self).base__.base__.NegotiateAuthenticatedChannelKeyExchange)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } - pub unsafe fn QueryAuthenticatedChannel<'a, P0>(&self, pchannel: P0, inputsize: u32, pinput: *const ::core::ffi::c_void, outputsize: u32, poutput: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn QueryAuthenticatedChannel<'a, P0>(&self, pchannel: P0, pinput: &[u8], poutput: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11AuthenticatedChannel>>, { - (::windows::core::Interface::vtable(self).base__.base__.QueryAuthenticatedChannel)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), inputsize, ::core::mem::transmute(pinput), outputsize, ::core::mem::transmute(poutput)).ok() + (::windows::core::Interface::vtable(self).base__.base__.QueryAuthenticatedChannel)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), pinput.len() as _, ::core::mem::transmute(pinput.as_ptr()), poutput.len() as _, ::core::mem::transmute(poutput.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn ConfigureAuthenticatedChannel<'a, P0>(&self, pchannel: P0, inputsize: u32, pinput: *const ::core::ffi::c_void) -> ::windows::core::Result + pub unsafe fn ConfigureAuthenticatedChannel<'a, P0>(&self, pchannel: P0, pinput: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11AuthenticatedChannel>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.ConfigureAuthenticatedChannel)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), inputsize, ::core::mem::transmute(pinput), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.ConfigureAuthenticatedChannel)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), pinput.len() as _, ::core::mem::transmute(pinput.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -28980,14 +29050,14 @@ impl ID3D11VideoContext2 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoder>>, { - (::windows::core::Interface::vtable(self).base__.SubmitDecoderBuffers1)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pbufferdesc.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbufferdesc))).ok() + (::windows::core::Interface::vtable(self).base__.SubmitDecoderBuffers1)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pbufferdesc.len() as _, ::core::mem::transmute(pbufferdesc.as_ptr())).ok() } pub unsafe fn GetDataForNewHardwareKey<'a, P0>(&self, pcryptosession: P0, pprivatinputdata: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.GetDataForNewHardwareKey)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), pprivatinputdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pprivatinputdata)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.GetDataForNewHardwareKey)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), pprivatinputdata.len() as _, ::core::mem::transmute(pprivatinputdata.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CheckCryptoSessionStatus<'a, P0>(&self, pcryptosession: P0) -> ::windows::core::Result where @@ -29087,39 +29157,39 @@ impl ID3D11VideoContext2 { P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.VideoProcessorGetBehaviorHints)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), outputwidth, outputheight, outputformat, pstreams.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pstreams)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.VideoProcessorGetBehaviorHints)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), outputwidth, outputheight, outputformat, pstreams.len() as _, ::core::mem::transmute(pstreams.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi")] - pub unsafe fn VideoProcessorSetOutputHDRMetaData<'a, P0>(&self, pvideoprocessor: P0, r#type: super::Dxgi::DXGI_HDR_METADATA_TYPE, size: u32, phdrmetadata: *const ::core::ffi::c_void) + pub unsafe fn VideoProcessorSetOutputHDRMetaData<'a, P0>(&self, pvideoprocessor: P0, r#type: super::Dxgi::DXGI_HDR_METADATA_TYPE, phdrmetadata: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).VideoProcessorSetOutputHDRMetaData)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), r#type, size, ::core::mem::transmute(phdrmetadata)) + (::windows::core::Interface::vtable(self).VideoProcessorSetOutputHDRMetaData)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), r#type, phdrmetadata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(phdrmetadata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi")] - pub unsafe fn VideoProcessorGetOutputHDRMetaData<'a, P0>(&self, pvideoprocessor: P0, ptype: &mut super::Dxgi::DXGI_HDR_METADATA_TYPE, size: u32, pmetadata: *mut ::core::ffi::c_void) + pub unsafe fn VideoProcessorGetOutputHDRMetaData<'a, P0>(&self, pvideoprocessor: P0, ptype: &mut super::Dxgi::DXGI_HDR_METADATA_TYPE, pmetadata: ::core::option::Option<&mut [u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).VideoProcessorGetOutputHDRMetaData)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(ptype), size, ::core::mem::transmute(pmetadata)) + (::windows::core::Interface::vtable(self).VideoProcessorGetOutputHDRMetaData)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(ptype), pmetadata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pmetadata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi")] - pub unsafe fn VideoProcessorSetStreamHDRMetaData<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, r#type: super::Dxgi::DXGI_HDR_METADATA_TYPE, size: u32, phdrmetadata: *const ::core::ffi::c_void) + pub unsafe fn VideoProcessorSetStreamHDRMetaData<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, r#type: super::Dxgi::DXGI_HDR_METADATA_TYPE, phdrmetadata: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).VideoProcessorSetStreamHDRMetaData)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, r#type, size, ::core::mem::transmute(phdrmetadata)) + (::windows::core::Interface::vtable(self).VideoProcessorSetStreamHDRMetaData)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, r#type, phdrmetadata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(phdrmetadata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi")] - pub unsafe fn VideoProcessorGetStreamHDRMetaData<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, ptype: &mut super::Dxgi::DXGI_HDR_METADATA_TYPE, size: u32, pmetadata: *mut ::core::ffi::c_void) + pub unsafe fn VideoProcessorGetStreamHDRMetaData<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, ptype: &mut super::Dxgi::DXGI_HDR_METADATA_TYPE, pmetadata: ::core::option::Option<&mut [u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).VideoProcessorGetStreamHDRMetaData)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, ::core::mem::transmute(ptype), size, ::core::mem::transmute(pmetadata)) + (::windows::core::Interface::vtable(self).VideoProcessorGetStreamHDRMetaData)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, ::core::mem::transmute(ptype), pmetadata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pmetadata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -29235,8 +29305,8 @@ impl ID3D11VideoContext3 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -29256,12 +29326,12 @@ impl ID3D11VideoContext3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.ReleaseDecoderBuffer)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), r#type).ok() } - pub unsafe fn DecoderBeginFrame<'a, P0, P1>(&self, pdecoder: P0, pview: P1, contentkeysize: u32, pcontentkey: *const ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn DecoderBeginFrame<'a, P0, P1>(&self, pdecoder: P0, pview: P1, pcontentkey: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoder>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoderOutputView>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.DecoderBeginFrame)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pview.into().abi(), contentkeysize, ::core::mem::transmute(pcontentkey)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.DecoderBeginFrame)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pview.into().abi(), pcontentkey.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcontentkey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn DecoderEndFrame<'a, P0>(&self, pdecoder: P0) -> ::windows::core::Result<()> where @@ -29275,7 +29345,7 @@ impl ID3D11VideoContext3 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoder>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.SubmitDecoderBuffers)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pbufferdesc.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbufferdesc))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.SubmitDecoderBuffers)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pbufferdesc.len() as _, ::core::mem::transmute(pbufferdesc.as_ptr())).ok() } pub unsafe fn DecoderExtension<'a, P0>(&self, pdecoder: P0, pextensiondata: &D3D11_VIDEO_DECODER_EXTENSION) -> i32 where @@ -29381,11 +29451,11 @@ impl ID3D11VideoContext3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.VideoProcessorGetOutputStereoMode)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(penabled)) } - pub unsafe fn VideoProcessorGetOutputExtension<'a, P0>(&self, pvideoprocessor: P0, pextensionguid: &::windows::core::GUID, datasize: u32, pdata: *mut ::core::ffi::c_void) -> i32 + pub unsafe fn VideoProcessorGetOutputExtension<'a, P0>(&self, pvideoprocessor: P0, pextensionguid: &::windows::core::GUID, pdata: &mut [u8]) -> i32 where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.VideoProcessorGetOutputExtension)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(pextensionguid), datasize, ::core::mem::transmute(pdata)) + (::windows::core::Interface::vtable(self).base__.base__.base__.VideoProcessorGetOutputExtension)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(pextensionguid), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())) } pub unsafe fn VideoProcessorSetStreamFrameFormat<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, frameformat: D3D11_VIDEO_FRAME_FORMAT) where @@ -29435,11 +29505,11 @@ impl ID3D11VideoContext3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.VideoProcessorSetStreamAlpha)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, enable.into(), alpha) } - pub unsafe fn VideoProcessorSetStreamPalette<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, pentries: &[u32]) + pub unsafe fn VideoProcessorSetStreamPalette<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, pentries: ::core::option::Option<&[u32]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.VideoProcessorSetStreamPalette)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, pentries.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pentries))) + (::windows::core::Interface::vtable(self).base__.base__.base__.VideoProcessorSetStreamPalette)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, pentries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pentries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] @@ -29542,7 +29612,7 @@ impl ID3D11VideoContext3 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.VideoProcessorGetStreamPalette)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, pentries.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pentries))) + (::windows::core::Interface::vtable(self).base__.base__.base__.VideoProcessorGetStreamPalette)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, pentries.len() as _, ::core::mem::transmute(pentries.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] @@ -29584,11 +29654,11 @@ impl ID3D11VideoContext3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.VideoProcessorGetStreamFilter)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, filter, ::core::mem::transmute(penabled), ::core::mem::transmute(plevel)) } - pub unsafe fn VideoProcessorGetStreamExtension<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, pextensionguid: &::windows::core::GUID, datasize: u32, pdata: *mut ::core::ffi::c_void) -> i32 + pub unsafe fn VideoProcessorGetStreamExtension<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, pextensionguid: &::windows::core::GUID, pdata: &mut [u8]) -> i32 where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.VideoProcessorGetStreamExtension)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, ::core::mem::transmute(pextensionguid), datasize, ::core::mem::transmute(pdata)) + (::windows::core::Interface::vtable(self).base__.base__.base__.VideoProcessorGetStreamExtension)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, ::core::mem::transmute(pextensionguid), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -29597,35 +29667,35 @@ impl ID3D11VideoContext3 { P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessorOutputView>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.VideoProcessorBlt)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), pview.into().abi(), outputframe, pstreams.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pstreams))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.VideoProcessorBlt)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), pview.into().abi(), outputframe, pstreams.len() as _, ::core::mem::transmute(pstreams.as_ptr())).ok() } - pub unsafe fn NegotiateCryptoSessionKeyExchange<'a, P0>(&self, pcryptosession: P0, datasize: u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn NegotiateCryptoSessionKeyExchange<'a, P0>(&self, pcryptosession: P0, pdata: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.NegotiateCryptoSessionKeyExchange)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), datasize, ::core::mem::transmute(pdata)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.NegotiateCryptoSessionKeyExchange)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } - pub unsafe fn EncryptionBlt<'a, P0, P1, P2>(&self, pcryptosession: P0, psrcsurface: P1, pdstsurface: P2, ivsize: u32, piv: *const ::core::ffi::c_void) + pub unsafe fn EncryptionBlt<'a, P0, P1, P2>(&self, pcryptosession: P0, psrcsurface: P1, pdstsurface: P2, piv: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Texture2D>>, P2: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Texture2D>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.EncryptionBlt)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), psrcsurface.into().abi(), pdstsurface.into().abi(), ivsize, ::core::mem::transmute(piv)) + (::windows::core::Interface::vtable(self).base__.base__.base__.EncryptionBlt)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), psrcsurface.into().abi(), pdstsurface.into().abi(), piv.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(piv.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DecryptionBlt<'a, P0, P1, P2>(&self, pcryptosession: P0, psrcsurface: P1, pdstsurface: P2, pencryptedblockinfo: ::core::option::Option<&D3D11_ENCRYPTED_BLOCK_INFO>, contentkeysize: u32, pcontentkey: *const ::core::ffi::c_void, ivsize: u32, piv: *const ::core::ffi::c_void) + pub unsafe fn DecryptionBlt<'a, P0, P1, P2>(&self, pcryptosession: P0, psrcsurface: P1, pdstsurface: P2, pencryptedblockinfo: ::core::option::Option<&D3D11_ENCRYPTED_BLOCK_INFO>, pcontentkey: ::core::option::Option<&[u8]>, piv: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Texture2D>>, P2: ::std::convert::Into<::windows::core::InParam<'a, ID3D11Texture2D>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.DecryptionBlt)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), psrcsurface.into().abi(), pdstsurface.into().abi(), ::core::mem::transmute(pencryptedblockinfo), contentkeysize, ::core::mem::transmute(pcontentkey), ivsize, ::core::mem::transmute(piv)) + (::windows::core::Interface::vtable(self).base__.base__.base__.DecryptionBlt)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), psrcsurface.into().abi(), pdstsurface.into().abi(), ::core::mem::transmute(pencryptedblockinfo), pcontentkey.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcontentkey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), piv.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(piv.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn StartSessionKeyRefresh<'a, P0>(&self, pcryptosession: P0, randomnumbersize: u32, prandomnumber: *mut ::core::ffi::c_void) + pub unsafe fn StartSessionKeyRefresh<'a, P0>(&self, pcryptosession: P0, prandomnumber: &mut [u8]) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.StartSessionKeyRefresh)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), randomnumbersize, ::core::mem::transmute(prandomnumber)) + (::windows::core::Interface::vtable(self).base__.base__.base__.StartSessionKeyRefresh)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), prandomnumber.len() as _, ::core::mem::transmute(prandomnumber.as_ptr())) } pub unsafe fn FinishSessionKeyRefresh<'a, P0>(&self, pcryptosession: P0) where @@ -29633,32 +29703,32 @@ impl ID3D11VideoContext3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.FinishSessionKeyRefresh)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi()) } - pub unsafe fn GetEncryptionBltKey<'a, P0>(&self, pcryptosession: P0, keysize: u32, preadbackkey: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn GetEncryptionBltKey<'a, P0>(&self, pcryptosession: P0, preadbackkey: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetEncryptionBltKey)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), keysize, ::core::mem::transmute(preadbackkey)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.GetEncryptionBltKey)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), preadbackkey.len() as _, ::core::mem::transmute(preadbackkey.as_ptr())).ok() } - pub unsafe fn NegotiateAuthenticatedChannelKeyExchange<'a, P0>(&self, pchannel: P0, datasize: u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn NegotiateAuthenticatedChannelKeyExchange<'a, P0>(&self, pchannel: P0, pdata: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11AuthenticatedChannel>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.NegotiateAuthenticatedChannelKeyExchange)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), datasize, ::core::mem::transmute(pdata)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.NegotiateAuthenticatedChannelKeyExchange)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } - pub unsafe fn QueryAuthenticatedChannel<'a, P0>(&self, pchannel: P0, inputsize: u32, pinput: *const ::core::ffi::c_void, outputsize: u32, poutput: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn QueryAuthenticatedChannel<'a, P0>(&self, pchannel: P0, pinput: &[u8], poutput: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11AuthenticatedChannel>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.QueryAuthenticatedChannel)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), inputsize, ::core::mem::transmute(pinput), outputsize, ::core::mem::transmute(poutput)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.QueryAuthenticatedChannel)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), pinput.len() as _, ::core::mem::transmute(pinput.as_ptr()), poutput.len() as _, ::core::mem::transmute(poutput.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn ConfigureAuthenticatedChannel<'a, P0>(&self, pchannel: P0, inputsize: u32, pinput: *const ::core::ffi::c_void) -> ::windows::core::Result + pub unsafe fn ConfigureAuthenticatedChannel<'a, P0>(&self, pchannel: P0, pinput: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11AuthenticatedChannel>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.ConfigureAuthenticatedChannel)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), inputsize, ::core::mem::transmute(pinput), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.ConfigureAuthenticatedChannel)(::windows::core::Interface::as_raw(self), pchannel.into().abi(), pinput.len() as _, ::core::mem::transmute(pinput.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -29681,14 +29751,14 @@ impl ID3D11VideoContext3 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoder>>, { - (::windows::core::Interface::vtable(self).base__.base__.SubmitDecoderBuffers1)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pbufferdesc.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbufferdesc))).ok() + (::windows::core::Interface::vtable(self).base__.base__.SubmitDecoderBuffers1)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pbufferdesc.len() as _, ::core::mem::transmute(pbufferdesc.as_ptr())).ok() } pub unsafe fn GetDataForNewHardwareKey<'a, P0>(&self, pcryptosession: P0, pprivatinputdata: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.GetDataForNewHardwareKey)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), pprivatinputdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pprivatinputdata)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.GetDataForNewHardwareKey)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), pprivatinputdata.len() as _, ::core::mem::transmute(pprivatinputdata.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CheckCryptoSessionStatus<'a, P0>(&self, pcryptosession: P0) -> ::windows::core::Result where @@ -29788,52 +29858,52 @@ impl ID3D11VideoContext3 { P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.VideoProcessorGetBehaviorHints)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), outputwidth, outputheight, outputformat, pstreams.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pstreams)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.VideoProcessorGetBehaviorHints)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), outputwidth, outputheight, outputformat, pstreams.len() as _, ::core::mem::transmute(pstreams.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi")] - pub unsafe fn VideoProcessorSetOutputHDRMetaData<'a, P0>(&self, pvideoprocessor: P0, r#type: super::Dxgi::DXGI_HDR_METADATA_TYPE, size: u32, phdrmetadata: *const ::core::ffi::c_void) + pub unsafe fn VideoProcessorSetOutputHDRMetaData<'a, P0>(&self, pvideoprocessor: P0, r#type: super::Dxgi::DXGI_HDR_METADATA_TYPE, phdrmetadata: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.VideoProcessorSetOutputHDRMetaData)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), r#type, size, ::core::mem::transmute(phdrmetadata)) + (::windows::core::Interface::vtable(self).base__.VideoProcessorSetOutputHDRMetaData)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), r#type, phdrmetadata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(phdrmetadata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi")] - pub unsafe fn VideoProcessorGetOutputHDRMetaData<'a, P0>(&self, pvideoprocessor: P0, ptype: &mut super::Dxgi::DXGI_HDR_METADATA_TYPE, size: u32, pmetadata: *mut ::core::ffi::c_void) + pub unsafe fn VideoProcessorGetOutputHDRMetaData<'a, P0>(&self, pvideoprocessor: P0, ptype: &mut super::Dxgi::DXGI_HDR_METADATA_TYPE, pmetadata: ::core::option::Option<&mut [u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.VideoProcessorGetOutputHDRMetaData)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(ptype), size, ::core::mem::transmute(pmetadata)) + (::windows::core::Interface::vtable(self).base__.VideoProcessorGetOutputHDRMetaData)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(ptype), pmetadata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pmetadata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi")] - pub unsafe fn VideoProcessorSetStreamHDRMetaData<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, r#type: super::Dxgi::DXGI_HDR_METADATA_TYPE, size: u32, phdrmetadata: *const ::core::ffi::c_void) + pub unsafe fn VideoProcessorSetStreamHDRMetaData<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, r#type: super::Dxgi::DXGI_HDR_METADATA_TYPE, phdrmetadata: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.VideoProcessorSetStreamHDRMetaData)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, r#type, size, ::core::mem::transmute(phdrmetadata)) + (::windows::core::Interface::vtable(self).base__.VideoProcessorSetStreamHDRMetaData)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, r#type, phdrmetadata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(phdrmetadata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi")] - pub unsafe fn VideoProcessorGetStreamHDRMetaData<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, ptype: &mut super::Dxgi::DXGI_HDR_METADATA_TYPE, size: u32, pmetadata: *mut ::core::ffi::c_void) + pub unsafe fn VideoProcessorGetStreamHDRMetaData<'a, P0>(&self, pvideoprocessor: P0, streamindex: u32, ptype: &mut super::Dxgi::DXGI_HDR_METADATA_TYPE, pmetadata: ::core::option::Option<&mut [u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.VideoProcessorGetStreamHDRMetaData)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, ::core::mem::transmute(ptype), size, ::core::mem::transmute(pmetadata)) + (::windows::core::Interface::vtable(self).base__.VideoProcessorGetStreamHDRMetaData)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), streamindex, ::core::mem::transmute(ptype), pmetadata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pmetadata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn DecoderBeginFrame1<'a, P0, P1>(&self, pdecoder: P0, pview: P1, contentkeysize: u32, pcontentkey: *const ::core::ffi::c_void, numcomponenthistograms: u32, phistogramoffsets: ::core::option::Option<&u32>, pphistogrambuffers: ::core::option::Option<&::core::option::Option>) -> ::windows::core::Result<()> + pub unsafe fn DecoderBeginFrame1<'a, P0, P1>(&self, pdecoder: P0, pview: P1, pcontentkey: ::core::option::Option<&[u8]>, numcomponenthistograms: u32, phistogramoffsets: *const u32, pphistogrambuffers: *const ::core::option::Option) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoder>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoderOutputView>>, { - (::windows::core::Interface::vtable(self).DecoderBeginFrame1)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pview.into().abi(), contentkeysize, ::core::mem::transmute(pcontentkey), ::core::mem::transmute(numcomponenthistograms), ::core::mem::transmute(phistogramoffsets), ::core::mem::transmute(pphistogrambuffers)).ok() + (::windows::core::Interface::vtable(self).DecoderBeginFrame1)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pview.into().abi(), pcontentkey.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcontentkey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(numcomponenthistograms), ::core::mem::transmute(phistogramoffsets), ::core::mem::transmute(pphistogrambuffers)).ok() } pub unsafe fn SubmitDecoderBuffers2<'a, P0>(&self, pdecoder: P0, pbufferdesc: &[D3D11_VIDEO_DECODER_BUFFER_DESC2]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11VideoDecoder>>, { - (::windows::core::Interface::vtable(self).SubmitDecoderBuffers2)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pbufferdesc.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbufferdesc))).ok() + (::windows::core::Interface::vtable(self).SubmitDecoderBuffers2)(::windows::core::Interface::as_raw(self), pdecoder.into().abi(), pbufferdesc.len() as _, ::core::mem::transmute(pbufferdesc.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -29950,8 +30020,8 @@ impl ID3D11VideoDecoder { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -30046,8 +30116,8 @@ impl ID3D11VideoDecoderOutputView { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -30222,8 +30292,8 @@ impl ID3D11VideoDevice { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).CheckCryptoKeyExchange)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcryptotype), ::core::mem::transmute(pdecoderprofile), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -30393,8 +30463,8 @@ impl ID3D11VideoDevice1 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.CheckCryptoKeyExchange)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcryptotype), ::core::mem::transmute(pdecoderprofile), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -30580,8 +30650,8 @@ impl ID3D11VideoDevice2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.CheckCryptoKeyExchange)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcryptotype), ::core::mem::transmute(pdecoderprofile), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -30609,14 +30679,14 @@ impl ID3D11VideoDevice2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.RecommendVideoDecoderDownsampleParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinputdesc), inputcolorspace, ::core::mem::transmute(pinputconfig), ::core::mem::transmute(pframerate), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D11_FEATURE_VIDEO, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D11_FEATURE_VIDEO, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } - pub unsafe fn NegotiateCryptoSessionKeyExchangeMT<'a, P0>(&self, pcryptosession: P0, flags: D3D11_CRYPTO_SESSION_KEY_EXCHANGE_FLAGS, datasize: u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> + pub unsafe fn NegotiateCryptoSessionKeyExchangeMT<'a, P0>(&self, pcryptosession: P0, flags: D3D11_CRYPTO_SESSION_KEY_EXCHANGE_FLAGS, pdata: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D11CryptoSession>>, { - (::windows::core::Interface::vtable(self).NegotiateCryptoSessionKeyExchangeMT)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), flags, datasize, ::core::mem::transmute(pdata)).ok() + (::windows::core::Interface::vtable(self).NegotiateCryptoSessionKeyExchangeMT)(::windows::core::Interface::as_raw(self), pcryptosession.into().abi(), flags, pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -30703,8 +30773,8 @@ impl ID3D11VideoProcessor { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -30793,8 +30863,8 @@ impl ID3D11VideoProcessorEnumerator { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -30915,8 +30985,8 @@ impl ID3D11VideoProcessorEnumerator1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -31047,8 +31117,8 @@ impl ID3D11VideoProcessorInputView { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -31146,8 +31216,8 @@ impl ID3D11VideoProcessorOutputView { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -31245,8 +31315,8 @@ impl ID3D11View { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -31326,8 +31396,8 @@ impl ID3DDeviceContextState { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -31484,7 +31554,7 @@ impl ID3DX11FFT { (::windows::core::Interface::vtable(self).GetInverseScale)(::windows::core::Interface::as_raw(self)) } pub unsafe fn AttachBuffersAndPrecompute(&self, pptempbuffers: &[::core::option::Option], ppprecomputebuffersizes: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AttachBuffersAndPrecompute)(::windows::core::Interface::as_raw(self), pptempbuffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pptempbuffers)), ppprecomputebuffersizes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppprecomputebuffersizes))).ok() + (::windows::core::Interface::vtable(self).AttachBuffersAndPrecompute)(::windows::core::Interface::as_raw(self), pptempbuffers.len() as _, ::core::mem::transmute(pptempbuffers.as_ptr()), ppprecomputebuffersizes.len() as _, ::core::mem::transmute(ppprecomputebuffersizes.as_ptr())).ok() } pub unsafe fn ForwardTransform<'a, P0>(&self, pinputbuffer: P0, ppoutputbuffer: &mut ::core::option::Option) -> ::windows::core::Result<()> where diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D11on12/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D11on12/mod.rs index 40c660bb05..5a61d8ab30 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D11on12/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D11on12/mod.rs @@ -1,7 +1,7 @@ #[doc = "*Required features: `\"Win32_Graphics_Direct3D11on12\"`, `\"Win32_Graphics_Direct3D\"`, `\"Win32_Graphics_Direct3D11\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct3D", feature = "Win32_Graphics_Direct3D11"))] #[inline] -pub unsafe fn D3D11On12CreateDevice<'a, P0>(pdevice: P0, flags: u32, pfeaturelevels: &[super::Direct3D::D3D_FEATURE_LEVEL], ppcommandqueues: &[::core::option::Option<::windows::core::IUnknown>], nodemask: u32, ppdevice: ::core::option::Option<&mut ::core::option::Option>, ppimmediatecontext: ::core::option::Option<&mut ::core::option::Option>, pchosenfeaturelevel: ::core::option::Option<&mut super::Direct3D::D3D_FEATURE_LEVEL>) -> ::windows::core::Result<()> +pub unsafe fn D3D11On12CreateDevice<'a, P0>(pdevice: P0, flags: u32, pfeaturelevels: ::core::option::Option<&[super::Direct3D::D3D_FEATURE_LEVEL]>, ppcommandqueues: ::core::option::Option<&[::core::option::Option<::windows::core::IUnknown>]>, nodemask: u32, ppdevice: ::core::option::Option<&mut ::core::option::Option>, ppimmediatecontext: ::core::option::Option<&mut ::core::option::Option>, pchosenfeaturelevel: ::core::option::Option<&mut super::Direct3D::D3D_FEATURE_LEVEL>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { @@ -9,7 +9,19 @@ where extern "system" { fn D3D11On12CreateDevice(pdevice: *mut ::core::ffi::c_void, flags: u32, pfeaturelevels: *const super::Direct3D::D3D_FEATURE_LEVEL, featurelevels: u32, ppcommandqueues: *const *mut ::core::ffi::c_void, numqueues: u32, nodemask: u32, ppdevice: *mut *mut ::core::ffi::c_void, ppimmediatecontext: *mut *mut ::core::ffi::c_void, pchosenfeaturelevel: *mut super::Direct3D::D3D_FEATURE_LEVEL) -> ::windows::core::HRESULT; } - D3D11On12CreateDevice(pdevice.into().abi(), flags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfeaturelevels)), pfeaturelevels.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppcommandqueues)), ppcommandqueues.len() as _, nodemask, ::core::mem::transmute(ppdevice), ::core::mem::transmute(ppimmediatecontext), ::core::mem::transmute(pchosenfeaturelevel)).ok() + D3D11On12CreateDevice( + pdevice.into().abi(), + flags, + ::core::mem::transmute(pfeaturelevels.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pfeaturelevels.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(ppcommandqueues.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ppcommandqueues.as_deref().map_or(0, |slice| slice.len() as _), + nodemask, + ::core::mem::transmute(ppdevice), + ::core::mem::transmute(ppimmediatecontext), + ::core::mem::transmute(pchosenfeaturelevel), + ) + .ok() } #[repr(C)] #[doc = "*Required features: `\"Win32_Graphics_Direct3D11on12\"`*"] @@ -60,12 +72,12 @@ impl ID3D11On12Device { #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D11")] pub unsafe fn ReleaseWrappedResources(&self, ppresources: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).ReleaseWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), ppresources.len() as _) + (::windows::core::Interface::vtable(self).ReleaseWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), ppresources.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D11")] pub unsafe fn AcquireWrappedResources(&self, ppresources: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).AcquireWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), ppresources.len() as _) + (::windows::core::Interface::vtable(self).AcquireWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), ppresources.len() as _) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -138,12 +150,12 @@ impl ID3D11On12Device1 { #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D11")] pub unsafe fn ReleaseWrappedResources(&self, ppresources: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.ReleaseWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), ppresources.len() as _) + (::windows::core::Interface::vtable(self).base__.ReleaseWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), ppresources.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D11")] pub unsafe fn AcquireWrappedResources(&self, ppresources: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.AcquireWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), ppresources.len() as _) + (::windows::core::Interface::vtable(self).base__.AcquireWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), ppresources.len() as _) } pub unsafe fn GetD3D12Device(&self) -> ::windows::core::Result where @@ -227,12 +239,12 @@ impl ID3D11On12Device2 { #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D11")] pub unsafe fn ReleaseWrappedResources(&self, ppresources: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.ReleaseWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), ppresources.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.ReleaseWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), ppresources.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D11")] pub unsafe fn AcquireWrappedResources(&self, ppresources: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.AcquireWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), ppresources.len() as _) + (::windows::core::Interface::vtable(self).base__.base__.AcquireWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), ppresources.len() as _) } pub unsafe fn GetD3D12Device(&self) -> ::windows::core::Result where @@ -254,7 +266,7 @@ impl ID3D11On12Device2 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`, `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct3D11", feature = "Win32_Graphics_Direct3D12"))] - pub unsafe fn ReturnUnderlyingResource<'a, P0>(&self, presource11: P0, numsync: u32, psignalvalues: &u64, ppfences: &::core::option::Option) -> ::windows::core::Result<()> + pub unsafe fn ReturnUnderlyingResource<'a, P0>(&self, presource11: P0, numsync: u32, psignalvalues: *const u64, ppfences: *const ::core::option::Option) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::Direct3D11::ID3D11Resource>>, { 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 6670decf5e..f4bb141207 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D12/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D12/mod.rs @@ -18,25 +18,25 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[inline] -pub unsafe fn D3D12CreateRootSignatureDeserializer(psrcdata: *const ::core::ffi::c_void, srcdatasizeinbytes: usize, prootsignaturedeserializerinterface: &::windows::core::GUID, pprootsignaturedeserializer: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { +pub unsafe fn D3D12CreateRootSignatureDeserializer(psrcdata: &[u8], prootsignaturedeserializerinterface: &::windows::core::GUID, pprootsignaturedeserializer: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3D12CreateRootSignatureDeserializer(psrcdata: *const ::core::ffi::c_void, srcdatasizeinbytes: usize, prootsignaturedeserializerinterface: *const ::windows::core::GUID, pprootsignaturedeserializer: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - D3D12CreateRootSignatureDeserializer(::core::mem::transmute(psrcdata), srcdatasizeinbytes, ::core::mem::transmute(prootsignaturedeserializerinterface), ::core::mem::transmute(pprootsignaturedeserializer)).ok() + D3D12CreateRootSignatureDeserializer(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, ::core::mem::transmute(prootsignaturedeserializerinterface), ::core::mem::transmute(pprootsignaturedeserializer)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[inline] -pub unsafe fn D3D12CreateVersionedRootSignatureDeserializer(psrcdata: *const ::core::ffi::c_void, srcdatasizeinbytes: usize, prootsignaturedeserializerinterface: &::windows::core::GUID, pprootsignaturedeserializer: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { +pub unsafe fn D3D12CreateVersionedRootSignatureDeserializer(psrcdata: &[u8], prootsignaturedeserializerinterface: &::windows::core::GUID, pprootsignaturedeserializer: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3D12CreateVersionedRootSignatureDeserializer(psrcdata: *const ::core::ffi::c_void, srcdatasizeinbytes: usize, prootsignaturedeserializerinterface: *const ::windows::core::GUID, pprootsignaturedeserializer: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - D3D12CreateVersionedRootSignatureDeserializer(::core::mem::transmute(psrcdata), srcdatasizeinbytes, ::core::mem::transmute(prootsignaturedeserializerinterface), ::core::mem::transmute(pprootsignaturedeserializer)).ok() + D3D12CreateVersionedRootSignatureDeserializer(::core::mem::transmute(psrcdata.as_ptr()), psrcdata.len() as _, ::core::mem::transmute(prootsignaturedeserializerinterface), ::core::mem::transmute(pprootsignaturedeserializer)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[inline] -pub unsafe fn D3D12EnableExperimentalFeatures(numfeatures: u32, piids: &::windows::core::GUID, pconfigurationstructs: *const ::core::ffi::c_void, pconfigurationstructsizes: ::core::option::Option<&u32>) -> ::windows::core::Result<()> { +pub unsafe fn D3D12EnableExperimentalFeatures(numfeatures: u32, piids: *const ::windows::core::GUID, pconfigurationstructs: *const ::core::ffi::c_void, pconfigurationstructsizes: *const u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn D3D12EnableExperimentalFeatures(numfeatures: u32, piids: *const ::windows::core::GUID, pconfigurationstructs: *const ::core::ffi::c_void, pconfigurationstructsizes: *const u32) -> ::windows::core::HRESULT; @@ -17969,8 +17969,8 @@ impl ID3D12CommandAllocator { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -18089,8 +18089,8 @@ impl ID3D12CommandList { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -18194,8 +18194,8 @@ impl ID3D12CommandQueue { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -18217,7 +18217,7 @@ impl ID3D12CommandQueue { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn UpdateTileMappings<'a, P0, P1>(&self, presource: P0, numresourceregions: u32, presourceregionstartcoordinates: ::core::option::Option<&D3D12_TILED_RESOURCE_COORDINATE>, presourceregionsizes: ::core::option::Option<&D3D12_TILE_REGION_SIZE>, pheap: P1, numranges: u32, prangeflags: ::core::option::Option<&D3D12_TILE_RANGE_FLAGS>, pheaprangestartoffsets: ::core::option::Option<&u32>, prangetilecounts: ::core::option::Option<&u32>, flags: D3D12_TILE_MAPPING_FLAGS) + pub unsafe fn UpdateTileMappings<'a, P0, P1>(&self, presource: P0, numresourceregions: u32, presourceregionstartcoordinates: *const D3D12_TILED_RESOURCE_COORDINATE, presourceregionsizes: *const D3D12_TILE_REGION_SIZE, pheap: P1, numranges: u32, prangeflags: *const D3D12_TILE_RANGE_FLAGS, pheaprangestartoffsets: *const u32, prangetilecounts: *const u32, flags: D3D12_TILE_MAPPING_FLAGS) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Heap>>, @@ -18234,13 +18234,13 @@ impl ID3D12CommandQueue { (::windows::core::Interface::vtable(self).CopyTileMappings)(::windows::core::Interface::as_raw(self), pdstresource.into().abi(), ::core::mem::transmute(pdstregionstartcoordinate), psrcresource.into().abi(), ::core::mem::transmute(psrcregionstartcoordinate), ::core::mem::transmute(pregionsize), flags) } pub unsafe fn ExecuteCommandLists(&self, ppcommandlists: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).ExecuteCommandLists)(::windows::core::Interface::as_raw(self), ppcommandlists.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppcommandlists))) + (::windows::core::Interface::vtable(self).ExecuteCommandLists)(::windows::core::Interface::as_raw(self), ppcommandlists.len() as _, ::core::mem::transmute(ppcommandlists.as_ptr())) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).EndEvent)(::windows::core::Interface::as_raw(self)) @@ -18381,8 +18381,8 @@ impl ID3D12CommandSignature { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -19071,11 +19071,11 @@ impl ID3D12DebugCommandList1 { { (::windows::core::Interface::vtable(self).AssertResourceState)(::windows::core::Interface::as_raw(self), presource.into().abi(), subresource, state) } - pub unsafe fn SetDebugParameter(&self, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: *const ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdata), datasize).ok() + pub unsafe fn SetDebugParameter(&self, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _).ok() } - pub unsafe fn GetDebugParameter(&self, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: *mut ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdata), datasize).ok() + pub unsafe fn GetDebugParameter(&self, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -19144,11 +19144,11 @@ impl ID3D12DebugCommandList2 { pub unsafe fn GetFeatureMask(&self) -> D3D12_DEBUG_FEATURE { (::windows::core::Interface::vtable(self).base__.GetFeatureMask)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn SetDebugParameter(&self, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: *const ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdata), datasize).ok() + pub unsafe fn SetDebugParameter(&self, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _).ok() } - pub unsafe fn GetDebugParameter(&self, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: *mut ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdata), datasize).ok() + pub unsafe fn GetDebugParameter(&self, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -19332,11 +19332,11 @@ pub struct ID3D12DebugDevice_Vtbl { #[repr(transparent)] pub struct ID3D12DebugDevice1(::windows::core::IUnknown); impl ID3D12DebugDevice1 { - pub unsafe fn SetDebugParameter(&self, r#type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE, pdata: *const ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdata), datasize).ok() + pub unsafe fn SetDebugParameter(&self, r#type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _).ok() } - pub unsafe fn GetDebugParameter(&self, r#type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE, pdata: *mut ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdata), datasize).ok() + pub unsafe fn GetDebugParameter(&self, r#type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE, pdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _).ok() } pub unsafe fn ReportLiveDeviceObjects(&self, flags: D3D12_RLDO_FLAGS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReportLiveDeviceObjects)(::windows::core::Interface::as_raw(self), flags).ok() @@ -19400,11 +19400,11 @@ impl ID3D12DebugDevice2 { pub unsafe fn ReportLiveDeviceObjects(&self, flags: D3D12_RLDO_FLAGS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.ReportLiveDeviceObjects)(::windows::core::Interface::as_raw(self), flags).ok() } - pub unsafe fn SetDebugParameter(&self, r#type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE, pdata: *const ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdata), datasize).ok() + pub unsafe fn SetDebugParameter(&self, r#type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _).ok() } - pub unsafe fn GetDebugParameter(&self, r#type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE, pdata: *mut ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdata), datasize).ok() + pub unsafe fn GetDebugParameter(&self, r#type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE, pdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -19473,8 +19473,8 @@ impl ID3D12DescriptorHeap { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -19607,8 +19607,8 @@ impl ID3D12Device { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -19664,8 +19664,8 @@ impl ID3D12Device { let mut result__ = ::core::option::Option::None; (::windows::core::Interface::vtable(self).CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into().abi(), pinitialstate.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn CreateDescriptorHeap(&self, pdescriptorheapdesc: &D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result where @@ -19682,7 +19682,7 @@ impl ID3D12Device { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(::windows::core::as_ptr_or_null(pblobwithrootsignature)), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<&D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) @@ -19723,7 +19723,7 @@ impl ID3D12Device { pub unsafe fn CreateSampler(&self, pdesc: &D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).CreateSampler)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) } - pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<&u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<&u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { + pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: *const u32, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: *const u32, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { (::windows::core::Interface::vtable(self).CopyDescriptors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numdestdescriptorranges), ::core::mem::transmute(pdestdescriptorrangestarts), ::core::mem::transmute(pdestdescriptorrangesizes), ::core::mem::transmute(numsrcdescriptorranges), ::core::mem::transmute(psrcdescriptorrangestarts), ::core::mem::transmute(psrcdescriptorrangesizes), descriptorheapstype) } pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { @@ -19733,7 +19733,7 @@ impl ID3D12Device { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); - (::windows::core::Interface::vtable(self).GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(presourcedescs))); + (::windows::core::Interface::vtable(self).GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr())); result__ } pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES { @@ -19801,10 +19801,10 @@ impl ID3D12Device { (::windows::core::Interface::vtable(self).OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into(), access, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn CreateFence(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result where @@ -19818,7 +19818,7 @@ impl ID3D12Device { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<&mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<&mut u32>, prowsizeinbytes: ::core::option::Option<&mut u64>, ptotalbytes: ::core::option::Option<&mut u64>) { + pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT, pnumrows: *mut u32, prowsizeinbytes: *mut u64, ptotalbytes: ::core::option::Option<&mut u64>) { (::windows::core::Interface::vtable(self).GetCopyableFootprints)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(presourcedesc), firstsubresource, ::core::mem::transmute(numsubresources), baseoffset, ::core::mem::transmute(playouts), ::core::mem::transmute(pnumrows), ::core::mem::transmute(prowsizeinbytes), ::core::mem::transmute(ptotalbytes)) } pub unsafe fn CreateQueryHeap(&self, pdesc: &D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option) -> ::windows::core::Result<()> @@ -19842,7 +19842,7 @@ impl ID3D12Device { { (::windows::core::Interface::vtable(self).CreateCommandSignature)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), prootsignature.into().abi(), &::IID, result__ as *mut _ as *mut _).ok() } - pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: &mut D3D12_SUBRESOURCE_TILING) + pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { @@ -20002,8 +20002,8 @@ impl ID3D12Device1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -20059,8 +20059,8 @@ impl ID3D12Device1 { let mut result__ = ::core::option::Option::None; (::windows::core::Interface::vtable(self).base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into().abi(), pinitialstate.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn CreateDescriptorHeap(&self, pdescriptorheapdesc: &D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result where @@ -20077,7 +20077,7 @@ impl ID3D12Device1 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(::windows::core::as_ptr_or_null(pblobwithrootsignature)), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<&D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) @@ -20118,7 +20118,7 @@ impl ID3D12Device1 { pub unsafe fn CreateSampler(&self, pdesc: &D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.CreateSampler)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) } - pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<&u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<&u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { + pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: *const u32, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: *const u32, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { (::windows::core::Interface::vtable(self).base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numdestdescriptorranges), ::core::mem::transmute(pdestdescriptorrangestarts), ::core::mem::transmute(pdestdescriptorrangesizes), ::core::mem::transmute(numsrcdescriptorranges), ::core::mem::transmute(psrcdescriptorrangestarts), ::core::mem::transmute(psrcdescriptorrangesizes), descriptorheapstype) } pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { @@ -20128,7 +20128,7 @@ impl ID3D12Device1 { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); - (::windows::core::Interface::vtable(self).base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(presourcedescs))); + (::windows::core::Interface::vtable(self).base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr())); result__ } pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES { @@ -20196,10 +20196,10 @@ impl ID3D12Device1 { (::windows::core::Interface::vtable(self).base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into(), access, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn CreateFence(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result where @@ -20213,7 +20213,7 @@ impl ID3D12Device1 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<&mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<&mut u32>, prowsizeinbytes: ::core::option::Option<&mut u64>, ptotalbytes: ::core::option::Option<&mut u64>) { + pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT, pnumrows: *mut u32, prowsizeinbytes: *mut u64, ptotalbytes: ::core::option::Option<&mut u64>) { (::windows::core::Interface::vtable(self).base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(presourcedesc), firstsubresource, ::core::mem::transmute(numsubresources), baseoffset, ::core::mem::transmute(playouts), ::core::mem::transmute(pnumrows), ::core::mem::transmute(prowsizeinbytes), ::core::mem::transmute(ptotalbytes)) } pub unsafe fn CreateQueryHeap(&self, pdesc: &D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option) -> ::windows::core::Result<()> @@ -20237,7 +20237,7 @@ impl ID3D12Device1 { { (::windows::core::Interface::vtable(self).base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), prootsignature.into().abi(), &::IID, result__ as *mut _ as *mut _).ok() } - pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: &mut D3D12_SUBRESOURCE_TILING) + pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { @@ -20255,17 +20255,17 @@ impl ID3D12Device1 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(plibraryblob)), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: &::core::option::Option, pfencevalues: &u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> + pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: *const ::core::option::Option, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), ::core::mem::transmute(pfencevalues), ::core::mem::transmute(numfences), flags, hevent.into()).ok() } - pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: &::core::option::Option, ppriorities: &D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { + pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetResidencyPriority)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numobjects), ::core::mem::transmute(ppobjects), ::core::mem::transmute(ppriorities)).ok() } } @@ -20354,8 +20354,8 @@ impl ID3D12Device2 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -20411,8 +20411,8 @@ impl ID3D12Device2 { let mut result__ = ::core::option::Option::None; (::windows::core::Interface::vtable(self).base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into().abi(), pinitialstate.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn CreateDescriptorHeap(&self, pdescriptorheapdesc: &D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result where @@ -20429,7 +20429,7 @@ impl ID3D12Device2 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(::windows::core::as_ptr_or_null(pblobwithrootsignature)), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<&D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) @@ -20470,7 +20470,7 @@ impl ID3D12Device2 { pub unsafe fn CreateSampler(&self, pdesc: &D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) } - pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<&u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<&u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { + pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: *const u32, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: *const u32, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { (::windows::core::Interface::vtable(self).base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numdestdescriptorranges), ::core::mem::transmute(pdestdescriptorrangestarts), ::core::mem::transmute(pdestdescriptorrangesizes), ::core::mem::transmute(numsrcdescriptorranges), ::core::mem::transmute(psrcdescriptorrangestarts), ::core::mem::transmute(psrcdescriptorrangesizes), descriptorheapstype) } pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { @@ -20480,7 +20480,7 @@ impl ID3D12Device2 { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(presourcedescs))); + (::windows::core::Interface::vtable(self).base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr())); result__ } pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES { @@ -20548,10 +20548,10 @@ impl ID3D12Device2 { (::windows::core::Interface::vtable(self).base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into(), access, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn CreateFence(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result where @@ -20565,7 +20565,7 @@ impl ID3D12Device2 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<&mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<&mut u32>, prowsizeinbytes: ::core::option::Option<&mut u64>, ptotalbytes: ::core::option::Option<&mut u64>) { + pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT, pnumrows: *mut u32, prowsizeinbytes: *mut u64, ptotalbytes: ::core::option::Option<&mut u64>) { (::windows::core::Interface::vtable(self).base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(presourcedesc), firstsubresource, ::core::mem::transmute(numsubresources), baseoffset, ::core::mem::transmute(playouts), ::core::mem::transmute(pnumrows), ::core::mem::transmute(prowsizeinbytes), ::core::mem::transmute(ptotalbytes)) } pub unsafe fn CreateQueryHeap(&self, pdesc: &D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option) -> ::windows::core::Result<()> @@ -20589,7 +20589,7 @@ impl ID3D12Device2 { { (::windows::core::Interface::vtable(self).base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), prootsignature.into().abi(), &::IID, result__ as *mut _ as *mut _).ok() } - pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: &mut D3D12_SUBRESOURCE_TILING) + pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { @@ -20607,17 +20607,17 @@ impl ID3D12Device2 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(plibraryblob)), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: &::core::option::Option, pfencevalues: &u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> + pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: *const ::core::option::Option, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), ::core::mem::transmute(pfencevalues), ::core::mem::transmute(numfences), flags, hevent.into()).ok() } - pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: &::core::option::Option, ppriorities: &D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { + pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numobjects), ::core::mem::transmute(ppobjects), ::core::mem::transmute(ppriorities)).ok() } pub unsafe fn CreatePipelineState(&self, pdesc: &D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result @@ -20723,8 +20723,8 @@ impl ID3D12Device3 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -20780,8 +20780,8 @@ impl ID3D12Device3 { let mut result__ = ::core::option::Option::None; (::windows::core::Interface::vtable(self).base__.base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into().abi(), pinitialstate.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn CreateDescriptorHeap(&self, pdescriptorheapdesc: &D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result where @@ -20798,7 +20798,7 @@ impl ID3D12Device3 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(::windows::core::as_ptr_or_null(pblobwithrootsignature)), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<&D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) @@ -20839,7 +20839,7 @@ impl ID3D12Device3 { pub unsafe fn CreateSampler(&self, pdesc: &D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) } - pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<&u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<&u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { + pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: *const u32, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: *const u32, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { (::windows::core::Interface::vtable(self).base__.base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numdestdescriptorranges), ::core::mem::transmute(pdestdescriptorrangestarts), ::core::mem::transmute(pdestdescriptorrangesizes), ::core::mem::transmute(numsrcdescriptorranges), ::core::mem::transmute(psrcdescriptorrangestarts), ::core::mem::transmute(psrcdescriptorrangesizes), descriptorheapstype) } pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { @@ -20849,7 +20849,7 @@ impl ID3D12Device3 { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(presourcedescs))); + (::windows::core::Interface::vtable(self).base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr())); result__ } pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES { @@ -20917,10 +20917,10 @@ impl ID3D12Device3 { (::windows::core::Interface::vtable(self).base__.base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into(), access, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn CreateFence(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result where @@ -20934,7 +20934,7 @@ impl ID3D12Device3 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<&mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<&mut u32>, prowsizeinbytes: ::core::option::Option<&mut u64>, ptotalbytes: ::core::option::Option<&mut u64>) { + pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT, pnumrows: *mut u32, prowsizeinbytes: *mut u64, ptotalbytes: ::core::option::Option<&mut u64>) { (::windows::core::Interface::vtable(self).base__.base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(presourcedesc), firstsubresource, ::core::mem::transmute(numsubresources), baseoffset, ::core::mem::transmute(playouts), ::core::mem::transmute(pnumrows), ::core::mem::transmute(prowsizeinbytes), ::core::mem::transmute(ptotalbytes)) } pub unsafe fn CreateQueryHeap(&self, pdesc: &D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option) -> ::windows::core::Result<()> @@ -20958,7 +20958,7 @@ impl ID3D12Device3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), prootsignature.into().abi(), &::IID, result__ as *mut _ as *mut _).ok() } - pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: &mut D3D12_SUBRESOURCE_TILING) + pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { @@ -20976,17 +20976,17 @@ impl ID3D12Device3 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(plibraryblob)), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: &::core::option::Option, pfencevalues: &u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> + pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: *const ::core::option::Option, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), ::core::mem::transmute(pfencevalues), ::core::mem::transmute(numfences), flags, hevent.into()).ok() } - pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: &::core::option::Option, ppriorities: &D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { + pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numobjects), ::core::mem::transmute(ppobjects), ::core::mem::transmute(ppriorities)).ok() } pub unsafe fn CreatePipelineState(&self, pdesc: &D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result @@ -21017,7 +21017,7 @@ impl ID3D12Device3 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Fence>>, { - (::windows::core::Interface::vtable(self).EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects)), pfencetosignal.into().abi(), fencevaluetosignal).ok() + (::windows::core::Interface::vtable(self).EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr()), pfencetosignal.into().abi(), fencevaluetosignal).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -21135,8 +21135,8 @@ impl ID3D12Device4 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -21192,8 +21192,8 @@ impl ID3D12Device4 { let mut result__ = ::core::option::Option::None; (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into().abi(), pinitialstate.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn CreateDescriptorHeap(&self, pdescriptorheapdesc: &D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result where @@ -21210,7 +21210,7 @@ impl ID3D12Device4 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(::windows::core::as_ptr_or_null(pblobwithrootsignature)), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<&D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) @@ -21251,7 +21251,7 @@ impl ID3D12Device4 { pub unsafe fn CreateSampler(&self, pdesc: &D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) } - pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<&u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<&u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { + pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: *const u32, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: *const u32, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numdestdescriptorranges), ::core::mem::transmute(pdestdescriptorrangestarts), ::core::mem::transmute(pdestdescriptorrangesizes), ::core::mem::transmute(numsrcdescriptorranges), ::core::mem::transmute(psrcdescriptorrangestarts), ::core::mem::transmute(psrcdescriptorrangesizes), descriptorheapstype) } pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { @@ -21261,7 +21261,7 @@ impl ID3D12Device4 { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(presourcedescs))); + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr())); result__ } pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES { @@ -21329,10 +21329,10 @@ impl ID3D12Device4 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into(), access, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn CreateFence(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result where @@ -21346,7 +21346,7 @@ impl ID3D12Device4 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<&mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<&mut u32>, prowsizeinbytes: ::core::option::Option<&mut u64>, ptotalbytes: ::core::option::Option<&mut u64>) { + pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT, pnumrows: *mut u32, prowsizeinbytes: *mut u64, ptotalbytes: ::core::option::Option<&mut u64>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(presourcedesc), firstsubresource, ::core::mem::transmute(numsubresources), baseoffset, ::core::mem::transmute(playouts), ::core::mem::transmute(pnumrows), ::core::mem::transmute(prowsizeinbytes), ::core::mem::transmute(ptotalbytes)) } pub unsafe fn CreateQueryHeap(&self, pdesc: &D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option) -> ::windows::core::Result<()> @@ -21370,7 +21370,7 @@ impl ID3D12Device4 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), prootsignature.into().abi(), &::IID, result__ as *mut _ as *mut _).ok() } - pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: &mut D3D12_SUBRESOURCE_TILING) + pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { @@ -21388,17 +21388,17 @@ impl ID3D12Device4 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(plibraryblob)), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: &::core::option::Option, pfencevalues: &u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> + pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: *const ::core::option::Option, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.base__.base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), ::core::mem::transmute(pfencevalues), ::core::mem::transmute(numfences), flags, hevent.into()).ok() } - pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: &::core::option::Option, ppriorities: &D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { + pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numobjects), ::core::mem::transmute(ppobjects), ::core::mem::transmute(ppriorities)).ok() } pub unsafe fn CreatePipelineState(&self, pdesc: &D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result @@ -21429,7 +21429,7 @@ impl ID3D12Device4 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Fence>>, { - (::windows::core::Interface::vtable(self).base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects)), pfencetosignal.into().abi(), fencevaluetosignal).ok() + (::windows::core::Interface::vtable(self).base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr()), pfencetosignal.into().abi(), fencevaluetosignal).ok() } pub unsafe fn CreateCommandList1(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, flags: D3D12_COMMAND_LIST_FLAGS) -> ::windows::core::Result where @@ -21472,7 +21472,7 @@ impl ID3D12Device4 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: &D3D12_RESOURCE_DESC, presourceallocationinfo1: ::core::option::Option<&mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO { + pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, presourceallocationinfo1: *mut D3D12_RESOURCE_ALLOCATION_INFO1) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); (::windows::core::Interface::vtable(self).GetResourceAllocationInfo1)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, ::core::mem::transmute(numresourcedescs), ::core::mem::transmute(presourcedescs), ::core::mem::transmute(presourceallocationinfo1)); result__ @@ -21617,8 +21617,8 @@ impl ID3D12Device5 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -21674,8 +21674,8 @@ impl ID3D12Device5 { let mut result__ = ::core::option::Option::None; (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into().abi(), pinitialstate.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn CreateDescriptorHeap(&self, pdescriptorheapdesc: &D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result where @@ -21692,7 +21692,7 @@ impl ID3D12Device5 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(::windows::core::as_ptr_or_null(pblobwithrootsignature)), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<&D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) @@ -21733,7 +21733,7 @@ impl ID3D12Device5 { pub unsafe fn CreateSampler(&self, pdesc: &D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) } - pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<&u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<&u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { + pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: *const u32, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: *const u32, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numdestdescriptorranges), ::core::mem::transmute(pdestdescriptorrangestarts), ::core::mem::transmute(pdestdescriptorrangesizes), ::core::mem::transmute(numsrcdescriptorranges), ::core::mem::transmute(psrcdescriptorrangestarts), ::core::mem::transmute(psrcdescriptorrangesizes), descriptorheapstype) } pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { @@ -21743,7 +21743,7 @@ impl ID3D12Device5 { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(presourcedescs))); + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr())); result__ } pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES { @@ -21811,10 +21811,10 @@ impl ID3D12Device5 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into(), access, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn CreateFence(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result where @@ -21828,7 +21828,7 @@ impl ID3D12Device5 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<&mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<&mut u32>, prowsizeinbytes: ::core::option::Option<&mut u64>, ptotalbytes: ::core::option::Option<&mut u64>) { + pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT, pnumrows: *mut u32, prowsizeinbytes: *mut u64, ptotalbytes: ::core::option::Option<&mut u64>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(presourcedesc), firstsubresource, ::core::mem::transmute(numsubresources), baseoffset, ::core::mem::transmute(playouts), ::core::mem::transmute(pnumrows), ::core::mem::transmute(prowsizeinbytes), ::core::mem::transmute(ptotalbytes)) } pub unsafe fn CreateQueryHeap(&self, pdesc: &D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option) -> ::windows::core::Result<()> @@ -21852,7 +21852,7 @@ impl ID3D12Device5 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), prootsignature.into().abi(), &::IID, result__ as *mut _ as *mut _).ok() } - pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: &mut D3D12_SUBRESOURCE_TILING) + pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { @@ -21870,17 +21870,17 @@ impl ID3D12Device5 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(plibraryblob)), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: &::core::option::Option, pfencevalues: &u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> + pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: *const ::core::option::Option, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), ::core::mem::transmute(pfencevalues), ::core::mem::transmute(numfences), flags, hevent.into()).ok() } - pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: &::core::option::Option, ppriorities: &D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { + pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numobjects), ::core::mem::transmute(ppobjects), ::core::mem::transmute(ppriorities)).ok() } pub unsafe fn CreatePipelineState(&self, pdesc: &D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result @@ -21911,7 +21911,7 @@ impl ID3D12Device5 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Fence>>, { - (::windows::core::Interface::vtable(self).base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects)), pfencetosignal.into().abi(), fencevaluetosignal).ok() + (::windows::core::Interface::vtable(self).base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr()), pfencetosignal.into().abi(), fencevaluetosignal).ok() } pub unsafe fn CreateCommandList1(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, flags: D3D12_COMMAND_LIST_FLAGS) -> ::windows::core::Result where @@ -21954,7 +21954,7 @@ impl ID3D12Device5 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: &D3D12_RESOURCE_DESC, presourceallocationinfo1: ::core::option::Option<&mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO { + pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, presourceallocationinfo1: *mut D3D12_RESOURCE_ALLOCATION_INFO1) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); (::windows::core::Interface::vtable(self).base__.GetResourceAllocationInfo1)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, ::core::mem::transmute(numresourcedescs), ::core::mem::transmute(presourcedescs), ::core::mem::transmute(presourceallocationinfo1)); result__ @@ -21970,18 +21970,18 @@ impl ID3D12Device5 { pub unsafe fn RemoveDevice(&self) { (::windows::core::Interface::vtable(self).RemoveDevice)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: &mut u32, pdescs: ::core::option::Option<&mut D3D12_META_COMMAND_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: &mut u32, pdescs: *mut D3D12_META_COMMAND_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).EnumerateMetaCommands)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnummetacommands), ::core::mem::transmute(pdescs)).ok() } - pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: &::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<&mut u32>, pparametercount: &mut u32, pparameterdescs: ::core::option::Option<&mut D3D12_META_COMMAND_PARAMETER_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: &::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<&mut u32>, pparametercount: &mut u32, pparameterdescs: *mut D3D12_META_COMMAND_PARAMETER_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).EnumerateMetaCommandParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), stage, ::core::mem::transmute(ptotalstructuresizeinbytes), ::core::mem::transmute(pparametercount), ::core::mem::transmute(pparameterdescs)).ok() } - pub unsafe fn CreateMetaCommand(&self, commandid: &::windows::core::GUID, nodemask: u32, pcreationparametersdata: *const ::core::ffi::c_void, creationparametersdatasizeinbytes: usize) -> ::windows::core::Result + pub unsafe fn CreateMetaCommand(&self, commandid: &::windows::core::GUID, nodemask: u32, pcreationparametersdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result where T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).CreateMetaCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), nodemask, ::core::mem::transmute(pcreationparametersdata), creationparametersdatasizeinbytes, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).CreateMetaCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), nodemask, ::core::mem::transmute(pcreationparametersdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pcreationparametersdata.as_deref().map_or(0, |slice| slice.len() as _), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateStateObject(&self, pdesc: &D3D12_STATE_OBJECT_DESC) -> ::windows::core::Result where @@ -22149,8 +22149,8 @@ impl ID3D12Device6 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -22206,8 +22206,8 @@ impl ID3D12Device6 { let mut result__ = ::core::option::Option::None; (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into().abi(), pinitialstate.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn CreateDescriptorHeap(&self, pdescriptorheapdesc: &D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result where @@ -22224,7 +22224,7 @@ impl ID3D12Device6 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(::windows::core::as_ptr_or_null(pblobwithrootsignature)), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<&D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) @@ -22265,7 +22265,7 @@ impl ID3D12Device6 { pub unsafe fn CreateSampler(&self, pdesc: &D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) } - pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<&u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<&u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { + pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: *const u32, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: *const u32, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numdestdescriptorranges), ::core::mem::transmute(pdestdescriptorrangestarts), ::core::mem::transmute(pdestdescriptorrangesizes), ::core::mem::transmute(numsrcdescriptorranges), ::core::mem::transmute(psrcdescriptorrangestarts), ::core::mem::transmute(psrcdescriptorrangesizes), descriptorheapstype) } pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { @@ -22275,7 +22275,7 @@ impl ID3D12Device6 { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(presourcedescs))); + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr())); result__ } pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES { @@ -22343,10 +22343,10 @@ impl ID3D12Device6 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into(), access, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn CreateFence(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result where @@ -22360,7 +22360,7 @@ impl ID3D12Device6 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<&mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<&mut u32>, prowsizeinbytes: ::core::option::Option<&mut u64>, ptotalbytes: ::core::option::Option<&mut u64>) { + pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT, pnumrows: *mut u32, prowsizeinbytes: *mut u64, ptotalbytes: ::core::option::Option<&mut u64>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(presourcedesc), firstsubresource, ::core::mem::transmute(numsubresources), baseoffset, ::core::mem::transmute(playouts), ::core::mem::transmute(pnumrows), ::core::mem::transmute(prowsizeinbytes), ::core::mem::transmute(ptotalbytes)) } pub unsafe fn CreateQueryHeap(&self, pdesc: &D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option) -> ::windows::core::Result<()> @@ -22384,7 +22384,7 @@ impl ID3D12Device6 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), prootsignature.into().abi(), &::IID, result__ as *mut _ as *mut _).ok() } - pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: &mut D3D12_SUBRESOURCE_TILING) + pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { @@ -22402,17 +22402,17 @@ impl ID3D12Device6 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(plibraryblob)), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: &::core::option::Option, pfencevalues: &u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> + pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: *const ::core::option::Option, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), ::core::mem::transmute(pfencevalues), ::core::mem::transmute(numfences), flags, hevent.into()).ok() } - pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: &::core::option::Option, ppriorities: &D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { + pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numobjects), ::core::mem::transmute(ppobjects), ::core::mem::transmute(ppriorities)).ok() } pub unsafe fn CreatePipelineState(&self, pdesc: &D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result @@ -22443,7 +22443,7 @@ impl ID3D12Device6 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Fence>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects)), pfencetosignal.into().abi(), fencevaluetosignal).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr()), pfencetosignal.into().abi(), fencevaluetosignal).ok() } pub unsafe fn CreateCommandList1(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, flags: D3D12_COMMAND_LIST_FLAGS) -> ::windows::core::Result where @@ -22486,7 +22486,7 @@ impl ID3D12Device6 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: &D3D12_RESOURCE_DESC, presourceallocationinfo1: ::core::option::Option<&mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO { + pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, presourceallocationinfo1: *mut D3D12_RESOURCE_ALLOCATION_INFO1) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.GetResourceAllocationInfo1)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, ::core::mem::transmute(numresourcedescs), ::core::mem::transmute(presourcedescs), ::core::mem::transmute(presourceallocationinfo1)); result__ @@ -22502,18 +22502,18 @@ impl ID3D12Device6 { pub unsafe fn RemoveDevice(&self) { (::windows::core::Interface::vtable(self).base__.RemoveDevice)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: &mut u32, pdescs: ::core::option::Option<&mut D3D12_META_COMMAND_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: &mut u32, pdescs: *mut D3D12_META_COMMAND_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.EnumerateMetaCommands)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnummetacommands), ::core::mem::transmute(pdescs)).ok() } - pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: &::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<&mut u32>, pparametercount: &mut u32, pparameterdescs: ::core::option::Option<&mut D3D12_META_COMMAND_PARAMETER_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: &::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<&mut u32>, pparametercount: &mut u32, pparameterdescs: *mut D3D12_META_COMMAND_PARAMETER_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.EnumerateMetaCommandParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), stage, ::core::mem::transmute(ptotalstructuresizeinbytes), ::core::mem::transmute(pparametercount), ::core::mem::transmute(pparameterdescs)).ok() } - pub unsafe fn CreateMetaCommand(&self, commandid: &::windows::core::GUID, nodemask: u32, pcreationparametersdata: *const ::core::ffi::c_void, creationparametersdatasizeinbytes: usize) -> ::windows::core::Result + pub unsafe fn CreateMetaCommand(&self, commandid: &::windows::core::GUID, nodemask: u32, pcreationparametersdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result where T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.CreateMetaCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), nodemask, ::core::mem::transmute(pcreationparametersdata), creationparametersdatasizeinbytes, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.CreateMetaCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), nodemask, ::core::mem::transmute(pcreationparametersdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pcreationparametersdata.as_deref().map_or(0, |slice| slice.len() as _), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateStateObject(&self, pdesc: &D3D12_STATE_OBJECT_DESC) -> ::windows::core::Result where @@ -22698,8 +22698,8 @@ impl ID3D12Device7 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -22755,8 +22755,8 @@ impl ID3D12Device7 { let mut result__ = ::core::option::Option::None; (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into().abi(), pinitialstate.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn CreateDescriptorHeap(&self, pdescriptorheapdesc: &D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result where @@ -22773,7 +22773,7 @@ impl ID3D12Device7 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(::windows::core::as_ptr_or_null(pblobwithrootsignature)), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<&D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) @@ -22814,7 +22814,7 @@ impl ID3D12Device7 { pub unsafe fn CreateSampler(&self, pdesc: &D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) } - pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<&u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<&u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { + pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: *const u32, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: *const u32, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numdestdescriptorranges), ::core::mem::transmute(pdestdescriptorrangestarts), ::core::mem::transmute(pdestdescriptorrangesizes), ::core::mem::transmute(numsrcdescriptorranges), ::core::mem::transmute(psrcdescriptorrangestarts), ::core::mem::transmute(psrcdescriptorrangesizes), descriptorheapstype) } pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { @@ -22824,7 +22824,7 @@ impl ID3D12Device7 { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(presourcedescs))); + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr())); result__ } pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES { @@ -22892,10 +22892,10 @@ impl ID3D12Device7 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into(), access, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn CreateFence(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result where @@ -22909,7 +22909,7 @@ impl ID3D12Device7 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<&mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<&mut u32>, prowsizeinbytes: ::core::option::Option<&mut u64>, ptotalbytes: ::core::option::Option<&mut u64>) { + pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT, pnumrows: *mut u32, prowsizeinbytes: *mut u64, ptotalbytes: ::core::option::Option<&mut u64>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(presourcedesc), firstsubresource, ::core::mem::transmute(numsubresources), baseoffset, ::core::mem::transmute(playouts), ::core::mem::transmute(pnumrows), ::core::mem::transmute(prowsizeinbytes), ::core::mem::transmute(ptotalbytes)) } pub unsafe fn CreateQueryHeap(&self, pdesc: &D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option) -> ::windows::core::Result<()> @@ -22933,7 +22933,7 @@ impl ID3D12Device7 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), prootsignature.into().abi(), &::IID, result__ as *mut _ as *mut _).ok() } - pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: &mut D3D12_SUBRESOURCE_TILING) + pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { @@ -22951,17 +22951,17 @@ impl ID3D12Device7 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(plibraryblob)), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: &::core::option::Option, pfencevalues: &u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> + pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: *const ::core::option::Option, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), ::core::mem::transmute(pfencevalues), ::core::mem::transmute(numfences), flags, hevent.into()).ok() } - pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: &::core::option::Option, ppriorities: &D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { + pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numobjects), ::core::mem::transmute(ppobjects), ::core::mem::transmute(ppriorities)).ok() } pub unsafe fn CreatePipelineState(&self, pdesc: &D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result @@ -22992,7 +22992,7 @@ impl ID3D12Device7 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Fence>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects)), pfencetosignal.into().abi(), fencevaluetosignal).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr()), pfencetosignal.into().abi(), fencevaluetosignal).ok() } pub unsafe fn CreateCommandList1(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, flags: D3D12_COMMAND_LIST_FLAGS) -> ::windows::core::Result where @@ -23035,7 +23035,7 @@ impl ID3D12Device7 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: &D3D12_RESOURCE_DESC, presourceallocationinfo1: ::core::option::Option<&mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO { + pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, presourceallocationinfo1: *mut D3D12_RESOURCE_ALLOCATION_INFO1) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.GetResourceAllocationInfo1)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, ::core::mem::transmute(numresourcedescs), ::core::mem::transmute(presourcedescs), ::core::mem::transmute(presourceallocationinfo1)); result__ @@ -23051,18 +23051,18 @@ impl ID3D12Device7 { pub unsafe fn RemoveDevice(&self) { (::windows::core::Interface::vtable(self).base__.base__.RemoveDevice)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: &mut u32, pdescs: ::core::option::Option<&mut D3D12_META_COMMAND_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: &mut u32, pdescs: *mut D3D12_META_COMMAND_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.EnumerateMetaCommands)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnummetacommands), ::core::mem::transmute(pdescs)).ok() } - pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: &::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<&mut u32>, pparametercount: &mut u32, pparameterdescs: ::core::option::Option<&mut D3D12_META_COMMAND_PARAMETER_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: &::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<&mut u32>, pparametercount: &mut u32, pparameterdescs: *mut D3D12_META_COMMAND_PARAMETER_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.EnumerateMetaCommandParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), stage, ::core::mem::transmute(ptotalstructuresizeinbytes), ::core::mem::transmute(pparametercount), ::core::mem::transmute(pparameterdescs)).ok() } - pub unsafe fn CreateMetaCommand(&self, commandid: &::windows::core::GUID, nodemask: u32, pcreationparametersdata: *const ::core::ffi::c_void, creationparametersdatasizeinbytes: usize) -> ::windows::core::Result + pub unsafe fn CreateMetaCommand(&self, commandid: &::windows::core::GUID, nodemask: u32, pcreationparametersdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result where T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.CreateMetaCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), nodemask, ::core::mem::transmute(pcreationparametersdata), creationparametersdatasizeinbytes, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateMetaCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), nodemask, ::core::mem::transmute(pcreationparametersdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pcreationparametersdata.as_deref().map_or(0, |slice| slice.len() as _), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateStateObject(&self, pdesc: &D3D12_STATE_OBJECT_DESC) -> ::windows::core::Result where @@ -23275,8 +23275,8 @@ impl ID3D12Device8 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -23332,8 +23332,8 @@ impl ID3D12Device8 { let mut result__ = ::core::option::Option::None; (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into().abi(), pinitialstate.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn CreateDescriptorHeap(&self, pdescriptorheapdesc: &D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result where @@ -23350,7 +23350,7 @@ impl ID3D12Device8 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(::windows::core::as_ptr_or_null(pblobwithrootsignature)), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<&D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) @@ -23391,7 +23391,7 @@ impl ID3D12Device8 { pub unsafe fn CreateSampler(&self, pdesc: &D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) } - pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<&u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<&u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { + pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: *const u32, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: *const u32, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numdestdescriptorranges), ::core::mem::transmute(pdestdescriptorrangestarts), ::core::mem::transmute(pdestdescriptorrangesizes), ::core::mem::transmute(numsrcdescriptorranges), ::core::mem::transmute(psrcdescriptorrangestarts), ::core::mem::transmute(psrcdescriptorrangesizes), descriptorheapstype) } pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { @@ -23401,7 +23401,7 @@ impl ID3D12Device8 { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(presourcedescs))); + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr())); result__ } pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES { @@ -23469,10 +23469,10 @@ impl ID3D12Device8 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into(), access, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn CreateFence(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result where @@ -23486,7 +23486,7 @@ impl ID3D12Device8 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<&mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<&mut u32>, prowsizeinbytes: ::core::option::Option<&mut u64>, ptotalbytes: ::core::option::Option<&mut u64>) { + pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT, pnumrows: *mut u32, prowsizeinbytes: *mut u64, ptotalbytes: ::core::option::Option<&mut u64>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(presourcedesc), firstsubresource, ::core::mem::transmute(numsubresources), baseoffset, ::core::mem::transmute(playouts), ::core::mem::transmute(pnumrows), ::core::mem::transmute(prowsizeinbytes), ::core::mem::transmute(ptotalbytes)) } pub unsafe fn CreateQueryHeap(&self, pdesc: &D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option) -> ::windows::core::Result<()> @@ -23510,7 +23510,7 @@ impl ID3D12Device8 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), prootsignature.into().abi(), &::IID, result__ as *mut _ as *mut _).ok() } - pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: &mut D3D12_SUBRESOURCE_TILING) + pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { @@ -23528,17 +23528,17 @@ impl ID3D12Device8 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(plibraryblob)), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: &::core::option::Option, pfencevalues: &u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> + pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: *const ::core::option::Option, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), ::core::mem::transmute(pfencevalues), ::core::mem::transmute(numfences), flags, hevent.into()).ok() } - pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: &::core::option::Option, ppriorities: &D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { + pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numobjects), ::core::mem::transmute(ppobjects), ::core::mem::transmute(ppriorities)).ok() } pub unsafe fn CreatePipelineState(&self, pdesc: &D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result @@ -23569,7 +23569,7 @@ impl ID3D12Device8 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Fence>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects)), pfencetosignal.into().abi(), fencevaluetosignal).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr()), pfencetosignal.into().abi(), fencevaluetosignal).ok() } pub unsafe fn CreateCommandList1(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, flags: D3D12_COMMAND_LIST_FLAGS) -> ::windows::core::Result where @@ -23612,7 +23612,7 @@ impl ID3D12Device8 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: &D3D12_RESOURCE_DESC, presourceallocationinfo1: ::core::option::Option<&mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO { + pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, presourceallocationinfo1: *mut D3D12_RESOURCE_ALLOCATION_INFO1) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetResourceAllocationInfo1)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, ::core::mem::transmute(numresourcedescs), ::core::mem::transmute(presourcedescs), ::core::mem::transmute(presourceallocationinfo1)); result__ @@ -23628,18 +23628,18 @@ impl ID3D12Device8 { pub unsafe fn RemoveDevice(&self) { (::windows::core::Interface::vtable(self).base__.base__.base__.RemoveDevice)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: &mut u32, pdescs: ::core::option::Option<&mut D3D12_META_COMMAND_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: &mut u32, pdescs: *mut D3D12_META_COMMAND_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.EnumerateMetaCommands)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnummetacommands), ::core::mem::transmute(pdescs)).ok() } - pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: &::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<&mut u32>, pparametercount: &mut u32, pparameterdescs: ::core::option::Option<&mut D3D12_META_COMMAND_PARAMETER_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: &::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<&mut u32>, pparametercount: &mut u32, pparameterdescs: *mut D3D12_META_COMMAND_PARAMETER_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.EnumerateMetaCommandParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), stage, ::core::mem::transmute(ptotalstructuresizeinbytes), ::core::mem::transmute(pparametercount), ::core::mem::transmute(pparameterdescs)).ok() } - pub unsafe fn CreateMetaCommand(&self, commandid: &::windows::core::GUID, nodemask: u32, pcreationparametersdata: *const ::core::ffi::c_void, creationparametersdatasizeinbytes: usize) -> ::windows::core::Result + pub unsafe fn CreateMetaCommand(&self, commandid: &::windows::core::GUID, nodemask: u32, pcreationparametersdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result where T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateMetaCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), nodemask, ::core::mem::transmute(pcreationparametersdata), creationparametersdatasizeinbytes, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateMetaCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), nodemask, ::core::mem::transmute(pcreationparametersdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pcreationparametersdata.as_deref().map_or(0, |slice| slice.len() as _), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateStateObject(&self, pdesc: &D3D12_STATE_OBJECT_DESC) -> ::windows::core::Result where @@ -23682,7 +23682,7 @@ impl ID3D12Device8 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetResourceAllocationInfo2(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: &D3D12_RESOURCE_DESC1, presourceallocationinfo1: ::core::option::Option<&mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO { + pub unsafe fn GetResourceAllocationInfo2(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC1, presourceallocationinfo1: *mut D3D12_RESOURCE_ALLOCATION_INFO1) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); (::windows::core::Interface::vtable(self).GetResourceAllocationInfo2)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, ::core::mem::transmute(numresourcedescs), ::core::mem::transmute(presourcedescs), ::core::mem::transmute(presourceallocationinfo1)); result__ @@ -23714,7 +23714,7 @@ impl ID3D12Device8 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetCopyableFootprints1(&self, presourcedesc: &D3D12_RESOURCE_DESC1, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<&mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<&mut u32>, prowsizeinbytes: ::core::option::Option<&mut u64>, ptotalbytes: ::core::option::Option<&mut u64>) { + pub unsafe fn GetCopyableFootprints1(&self, presourcedesc: &D3D12_RESOURCE_DESC1, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT, pnumrows: *mut u32, prowsizeinbytes: *mut u64, ptotalbytes: ::core::option::Option<&mut u64>) { (::windows::core::Interface::vtable(self).GetCopyableFootprints1)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(presourcedesc), firstsubresource, ::core::mem::transmute(numsubresources), baseoffset, ::core::mem::transmute(playouts), ::core::mem::transmute(pnumrows), ::core::mem::transmute(prowsizeinbytes), ::core::mem::transmute(ptotalbytes)) } } @@ -23919,8 +23919,8 @@ impl ID3D12Device9 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -23976,8 +23976,8 @@ impl ID3D12Device9 { let mut result__ = ::core::option::Option::None; (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into().abi(), pinitialstate.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn CreateDescriptorHeap(&self, pdescriptorheapdesc: &D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result where @@ -23994,7 +23994,7 @@ impl ID3D12Device9 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(::windows::core::as_ptr_or_null(pblobwithrootsignature)), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<&D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) @@ -24035,7 +24035,7 @@ impl ID3D12Device9 { pub unsafe fn CreateSampler(&self, pdesc: &D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(destdescriptor)) } - pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<&u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: &D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<&u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { + pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: *const u32, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: *const u32, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numdestdescriptorranges), ::core::mem::transmute(pdestdescriptorrangestarts), ::core::mem::transmute(pdestdescriptorrangesizes), ::core::mem::transmute(numsrcdescriptorranges), ::core::mem::transmute(psrcdescriptorrangestarts), ::core::mem::transmute(psrcdescriptorrangesizes), descriptorheapstype) } pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) { @@ -24045,7 +24045,7 @@ impl ID3D12Device9 { #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(presourcedescs))); + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr())); result__ } pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES { @@ -24113,10 +24113,10 @@ impl ID3D12Device9 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into(), access, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok() } pub unsafe fn CreateFence(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result where @@ -24130,7 +24130,7 @@ impl ID3D12Device9 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<&mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<&mut u32>, prowsizeinbytes: ::core::option::Option<&mut u64>, ptotalbytes: ::core::option::Option<&mut u64>) { + pub unsafe fn GetCopyableFootprints(&self, presourcedesc: &D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT, pnumrows: *mut u32, prowsizeinbytes: *mut u64, ptotalbytes: ::core::option::Option<&mut u64>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(presourcedesc), firstsubresource, ::core::mem::transmute(numsubresources), baseoffset, ::core::mem::transmute(playouts), ::core::mem::transmute(pnumrows), ::core::mem::transmute(prowsizeinbytes), ::core::mem::transmute(ptotalbytes)) } pub unsafe fn CreateQueryHeap(&self, pdesc: &D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option) -> ::windows::core::Result<()> @@ -24154,7 +24154,7 @@ impl ID3D12Device9 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), prootsignature.into().abi(), &::IID, result__ as *mut _ as *mut _).ok() } - pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: &mut D3D12_SUBRESOURCE_TILING) + pub unsafe fn GetResourceTiling<'a, P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<&mut u32>, ppackedmipdesc: ::core::option::Option<&mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<&mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<&mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { @@ -24172,17 +24172,17 @@ impl ID3D12Device9 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(plibraryblob)), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: &::core::option::Option, pfencevalues: &u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> + pub unsafe fn SetEventOnMultipleFenceCompletion<'a, P0>(&self, ppfences: *const ::core::option::Option, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), ::core::mem::transmute(pfencevalues), ::core::mem::transmute(numfences), flags, hevent.into()).ok() } - pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: &::core::option::Option, ppriorities: &D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { + pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numobjects), ::core::mem::transmute(ppobjects), ::core::mem::transmute(ppriorities)).ok() } pub unsafe fn CreatePipelineState(&self, pdesc: &D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result @@ -24213,7 +24213,7 @@ impl ID3D12Device9 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Fence>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppobjects)), pfencetosignal.into().abi(), fencevaluetosignal).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr()), pfencetosignal.into().abi(), fencevaluetosignal).ok() } pub unsafe fn CreateCommandList1(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, flags: D3D12_COMMAND_LIST_FLAGS) -> ::windows::core::Result where @@ -24256,7 +24256,7 @@ impl ID3D12Device9 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: &D3D12_RESOURCE_DESC, presourceallocationinfo1: ::core::option::Option<&mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO { + pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, presourceallocationinfo1: *mut D3D12_RESOURCE_ALLOCATION_INFO1) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetResourceAllocationInfo1)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, ::core::mem::transmute(numresourcedescs), ::core::mem::transmute(presourcedescs), ::core::mem::transmute(presourceallocationinfo1)); result__ @@ -24272,18 +24272,18 @@ impl ID3D12Device9 { pub unsafe fn RemoveDevice(&self) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RemoveDevice)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: &mut u32, pdescs: ::core::option::Option<&mut D3D12_META_COMMAND_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: &mut u32, pdescs: *mut D3D12_META_COMMAND_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.EnumerateMetaCommands)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnummetacommands), ::core::mem::transmute(pdescs)).ok() } - pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: &::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<&mut u32>, pparametercount: &mut u32, pparameterdescs: ::core::option::Option<&mut D3D12_META_COMMAND_PARAMETER_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: &::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<&mut u32>, pparametercount: &mut u32, pparameterdescs: *mut D3D12_META_COMMAND_PARAMETER_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.EnumerateMetaCommandParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), stage, ::core::mem::transmute(ptotalstructuresizeinbytes), ::core::mem::transmute(pparametercount), ::core::mem::transmute(pparameterdescs)).ok() } - pub unsafe fn CreateMetaCommand(&self, commandid: &::windows::core::GUID, nodemask: u32, pcreationparametersdata: *const ::core::ffi::c_void, creationparametersdatasizeinbytes: usize) -> ::windows::core::Result + pub unsafe fn CreateMetaCommand(&self, commandid: &::windows::core::GUID, nodemask: u32, pcreationparametersdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result where T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateMetaCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), nodemask, ::core::mem::transmute(pcreationparametersdata), creationparametersdatasizeinbytes, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateMetaCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), nodemask, ::core::mem::transmute(pcreationparametersdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pcreationparametersdata.as_deref().map_or(0, |slice| slice.len() as _), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } pub unsafe fn CreateStateObject(&self, pdesc: &D3D12_STATE_OBJECT_DESC) -> ::windows::core::Result where @@ -24326,7 +24326,7 @@ impl ID3D12Device9 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetResourceAllocationInfo2(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: &D3D12_RESOURCE_DESC1, presourceallocationinfo1: ::core::option::Option<&mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO { + pub unsafe fn GetResourceAllocationInfo2(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC1, presourceallocationinfo1: *mut D3D12_RESOURCE_ALLOCATION_INFO1) -> D3D12_RESOURCE_ALLOCATION_INFO { let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed(); (::windows::core::Interface::vtable(self).base__.GetResourceAllocationInfo2)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, ::core::mem::transmute(numresourcedescs), ::core::mem::transmute(presourcedescs), ::core::mem::transmute(presourceallocationinfo1)); result__ @@ -24358,7 +24358,7 @@ impl ID3D12Device9 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetCopyableFootprints1(&self, presourcedesc: &D3D12_RESOURCE_DESC1, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<&mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<&mut u32>, prowsizeinbytes: ::core::option::Option<&mut u64>, ptotalbytes: ::core::option::Option<&mut u64>) { + pub unsafe fn GetCopyableFootprints1(&self, presourcedesc: &D3D12_RESOURCE_DESC1, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT, pnumrows: *mut u32, prowsizeinbytes: *mut u64, ptotalbytes: ::core::option::Option<&mut u64>) { (::windows::core::Interface::vtable(self).base__.GetCopyableFootprints1)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(presourcedesc), firstsubresource, ::core::mem::transmute(numsubresources), baseoffset, ::core::mem::transmute(playouts), ::core::mem::transmute(pnumrows), ::core::mem::transmute(prowsizeinbytes), ::core::mem::transmute(ptotalbytes)) } pub unsafe fn CreateShaderCacheSession(&self, pdesc: &D3D12_SHADER_CACHE_SESSION_DESC, result__: *mut ::core::option::Option) -> ::windows::core::Result<()> @@ -24580,8 +24580,8 @@ impl ID3D12DeviceChild { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -25040,8 +25040,8 @@ impl ID3D12Fence { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -25176,8 +25176,8 @@ impl ID3D12Fence1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -25452,8 +25452,8 @@ impl ID3D12GraphicsCommandList { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -25544,15 +25544,15 @@ impl ID3D12GraphicsCommandList { (::windows::core::Interface::vtable(self).IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology) } pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) { - (::windows::core::Interface::vtable(self).RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviewports))) + (::windows::core::Interface::vtable(self).RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } - pub unsafe fn OMSetBlendFactor(&self, blendfactor: &[f32; 4]) { - (::windows::core::Interface::vtable(self).OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(blendfactor))) + pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) { + (::windows::core::Interface::vtable(self).OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn OMSetStencilRef(&self, stencilref: u32) { (::windows::core::Interface::vtable(self).OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref) @@ -25564,7 +25564,7 @@ impl ID3D12GraphicsCommandList { (::windows::core::Interface::vtable(self).SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into().abi()) } pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) { - (::windows::core::Interface::vtable(self).ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbarriers))) + (::windows::core::Interface::vtable(self).ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr())) } pub unsafe fn ExecuteBundle<'a, P0>(&self, pcommandlist: P0) where @@ -25573,7 +25573,7 @@ impl ID3D12GraphicsCommandList { (::windows::core::Interface::vtable(self).ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into().abi()) } pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppdescriptorheaps))) + (::windows::core::Interface::vtable(self).SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr())) } pub unsafe fn SetComputeRootSignature<'a, P0>(&self, prootsignature: P0) where @@ -25628,11 +25628,11 @@ impl ID3D12GraphicsCommandList { pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<&D3D12_INDEX_BUFFER_VIEW>) { (::windows::core::Interface::vtable(self).IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview)) } - pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: &[D3D12_VERTEX_BUFFER_VIEW]) { - (::windows::core::Interface::vtable(self).IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviews))) + pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) { + (::windows::core::Interface::vtable(self).IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: &[D3D12_STREAM_OUTPUT_BUFFER_VIEW]) { - (::windows::core::Interface::vtable(self).SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviews))) + pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) { + (::windows::core::Interface::vtable(self).SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -25645,12 +25645,12 @@ impl ID3D12GraphicsCommandList { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: &f32, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), ::core::mem::transmute(colorrgba), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), ::core::mem::transmute(colorrgba), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -25658,7 +25658,7 @@ impl ID3D12GraphicsCommandList { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { - (::windows::core::Interface::vtable(self).ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -25666,7 +25666,7 @@ impl ID3D12GraphicsCommandList { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { - (::windows::core::Interface::vtable(self).ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -25701,11 +25701,11 @@ impl ID3D12GraphicsCommandList { { (::windows::core::Interface::vtable(self).SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into().abi(), alignedbufferoffset, operation) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).EndEvent)(::windows::core::Interface::as_raw(self)) @@ -25900,8 +25900,8 @@ impl ID3D12GraphicsCommandList1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -25992,15 +25992,15 @@ impl ID3D12GraphicsCommandList1 { (::windows::core::Interface::vtable(self).base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology) } pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) { - (::windows::core::Interface::vtable(self).base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviewports))) + (::windows::core::Interface::vtable(self).base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } - pub unsafe fn OMSetBlendFactor(&self, blendfactor: &[f32; 4]) { - (::windows::core::Interface::vtable(self).base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(blendfactor))) + pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) { + (::windows::core::Interface::vtable(self).base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn OMSetStencilRef(&self, stencilref: u32) { (::windows::core::Interface::vtable(self).base__.OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref) @@ -26012,7 +26012,7 @@ impl ID3D12GraphicsCommandList1 { (::windows::core::Interface::vtable(self).base__.SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into().abi()) } pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) { - (::windows::core::Interface::vtable(self).base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbarriers))) + (::windows::core::Interface::vtable(self).base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr())) } pub unsafe fn ExecuteBundle<'a, P0>(&self, pcommandlist: P0) where @@ -26021,7 +26021,7 @@ impl ID3D12GraphicsCommandList1 { (::windows::core::Interface::vtable(self).base__.ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into().abi()) } pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppdescriptorheaps))) + (::windows::core::Interface::vtable(self).base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr())) } pub unsafe fn SetComputeRootSignature<'a, P0>(&self, prootsignature: P0) where @@ -26076,11 +26076,11 @@ impl ID3D12GraphicsCommandList1 { pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<&D3D12_INDEX_BUFFER_VIEW>) { (::windows::core::Interface::vtable(self).base__.IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview)) } - pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: &[D3D12_VERTEX_BUFFER_VIEW]) { - (::windows::core::Interface::vtable(self).base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviews))) + pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) { + (::windows::core::Interface::vtable(self).base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: &[D3D12_STREAM_OUTPUT_BUFFER_VIEW]) { - (::windows::core::Interface::vtable(self).base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviews))) + pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) { + (::windows::core::Interface::vtable(self).base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -26093,12 +26093,12 @@ impl ID3D12GraphicsCommandList1 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: &f32, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), ::core::mem::transmute(colorrgba), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), ::core::mem::transmute(colorrgba), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -26106,7 +26106,7 @@ impl ID3D12GraphicsCommandList1 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { - (::windows::core::Interface::vtable(self).base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -26114,7 +26114,7 @@ impl ID3D12GraphicsCommandList1 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { - (::windows::core::Interface::vtable(self).base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -26149,11 +26149,11 @@ impl ID3D12GraphicsCommandList1 { { (::windows::core::Interface::vtable(self).base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into().abi(), alignedbufferoffset, operation) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).base__.EndEvent)(::windows::core::Interface::as_raw(self)) @@ -26166,14 +26166,14 @@ impl ID3D12GraphicsCommandList1 { { (::windows::core::Interface::vtable(self).base__.ExecuteIndirect)(::windows::core::Interface::as_raw(self), pcommandsignature.into().abi(), maxcommandcount, pargumentbuffer.into().abi(), argumentbufferoffset, pcountbuffer.into().abi(), countbufferoffset) } - pub unsafe fn AtomicCopyBufferUINT<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: &::core::option::Option, pdependentsubresourceranges: &D3D12_SUBRESOURCE_RANGE_UINT64) + pub unsafe fn AtomicCopyBufferUINT<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { (::windows::core::Interface::vtable(self).AtomicCopyBufferUINT)(::windows::core::Interface::as_raw(self), pdstbuffer.into().abi(), dstoffset, psrcbuffer.into().abi(), srcoffset, ::core::mem::transmute(dependencies), ::core::mem::transmute(ppdependentresources), ::core::mem::transmute(pdependentsubresourceranges)) } - pub unsafe fn AtomicCopyBufferUINT64<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: &::core::option::Option, pdependentsubresourceranges: &D3D12_SUBRESOURCE_RANGE_UINT64) + pub unsafe fn AtomicCopyBufferUINT64<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, @@ -26317,8 +26317,8 @@ impl ID3D12GraphicsCommandList2 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -26409,15 +26409,15 @@ impl ID3D12GraphicsCommandList2 { (::windows::core::Interface::vtable(self).base__.base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology) } pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) { - (::windows::core::Interface::vtable(self).base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviewports))) + (::windows::core::Interface::vtable(self).base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } - pub unsafe fn OMSetBlendFactor(&self, blendfactor: &[f32; 4]) { - (::windows::core::Interface::vtable(self).base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(blendfactor))) + pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) { + (::windows::core::Interface::vtable(self).base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn OMSetStencilRef(&self, stencilref: u32) { (::windows::core::Interface::vtable(self).base__.base__.OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref) @@ -26429,7 +26429,7 @@ impl ID3D12GraphicsCommandList2 { (::windows::core::Interface::vtable(self).base__.base__.SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into().abi()) } pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) { - (::windows::core::Interface::vtable(self).base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbarriers))) + (::windows::core::Interface::vtable(self).base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr())) } pub unsafe fn ExecuteBundle<'a, P0>(&self, pcommandlist: P0) where @@ -26438,7 +26438,7 @@ impl ID3D12GraphicsCommandList2 { (::windows::core::Interface::vtable(self).base__.base__.ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into().abi()) } pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppdescriptorheaps))) + (::windows::core::Interface::vtable(self).base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr())) } pub unsafe fn SetComputeRootSignature<'a, P0>(&self, prootsignature: P0) where @@ -26493,11 +26493,11 @@ impl ID3D12GraphicsCommandList2 { pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<&D3D12_INDEX_BUFFER_VIEW>) { (::windows::core::Interface::vtable(self).base__.base__.IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview)) } - pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: &[D3D12_VERTEX_BUFFER_VIEW]) { - (::windows::core::Interface::vtable(self).base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviews))) + pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) { + (::windows::core::Interface::vtable(self).base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: &[D3D12_STREAM_OUTPUT_BUFFER_VIEW]) { - (::windows::core::Interface::vtable(self).base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviews))) + pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) { + (::windows::core::Interface::vtable(self).base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -26510,12 +26510,12 @@ impl ID3D12GraphicsCommandList2 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: &f32, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), ::core::mem::transmute(colorrgba), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), ::core::mem::transmute(colorrgba), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -26523,7 +26523,7 @@ impl ID3D12GraphicsCommandList2 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { - (::windows::core::Interface::vtable(self).base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -26531,7 +26531,7 @@ impl ID3D12GraphicsCommandList2 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { - (::windows::core::Interface::vtable(self).base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -26566,11 +26566,11 @@ impl ID3D12GraphicsCommandList2 { { (::windows::core::Interface::vtable(self).base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into().abi(), alignedbufferoffset, operation) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).base__.base__.EndEvent)(::windows::core::Interface::as_raw(self)) @@ -26583,14 +26583,14 @@ impl ID3D12GraphicsCommandList2 { { (::windows::core::Interface::vtable(self).base__.base__.ExecuteIndirect)(::windows::core::Interface::as_raw(self), pcommandsignature.into().abi(), maxcommandcount, pargumentbuffer.into().abi(), argumentbufferoffset, pcountbuffer.into().abi(), countbufferoffset) } - pub unsafe fn AtomicCopyBufferUINT<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: &::core::option::Option, pdependentsubresourceranges: &D3D12_SUBRESOURCE_RANGE_UINT64) + pub unsafe fn AtomicCopyBufferUINT<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { (::windows::core::Interface::vtable(self).base__.AtomicCopyBufferUINT)(::windows::core::Interface::as_raw(self), pdstbuffer.into().abi(), dstoffset, psrcbuffer.into().abi(), srcoffset, ::core::mem::transmute(dependencies), ::core::mem::transmute(ppdependentresources), ::core::mem::transmute(pdependentsubresourceranges)) } - pub unsafe fn AtomicCopyBufferUINT64<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: &::core::option::Option, pdependentsubresourceranges: &D3D12_SUBRESOURCE_RANGE_UINT64) + pub unsafe fn AtomicCopyBufferUINT64<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, @@ -26615,7 +26615,7 @@ impl ID3D12GraphicsCommandList2 { pub unsafe fn SetViewInstanceMask(&self, mask: u32) { (::windows::core::Interface::vtable(self).base__.SetViewInstanceMask)(::windows::core::Interface::as_raw(self), mask) } - pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: &D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<&D3D12_WRITEBUFFERIMMEDIATE_MODE>) { + pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: *const D3D12_WRITEBUFFERIMMEDIATE_MODE) { (::windows::core::Interface::vtable(self).WriteBufferImmediate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(pparams), ::core::mem::transmute(pmodes)) } } @@ -26744,8 +26744,8 @@ impl ID3D12GraphicsCommandList3 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -26836,15 +26836,15 @@ impl ID3D12GraphicsCommandList3 { (::windows::core::Interface::vtable(self).base__.base__.base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology) } pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviewports))) + (::windows::core::Interface::vtable(self).base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } - pub unsafe fn OMSetBlendFactor(&self, blendfactor: &[f32; 4]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(blendfactor))) + pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn OMSetStencilRef(&self, stencilref: u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref) @@ -26856,7 +26856,7 @@ impl ID3D12GraphicsCommandList3 { (::windows::core::Interface::vtable(self).base__.base__.base__.SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into().abi()) } pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbarriers))) + (::windows::core::Interface::vtable(self).base__.base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr())) } pub unsafe fn ExecuteBundle<'a, P0>(&self, pcommandlist: P0) where @@ -26865,7 +26865,7 @@ impl ID3D12GraphicsCommandList3 { (::windows::core::Interface::vtable(self).base__.base__.base__.ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into().abi()) } pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppdescriptorheaps))) + (::windows::core::Interface::vtable(self).base__.base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr())) } pub unsafe fn SetComputeRootSignature<'a, P0>(&self, prootsignature: P0) where @@ -26920,11 +26920,11 @@ impl ID3D12GraphicsCommandList3 { pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<&D3D12_INDEX_BUFFER_VIEW>) { (::windows::core::Interface::vtable(self).base__.base__.base__.IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview)) } - pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: &[D3D12_VERTEX_BUFFER_VIEW]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviews))) + pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: &[D3D12_STREAM_OUTPUT_BUFFER_VIEW]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviews))) + pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -26937,12 +26937,12 @@ impl ID3D12GraphicsCommandList3 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: &f32, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), ::core::mem::transmute(colorrgba), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), ::core::mem::transmute(colorrgba), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -26950,7 +26950,7 @@ impl ID3D12GraphicsCommandList3 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -26958,7 +26958,7 @@ impl ID3D12GraphicsCommandList3 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -26993,11 +26993,11 @@ impl ID3D12GraphicsCommandList3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into().abi(), alignedbufferoffset, operation) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).base__.base__.base__.EndEvent)(::windows::core::Interface::as_raw(self)) @@ -27010,14 +27010,14 @@ impl ID3D12GraphicsCommandList3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.ExecuteIndirect)(::windows::core::Interface::as_raw(self), pcommandsignature.into().abi(), maxcommandcount, pargumentbuffer.into().abi(), argumentbufferoffset, pcountbuffer.into().abi(), countbufferoffset) } - pub unsafe fn AtomicCopyBufferUINT<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: &::core::option::Option, pdependentsubresourceranges: &D3D12_SUBRESOURCE_RANGE_UINT64) + pub unsafe fn AtomicCopyBufferUINT<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { (::windows::core::Interface::vtable(self).base__.base__.AtomicCopyBufferUINT)(::windows::core::Interface::as_raw(self), pdstbuffer.into().abi(), dstoffset, psrcbuffer.into().abi(), srcoffset, ::core::mem::transmute(dependencies), ::core::mem::transmute(ppdependentresources), ::core::mem::transmute(pdependentsubresourceranges)) } - pub unsafe fn AtomicCopyBufferUINT64<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: &::core::option::Option, pdependentsubresourceranges: &D3D12_SUBRESOURCE_RANGE_UINT64) + pub unsafe fn AtomicCopyBufferUINT64<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, @@ -27042,7 +27042,7 @@ impl ID3D12GraphicsCommandList3 { pub unsafe fn SetViewInstanceMask(&self, mask: u32) { (::windows::core::Interface::vtable(self).base__.base__.SetViewInstanceMask)(::windows::core::Interface::as_raw(self), mask) } - pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: &D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<&D3D12_WRITEBUFFERIMMEDIATE_MODE>) { + pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: *const D3D12_WRITEBUFFERIMMEDIATE_MODE) { (::windows::core::Interface::vtable(self).base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(pparams), ::core::mem::transmute(pmodes)) } pub unsafe fn SetProtectedResourceSession<'a, P0>(&self, pprotectedresourcesession: P0) @@ -27192,8 +27192,8 @@ impl ID3D12GraphicsCommandList4 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -27284,15 +27284,15 @@ impl ID3D12GraphicsCommandList4 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology) } pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviewports))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } - pub unsafe fn OMSetBlendFactor(&self, blendfactor: &[f32; 4]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(blendfactor))) + pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn OMSetStencilRef(&self, stencilref: u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref) @@ -27304,7 +27304,7 @@ impl ID3D12GraphicsCommandList4 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into().abi()) } pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbarriers))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr())) } pub unsafe fn ExecuteBundle<'a, P0>(&self, pcommandlist: P0) where @@ -27313,7 +27313,7 @@ impl ID3D12GraphicsCommandList4 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into().abi()) } pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppdescriptorheaps))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr())) } pub unsafe fn SetComputeRootSignature<'a, P0>(&self, prootsignature: P0) where @@ -27368,11 +27368,11 @@ impl ID3D12GraphicsCommandList4 { pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<&D3D12_INDEX_BUFFER_VIEW>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview)) } - pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: &[D3D12_VERTEX_BUFFER_VIEW]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviews))) + pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: &[D3D12_STREAM_OUTPUT_BUFFER_VIEW]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviews))) + pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -27385,12 +27385,12 @@ impl ID3D12GraphicsCommandList4 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: &f32, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), ::core::mem::transmute(colorrgba), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), ::core::mem::transmute(colorrgba), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -27398,7 +27398,7 @@ impl ID3D12GraphicsCommandList4 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -27406,7 +27406,7 @@ impl ID3D12GraphicsCommandList4 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -27441,11 +27441,11 @@ impl ID3D12GraphicsCommandList4 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into().abi(), alignedbufferoffset, operation) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.EndEvent)(::windows::core::Interface::as_raw(self)) @@ -27458,14 +27458,14 @@ impl ID3D12GraphicsCommandList4 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ExecuteIndirect)(::windows::core::Interface::as_raw(self), pcommandsignature.into().abi(), maxcommandcount, pargumentbuffer.into().abi(), argumentbufferoffset, pcountbuffer.into().abi(), countbufferoffset) } - pub unsafe fn AtomicCopyBufferUINT<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: &::core::option::Option, pdependentsubresourceranges: &D3D12_SUBRESOURCE_RANGE_UINT64) + pub unsafe fn AtomicCopyBufferUINT<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { (::windows::core::Interface::vtable(self).base__.base__.base__.AtomicCopyBufferUINT)(::windows::core::Interface::as_raw(self), pdstbuffer.into().abi(), dstoffset, psrcbuffer.into().abi(), srcoffset, ::core::mem::transmute(dependencies), ::core::mem::transmute(ppdependentresources), ::core::mem::transmute(pdependentsubresourceranges)) } - pub unsafe fn AtomicCopyBufferUINT64<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: &::core::option::Option, pdependentsubresourceranges: &D3D12_SUBRESOURCE_RANGE_UINT64) + pub unsafe fn AtomicCopyBufferUINT64<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, @@ -27490,7 +27490,7 @@ impl ID3D12GraphicsCommandList4 { pub unsafe fn SetViewInstanceMask(&self, mask: u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.SetViewInstanceMask)(::windows::core::Interface::as_raw(self), mask) } - pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: &D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<&D3D12_WRITEBUFFERIMMEDIATE_MODE>) { + pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: *const D3D12_WRITEBUFFERIMMEDIATE_MODE) { (::windows::core::Interface::vtable(self).base__.base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(pparams), ::core::mem::transmute(pmodes)) } pub unsafe fn SetProtectedResourceSession<'a, P0>(&self, pprotectedresourcesession: P0) @@ -27501,31 +27501,31 @@ impl ID3D12GraphicsCommandList4 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] - pub unsafe fn BeginRenderPass(&self, prendertargets: &[D3D12_RENDER_PASS_RENDER_TARGET_DESC], pdepthstencil: ::core::option::Option<&D3D12_RENDER_PASS_DEPTH_STENCIL_DESC>, flags: D3D12_RENDER_PASS_FLAGS) { - (::windows::core::Interface::vtable(self).BeginRenderPass)(::windows::core::Interface::as_raw(self), prendertargets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prendertargets)), ::core::mem::transmute(pdepthstencil), flags) + pub unsafe fn BeginRenderPass(&self, prendertargets: ::core::option::Option<&[D3D12_RENDER_PASS_RENDER_TARGET_DESC]>, pdepthstencil: ::core::option::Option<&D3D12_RENDER_PASS_DEPTH_STENCIL_DESC>, flags: D3D12_RENDER_PASS_FLAGS) { + (::windows::core::Interface::vtable(self).BeginRenderPass)(::windows::core::Interface::as_raw(self), prendertargets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prendertargets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pdepthstencil), flags) } pub unsafe fn EndRenderPass(&self) { (::windows::core::Interface::vtable(self).EndRenderPass)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn InitializeMetaCommand<'a, P0>(&self, pmetacommand: P0, pinitializationparametersdata: *const ::core::ffi::c_void, initializationparametersdatasizeinbytes: usize) + pub unsafe fn InitializeMetaCommand<'a, P0>(&self, pmetacommand: P0, pinitializationparametersdata: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12MetaCommand>>, { - (::windows::core::Interface::vtable(self).InitializeMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into().abi(), ::core::mem::transmute(pinitializationparametersdata), initializationparametersdatasizeinbytes) + (::windows::core::Interface::vtable(self).InitializeMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into().abi(), ::core::mem::transmute(pinitializationparametersdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pinitializationparametersdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn ExecuteMetaCommand<'a, P0>(&self, pmetacommand: P0, pexecutionparametersdata: *const ::core::ffi::c_void, executionparametersdatasizeinbytes: usize) + pub unsafe fn ExecuteMetaCommand<'a, P0>(&self, pmetacommand: P0, pexecutionparametersdata: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12MetaCommand>>, { - (::windows::core::Interface::vtable(self).ExecuteMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into().abi(), ::core::mem::transmute(pexecutionparametersdata), executionparametersdatasizeinbytes) + (::windows::core::Interface::vtable(self).ExecuteMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into().abi(), ::core::mem::transmute(pexecutionparametersdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pexecutionparametersdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn BuildRaytracingAccelerationStructure(&self, pdesc: &D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC, ppostbuildinfodescs: &[D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC]) { - (::windows::core::Interface::vtable(self).BuildRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ppostbuildinfodescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppostbuildinfodescs))) + pub unsafe fn BuildRaytracingAccelerationStructure(&self, pdesc: &D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC, ppostbuildinfodescs: ::core::option::Option<&[D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC]>) { + (::windows::core::Interface::vtable(self).BuildRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ppostbuildinfodescs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppostbuildinfodescs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn EmitRaytracingAccelerationStructurePostbuildInfo(&self, pdesc: &D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC, psourceaccelerationstructuredata: &[u64]) { - (::windows::core::Interface::vtable(self).EmitRaytracingAccelerationStructurePostbuildInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), psourceaccelerationstructuredata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psourceaccelerationstructuredata))) + (::windows::core::Interface::vtable(self).EmitRaytracingAccelerationStructurePostbuildInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), psourceaccelerationstructuredata.len() as _, ::core::mem::transmute(psourceaccelerationstructuredata.as_ptr())) } pub unsafe fn CopyRaytracingAccelerationStructure(&self, destaccelerationstructuredata: u64, sourceaccelerationstructuredata: u64, mode: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE) { (::windows::core::Interface::vtable(self).CopyRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), destaccelerationstructuredata, sourceaccelerationstructuredata, mode) @@ -27709,8 +27709,8 @@ impl ID3D12GraphicsCommandList5 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -27801,15 +27801,15 @@ impl ID3D12GraphicsCommandList5 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology) } pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviewports))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } - pub unsafe fn OMSetBlendFactor(&self, blendfactor: &[f32; 4]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(blendfactor))) + pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn OMSetStencilRef(&self, stencilref: u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref) @@ -27821,7 +27821,7 @@ impl ID3D12GraphicsCommandList5 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into().abi()) } pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbarriers))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr())) } pub unsafe fn ExecuteBundle<'a, P0>(&self, pcommandlist: P0) where @@ -27830,7 +27830,7 @@ impl ID3D12GraphicsCommandList5 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into().abi()) } pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppdescriptorheaps))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr())) } pub unsafe fn SetComputeRootSignature<'a, P0>(&self, prootsignature: P0) where @@ -27885,11 +27885,11 @@ impl ID3D12GraphicsCommandList5 { pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<&D3D12_INDEX_BUFFER_VIEW>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview)) } - pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: &[D3D12_VERTEX_BUFFER_VIEW]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviews))) + pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: &[D3D12_STREAM_OUTPUT_BUFFER_VIEW]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviews))) + pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -27902,12 +27902,12 @@ impl ID3D12GraphicsCommandList5 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: &f32, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), ::core::mem::transmute(colorrgba), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), ::core::mem::transmute(colorrgba), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -27915,7 +27915,7 @@ impl ID3D12GraphicsCommandList5 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -27923,7 +27923,7 @@ impl ID3D12GraphicsCommandList5 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -27958,11 +27958,11 @@ impl ID3D12GraphicsCommandList5 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into().abi(), alignedbufferoffset, operation) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.EndEvent)(::windows::core::Interface::as_raw(self)) @@ -27975,14 +27975,14 @@ impl ID3D12GraphicsCommandList5 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ExecuteIndirect)(::windows::core::Interface::as_raw(self), pcommandsignature.into().abi(), maxcommandcount, pargumentbuffer.into().abi(), argumentbufferoffset, pcountbuffer.into().abi(), countbufferoffset) } - pub unsafe fn AtomicCopyBufferUINT<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: &::core::option::Option, pdependentsubresourceranges: &D3D12_SUBRESOURCE_RANGE_UINT64) + pub unsafe fn AtomicCopyBufferUINT<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.AtomicCopyBufferUINT)(::windows::core::Interface::as_raw(self), pdstbuffer.into().abi(), dstoffset, psrcbuffer.into().abi(), srcoffset, ::core::mem::transmute(dependencies), ::core::mem::transmute(ppdependentresources), ::core::mem::transmute(pdependentsubresourceranges)) } - pub unsafe fn AtomicCopyBufferUINT64<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: &::core::option::Option, pdependentsubresourceranges: &D3D12_SUBRESOURCE_RANGE_UINT64) + pub unsafe fn AtomicCopyBufferUINT64<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, @@ -28007,7 +28007,7 @@ impl ID3D12GraphicsCommandList5 { pub unsafe fn SetViewInstanceMask(&self, mask: u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetViewInstanceMask)(::windows::core::Interface::as_raw(self), mask) } - pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: &D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<&D3D12_WRITEBUFFERIMMEDIATE_MODE>) { + pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: *const D3D12_WRITEBUFFERIMMEDIATE_MODE) { (::windows::core::Interface::vtable(self).base__.base__.base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(pparams), ::core::mem::transmute(pmodes)) } pub unsafe fn SetProtectedResourceSession<'a, P0>(&self, pprotectedresourcesession: P0) @@ -28018,31 +28018,31 @@ impl ID3D12GraphicsCommandList5 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] - pub unsafe fn BeginRenderPass(&self, prendertargets: &[D3D12_RENDER_PASS_RENDER_TARGET_DESC], pdepthstencil: ::core::option::Option<&D3D12_RENDER_PASS_DEPTH_STENCIL_DESC>, flags: D3D12_RENDER_PASS_FLAGS) { - (::windows::core::Interface::vtable(self).base__.BeginRenderPass)(::windows::core::Interface::as_raw(self), prendertargets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prendertargets)), ::core::mem::transmute(pdepthstencil), flags) + pub unsafe fn BeginRenderPass(&self, prendertargets: ::core::option::Option<&[D3D12_RENDER_PASS_RENDER_TARGET_DESC]>, pdepthstencil: ::core::option::Option<&D3D12_RENDER_PASS_DEPTH_STENCIL_DESC>, flags: D3D12_RENDER_PASS_FLAGS) { + (::windows::core::Interface::vtable(self).base__.BeginRenderPass)(::windows::core::Interface::as_raw(self), prendertargets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prendertargets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pdepthstencil), flags) } pub unsafe fn EndRenderPass(&self) { (::windows::core::Interface::vtable(self).base__.EndRenderPass)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn InitializeMetaCommand<'a, P0>(&self, pmetacommand: P0, pinitializationparametersdata: *const ::core::ffi::c_void, initializationparametersdatasizeinbytes: usize) + pub unsafe fn InitializeMetaCommand<'a, P0>(&self, pmetacommand: P0, pinitializationparametersdata: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12MetaCommand>>, { - (::windows::core::Interface::vtable(self).base__.InitializeMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into().abi(), ::core::mem::transmute(pinitializationparametersdata), initializationparametersdatasizeinbytes) + (::windows::core::Interface::vtable(self).base__.InitializeMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into().abi(), ::core::mem::transmute(pinitializationparametersdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pinitializationparametersdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn ExecuteMetaCommand<'a, P0>(&self, pmetacommand: P0, pexecutionparametersdata: *const ::core::ffi::c_void, executionparametersdatasizeinbytes: usize) + pub unsafe fn ExecuteMetaCommand<'a, P0>(&self, pmetacommand: P0, pexecutionparametersdata: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12MetaCommand>>, { - (::windows::core::Interface::vtable(self).base__.ExecuteMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into().abi(), ::core::mem::transmute(pexecutionparametersdata), executionparametersdatasizeinbytes) + (::windows::core::Interface::vtable(self).base__.ExecuteMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into().abi(), ::core::mem::transmute(pexecutionparametersdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pexecutionparametersdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn BuildRaytracingAccelerationStructure(&self, pdesc: &D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC, ppostbuildinfodescs: &[D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC]) { - (::windows::core::Interface::vtable(self).base__.BuildRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ppostbuildinfodescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppostbuildinfodescs))) + pub unsafe fn BuildRaytracingAccelerationStructure(&self, pdesc: &D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC, ppostbuildinfodescs: ::core::option::Option<&[D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC]>) { + (::windows::core::Interface::vtable(self).base__.BuildRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ppostbuildinfodescs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppostbuildinfodescs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn EmitRaytracingAccelerationStructurePostbuildInfo(&self, pdesc: &D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC, psourceaccelerationstructuredata: &[u64]) { - (::windows::core::Interface::vtable(self).base__.EmitRaytracingAccelerationStructurePostbuildInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), psourceaccelerationstructuredata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psourceaccelerationstructuredata))) + (::windows::core::Interface::vtable(self).base__.EmitRaytracingAccelerationStructurePostbuildInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), psourceaccelerationstructuredata.len() as _, ::core::mem::transmute(psourceaccelerationstructuredata.as_ptr())) } pub unsafe fn CopyRaytracingAccelerationStructure(&self, destaccelerationstructuredata: u64, sourceaccelerationstructuredata: u64, mode: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE) { (::windows::core::Interface::vtable(self).base__.CopyRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), destaccelerationstructuredata, sourceaccelerationstructuredata, mode) @@ -28237,8 +28237,8 @@ impl ID3D12GraphicsCommandList6 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -28329,15 +28329,15 @@ impl ID3D12GraphicsCommandList6 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology) } pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviewports))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } - pub unsafe fn OMSetBlendFactor(&self, blendfactor: &[f32; 4]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(blendfactor))) + pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn OMSetStencilRef(&self, stencilref: u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref) @@ -28349,7 +28349,7 @@ impl ID3D12GraphicsCommandList6 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into().abi()) } pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbarriers))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr())) } pub unsafe fn ExecuteBundle<'a, P0>(&self, pcommandlist: P0) where @@ -28358,7 +28358,7 @@ impl ID3D12GraphicsCommandList6 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into().abi()) } pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppdescriptorheaps))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr())) } pub unsafe fn SetComputeRootSignature<'a, P0>(&self, prootsignature: P0) where @@ -28413,11 +28413,11 @@ impl ID3D12GraphicsCommandList6 { pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<&D3D12_INDEX_BUFFER_VIEW>) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview)) } - pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: &[D3D12_VERTEX_BUFFER_VIEW]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviews))) + pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } - pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: &[D3D12_STREAM_OUTPUT_BUFFER_VIEW]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviews))) + pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -28430,12 +28430,12 @@ impl ID3D12GraphicsCommandList6 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: &f32, prects: &[super::super::Foundation::RECT]) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), ::core::mem::transmute(colorrgba), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), ::core::mem::transmute(colorrgba), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -28443,7 +28443,7 @@ impl ID3D12GraphicsCommandList6 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -28451,7 +28451,7 @@ impl ID3D12GraphicsCommandList6 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prects))) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into().abi(), ::core::mem::transmute(values), prects.len() as _, ::core::mem::transmute(prects.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -28486,11 +28486,11 @@ impl ID3D12GraphicsCommandList6 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into().abi(), alignedbufferoffset, operation) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.EndEvent)(::windows::core::Interface::as_raw(self)) @@ -28503,14 +28503,14 @@ impl ID3D12GraphicsCommandList6 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ExecuteIndirect)(::windows::core::Interface::as_raw(self), pcommandsignature.into().abi(), maxcommandcount, pargumentbuffer.into().abi(), argumentbufferoffset, pcountbuffer.into().abi(), countbufferoffset) } - pub unsafe fn AtomicCopyBufferUINT<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: &::core::option::Option, pdependentsubresourceranges: &D3D12_SUBRESOURCE_RANGE_UINT64) + pub unsafe fn AtomicCopyBufferUINT<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.AtomicCopyBufferUINT)(::windows::core::Interface::as_raw(self), pdstbuffer.into().abi(), dstoffset, psrcbuffer.into().abi(), srcoffset, ::core::mem::transmute(dependencies), ::core::mem::transmute(ppdependentresources), ::core::mem::transmute(pdependentsubresourceranges)) } - pub unsafe fn AtomicCopyBufferUINT64<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: &::core::option::Option, pdependentsubresourceranges: &D3D12_SUBRESOURCE_RANGE_UINT64) + pub unsafe fn AtomicCopyBufferUINT64<'a, P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ID3D12Resource>>, @@ -28535,7 +28535,7 @@ impl ID3D12GraphicsCommandList6 { pub unsafe fn SetViewInstanceMask(&self, mask: u32) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetViewInstanceMask)(::windows::core::Interface::as_raw(self), mask) } - pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: &D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<&D3D12_WRITEBUFFERIMMEDIATE_MODE>) { + pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: *const D3D12_WRITEBUFFERIMMEDIATE_MODE) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(pparams), ::core::mem::transmute(pmodes)) } pub unsafe fn SetProtectedResourceSession<'a, P0>(&self, pprotectedresourcesession: P0) @@ -28546,31 +28546,31 @@ impl ID3D12GraphicsCommandList6 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] - pub unsafe fn BeginRenderPass(&self, prendertargets: &[D3D12_RENDER_PASS_RENDER_TARGET_DESC], pdepthstencil: ::core::option::Option<&D3D12_RENDER_PASS_DEPTH_STENCIL_DESC>, flags: D3D12_RENDER_PASS_FLAGS) { - (::windows::core::Interface::vtable(self).base__.base__.BeginRenderPass)(::windows::core::Interface::as_raw(self), prendertargets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prendertargets)), ::core::mem::transmute(pdepthstencil), flags) + pub unsafe fn BeginRenderPass(&self, prendertargets: ::core::option::Option<&[D3D12_RENDER_PASS_RENDER_TARGET_DESC]>, pdepthstencil: ::core::option::Option<&D3D12_RENDER_PASS_DEPTH_STENCIL_DESC>, flags: D3D12_RENDER_PASS_FLAGS) { + (::windows::core::Interface::vtable(self).base__.base__.BeginRenderPass)(::windows::core::Interface::as_raw(self), prendertargets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prendertargets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pdepthstencil), flags) } pub unsafe fn EndRenderPass(&self) { (::windows::core::Interface::vtable(self).base__.base__.EndRenderPass)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn InitializeMetaCommand<'a, P0>(&self, pmetacommand: P0, pinitializationparametersdata: *const ::core::ffi::c_void, initializationparametersdatasizeinbytes: usize) + pub unsafe fn InitializeMetaCommand<'a, P0>(&self, pmetacommand: P0, pinitializationparametersdata: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12MetaCommand>>, { - (::windows::core::Interface::vtable(self).base__.base__.InitializeMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into().abi(), ::core::mem::transmute(pinitializationparametersdata), initializationparametersdatasizeinbytes) + (::windows::core::Interface::vtable(self).base__.base__.InitializeMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into().abi(), ::core::mem::transmute(pinitializationparametersdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pinitializationparametersdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn ExecuteMetaCommand<'a, P0>(&self, pmetacommand: P0, pexecutionparametersdata: *const ::core::ffi::c_void, executionparametersdatasizeinbytes: usize) + pub unsafe fn ExecuteMetaCommand<'a, P0>(&self, pmetacommand: P0, pexecutionparametersdata: ::core::option::Option<&[u8]>) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12MetaCommand>>, { - (::windows::core::Interface::vtable(self).base__.base__.ExecuteMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into().abi(), ::core::mem::transmute(pexecutionparametersdata), executionparametersdatasizeinbytes) + (::windows::core::Interface::vtable(self).base__.base__.ExecuteMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into().abi(), ::core::mem::transmute(pexecutionparametersdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pexecutionparametersdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn BuildRaytracingAccelerationStructure(&self, pdesc: &D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC, ppostbuildinfodescs: &[D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC]) { - (::windows::core::Interface::vtable(self).base__.base__.BuildRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ppostbuildinfodescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppostbuildinfodescs))) + pub unsafe fn BuildRaytracingAccelerationStructure(&self, pdesc: &D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC, ppostbuildinfodescs: ::core::option::Option<&[D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC]>) { + (::windows::core::Interface::vtable(self).base__.base__.BuildRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ppostbuildinfodescs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppostbuildinfodescs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub unsafe fn EmitRaytracingAccelerationStructurePostbuildInfo(&self, pdesc: &D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC, psourceaccelerationstructuredata: &[u64]) { - (::windows::core::Interface::vtable(self).base__.base__.EmitRaytracingAccelerationStructurePostbuildInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), psourceaccelerationstructuredata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psourceaccelerationstructuredata))) + (::windows::core::Interface::vtable(self).base__.base__.EmitRaytracingAccelerationStructurePostbuildInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), psourceaccelerationstructuredata.len() as _, ::core::mem::transmute(psourceaccelerationstructuredata.as_ptr())) } pub unsafe fn CopyRaytracingAccelerationStructure(&self, destaccelerationstructuredata: u64, sourceaccelerationstructuredata: u64, mode: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE) { (::windows::core::Interface::vtable(self).base__.base__.CopyRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), destaccelerationstructuredata, sourceaccelerationstructuredata, mode) @@ -28782,8 +28782,8 @@ impl ID3D12Heap { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -28904,8 +28904,8 @@ impl ID3D12Heap1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -29050,7 +29050,7 @@ impl ID3D12InfoQueue { pub unsafe fn ClearStoredMessages(&self) { (::windows::core::Interface::vtable(self).ClearStoredMessages)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn GetMessage(&self, messageindex: u64, pmessage: ::core::option::Option<&mut D3D12_MESSAGE>, pmessagebytelength: &mut usize) -> ::windows::core::Result<()> { + pub unsafe fn GetMessage(&self, messageindex: u64, pmessage: *mut D3D12_MESSAGE, pmessagebytelength: &mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetMessage)(::windows::core::Interface::as_raw(self), messageindex, ::core::mem::transmute(pmessage), ::core::mem::transmute(pmessagebytelength)).ok() } pub unsafe fn GetNumMessagesAllowedByStorageFilter(&self) -> u64 { @@ -29074,7 +29074,7 @@ impl ID3D12InfoQueue { pub unsafe fn AddStorageFilterEntries(&self, pfilter: &D3D12_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AddStorageFilterEntries)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter)).ok() } - pub unsafe fn GetStorageFilter(&self, pfilter: ::core::option::Option<&mut D3D12_INFO_QUEUE_FILTER>, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { + pub unsafe fn GetStorageFilter(&self, pfilter: *mut D3D12_INFO_QUEUE_FILTER, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetStorageFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter), ::core::mem::transmute(pfilterbytelength)).ok() } pub unsafe fn ClearStorageFilter(&self) { @@ -29098,7 +29098,7 @@ impl ID3D12InfoQueue { pub unsafe fn AddRetrievalFilterEntries(&self, pfilter: &D3D12_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AddRetrievalFilterEntries)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter)).ok() } - pub unsafe fn GetRetrievalFilter(&self, pfilter: ::core::option::Option<&mut D3D12_INFO_QUEUE_FILTER>, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { + pub unsafe fn GetRetrievalFilter(&self, pfilter: *mut D3D12_INFO_QUEUE_FILTER, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetRetrievalFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter), ::core::mem::transmute(pfilterbytelength)).ok() } pub unsafe fn ClearRetrievalFilter(&self) { @@ -29295,7 +29295,7 @@ impl ID3D12InfoQueue1 { pub unsafe fn ClearStoredMessages(&self) { (::windows::core::Interface::vtable(self).base__.ClearStoredMessages)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn GetMessage(&self, messageindex: u64, pmessage: ::core::option::Option<&mut D3D12_MESSAGE>, pmessagebytelength: &mut usize) -> ::windows::core::Result<()> { + pub unsafe fn GetMessage(&self, messageindex: u64, pmessage: *mut D3D12_MESSAGE, pmessagebytelength: &mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetMessage)(::windows::core::Interface::as_raw(self), messageindex, ::core::mem::transmute(pmessage), ::core::mem::transmute(pmessagebytelength)).ok() } pub unsafe fn GetNumMessagesAllowedByStorageFilter(&self) -> u64 { @@ -29319,7 +29319,7 @@ impl ID3D12InfoQueue1 { pub unsafe fn AddStorageFilterEntries(&self, pfilter: &D3D12_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.AddStorageFilterEntries)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter)).ok() } - pub unsafe fn GetStorageFilter(&self, pfilter: ::core::option::Option<&mut D3D12_INFO_QUEUE_FILTER>, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { + pub unsafe fn GetStorageFilter(&self, pfilter: *mut D3D12_INFO_QUEUE_FILTER, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetStorageFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter), ::core::mem::transmute(pfilterbytelength)).ok() } pub unsafe fn ClearStorageFilter(&self) { @@ -29343,7 +29343,7 @@ impl ID3D12InfoQueue1 { pub unsafe fn AddRetrievalFilterEntries(&self, pfilter: &D3D12_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.AddRetrievalFilterEntries)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter)).ok() } - pub unsafe fn GetRetrievalFilter(&self, pfilter: ::core::option::Option<&mut D3D12_INFO_QUEUE_FILTER>, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { + pub unsafe fn GetRetrievalFilter(&self, pfilter: *mut D3D12_INFO_QUEUE_FILTER, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetRetrievalFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter), ::core::mem::transmute(pfilterbytelength)).ok() } pub unsafe fn ClearRetrievalFilter(&self) { @@ -29608,8 +29608,8 @@ impl ID3D12LifetimeTracker { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -29716,8 +29716,8 @@ impl ID3D12MetaCommand { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -29836,8 +29836,8 @@ impl ID3D12Object { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -29905,8 +29905,8 @@ impl ID3D12Pageable { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -30006,8 +30006,8 @@ impl ID3D12PipelineLibrary { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -30056,7 +30056,7 @@ impl ID3D12PipelineLibrary { (::windows::core::Interface::vtable(self).GetSerializedSize)(::windows::core::Interface::as_raw(self)) } pub unsafe fn Serialize(&self, pdata: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Serialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pdata)), pdata.len() as _).ok() + (::windows::core::Interface::vtable(self).Serialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -30146,8 +30146,8 @@ impl ID3D12PipelineLibrary1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -30196,7 +30196,7 @@ impl ID3D12PipelineLibrary1 { (::windows::core::Interface::vtable(self).base__.GetSerializedSize)(::windows::core::Interface::as_raw(self)) } pub unsafe fn Serialize(&self, pdata: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.Serialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pdata)), pdata.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.Serialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _).ok() } pub unsafe fn LoadPipeline<'a, P0, T>(&self, pname: P0, pdesc: &D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result where @@ -30302,8 +30302,8 @@ impl ID3D12PipelineState { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -30428,8 +30428,8 @@ impl ID3D12ProtectedResourceSession { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -30559,8 +30559,8 @@ impl ID3D12ProtectedResourceSession1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -30710,8 +30710,8 @@ impl ID3D12ProtectedSession { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -30822,8 +30822,8 @@ impl ID3D12QueryHeap { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -30938,8 +30938,8 @@ impl ID3D12Resource { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -31089,8 +31089,8 @@ impl ID3D12Resource1 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -31252,8 +31252,8 @@ impl ID3D12Resource2 { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -31440,8 +31440,8 @@ impl ID3D12RootSignature { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -31646,8 +31646,8 @@ impl ID3D12ShaderCacheSession { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where @@ -31667,11 +31667,11 @@ impl ID3D12ShaderCacheSession { { (::windows::core::Interface::vtable(self).base__.GetDevice)(::windows::core::Interface::as_raw(self), &::IID, result__ as *mut _ as *mut _).ok() } - pub unsafe fn FindValue(&self, pkey: *const ::core::ffi::c_void, keysize: u32, pvalue: *mut ::core::ffi::c_void, pvaluesize: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).FindValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pkey), keysize, ::core::mem::transmute(pvalue), ::core::mem::transmute(pvaluesize)).ok() + pub unsafe fn FindValue(&self, pkey: &[u8], pvalue: *mut ::core::ffi::c_void, pvaluesize: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).FindValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pkey.as_ptr()), pkey.len() as _, ::core::mem::transmute(pvalue), ::core::mem::transmute(pvaluesize)).ok() } - pub unsafe fn StoreValue(&self, pkey: *const ::core::ffi::c_void, keysize: u32, pvalue: *const ::core::ffi::c_void, valuesize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).StoreValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pkey), keysize, ::core::mem::transmute(pvalue), valuesize).ok() + pub unsafe fn StoreValue(&self, pkey: &[u8], pvalue: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).StoreValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pkey.as_ptr()), pkey.len() as _, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } pub unsafe fn SetDeleteOnDestroy(&self) { (::windows::core::Interface::vtable(self).SetDeleteOnDestroy)(::windows::core::Interface::as_raw(self)) @@ -32216,8 +32216,8 @@ impl ID3D12StateObject { pub unsafe fn GetPrivateData(&self, guid: &::windows::core::GUID, pdatasize: &mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pdatasize), ::core::mem::transmute(pdata)).ok() } - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, guid: &::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()> where diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/DirectComposition/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/DirectComposition/mod.rs index c8401dd718..99d5c5ee59 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/DirectComposition/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/DirectComposition/mod.rs @@ -553,12 +553,12 @@ impl ::core::default::Default for DCompositionInkTrailPoint { #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn DCompositionWaitForCompositorClock(handles: &[super::super::Foundation::HANDLE], timeoutinms: u32) -> u32 { +pub unsafe fn DCompositionWaitForCompositorClock(handles: ::core::option::Option<&[super::super::Foundation::HANDLE]>, timeoutinms: u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn DCompositionWaitForCompositorClock(count: u32, handles: *const super::super::Foundation::HANDLE, timeoutinms: u32) -> u32; } - DCompositionWaitForCompositorClock(handles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(handles)), timeoutinms) + DCompositionWaitForCompositorClock(handles.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(handles.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), timeoutinms) } #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] #[repr(transparent)] @@ -1400,11 +1400,11 @@ pub struct IDCompositionDelegatedInkTrail(::windows::core::IUnknown); impl IDCompositionDelegatedInkTrail { pub unsafe fn AddTrailPoints(&self, inkpoints: &[DCompositionInkTrailPoint]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).AddTrailPoints)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(inkpoints)), inkpoints.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).AddTrailPoints)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(inkpoints.as_ptr()), inkpoints.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn AddTrailPointsWithPrediction(&self, inkpoints: &[DCompositionInkTrailPoint], predictedinkpoints: &[DCompositionInkTrailPoint]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).AddTrailPointsWithPrediction)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(inkpoints)), inkpoints.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(predictedinkpoints)), predictedinkpoints.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).AddTrailPointsWithPrediction)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(inkpoints.as_ptr()), inkpoints.len() as _, ::core::mem::transmute(predictedinkpoints.as_ptr()), predictedinkpoints.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn RemoveTrailPoints(&self, generationid: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).RemoveTrailPoints)(::windows::core::Interface::as_raw(self), generationid).ok() @@ -1523,7 +1523,7 @@ impl IDCompositionDesktopDevice { } pub unsafe fn CreateTransformGroup(&self, transforms: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateTransformGroup)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(transforms)), transforms.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateTransformGroup)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(transforms.as_ptr()), transforms.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateTranslateTransform3D(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1543,7 +1543,7 @@ impl IDCompositionDesktopDevice { } pub unsafe fn CreateTransform3DGroup(&self, transforms3d: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateTransform3DGroup)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(transforms3d)), transforms3d.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateTransform3DGroup)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(transforms3d.as_ptr()), transforms3d.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateEffectGroup(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1735,7 +1735,7 @@ impl IDCompositionDevice { } pub unsafe fn CreateTransformGroup(&self, transforms: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateTransformGroup)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(transforms)), transforms.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateTransformGroup)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(transforms.as_ptr()), transforms.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateTranslateTransform3D(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1755,7 +1755,7 @@ impl IDCompositionDevice { } pub unsafe fn CreateTransform3DGroup(&self, transforms3d: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateTransform3DGroup)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(transforms3d)), transforms3d.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateTransform3DGroup)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(transforms3d.as_ptr()), transforms3d.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateEffectGroup(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1922,7 +1922,7 @@ impl IDCompositionDevice2 { } pub unsafe fn CreateTransformGroup(&self, transforms: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateTransformGroup)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(transforms)), transforms.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateTransformGroup)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(transforms.as_ptr()), transforms.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateTranslateTransform3D(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1942,7 +1942,7 @@ impl IDCompositionDevice2 { } pub unsafe fn CreateTransform3DGroup(&self, transforms3d: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateTransform3DGroup)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(transforms3d)), transforms3d.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateTransform3DGroup)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(transforms3d.as_ptr()), transforms3d.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateEffectGroup(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2088,7 +2088,7 @@ impl IDCompositionDevice3 { } pub unsafe fn CreateTransformGroup(&self, transforms: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateTransformGroup)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(transforms)), transforms.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateTransformGroup)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(transforms.as_ptr()), transforms.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateTranslateTransform3D(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2108,7 +2108,7 @@ impl IDCompositionDevice3 { } pub unsafe fn CreateTransform3DGroup(&self, transforms3d: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateTransform3DGroup)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(transforms3d)), transforms3d.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateTransform3DGroup)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(transforms3d.as_ptr()), transforms3d.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateEffectGroup(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -4434,16 +4434,16 @@ impl IDCompositionTableTransferEffect { (::windows::core::Interface::vtable(self).base__.SetInput)(::windows::core::Interface::as_raw(self), index, input.into().abi(), flags).ok() } pub unsafe fn SetRedTable(&self, tablevalues: &[f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetRedTable)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(tablevalues)), tablevalues.len() as _).ok() + (::windows::core::Interface::vtable(self).SetRedTable)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(tablevalues.as_ptr()), tablevalues.len() as _).ok() } pub unsafe fn SetGreenTable(&self, tablevalues: &[f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetGreenTable)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(tablevalues)), tablevalues.len() as _).ok() + (::windows::core::Interface::vtable(self).SetGreenTable)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(tablevalues.as_ptr()), tablevalues.len() as _).ok() } pub unsafe fn SetBlueTable(&self, tablevalues: &[f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetBlueTable)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(tablevalues)), tablevalues.len() as _).ok() + (::windows::core::Interface::vtable(self).SetBlueTable)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(tablevalues.as_ptr()), tablevalues.len() as _).ok() } pub unsafe fn SetAlphaTable(&self, tablevalues: &[f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetAlphaTable)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(tablevalues)), tablevalues.len() as _).ok() + (::windows::core::Interface::vtable(self).SetAlphaTable)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(tablevalues.as_ptr()), tablevalues.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5194,8 +5194,8 @@ impl IDCompositionVirtualSurface { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn Trim(&self, rectangles: &[super::super::Foundation::RECT]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Trim)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(rectangles)), rectangles.len() as _).ok() + pub unsafe fn Trim(&self, rectangles: ::core::option::Option<&[super::super::Foundation::RECT]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Trim)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rectangles.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rectangles.as_deref().map_or(0, |slice| slice.len() as _)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/DirectDraw/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/DirectDraw/mod.rs index 298f6ae566..d95c76c034 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/DirectDraw/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/DirectDraw/mod.rs @@ -14244,7 +14244,7 @@ impl IDDVideoPortContainer { pub unsafe fn EnumVideoPorts(&self, param0: u32, param1: &mut DDVIDEOPORTCAPS, param2: *mut ::core::ffi::c_void, param3: LPDDENUMVIDEOCALLBACK) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).EnumVideoPorts)(::windows::core::Interface::as_raw(self), param0, ::core::mem::transmute(param1), ::core::mem::transmute(param2), ::core::mem::transmute(param3)).ok() } - pub unsafe fn GetVideoPortConnectInfo(&self, param0: u32, pcinfo: &mut u32, param2: ::core::option::Option<&mut DDVIDEOPORTCONNECT>) -> ::windows::core::Result<()> { + pub unsafe fn GetVideoPortConnectInfo(&self, param0: u32, pcinfo: &mut u32, param2: *mut DDVIDEOPORTCONNECT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetVideoPortConnectInfo)(::windows::core::Interface::as_raw(self), param0, ::core::mem::transmute(pcinfo), ::core::mem::transmute(param2)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -16837,10 +16837,10 @@ impl IDirectDrawVideoPort { pub unsafe fn GetColorControls(&self, param0: &mut DDCOLORCONTROL) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetColorControls)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(param0)).ok() } - pub unsafe fn GetInputFormats(&self, lpnumformats: &mut u32, param1: ::core::option::Option<&mut DDPIXELFORMAT>, param2: u32) -> ::windows::core::Result<()> { + pub unsafe fn GetInputFormats(&self, lpnumformats: &mut u32, param1: *mut DDPIXELFORMAT, param2: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetInputFormats)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpnumformats), ::core::mem::transmute(param1), param2).ok() } - pub unsafe fn GetOutputFormats(&self, param0: &mut DDPIXELFORMAT, lpnumformats: &mut u32, param2: ::core::option::Option<&mut DDPIXELFORMAT>, param3: u32) -> ::windows::core::Result<()> { + pub unsafe fn GetOutputFormats(&self, param0: &mut DDPIXELFORMAT, lpnumformats: &mut u32, param2: *mut DDPIXELFORMAT, param3: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetOutputFormats)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(param0), ::core::mem::transmute(lpnumformats), ::core::mem::transmute(param2), param3).ok() } pub unsafe fn GetFieldPolarity(&self, param0: &mut i32) -> ::windows::core::Result<()> { diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/DirectManipulation/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/DirectManipulation/mod.rs index 8c980c1ba6..72ec0db0c1 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/DirectManipulation/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/DirectManipulation/mod.rs @@ -764,13 +764,13 @@ impl IDirectManipulationContent { (::windows::core::Interface::vtable(self).SetTag)(::windows::core::Interface::as_raw(self), object.into().abi(), id).ok() } pub unsafe fn GetOutputTransform(&self, matrix: &mut [f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOutputTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(matrix)), matrix.len() as _).ok() + (::windows::core::Interface::vtable(self).GetOutputTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(matrix.as_ptr()), matrix.len() as _).ok() } pub unsafe fn GetContentTransform(&self, matrix: &mut [f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetContentTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(matrix)), matrix.len() as _).ok() + (::windows::core::Interface::vtable(self).GetContentTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(matrix.as_ptr()), matrix.len() as _).ok() } pub unsafe fn SyncContentTransform(&self, matrix: &[f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SyncContentTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(matrix)), matrix.len() as _).ok() + (::windows::core::Interface::vtable(self).SyncContentTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(matrix.as_ptr()), matrix.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1494,8 +1494,8 @@ impl IDirectManipulationPrimaryContent { pub unsafe fn SetSnapInterval(&self, motion: DIRECTMANIPULATION_MOTION_TYPES, interval: f32, offset: f32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetSnapInterval)(::windows::core::Interface::as_raw(self), motion, interval, offset).ok() } - pub unsafe fn SetSnapPoints(&self, motion: DIRECTMANIPULATION_MOTION_TYPES, points: &[f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSnapPoints)(::windows::core::Interface::as_raw(self), motion, ::core::mem::transmute(::windows::core::as_ptr_or_null(points)), points.len() as _).ok() + pub unsafe fn SetSnapPoints(&self, motion: DIRECTMANIPULATION_MOTION_TYPES, points: ::core::option::Option<&[f32]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetSnapPoints)(::windows::core::Interface::as_raw(self), motion, ::core::mem::transmute(points.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), points.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn SetSnapType(&self, motion: DIRECTMANIPULATION_MOTION_TYPES, r#type: DIRECTMANIPULATION_SNAPPOINT_TYPE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetSnapType)(::windows::core::Interface::as_raw(self), motion, r#type).ok() @@ -1513,7 +1513,7 @@ impl IDirectManipulationPrimaryContent { (::windows::core::Interface::vtable(self).SetVerticalAlignment)(::windows::core::Interface::as_raw(self), alignment).ok() } pub unsafe fn GetInertiaEndTransform(&self, matrix: &mut [f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetInertiaEndTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(matrix)), matrix.len() as _).ok() + (::windows::core::Interface::vtable(self).GetInertiaEndTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(matrix.as_ptr()), matrix.len() as _).ok() } pub unsafe fn GetCenterPoint(&self, centerx: &mut f32, centery: &mut f32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetCenterPoint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(centerx), ::core::mem::transmute(centery)).ok() @@ -1742,10 +1742,10 @@ impl IDirectManipulationViewport { (::windows::core::Interface::vtable(self).ZoomToRect)(::windows::core::Interface::as_raw(self), left, top, right, bottom, animate.into()).ok() } pub unsafe fn SetViewportTransform(&self, matrix: &[f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetViewportTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(matrix)), matrix.len() as _).ok() + (::windows::core::Interface::vtable(self).SetViewportTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(matrix.as_ptr()), matrix.len() as _).ok() } pub unsafe fn SyncDisplayTransform(&self, matrix: &[f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SyncDisplayTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(matrix)), matrix.len() as _).ok() + (::windows::core::Interface::vtable(self).SyncDisplayTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(matrix.as_ptr()), matrix.len() as _).ok() } pub unsafe fn GetPrimaryContent(&self) -> ::windows::core::Result where @@ -1945,10 +1945,10 @@ impl IDirectManipulationViewport2 { (::windows::core::Interface::vtable(self).base__.ZoomToRect)(::windows::core::Interface::as_raw(self), left, top, right, bottom, animate.into()).ok() } pub unsafe fn SetViewportTransform(&self, matrix: &[f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetViewportTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(matrix)), matrix.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetViewportTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(matrix.as_ptr()), matrix.len() as _).ok() } pub unsafe fn SyncDisplayTransform(&self, matrix: &[f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SyncDisplayTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(matrix)), matrix.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SyncDisplayTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(matrix.as_ptr()), matrix.len() as _).ok() } pub unsafe fn GetPrimaryContent(&self) -> ::windows::core::Result where diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/DirectWrite/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/DirectWrite/mod.rs index 462974fb81..419da50395 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/DirectWrite/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/DirectWrite/mod.rs @@ -4841,12 +4841,12 @@ impl IDWriteFactory { { (::windows::core::Interface::vtable(self).GetSystemFontCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontcollection), checkforupdates.into()).ok() } - pub unsafe fn CreateCustomFontCollection<'a, P0>(&self, collectionloader: P0, collectionkey: *const ::core::ffi::c_void, collectionkeysize: u32) -> ::windows::core::Result + pub unsafe fn CreateCustomFontCollection<'a, P0>(&self, collectionloader: P0, collectionkey: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontCollectionLoader>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateCustomFontCollection)(::windows::core::Interface::as_raw(self), collectionloader.into().abi(), ::core::mem::transmute(collectionkey), collectionkeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateCustomFontCollection)(::windows::core::Interface::as_raw(self), collectionloader.into().abi(), ::core::mem::transmute(collectionkey.as_ptr()), collectionkey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn RegisterFontCollectionLoader<'a, P0>(&self, fontcollectionloader: P0) -> ::windows::core::Result<()> where @@ -4869,16 +4869,16 @@ impl IDWriteFactory { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).CreateFontFileReference)(::windows::core::Interface::as_raw(self), filepath.into(), ::core::mem::transmute(lastwritetime), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateCustomFontFileReference<'a, P0>(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: P0) -> ::windows::core::Result + pub unsafe fn CreateCustomFontFileReference<'a, P0>(&self, fontfilereferencekey: &[u8], fontfileloader: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFileLoader>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateCustomFontFileReference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, fontfileloader.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateCustomFontFileReference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, fontfileloader.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, fontfiles: &[::core::option::Option], faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateFontFace)(::windows::core::Interface::as_raw(self), fontfacetype, fontfiles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(fontfiles)), faceindex, fontfacesimulationflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateFontFace)(::windows::core::Interface::as_raw(self), fontfacetype, fontfiles.len() as _, ::core::mem::transmute(fontfiles.as_ptr()), faceindex, fontfacesimulationflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateRenderingParams(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -4931,7 +4931,7 @@ impl IDWriteFactory { P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteTextFormat>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), maxwidth, maxheight, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), maxwidth, maxheight, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4941,7 +4941,7 @@ impl IDWriteFactory { P1: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateGdiCompatibleTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), layoutwidth, layoutheight, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateGdiCompatibleTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), layoutwidth, layoutheight, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateEllipsisTrimmingSign<'a, P0>(&self, textformat: P0) -> ::windows::core::Result where @@ -5062,12 +5062,12 @@ impl IDWriteFactory1 { { (::windows::core::Interface::vtable(self).base__.GetSystemFontCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontcollection), checkforupdates.into()).ok() } - pub unsafe fn CreateCustomFontCollection<'a, P0>(&self, collectionloader: P0, collectionkey: *const ::core::ffi::c_void, collectionkeysize: u32) -> ::windows::core::Result + pub unsafe fn CreateCustomFontCollection<'a, P0>(&self, collectionloader: P0, collectionkey: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontCollectionLoader>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateCustomFontCollection)(::windows::core::Interface::as_raw(self), collectionloader.into().abi(), ::core::mem::transmute(collectionkey), collectionkeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateCustomFontCollection)(::windows::core::Interface::as_raw(self), collectionloader.into().abi(), ::core::mem::transmute(collectionkey.as_ptr()), collectionkey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn RegisterFontCollectionLoader<'a, P0>(&self, fontcollectionloader: P0) -> ::windows::core::Result<()> where @@ -5090,16 +5090,16 @@ impl IDWriteFactory1 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.CreateFontFileReference)(::windows::core::Interface::as_raw(self), filepath.into(), ::core::mem::transmute(lastwritetime), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateCustomFontFileReference<'a, P0>(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: P0) -> ::windows::core::Result + pub unsafe fn CreateCustomFontFileReference<'a, P0>(&self, fontfilereferencekey: &[u8], fontfileloader: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFileLoader>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateCustomFontFileReference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, fontfileloader.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateCustomFontFileReference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, fontfileloader.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, fontfiles: &[::core::option::Option], faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateFontFace)(::windows::core::Interface::as_raw(self), fontfacetype, fontfiles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(fontfiles)), faceindex, fontfacesimulationflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateFontFace)(::windows::core::Interface::as_raw(self), fontfacetype, fontfiles.len() as _, ::core::mem::transmute(fontfiles.as_ptr()), faceindex, fontfacesimulationflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateRenderingParams(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -5152,7 +5152,7 @@ impl IDWriteFactory1 { P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteTextFormat>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), maxwidth, maxheight, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), maxwidth, maxheight, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5162,7 +5162,7 @@ impl IDWriteFactory1 { P1: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateGdiCompatibleTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), layoutwidth, layoutheight, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateGdiCompatibleTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), layoutwidth, layoutheight, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateEllipsisTrimmingSign<'a, P0>(&self, textformat: P0) -> ::windows::core::Result where @@ -5276,12 +5276,12 @@ impl IDWriteFactory2 { { (::windows::core::Interface::vtable(self).base__.base__.GetSystemFontCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontcollection), checkforupdates.into()).ok() } - pub unsafe fn CreateCustomFontCollection<'a, P0>(&self, collectionloader: P0, collectionkey: *const ::core::ffi::c_void, collectionkeysize: u32) -> ::windows::core::Result + pub unsafe fn CreateCustomFontCollection<'a, P0>(&self, collectionloader: P0, collectionkey: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontCollectionLoader>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateCustomFontCollection)(::windows::core::Interface::as_raw(self), collectionloader.into().abi(), ::core::mem::transmute(collectionkey), collectionkeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateCustomFontCollection)(::windows::core::Interface::as_raw(self), collectionloader.into().abi(), ::core::mem::transmute(collectionkey.as_ptr()), collectionkey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn RegisterFontCollectionLoader<'a, P0>(&self, fontcollectionloader: P0) -> ::windows::core::Result<()> where @@ -5304,16 +5304,16 @@ impl IDWriteFactory2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.CreateFontFileReference)(::windows::core::Interface::as_raw(self), filepath.into(), ::core::mem::transmute(lastwritetime), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateCustomFontFileReference<'a, P0>(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: P0) -> ::windows::core::Result + pub unsafe fn CreateCustomFontFileReference<'a, P0>(&self, fontfilereferencekey: &[u8], fontfileloader: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFileLoader>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateCustomFontFileReference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, fontfileloader.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateCustomFontFileReference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, fontfileloader.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, fontfiles: &[::core::option::Option], faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateFontFace)(::windows::core::Interface::as_raw(self), fontfacetype, fontfiles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(fontfiles)), faceindex, fontfacesimulationflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateFontFace)(::windows::core::Interface::as_raw(self), fontfacetype, fontfiles.len() as _, ::core::mem::transmute(fontfiles.as_ptr()), faceindex, fontfacesimulationflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateRenderingParams(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -5366,7 +5366,7 @@ impl IDWriteFactory2 { P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteTextFormat>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), maxwidth, maxheight, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), maxwidth, maxheight, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5376,7 +5376,7 @@ impl IDWriteFactory2 { P1: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateGdiCompatibleTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), layoutwidth, layoutheight, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateGdiCompatibleTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), layoutwidth, layoutheight, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateEllipsisTrimmingSign<'a, P0>(&self, textformat: P0) -> ::windows::core::Result where @@ -5535,12 +5535,12 @@ impl IDWriteFactory3 { { (::windows::core::Interface::vtable(self).base__.base__.base__.GetSystemFontCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontcollection), checkforupdates.into()).ok() } - pub unsafe fn CreateCustomFontCollection<'a, P0>(&self, collectionloader: P0, collectionkey: *const ::core::ffi::c_void, collectionkeysize: u32) -> ::windows::core::Result + pub unsafe fn CreateCustomFontCollection<'a, P0>(&self, collectionloader: P0, collectionkey: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontCollectionLoader>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateCustomFontCollection)(::windows::core::Interface::as_raw(self), collectionloader.into().abi(), ::core::mem::transmute(collectionkey), collectionkeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateCustomFontCollection)(::windows::core::Interface::as_raw(self), collectionloader.into().abi(), ::core::mem::transmute(collectionkey.as_ptr()), collectionkey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn RegisterFontCollectionLoader<'a, P0>(&self, fontcollectionloader: P0) -> ::windows::core::Result<()> where @@ -5563,16 +5563,16 @@ impl IDWriteFactory3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.CreateFontFileReference)(::windows::core::Interface::as_raw(self), filepath.into(), ::core::mem::transmute(lastwritetime), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateCustomFontFileReference<'a, P0>(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: P0) -> ::windows::core::Result + pub unsafe fn CreateCustomFontFileReference<'a, P0>(&self, fontfilereferencekey: &[u8], fontfileloader: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFileLoader>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateCustomFontFileReference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, fontfileloader.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateCustomFontFileReference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, fontfileloader.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, fontfiles: &[::core::option::Option], faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateFontFace)(::windows::core::Interface::as_raw(self), fontfacetype, fontfiles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(fontfiles)), faceindex, fontfacesimulationflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateFontFace)(::windows::core::Interface::as_raw(self), fontfacetype, fontfiles.len() as _, ::core::mem::transmute(fontfiles.as_ptr()), faceindex, fontfacesimulationflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateRenderingParams(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -5625,7 +5625,7 @@ impl IDWriteFactory3 { P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteTextFormat>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), maxwidth, maxheight, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), maxwidth, maxheight, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5635,7 +5635,7 @@ impl IDWriteFactory3 { P1: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateGdiCompatibleTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), layoutwidth, layoutheight, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateGdiCompatibleTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), layoutwidth, layoutheight, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateEllipsisTrimmingSign<'a, P0>(&self, textformat: P0) -> ::windows::core::Result where @@ -5870,12 +5870,12 @@ impl IDWriteFactory4 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetSystemFontCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontcollection), checkforupdates.into()).ok() } - pub unsafe fn CreateCustomFontCollection<'a, P0>(&self, collectionloader: P0, collectionkey: *const ::core::ffi::c_void, collectionkeysize: u32) -> ::windows::core::Result + pub unsafe fn CreateCustomFontCollection<'a, P0>(&self, collectionloader: P0, collectionkey: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontCollectionLoader>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateCustomFontCollection)(::windows::core::Interface::as_raw(self), collectionloader.into().abi(), ::core::mem::transmute(collectionkey), collectionkeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateCustomFontCollection)(::windows::core::Interface::as_raw(self), collectionloader.into().abi(), ::core::mem::transmute(collectionkey.as_ptr()), collectionkey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn RegisterFontCollectionLoader<'a, P0>(&self, fontcollectionloader: P0) -> ::windows::core::Result<()> where @@ -5898,16 +5898,16 @@ impl IDWriteFactory4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateFontFileReference)(::windows::core::Interface::as_raw(self), filepath.into(), ::core::mem::transmute(lastwritetime), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateCustomFontFileReference<'a, P0>(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: P0) -> ::windows::core::Result + pub unsafe fn CreateCustomFontFileReference<'a, P0>(&self, fontfilereferencekey: &[u8], fontfileloader: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFileLoader>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateCustomFontFileReference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, fontfileloader.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateCustomFontFileReference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, fontfileloader.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, fontfiles: &[::core::option::Option], faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateFontFace)(::windows::core::Interface::as_raw(self), fontfacetype, fontfiles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(fontfiles)), faceindex, fontfacesimulationflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateFontFace)(::windows::core::Interface::as_raw(self), fontfacetype, fontfiles.len() as _, ::core::mem::transmute(fontfiles.as_ptr()), faceindex, fontfacesimulationflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateRenderingParams(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -5960,7 +5960,7 @@ impl IDWriteFactory4 { P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteTextFormat>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), maxwidth, maxheight, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), maxwidth, maxheight, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5970,7 +5970,7 @@ impl IDWriteFactory4 { P1: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateGdiCompatibleTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), layoutwidth, layoutheight, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateGdiCompatibleTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), layoutwidth, layoutheight, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateEllipsisTrimmingSign<'a, P0>(&self, textformat: P0) -> ::windows::core::Result where @@ -6232,12 +6232,12 @@ impl IDWriteFactory5 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetSystemFontCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontcollection), checkforupdates.into()).ok() } - pub unsafe fn CreateCustomFontCollection<'a, P0>(&self, collectionloader: P0, collectionkey: *const ::core::ffi::c_void, collectionkeysize: u32) -> ::windows::core::Result + pub unsafe fn CreateCustomFontCollection<'a, P0>(&self, collectionloader: P0, collectionkey: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontCollectionLoader>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateCustomFontCollection)(::windows::core::Interface::as_raw(self), collectionloader.into().abi(), ::core::mem::transmute(collectionkey), collectionkeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateCustomFontCollection)(::windows::core::Interface::as_raw(self), collectionloader.into().abi(), ::core::mem::transmute(collectionkey.as_ptr()), collectionkey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn RegisterFontCollectionLoader<'a, P0>(&self, fontcollectionloader: P0) -> ::windows::core::Result<()> where @@ -6260,16 +6260,16 @@ impl IDWriteFactory5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateFontFileReference)(::windows::core::Interface::as_raw(self), filepath.into(), ::core::mem::transmute(lastwritetime), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateCustomFontFileReference<'a, P0>(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: P0) -> ::windows::core::Result + pub unsafe fn CreateCustomFontFileReference<'a, P0>(&self, fontfilereferencekey: &[u8], fontfileloader: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFileLoader>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateCustomFontFileReference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, fontfileloader.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateCustomFontFileReference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, fontfileloader.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, fontfiles: &[::core::option::Option], faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateFontFace)(::windows::core::Interface::as_raw(self), fontfacetype, fontfiles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(fontfiles)), faceindex, fontfacesimulationflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateFontFace)(::windows::core::Interface::as_raw(self), fontfacetype, fontfiles.len() as _, ::core::mem::transmute(fontfiles.as_ptr()), faceindex, fontfacesimulationflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateRenderingParams(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -6322,7 +6322,7 @@ impl IDWriteFactory5 { P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteTextFormat>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), maxwidth, maxheight, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), maxwidth, maxheight, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6332,7 +6332,7 @@ impl IDWriteFactory5 { P1: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateGdiCompatibleTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), layoutwidth, layoutheight, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateGdiCompatibleTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), layoutwidth, layoutheight, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateEllipsisTrimmingSign<'a, P0>(&self, textformat: P0) -> ::windows::core::Result where @@ -6485,12 +6485,12 @@ impl IDWriteFactory5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).CreateHttpFontFileLoader)(::windows::core::Interface::as_raw(self), referrerurl.into(), extraheaders.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn AnalyzeContainerType(&self, filedata: *const ::core::ffi::c_void, filedatasize: u32) -> DWRITE_CONTAINER_TYPE { - (::windows::core::Interface::vtable(self).AnalyzeContainerType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(filedata), filedatasize) + pub unsafe fn AnalyzeContainerType(&self, filedata: &[u8]) -> DWRITE_CONTAINER_TYPE { + (::windows::core::Interface::vtable(self).AnalyzeContainerType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(filedata.as_ptr()), filedata.len() as _) } - pub unsafe fn UnpackFontFile(&self, containertype: DWRITE_CONTAINER_TYPE, filedata: *const ::core::ffi::c_void, filedatasize: u32) -> ::windows::core::Result { + pub unsafe fn UnpackFontFile(&self, containertype: DWRITE_CONTAINER_TYPE, filedata: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).UnpackFontFile)(::windows::core::Interface::as_raw(self), containertype, ::core::mem::transmute(filedata), filedatasize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).UnpackFontFile)(::windows::core::Interface::as_raw(self), containertype, ::core::mem::transmute(filedata.as_ptr()), filedata.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -6625,12 +6625,12 @@ impl IDWriteFactory6 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetSystemFontCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontcollection), checkforupdates.into()).ok() } - pub unsafe fn CreateCustomFontCollection<'a, P0>(&self, collectionloader: P0, collectionkey: *const ::core::ffi::c_void, collectionkeysize: u32) -> ::windows::core::Result + pub unsafe fn CreateCustomFontCollection<'a, P0>(&self, collectionloader: P0, collectionkey: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontCollectionLoader>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateCustomFontCollection)(::windows::core::Interface::as_raw(self), collectionloader.into().abi(), ::core::mem::transmute(collectionkey), collectionkeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateCustomFontCollection)(::windows::core::Interface::as_raw(self), collectionloader.into().abi(), ::core::mem::transmute(collectionkey.as_ptr()), collectionkey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn RegisterFontCollectionLoader<'a, P0>(&self, fontcollectionloader: P0) -> ::windows::core::Result<()> where @@ -6653,16 +6653,16 @@ impl IDWriteFactory6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateFontFileReference)(::windows::core::Interface::as_raw(self), filepath.into(), ::core::mem::transmute(lastwritetime), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateCustomFontFileReference<'a, P0>(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: P0) -> ::windows::core::Result + pub unsafe fn CreateCustomFontFileReference<'a, P0>(&self, fontfilereferencekey: &[u8], fontfileloader: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFileLoader>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateCustomFontFileReference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, fontfileloader.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateCustomFontFileReference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, fontfileloader.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, fontfiles: &[::core::option::Option], faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateFontFace)(::windows::core::Interface::as_raw(self), fontfacetype, fontfiles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(fontfiles)), faceindex, fontfacesimulationflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateFontFace)(::windows::core::Interface::as_raw(self), fontfacetype, fontfiles.len() as _, ::core::mem::transmute(fontfiles.as_ptr()), faceindex, fontfacesimulationflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateRenderingParams(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -6715,7 +6715,7 @@ impl IDWriteFactory6 { P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteTextFormat>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), maxwidth, maxheight, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), maxwidth, maxheight, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6725,7 +6725,7 @@ impl IDWriteFactory6 { P1: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateGdiCompatibleTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), layoutwidth, layoutheight, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateGdiCompatibleTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), layoutwidth, layoutheight, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateEllipsisTrimmingSign<'a, P0>(&self, textformat: P0) -> ::windows::core::Result where @@ -6878,19 +6878,19 @@ impl IDWriteFactory6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.CreateHttpFontFileLoader)(::windows::core::Interface::as_raw(self), referrerurl.into(), extraheaders.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn AnalyzeContainerType(&self, filedata: *const ::core::ffi::c_void, filedatasize: u32) -> DWRITE_CONTAINER_TYPE { - (::windows::core::Interface::vtable(self).base__.AnalyzeContainerType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(filedata), filedatasize) + pub unsafe fn AnalyzeContainerType(&self, filedata: &[u8]) -> DWRITE_CONTAINER_TYPE { + (::windows::core::Interface::vtable(self).base__.AnalyzeContainerType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(filedata.as_ptr()), filedata.len() as _) } - pub unsafe fn UnpackFontFile(&self, containertype: DWRITE_CONTAINER_TYPE, filedata: *const ::core::ffi::c_void, filedatasize: u32) -> ::windows::core::Result { + pub unsafe fn UnpackFontFile(&self, containertype: DWRITE_CONTAINER_TYPE, filedata: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.UnpackFontFile)(::windows::core::Interface::as_raw(self), containertype, ::core::mem::transmute(filedata), filedatasize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.UnpackFontFile)(::windows::core::Interface::as_raw(self), containertype, ::core::mem::transmute(filedata.as_ptr()), filedata.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateFontFaceReference3<'a, P0>(&self, fontfile: P0, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: &[DWRITE_FONT_AXIS_VALUE]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFile>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateFontFaceReference3)(::windows::core::Interface::as_raw(self), fontfile.into().abi(), faceindex, fontsimulations, ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateFontFaceReference3)(::windows::core::Interface::as_raw(self), fontfile.into().abi(), faceindex, fontsimulations, ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateFontResource<'a, P0>(&self, fontfile: P0, faceindex: u32) -> ::windows::core::Result where @@ -6935,7 +6935,7 @@ impl IDWriteFactory6 { P2: ::std::convert::Into<::windows::core::PCWSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateTextFormat2)(::windows::core::Interface::as_raw(self), fontfamilyname.into(), fontcollection.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _, fontsize, localename.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateTextFormat2)(::windows::core::Interface::as_raw(self), fontfamilyname.into(), fontcollection.into().abi(), ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _, fontsize, localename.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -7093,12 +7093,12 @@ impl IDWriteFactory7 { { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetSystemFontCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontcollection), checkforupdates.into()).ok() } - pub unsafe fn CreateCustomFontCollection<'a, P0>(&self, collectionloader: P0, collectionkey: *const ::core::ffi::c_void, collectionkeysize: u32) -> ::windows::core::Result + pub unsafe fn CreateCustomFontCollection<'a, P0>(&self, collectionloader: P0, collectionkey: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontCollectionLoader>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateCustomFontCollection)(::windows::core::Interface::as_raw(self), collectionloader.into().abi(), ::core::mem::transmute(collectionkey), collectionkeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateCustomFontCollection)(::windows::core::Interface::as_raw(self), collectionloader.into().abi(), ::core::mem::transmute(collectionkey.as_ptr()), collectionkey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn RegisterFontCollectionLoader<'a, P0>(&self, fontcollectionloader: P0) -> ::windows::core::Result<()> where @@ -7121,16 +7121,16 @@ impl IDWriteFactory7 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateFontFileReference)(::windows::core::Interface::as_raw(self), filepath.into(), ::core::mem::transmute(lastwritetime), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateCustomFontFileReference<'a, P0>(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32, fontfileloader: P0) -> ::windows::core::Result + pub unsafe fn CreateCustomFontFileReference<'a, P0>(&self, fontfilereferencekey: &[u8], fontfileloader: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFileLoader>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateCustomFontFileReference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, fontfileloader.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateCustomFontFileReference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, fontfileloader.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateFontFace(&self, fontfacetype: DWRITE_FONT_FACE_TYPE, fontfiles: &[::core::option::Option], faceindex: u32, fontfacesimulationflags: DWRITE_FONT_SIMULATIONS) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateFontFace)(::windows::core::Interface::as_raw(self), fontfacetype, fontfiles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(fontfiles)), faceindex, fontfacesimulationflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateFontFace)(::windows::core::Interface::as_raw(self), fontfacetype, fontfiles.len() as _, ::core::mem::transmute(fontfiles.as_ptr()), faceindex, fontfacesimulationflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateRenderingParams(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -7183,7 +7183,7 @@ impl IDWriteFactory7 { P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteTextFormat>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), maxwidth, maxheight, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), maxwidth, maxheight, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7193,7 +7193,7 @@ impl IDWriteFactory7 { P1: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateGdiCompatibleTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(string)), string.len() as _, textformat.into().abi(), layoutwidth, layoutheight, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateGdiCompatibleTextLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(string.as_ptr()), string.len() as _, textformat.into().abi(), layoutwidth, layoutheight, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateEllipsisTrimmingSign<'a, P0>(&self, textformat: P0) -> ::windows::core::Result where @@ -7346,19 +7346,19 @@ impl IDWriteFactory7 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.CreateHttpFontFileLoader)(::windows::core::Interface::as_raw(self), referrerurl.into(), extraheaders.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn AnalyzeContainerType(&self, filedata: *const ::core::ffi::c_void, filedatasize: u32) -> DWRITE_CONTAINER_TYPE { - (::windows::core::Interface::vtable(self).base__.base__.AnalyzeContainerType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(filedata), filedatasize) + pub unsafe fn AnalyzeContainerType(&self, filedata: &[u8]) -> DWRITE_CONTAINER_TYPE { + (::windows::core::Interface::vtable(self).base__.base__.AnalyzeContainerType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(filedata.as_ptr()), filedata.len() as _) } - pub unsafe fn UnpackFontFile(&self, containertype: DWRITE_CONTAINER_TYPE, filedata: *const ::core::ffi::c_void, filedatasize: u32) -> ::windows::core::Result { + pub unsafe fn UnpackFontFile(&self, containertype: DWRITE_CONTAINER_TYPE, filedata: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.UnpackFontFile)(::windows::core::Interface::as_raw(self), containertype, ::core::mem::transmute(filedata), filedatasize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.UnpackFontFile)(::windows::core::Interface::as_raw(self), containertype, ::core::mem::transmute(filedata.as_ptr()), filedata.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateFontFaceReference3<'a, P0>(&self, fontfile: P0, faceindex: u32, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: &[DWRITE_FONT_AXIS_VALUE]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFile>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateFontFaceReference3)(::windows::core::Interface::as_raw(self), fontfile.into().abi(), faceindex, fontsimulations, ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateFontFaceReference3)(::windows::core::Interface::as_raw(self), fontfile.into().abi(), faceindex, fontsimulations, ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateFontResource<'a, P0>(&self, fontfile: P0, faceindex: u32) -> ::windows::core::Result where @@ -7403,7 +7403,7 @@ impl IDWriteFactory7 { P2: ::std::convert::Into<::windows::core::PCWSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateTextFormat2)(::windows::core::Interface::as_raw(self), fontfamilyname.into(), fontcollection.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _, fontsize, localename.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateTextFormat2)(::windows::core::Interface::as_raw(self), fontfamilyname.into(), fontcollection.into().abi(), ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _, fontsize, localename.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7740,8 +7740,8 @@ impl IDWriteFont1 { pub unsafe fn GetPanose(&self, panose: &mut DWRITE_PANOSE) { (::windows::core::Interface::vtable(self).GetPanose)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(panose)) } - pub unsafe fn GetUnicodeRanges(&self, unicoderanges: &mut [DWRITE_UNICODE_RANGE], actualrangecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(unicoderanges)), ::core::mem::transmute(actualrangecount)).ok() + pub unsafe fn GetUnicodeRanges(&self, unicoderanges: ::core::option::Option<&mut [DWRITE_UNICODE_RANGE]>, actualrangecount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(unicoderanges.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(actualrangecount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7869,8 +7869,8 @@ impl IDWriteFont2 { pub unsafe fn GetPanose(&self, panose: &mut DWRITE_PANOSE) { (::windows::core::Interface::vtable(self).base__.GetPanose)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(panose)) } - pub unsafe fn GetUnicodeRanges(&self, unicoderanges: &mut [DWRITE_UNICODE_RANGE], actualrangecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(unicoderanges)), ::core::mem::transmute(actualrangecount)).ok() + pub unsafe fn GetUnicodeRanges(&self, unicoderanges: ::core::option::Option<&mut [DWRITE_UNICODE_RANGE]>, actualrangecount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(unicoderanges.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(actualrangecount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8012,8 +8012,8 @@ impl IDWriteFont3 { pub unsafe fn GetPanose(&self, panose: &mut DWRITE_PANOSE) { (::windows::core::Interface::vtable(self).base__.base__.GetPanose)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(panose)) } - pub unsafe fn GetUnicodeRanges(&self, unicoderanges: &mut [DWRITE_UNICODE_RANGE], actualrangecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(unicoderanges)), ::core::mem::transmute(actualrangecount)).ok() + pub unsafe fn GetUnicodeRanges(&self, unicoderanges: ::core::option::Option<&mut [DWRITE_UNICODE_RANGE]>, actualrangecount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(unicoderanges.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(actualrangecount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8355,7 +8355,7 @@ impl IDWriteFontCollection2 { P0: ::std::convert::Into<::windows::core::PCWSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetMatchingFonts)(::windows::core::Interface::as_raw(self), familyname.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetMatchingFonts)(::windows::core::Interface::as_raw(self), familyname.into(), ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetFontFamilyModel(&self) -> DWRITE_FONT_FAMILY_MODEL { (::windows::core::Interface::vtable(self).GetFontFamilyModel)(::windows::core::Interface::as_raw(self)) @@ -8482,7 +8482,7 @@ impl IDWriteFontCollection3 { P0: ::std::convert::Into<::windows::core::PCWSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.GetMatchingFonts)(::windows::core::Interface::as_raw(self), familyname.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.GetMatchingFonts)(::windows::core::Interface::as_raw(self), familyname.into(), ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetFontFamilyModel(&self) -> DWRITE_FONT_FAMILY_MODEL { (::windows::core::Interface::vtable(self).base__.GetFontFamilyModel)(::windows::core::Interface::as_raw(self)) @@ -8590,12 +8590,12 @@ pub struct IDWriteFontCollection3_Vtbl { #[repr(transparent)] pub struct IDWriteFontCollectionLoader(::windows::core::IUnknown); impl IDWriteFontCollectionLoader { - pub unsafe fn CreateEnumeratorFromKey<'a, P0>(&self, factory: P0, collectionkey: *const ::core::ffi::c_void, collectionkeysize: u32) -> ::windows::core::Result + pub unsafe fn CreateEnumeratorFromKey<'a, P0>(&self, factory: P0, collectionkey: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFactory>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateEnumeratorFromKey)(::windows::core::Interface::as_raw(self), factory.into().abi(), ::core::mem::transmute(collectionkey), collectionkeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateEnumeratorFromKey)(::windows::core::Interface::as_raw(self), factory.into().abi(), ::core::mem::transmute(collectionkey.as_ptr()), collectionkey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -8780,7 +8780,7 @@ impl IDWriteFontFace { pub unsafe fn GetType(&self) -> DWRITE_FONT_FACE_TYPE { (::windows::core::Interface::vtable(self).GetType)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn GetFiles(&self, numberoffiles: &mut u32, fontfiles: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { + pub unsafe fn GetFiles(&self, numberoffiles: &mut u32, fontfiles: *mut ::core::option::Option) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetFiles)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numberoffiles), ::core::mem::transmute(fontfiles)).ok() } pub unsafe fn GetIndex(&self) -> u32 { @@ -8802,13 +8802,13 @@ impl IDWriteFontFace { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetDesignGlyphMetrics<'a, P0>(&self, glyphindices: &u16, glyphcount: u32, glyphmetrics: &mut DWRITE_GLYPH_METRICS, issideways: P0) -> ::windows::core::Result<()> + pub unsafe fn GetDesignGlyphMetrics<'a, P0>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).GetDesignGlyphMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphmetrics), issideways.into()).ok() } - pub unsafe fn GetGlyphIndices(&self, codepoints: &u32, codepointcount: u32, glyphindices: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetGlyphIndices)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(codepoints), ::core::mem::transmute(codepointcount), ::core::mem::transmute(glyphindices)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -8821,7 +8821,7 @@ impl IDWriteFontFace { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D_Common"))] - pub unsafe fn GetGlyphRunOutline<'a, P0, P1, P2>(&self, emsize: f32, glyphindices: &u16, glyphadvances: ::core::option::Option<&f32>, glyphoffsets: ::core::option::Option<&DWRITE_GLYPH_OFFSET>, glyphcount: u32, issideways: P0, isrighttoleft: P1, geometrysink: P2) -> ::windows::core::Result<()> + pub unsafe fn GetGlyphRunOutline<'a, P0, P1, P2>(&self, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: P0, isrighttoleft: P1, geometrysink: P2) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8842,7 +8842,7 @@ impl IDWriteFontFace { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, glyphindices: &u16, glyphcount: u32, glyphmetrics: &mut DWRITE_GLYPH_METRICS, issideways: P1) -> ::windows::core::Result<()> + pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: P1) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8927,7 +8927,7 @@ impl IDWriteFontFace1 { pub unsafe fn GetType(&self) -> DWRITE_FONT_FACE_TYPE { (::windows::core::Interface::vtable(self).base__.GetType)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn GetFiles(&self, numberoffiles: &mut u32, fontfiles: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { + pub unsafe fn GetFiles(&self, numberoffiles: &mut u32, fontfiles: *mut ::core::option::Option) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetFiles)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numberoffiles), ::core::mem::transmute(fontfiles)).ok() } pub unsafe fn GetIndex(&self) -> u32 { @@ -8949,13 +8949,13 @@ impl IDWriteFontFace1 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetDesignGlyphMetrics<'a, P0>(&self, glyphindices: &u16, glyphcount: u32, glyphmetrics: &mut DWRITE_GLYPH_METRICS, issideways: P0) -> ::windows::core::Result<()> + pub unsafe fn GetDesignGlyphMetrics<'a, P0>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.GetDesignGlyphMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphmetrics), issideways.into()).ok() } - pub unsafe fn GetGlyphIndices(&self, codepoints: &u32, codepointcount: u32, glyphindices: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetGlyphIndices)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(codepoints), ::core::mem::transmute(codepointcount), ::core::mem::transmute(glyphindices)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -8968,7 +8968,7 @@ impl IDWriteFontFace1 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D_Common"))] - pub unsafe fn GetGlyphRunOutline<'a, P0, P1, P2>(&self, emsize: f32, glyphindices: &u16, glyphadvances: ::core::option::Option<&f32>, glyphoffsets: ::core::option::Option<&DWRITE_GLYPH_OFFSET>, glyphcount: u32, issideways: P0, isrighttoleft: P1, geometrysink: P2) -> ::windows::core::Result<()> + pub unsafe fn GetGlyphRunOutline<'a, P0, P1, P2>(&self, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: P0, isrighttoleft: P1, geometrysink: P2) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8989,7 +8989,7 @@ impl IDWriteFontFace1 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, glyphindices: &u16, glyphcount: u32, glyphmetrics: &mut DWRITE_GLYPH_METRICS, issideways: P1) -> ::windows::core::Result<()> + pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: P1) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -9010,8 +9010,8 @@ impl IDWriteFontFace1 { pub unsafe fn GetCaretMetrics(&self, caretmetrics: &mut DWRITE_CARET_METRICS) { (::windows::core::Interface::vtable(self).GetCaretMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(caretmetrics)) } - pub unsafe fn GetUnicodeRanges(&self, unicoderanges: &mut [DWRITE_UNICODE_RANGE], actualrangecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(unicoderanges)), ::core::mem::transmute(actualrangecount)).ok() + pub unsafe fn GetUnicodeRanges(&self, unicoderanges: ::core::option::Option<&mut [DWRITE_UNICODE_RANGE]>, actualrangecount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(unicoderanges.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(actualrangecount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9020,7 +9020,7 @@ impl IDWriteFontFace1 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetDesignGlyphAdvances<'a, P0>(&self, glyphcount: u32, glyphindices: &u16, glyphadvances: &mut i32, issideways: P0) -> ::windows::core::Result<()> + pub unsafe fn GetDesignGlyphAdvances<'a, P0>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -9028,14 +9028,14 @@ impl IDWriteFontFace1 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, issideways: P1, glyphcount: u32, glyphindices: &u16, glyphadvances: &mut i32) -> ::windows::core::Result<()> + pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, issideways: P1, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, { (::windows::core::Interface::vtable(self).GetGdiCompatibleGlyphAdvances)(::windows::core::Interface::as_raw(self), emsize, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), issideways.into(), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphadvances)).ok() } - pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: &u16, glyphadvanceadjustments: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetKerningPairAdjustments)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphadvanceadjustments)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -9052,7 +9052,7 @@ impl IDWriteFontFace1 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetRecommendedRenderingMode2)(::windows::core::Interface::as_raw(self), fontemsize, dpix, dpiy, ::core::mem::transmute(transform), issideways.into(), outlinethreshold, measuringmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: &u16, verticalglyphindices: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetVerticalGlyphVariants)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphcount), ::core::mem::transmute(nominalglyphindices), ::core::mem::transmute(verticalglyphindices)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -9159,7 +9159,7 @@ impl IDWriteFontFace2 { pub unsafe fn GetType(&self) -> DWRITE_FONT_FACE_TYPE { (::windows::core::Interface::vtable(self).base__.base__.GetType)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn GetFiles(&self, numberoffiles: &mut u32, fontfiles: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { + pub unsafe fn GetFiles(&self, numberoffiles: &mut u32, fontfiles: *mut ::core::option::Option) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetFiles)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numberoffiles), ::core::mem::transmute(fontfiles)).ok() } pub unsafe fn GetIndex(&self) -> u32 { @@ -9181,13 +9181,13 @@ impl IDWriteFontFace2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetDesignGlyphMetrics<'a, P0>(&self, glyphindices: &u16, glyphcount: u32, glyphmetrics: &mut DWRITE_GLYPH_METRICS, issideways: P0) -> ::windows::core::Result<()> + pub unsafe fn GetDesignGlyphMetrics<'a, P0>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.base__.GetDesignGlyphMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphmetrics), issideways.into()).ok() } - pub unsafe fn GetGlyphIndices(&self, codepoints: &u32, codepointcount: u32, glyphindices: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetGlyphIndices)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(codepoints), ::core::mem::transmute(codepointcount), ::core::mem::transmute(glyphindices)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -9200,7 +9200,7 @@ impl IDWriteFontFace2 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D_Common"))] - pub unsafe fn GetGlyphRunOutline<'a, P0, P1, P2>(&self, emsize: f32, glyphindices: &u16, glyphadvances: ::core::option::Option<&f32>, glyphoffsets: ::core::option::Option<&DWRITE_GLYPH_OFFSET>, glyphcount: u32, issideways: P0, isrighttoleft: P1, geometrysink: P2) -> ::windows::core::Result<()> + pub unsafe fn GetGlyphRunOutline<'a, P0, P1, P2>(&self, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: P0, isrighttoleft: P1, geometrysink: P2) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -9221,7 +9221,7 @@ impl IDWriteFontFace2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, glyphindices: &u16, glyphcount: u32, glyphmetrics: &mut DWRITE_GLYPH_METRICS, issideways: P1) -> ::windows::core::Result<()> + pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: P1) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -9242,8 +9242,8 @@ impl IDWriteFontFace2 { pub unsafe fn GetCaretMetrics(&self, caretmetrics: &mut DWRITE_CARET_METRICS) { (::windows::core::Interface::vtable(self).base__.GetCaretMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(caretmetrics)) } - pub unsafe fn GetUnicodeRanges(&self, unicoderanges: &mut [DWRITE_UNICODE_RANGE], actualrangecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(unicoderanges)), ::core::mem::transmute(actualrangecount)).ok() + pub unsafe fn GetUnicodeRanges(&self, unicoderanges: ::core::option::Option<&mut [DWRITE_UNICODE_RANGE]>, actualrangecount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(unicoderanges.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(actualrangecount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9252,7 +9252,7 @@ impl IDWriteFontFace2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetDesignGlyphAdvances<'a, P0>(&self, glyphcount: u32, glyphindices: &u16, glyphadvances: &mut i32, issideways: P0) -> ::windows::core::Result<()> + pub unsafe fn GetDesignGlyphAdvances<'a, P0>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -9260,14 +9260,14 @@ impl IDWriteFontFace2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, issideways: P1, glyphcount: u32, glyphindices: &u16, glyphadvances: &mut i32) -> ::windows::core::Result<()> + pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, issideways: P1, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.GetGdiCompatibleGlyphAdvances)(::windows::core::Interface::as_raw(self), emsize, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), issideways.into(), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphadvances)).ok() } - pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: &u16, glyphadvanceadjustments: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetKerningPairAdjustments)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphadvanceadjustments)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -9284,7 +9284,7 @@ impl IDWriteFontFace2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetRecommendedRenderingMode2)(::windows::core::Interface::as_raw(self), fontemsize, dpix, dpiy, ::core::mem::transmute(transform), issideways.into(), outlinethreshold, measuringmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: &u16, verticalglyphindices: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetVerticalGlyphVariants)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphcount), ::core::mem::transmute(nominalglyphindices), ::core::mem::transmute(verticalglyphindices)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -9304,7 +9304,7 @@ impl IDWriteFontFace2 { (::windows::core::Interface::vtable(self).GetPaletteEntryCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetPaletteEntries(&self, colorpaletteindex: u32, firstentryindex: u32, paletteentries: &mut [DWRITE_COLOR_F]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPaletteEntries)(::windows::core::Interface::as_raw(self), colorpaletteindex, firstentryindex, paletteentries.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(paletteentries))).ok() + (::windows::core::Interface::vtable(self).GetPaletteEntries)(::windows::core::Interface::as_raw(self), colorpaletteindex, firstentryindex, paletteentries.len() as _, ::core::mem::transmute(paletteentries.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9404,7 +9404,7 @@ impl IDWriteFontFace3 { pub unsafe fn GetType(&self) -> DWRITE_FONT_FACE_TYPE { (::windows::core::Interface::vtable(self).base__.base__.base__.GetType)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn GetFiles(&self, numberoffiles: &mut u32, fontfiles: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { + pub unsafe fn GetFiles(&self, numberoffiles: &mut u32, fontfiles: *mut ::core::option::Option) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetFiles)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numberoffiles), ::core::mem::transmute(fontfiles)).ok() } pub unsafe fn GetIndex(&self) -> u32 { @@ -9426,13 +9426,13 @@ impl IDWriteFontFace3 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetDesignGlyphMetrics<'a, P0>(&self, glyphindices: &u16, glyphcount: u32, glyphmetrics: &mut DWRITE_GLYPH_METRICS, issideways: P0) -> ::windows::core::Result<()> + pub unsafe fn GetDesignGlyphMetrics<'a, P0>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.base__.base__.GetDesignGlyphMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphmetrics), issideways.into()).ok() } - pub unsafe fn GetGlyphIndices(&self, codepoints: &u32, codepointcount: u32, glyphindices: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetGlyphIndices)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(codepoints), ::core::mem::transmute(codepointcount), ::core::mem::transmute(glyphindices)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -9445,7 +9445,7 @@ impl IDWriteFontFace3 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D_Common"))] - pub unsafe fn GetGlyphRunOutline<'a, P0, P1, P2>(&self, emsize: f32, glyphindices: &u16, glyphadvances: ::core::option::Option<&f32>, glyphoffsets: ::core::option::Option<&DWRITE_GLYPH_OFFSET>, glyphcount: u32, issideways: P0, isrighttoleft: P1, geometrysink: P2) -> ::windows::core::Result<()> + pub unsafe fn GetGlyphRunOutline<'a, P0, P1, P2>(&self, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: P0, isrighttoleft: P1, geometrysink: P2) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -9466,7 +9466,7 @@ impl IDWriteFontFace3 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, glyphindices: &u16, glyphcount: u32, glyphmetrics: &mut DWRITE_GLYPH_METRICS, issideways: P1) -> ::windows::core::Result<()> + pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: P1) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -9487,8 +9487,8 @@ impl IDWriteFontFace3 { pub unsafe fn GetCaretMetrics(&self, caretmetrics: &mut DWRITE_CARET_METRICS) { (::windows::core::Interface::vtable(self).base__.base__.GetCaretMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(caretmetrics)) } - pub unsafe fn GetUnicodeRanges(&self, unicoderanges: &mut [DWRITE_UNICODE_RANGE], actualrangecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(unicoderanges)), ::core::mem::transmute(actualrangecount)).ok() + pub unsafe fn GetUnicodeRanges(&self, unicoderanges: ::core::option::Option<&mut [DWRITE_UNICODE_RANGE]>, actualrangecount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(unicoderanges.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(actualrangecount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9497,7 +9497,7 @@ impl IDWriteFontFace3 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetDesignGlyphAdvances<'a, P0>(&self, glyphcount: u32, glyphindices: &u16, glyphadvances: &mut i32, issideways: P0) -> ::windows::core::Result<()> + pub unsafe fn GetDesignGlyphAdvances<'a, P0>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -9505,14 +9505,14 @@ impl IDWriteFontFace3 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, issideways: P1, glyphcount: u32, glyphindices: &u16, glyphadvances: &mut i32) -> ::windows::core::Result<()> + pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, issideways: P1, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.base__.GetGdiCompatibleGlyphAdvances)(::windows::core::Interface::as_raw(self), emsize, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), issideways.into(), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphadvances)).ok() } - pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: &u16, glyphadvanceadjustments: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetKerningPairAdjustments)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphadvanceadjustments)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -9529,7 +9529,7 @@ impl IDWriteFontFace3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.GetRecommendedRenderingMode2)(::windows::core::Interface::as_raw(self), fontemsize, dpix, dpiy, ::core::mem::transmute(transform), issideways.into(), outlinethreshold, measuringmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: &u16, verticalglyphindices: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetVerticalGlyphVariants)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphcount), ::core::mem::transmute(nominalglyphindices), ::core::mem::transmute(verticalglyphindices)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -9549,7 +9549,7 @@ impl IDWriteFontFace3 { (::windows::core::Interface::vtable(self).base__.GetPaletteEntryCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetPaletteEntries(&self, colorpaletteindex: u32, firstentryindex: u32, paletteentries: &mut [DWRITE_COLOR_F]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetPaletteEntries)(::windows::core::Interface::as_raw(self), colorpaletteindex, firstentryindex, paletteentries.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(paletteentries))).ok() + (::windows::core::Interface::vtable(self).base__.GetPaletteEntries)(::windows::core::Interface::as_raw(self), colorpaletteindex, firstentryindex, paletteentries.len() as _, ::core::mem::transmute(paletteentries.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9620,7 +9620,7 @@ impl IDWriteFontFace3 { P0: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).AreCharactersLocal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(characters)), characters.len() as _, enqueueifnotlocal.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).AreCharactersLocal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(characters.as_ptr()), characters.len() as _, enqueueifnotlocal.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9629,7 +9629,7 @@ impl IDWriteFontFace3 { P0: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).AreGlyphsLocal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(glyphindices)), glyphindices.len() as _, enqueueifnotlocal.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).AreGlyphsLocal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphindices.as_ptr()), glyphindices.len() as _, enqueueifnotlocal.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -9759,7 +9759,7 @@ impl IDWriteFontFace4 { pub unsafe fn GetType(&self) -> DWRITE_FONT_FACE_TYPE { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetType)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn GetFiles(&self, numberoffiles: &mut u32, fontfiles: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { + pub unsafe fn GetFiles(&self, numberoffiles: &mut u32, fontfiles: *mut ::core::option::Option) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetFiles)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numberoffiles), ::core::mem::transmute(fontfiles)).ok() } pub unsafe fn GetIndex(&self) -> u32 { @@ -9781,13 +9781,13 @@ impl IDWriteFontFace4 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetDesignGlyphMetrics<'a, P0>(&self, glyphindices: &u16, glyphcount: u32, glyphmetrics: &mut DWRITE_GLYPH_METRICS, issideways: P0) -> ::windows::core::Result<()> + pub unsafe fn GetDesignGlyphMetrics<'a, P0>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetDesignGlyphMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphmetrics), issideways.into()).ok() } - pub unsafe fn GetGlyphIndices(&self, codepoints: &u32, codepointcount: u32, glyphindices: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetGlyphIndices)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(codepoints), ::core::mem::transmute(codepointcount), ::core::mem::transmute(glyphindices)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -9800,7 +9800,7 @@ impl IDWriteFontFace4 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D_Common"))] - pub unsafe fn GetGlyphRunOutline<'a, P0, P1, P2>(&self, emsize: f32, glyphindices: &u16, glyphadvances: ::core::option::Option<&f32>, glyphoffsets: ::core::option::Option<&DWRITE_GLYPH_OFFSET>, glyphcount: u32, issideways: P0, isrighttoleft: P1, geometrysink: P2) -> ::windows::core::Result<()> + pub unsafe fn GetGlyphRunOutline<'a, P0, P1, P2>(&self, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: P0, isrighttoleft: P1, geometrysink: P2) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -9821,7 +9821,7 @@ impl IDWriteFontFace4 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, glyphindices: &u16, glyphcount: u32, glyphmetrics: &mut DWRITE_GLYPH_METRICS, issideways: P1) -> ::windows::core::Result<()> + pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: P1) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -9842,8 +9842,8 @@ impl IDWriteFontFace4 { pub unsafe fn GetCaretMetrics(&self, caretmetrics: &mut DWRITE_CARET_METRICS) { (::windows::core::Interface::vtable(self).base__.base__.base__.GetCaretMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(caretmetrics)) } - pub unsafe fn GetUnicodeRanges(&self, unicoderanges: &mut [DWRITE_UNICODE_RANGE], actualrangecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(unicoderanges)), ::core::mem::transmute(actualrangecount)).ok() + pub unsafe fn GetUnicodeRanges(&self, unicoderanges: ::core::option::Option<&mut [DWRITE_UNICODE_RANGE]>, actualrangecount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(unicoderanges.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(actualrangecount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9852,7 +9852,7 @@ impl IDWriteFontFace4 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetDesignGlyphAdvances<'a, P0>(&self, glyphcount: u32, glyphindices: &u16, glyphadvances: &mut i32, issideways: P0) -> ::windows::core::Result<()> + pub unsafe fn GetDesignGlyphAdvances<'a, P0>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -9860,14 +9860,14 @@ impl IDWriteFontFace4 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, issideways: P1, glyphcount: u32, glyphindices: &u16, glyphadvances: &mut i32) -> ::windows::core::Result<()> + pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, issideways: P1, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.base__.base__.GetGdiCompatibleGlyphAdvances)(::windows::core::Interface::as_raw(self), emsize, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), issideways.into(), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphadvances)).ok() } - pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: &u16, glyphadvanceadjustments: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetKerningPairAdjustments)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphadvanceadjustments)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -9884,7 +9884,7 @@ impl IDWriteFontFace4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.GetRecommendedRenderingMode2)(::windows::core::Interface::as_raw(self), fontemsize, dpix, dpiy, ::core::mem::transmute(transform), issideways.into(), outlinethreshold, measuringmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: &u16, verticalglyphindices: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetVerticalGlyphVariants)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphcount), ::core::mem::transmute(nominalglyphindices), ::core::mem::transmute(verticalglyphindices)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -9904,7 +9904,7 @@ impl IDWriteFontFace4 { (::windows::core::Interface::vtable(self).base__.base__.GetPaletteEntryCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetPaletteEntries(&self, colorpaletteindex: u32, firstentryindex: u32, paletteentries: &mut [DWRITE_COLOR_F]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetPaletteEntries)(::windows::core::Interface::as_raw(self), colorpaletteindex, firstentryindex, paletteentries.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(paletteentries))).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetPaletteEntries)(::windows::core::Interface::as_raw(self), colorpaletteindex, firstentryindex, paletteentries.len() as _, ::core::mem::transmute(paletteentries.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9975,7 +9975,7 @@ impl IDWriteFontFace4 { P0: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.AreCharactersLocal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(characters)), characters.len() as _, enqueueifnotlocal.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.AreCharactersLocal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(characters.as_ptr()), characters.len() as _, enqueueifnotlocal.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9984,7 +9984,7 @@ impl IDWriteFontFace4 { P0: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.AreGlyphsLocal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(glyphindices)), glyphindices.len() as _, enqueueifnotlocal.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.AreGlyphsLocal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphindices.as_ptr()), glyphindices.len() as _, enqueueifnotlocal.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetGlyphImageFormats(&self, glyphid: u16, pixelsperemfirst: u32, pixelsperemlast: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -10116,7 +10116,7 @@ impl IDWriteFontFace5 { pub unsafe fn GetType(&self) -> DWRITE_FONT_FACE_TYPE { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetType)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn GetFiles(&self, numberoffiles: &mut u32, fontfiles: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { + pub unsafe fn GetFiles(&self, numberoffiles: &mut u32, fontfiles: *mut ::core::option::Option) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetFiles)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numberoffiles), ::core::mem::transmute(fontfiles)).ok() } pub unsafe fn GetIndex(&self) -> u32 { @@ -10138,13 +10138,13 @@ impl IDWriteFontFace5 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetDesignGlyphMetrics<'a, P0>(&self, glyphindices: &u16, glyphcount: u32, glyphmetrics: &mut DWRITE_GLYPH_METRICS, issideways: P0) -> ::windows::core::Result<()> + pub unsafe fn GetDesignGlyphMetrics<'a, P0>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetDesignGlyphMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphmetrics), issideways.into()).ok() } - pub unsafe fn GetGlyphIndices(&self, codepoints: &u32, codepointcount: u32, glyphindices: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetGlyphIndices)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(codepoints), ::core::mem::transmute(codepointcount), ::core::mem::transmute(glyphindices)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -10157,7 +10157,7 @@ impl IDWriteFontFace5 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D_Common"))] - pub unsafe fn GetGlyphRunOutline<'a, P0, P1, P2>(&self, emsize: f32, glyphindices: &u16, glyphadvances: ::core::option::Option<&f32>, glyphoffsets: ::core::option::Option<&DWRITE_GLYPH_OFFSET>, glyphcount: u32, issideways: P0, isrighttoleft: P1, geometrysink: P2) -> ::windows::core::Result<()> + pub unsafe fn GetGlyphRunOutline<'a, P0, P1, P2>(&self, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: P0, isrighttoleft: P1, geometrysink: P2) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -10178,7 +10178,7 @@ impl IDWriteFontFace5 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, glyphindices: &u16, glyphcount: u32, glyphmetrics: &mut DWRITE_GLYPH_METRICS, issideways: P1) -> ::windows::core::Result<()> + pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: P1) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -10199,8 +10199,8 @@ impl IDWriteFontFace5 { pub unsafe fn GetCaretMetrics(&self, caretmetrics: &mut DWRITE_CARET_METRICS) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetCaretMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(caretmetrics)) } - pub unsafe fn GetUnicodeRanges(&self, unicoderanges: &mut [DWRITE_UNICODE_RANGE], actualrangecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(unicoderanges)), ::core::mem::transmute(actualrangecount)).ok() + pub unsafe fn GetUnicodeRanges(&self, unicoderanges: ::core::option::Option<&mut [DWRITE_UNICODE_RANGE]>, actualrangecount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(unicoderanges.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(actualrangecount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10209,7 +10209,7 @@ impl IDWriteFontFace5 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetDesignGlyphAdvances<'a, P0>(&self, glyphcount: u32, glyphindices: &u16, glyphadvances: &mut i32, issideways: P0) -> ::windows::core::Result<()> + pub unsafe fn GetDesignGlyphAdvances<'a, P0>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -10217,14 +10217,14 @@ impl IDWriteFontFace5 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, issideways: P1, glyphcount: u32, glyphindices: &u16, glyphadvances: &mut i32) -> ::windows::core::Result<()> + pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, issideways: P1, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetGdiCompatibleGlyphAdvances)(::windows::core::Interface::as_raw(self), emsize, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), issideways.into(), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphadvances)).ok() } - pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: &u16, glyphadvanceadjustments: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetKerningPairAdjustments)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphadvanceadjustments)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -10241,7 +10241,7 @@ impl IDWriteFontFace5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetRecommendedRenderingMode2)(::windows::core::Interface::as_raw(self), fontemsize, dpix, dpiy, ::core::mem::transmute(transform), issideways.into(), outlinethreshold, measuringmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: &u16, verticalglyphindices: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetVerticalGlyphVariants)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphcount), ::core::mem::transmute(nominalglyphindices), ::core::mem::transmute(verticalglyphindices)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -10261,7 +10261,7 @@ impl IDWriteFontFace5 { (::windows::core::Interface::vtable(self).base__.base__.base__.GetPaletteEntryCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetPaletteEntries(&self, colorpaletteindex: u32, firstentryindex: u32, paletteentries: &mut [DWRITE_COLOR_F]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetPaletteEntries)(::windows::core::Interface::as_raw(self), colorpaletteindex, firstentryindex, paletteentries.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(paletteentries))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.GetPaletteEntries)(::windows::core::Interface::as_raw(self), colorpaletteindex, firstentryindex, paletteentries.len() as _, ::core::mem::transmute(paletteentries.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10332,7 +10332,7 @@ impl IDWriteFontFace5 { P0: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.AreCharactersLocal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(characters)), characters.len() as _, enqueueifnotlocal.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.AreCharactersLocal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(characters.as_ptr()), characters.len() as _, enqueueifnotlocal.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10341,7 +10341,7 @@ impl IDWriteFontFace5 { P0: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.AreGlyphsLocal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(glyphindices)), glyphindices.len() as _, enqueueifnotlocal.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.AreGlyphsLocal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphindices.as_ptr()), glyphindices.len() as _, enqueueifnotlocal.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetGlyphImageFormats(&self, glyphid: u16, pixelsperemfirst: u32, pixelsperemlast: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -10362,7 +10362,7 @@ impl IDWriteFontFace5 { (::windows::core::Interface::vtable(self).GetFontAxisValueCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetFontAxisValues(&self, fontaxisvalues: &mut [DWRITE_FONT_AXIS_VALUE]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFontAxisValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _).ok() + (::windows::core::Interface::vtable(self).GetFontAxisValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10515,7 +10515,7 @@ impl IDWriteFontFace6 { pub unsafe fn GetType(&self) -> DWRITE_FONT_FACE_TYPE { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetType)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn GetFiles(&self, numberoffiles: &mut u32, fontfiles: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { + pub unsafe fn GetFiles(&self, numberoffiles: &mut u32, fontfiles: *mut ::core::option::Option) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetFiles)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(numberoffiles), ::core::mem::transmute(fontfiles)).ok() } pub unsafe fn GetIndex(&self) -> u32 { @@ -10537,13 +10537,13 @@ impl IDWriteFontFace6 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetDesignGlyphMetrics<'a, P0>(&self, glyphindices: &u16, glyphcount: u32, glyphmetrics: &mut DWRITE_GLYPH_METRICS, issideways: P0) -> ::windows::core::Result<()> + pub unsafe fn GetDesignGlyphMetrics<'a, P0>(&self, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetDesignGlyphMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphmetrics), issideways.into()).ok() } - pub unsafe fn GetGlyphIndices(&self, codepoints: &u32, codepointcount: u32, glyphindices: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetGlyphIndices(&self, codepoints: *const u32, codepointcount: u32, glyphindices: *mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetGlyphIndices)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(codepoints), ::core::mem::transmute(codepointcount), ::core::mem::transmute(glyphindices)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -10556,7 +10556,7 @@ impl IDWriteFontFace6 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct2D_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct2D_Common"))] - pub unsafe fn GetGlyphRunOutline<'a, P0, P1, P2>(&self, emsize: f32, glyphindices: &u16, glyphadvances: ::core::option::Option<&f32>, glyphoffsets: ::core::option::Option<&DWRITE_GLYPH_OFFSET>, glyphcount: u32, issideways: P0, isrighttoleft: P1, geometrysink: P2) -> ::windows::core::Result<()> + pub unsafe fn GetGlyphRunOutline<'a, P0, P1, P2>(&self, emsize: f32, glyphindices: *const u16, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphcount: u32, issideways: P0, isrighttoleft: P1, geometrysink: P2) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -10577,7 +10577,7 @@ impl IDWriteFontFace6 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, glyphindices: &u16, glyphcount: u32, glyphmetrics: &mut DWRITE_GLYPH_METRICS, issideways: P1) -> ::windows::core::Result<()> + pub unsafe fn GetGdiCompatibleGlyphMetrics<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, glyphindices: *const u16, glyphcount: u32, glyphmetrics: *mut DWRITE_GLYPH_METRICS, issideways: P1) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -10598,8 +10598,8 @@ impl IDWriteFontFace6 { pub unsafe fn GetCaretMetrics(&self, caretmetrics: &mut DWRITE_CARET_METRICS) { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetCaretMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(caretmetrics)) } - pub unsafe fn GetUnicodeRanges(&self, unicoderanges: &mut [DWRITE_UNICODE_RANGE], actualrangecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(unicoderanges)), ::core::mem::transmute(actualrangecount)).ok() + pub unsafe fn GetUnicodeRanges(&self, unicoderanges: ::core::option::Option<&mut [DWRITE_UNICODE_RANGE]>, actualrangecount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetUnicodeRanges)(::windows::core::Interface::as_raw(self), unicoderanges.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(unicoderanges.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(actualrangecount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10608,7 +10608,7 @@ impl IDWriteFontFace6 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetDesignGlyphAdvances<'a, P0>(&self, glyphcount: u32, glyphindices: &u16, glyphadvances: &mut i32, issideways: P0) -> ::windows::core::Result<()> + pub unsafe fn GetDesignGlyphAdvances<'a, P0>(&self, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32, issideways: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -10616,14 +10616,14 @@ impl IDWriteFontFace6 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, issideways: P1, glyphcount: u32, glyphindices: &u16, glyphadvances: &mut i32) -> ::windows::core::Result<()> + pub unsafe fn GetGdiCompatibleGlyphAdvances<'a, P0, P1>(&self, emsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P0, issideways: P1, glyphcount: u32, glyphindices: *const u16, glyphadvances: *mut i32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetGdiCompatibleGlyphAdvances)(::windows::core::Interface::as_raw(self), emsize, pixelsperdip, ::core::mem::transmute(transform), usegdinatural.into(), issideways.into(), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphadvances)).ok() } - pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: &u16, glyphadvanceadjustments: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn GetKerningPairAdjustments(&self, glyphcount: u32, glyphindices: *const u16, glyphadvanceadjustments: *mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetKerningPairAdjustments)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphcount), ::core::mem::transmute(glyphindices), ::core::mem::transmute(glyphadvanceadjustments)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -10640,7 +10640,7 @@ impl IDWriteFontFace6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetRecommendedRenderingMode2)(::windows::core::Interface::as_raw(self), fontemsize, dpix, dpiy, ::core::mem::transmute(transform), issideways.into(), outlinethreshold, measuringmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: &u16, verticalglyphindices: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetVerticalGlyphVariants(&self, glyphcount: u32, nominalglyphindices: *const u16, verticalglyphindices: *mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetVerticalGlyphVariants)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphcount), ::core::mem::transmute(nominalglyphindices), ::core::mem::transmute(verticalglyphindices)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -10660,7 +10660,7 @@ impl IDWriteFontFace6 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPaletteEntryCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetPaletteEntries(&self, colorpaletteindex: u32, firstentryindex: u32, paletteentries: &mut [DWRITE_COLOR_F]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPaletteEntries)(::windows::core::Interface::as_raw(self), colorpaletteindex, firstentryindex, paletteentries.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(paletteentries))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPaletteEntries)(::windows::core::Interface::as_raw(self), colorpaletteindex, firstentryindex, paletteentries.len() as _, ::core::mem::transmute(paletteentries.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10731,7 +10731,7 @@ impl IDWriteFontFace6 { P0: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.AreCharactersLocal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(characters)), characters.len() as _, enqueueifnotlocal.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.AreCharactersLocal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(characters.as_ptr()), characters.len() as _, enqueueifnotlocal.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10740,7 +10740,7 @@ impl IDWriteFontFace6 { P0: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.AreGlyphsLocal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(glyphindices)), glyphindices.len() as _, enqueueifnotlocal.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.AreGlyphsLocal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphindices.as_ptr()), glyphindices.len() as _, enqueueifnotlocal.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetGlyphImageFormats(&self, glyphid: u16, pixelsperemfirst: u32, pixelsperemlast: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -10761,7 +10761,7 @@ impl IDWriteFontFace6 { (::windows::core::Interface::vtable(self).base__.GetFontAxisValueCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetFontAxisValues(&self, fontaxisvalues: &mut [DWRITE_FONT_AXIS_VALUE]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetFontAxisValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetFontAxisValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10970,10 +10970,10 @@ impl IDWriteFontFaceReference { (::windows::core::Interface::vtable(self).EnqueueFontDownloadRequest)(::windows::core::Interface::as_raw(self)).ok() } pub unsafe fn EnqueueCharacterDownloadRequest(&self, characters: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).EnqueueCharacterDownloadRequest)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(characters)), characters.len() as _).ok() + (::windows::core::Interface::vtable(self).EnqueueCharacterDownloadRequest)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(characters.as_ptr()), characters.len() as _).ok() } pub unsafe fn EnqueueGlyphDownloadRequest(&self, glyphindices: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).EnqueueGlyphDownloadRequest)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(glyphindices)), glyphindices.len() as _).ok() + (::windows::core::Interface::vtable(self).EnqueueGlyphDownloadRequest)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphindices.as_ptr()), glyphindices.len() as _).ok() } pub unsafe fn EnqueueFileFragmentDownloadRequest(&self, fileoffset: u64, fragmentsize: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).EnqueueFileFragmentDownloadRequest)(::windows::core::Interface::as_raw(self), fileoffset, fragmentsize).ok() @@ -11088,10 +11088,10 @@ impl IDWriteFontFaceReference1 { (::windows::core::Interface::vtable(self).base__.EnqueueFontDownloadRequest)(::windows::core::Interface::as_raw(self)).ok() } pub unsafe fn EnqueueCharacterDownloadRequest(&self, characters: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.EnqueueCharacterDownloadRequest)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(characters)), characters.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.EnqueueCharacterDownloadRequest)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(characters.as_ptr()), characters.len() as _).ok() } pub unsafe fn EnqueueGlyphDownloadRequest(&self, glyphindices: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.EnqueueGlyphDownloadRequest)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(glyphindices)), glyphindices.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.EnqueueGlyphDownloadRequest)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(glyphindices.as_ptr()), glyphindices.len() as _).ok() } pub unsafe fn EnqueueFileFragmentDownloadRequest(&self, fileoffset: u64, fragmentsize: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.EnqueueFileFragmentDownloadRequest)(::windows::core::Interface::as_raw(self), fileoffset, fragmentsize).ok() @@ -11104,7 +11104,7 @@ impl IDWriteFontFaceReference1 { (::windows::core::Interface::vtable(self).GetFontAxisValueCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetFontAxisValues(&self, fontaxisvalues: &mut [DWRITE_FONT_AXIS_VALUE]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFontAxisValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _).ok() + (::windows::core::Interface::vtable(self).GetFontAxisValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -11237,7 +11237,7 @@ impl IDWriteFontFallback1 { P1: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontCollection>>, P2: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).MapCharacters2)(::windows::core::Interface::as_raw(self), analysissource.into().abi(), textposition, textlength, basefontcollection.into().abi(), basefamilyname.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _, ::core::mem::transmute(mappedlength), ::core::mem::transmute(scale), ::core::mem::transmute(mappedfontface)).ok() + (::windows::core::Interface::vtable(self).MapCharacters2)(::windows::core::Interface::as_raw(self), analysissource.into().abi(), textposition, textlength, basefontcollection.into().abi(), basefamilyname.into(), ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _, ::core::mem::transmute(mappedlength), ::core::mem::transmute(scale), ::core::mem::transmute(mappedfontface)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -11306,7 +11306,7 @@ impl IDWriteFontFallbackBuilder { P1: ::std::convert::Into<::windows::core::PCWSTR>, P2: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).AddMapping)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ranges)), ranges.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(targetfamilynames)), targetfamilynames.len() as _, fontcollection.into().abi(), localename.into(), basefamilyname.into(), scale).ok() + (::windows::core::Interface::vtable(self).AddMapping)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ranges.as_ptr()), ranges.len() as _, ::core::mem::transmute(targetfamilynames.as_ptr()), targetfamilynames.len() as _, fontcollection.into().abi(), localename.into(), basefamilyname.into(), scale).ok() } pub unsafe fn AddMappings<'a, P0>(&self, fontfallback: P0) -> ::windows::core::Result<()> where @@ -11600,7 +11600,7 @@ impl IDWriteFontFamily2 { } pub unsafe fn GetMatchingFonts2(&self, fontaxisvalues: &[DWRITE_FONT_AXIS_VALUE]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetMatchingFonts2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetMatchingFonts2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetFontSet(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -11821,9 +11821,9 @@ pub struct IDWriteFontFileEnumerator_Vtbl { #[repr(transparent)] pub struct IDWriteFontFileLoader(::windows::core::IUnknown); impl IDWriteFontFileLoader { - pub unsafe fn CreateStreamFromKey(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::core::Result { + pub unsafe fn CreateStreamFromKey(&self, fontfilereferencekey: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateStreamFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateStreamFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -12191,10 +12191,10 @@ impl IDWriteFontResource { (::windows::core::Interface::vtable(self).GetFontAxisCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetDefaultFontAxisValues(&self, fontaxisvalues: &mut [DWRITE_FONT_AXIS_VALUE]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDefaultFontAxisValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _).ok() + (::windows::core::Interface::vtable(self).GetDefaultFontAxisValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _).ok() } pub unsafe fn GetFontAxisRanges(&self, fontaxisranges: &mut [DWRITE_FONT_AXIS_RANGE]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFontAxisRanges)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontaxisranges)), fontaxisranges.len() as _).ok() + (::windows::core::Interface::vtable(self).GetFontAxisRanges)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisranges.as_ptr()), fontaxisranges.len() as _).ok() } pub unsafe fn GetFontAxisAttributes(&self, axisindex: u32) -> DWRITE_FONT_AXIS_ATTRIBUTES { (::windows::core::Interface::vtable(self).GetFontAxisAttributes)(::windows::core::Interface::as_raw(self), axisindex) @@ -12216,11 +12216,11 @@ impl IDWriteFontResource { } pub unsafe fn CreateFontFace(&self, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: &[DWRITE_FONT_AXIS_VALUE]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateFontFace)(::windows::core::Interface::as_raw(self), fontsimulations, ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateFontFace)(::windows::core::Interface::as_raw(self), fontsimulations, ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateFontFaceReference(&self, fontsimulations: DWRITE_FONT_SIMULATIONS, fontaxisvalues: &[DWRITE_FONT_AXIS_VALUE]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateFontFaceReference)(::windows::core::Interface::as_raw(self), fontsimulations, ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateFontFaceReference)(::windows::core::Interface::as_raw(self), fontsimulations, ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -12334,7 +12334,7 @@ impl IDWriteFontSet { } pub unsafe fn GetMatchingFonts2(&self, properties: &[DWRITE_FONT_PROPERTY]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetMatchingFonts2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetMatchingFonts2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(properties.as_ptr()), properties.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -12452,11 +12452,11 @@ impl IDWriteFontSet1 { } pub unsafe fn GetMatchingFonts2(&self, properties: &[DWRITE_FONT_PROPERTY]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.GetMatchingFonts2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.GetMatchingFonts2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(properties.as_ptr()), properties.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetMatchingFonts3(&self, fontproperty: ::core::option::Option<&DWRITE_FONT_PROPERTY>, fontaxisvalues: &[DWRITE_FONT_AXIS_VALUE]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetMatchingFonts3)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontproperty), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetMatchingFonts3)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontproperty), ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetFirstFontResources(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -12464,7 +12464,7 @@ impl IDWriteFontSet1 { } pub unsafe fn GetFilteredFonts(&self, indices: &[u32]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetFilteredFonts)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(indices)), indices.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetFilteredFonts)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(indices.as_ptr()), indices.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12473,16 +12473,16 @@ impl IDWriteFontSet1 { P0: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetFilteredFonts2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisranges)), fontaxisranges.len() as _, selectanyrange.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetFilteredFonts2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisranges.as_ptr()), fontaxisranges.len() as _, selectanyrange.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetFilteredFonts3<'a, P0>(&self, properties: &[DWRITE_FONT_PROPERTY], selectanyproperty: P0) -> ::windows::core::Result + pub unsafe fn GetFilteredFonts3<'a, P0>(&self, properties: ::core::option::Option<&[DWRITE_FONT_PROPERTY]>, selectanyproperty: P0) -> ::windows::core::Result where P0: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetFilteredFonts3)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, selectanyproperty.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetFilteredFonts3)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), selectanyproperty.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12490,7 +12490,7 @@ impl IDWriteFontSet1 { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).GetFilteredFontIndices)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisranges)), fontaxisranges.len() as _, selectanyrange.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(indices)), indices.len() as _, ::core::mem::transmute(actualindexcount)).ok() + (::windows::core::Interface::vtable(self).GetFilteredFontIndices)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisranges.as_ptr()), fontaxisranges.len() as _, selectanyrange.into(), ::core::mem::transmute(indices.as_ptr()), indices.len() as _, ::core::mem::transmute(actualindexcount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12498,13 +12498,13 @@ impl IDWriteFontSet1 { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).GetFilteredFontIndices2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, selectanyproperty.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(indices)), indices.len() as _, ::core::mem::transmute(actualindexcount)).ok() + (::windows::core::Interface::vtable(self).GetFilteredFontIndices2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(properties.as_ptr()), properties.len() as _, selectanyproperty.into(), ::core::mem::transmute(indices.as_ptr()), indices.len() as _, ::core::mem::transmute(actualindexcount)).ok() } pub unsafe fn GetFontAxisRanges(&self, listindex: u32, fontaxisranges: &mut [DWRITE_FONT_AXIS_RANGE], actualfontaxisrangecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFontAxisRanges)(::windows::core::Interface::as_raw(self), listindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontaxisranges)), fontaxisranges.len() as _, ::core::mem::transmute(actualfontaxisrangecount)).ok() + (::windows::core::Interface::vtable(self).GetFontAxisRanges)(::windows::core::Interface::as_raw(self), listindex, ::core::mem::transmute(fontaxisranges.as_ptr()), fontaxisranges.len() as _, ::core::mem::transmute(actualfontaxisrangecount)).ok() } pub unsafe fn GetFontAxisRanges2(&self, fontaxisranges: &mut [DWRITE_FONT_AXIS_RANGE], actualfontaxisrangecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFontAxisRanges2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontaxisranges)), fontaxisranges.len() as _, ::core::mem::transmute(actualfontaxisrangecount)).ok() + (::windows::core::Interface::vtable(self).GetFontAxisRanges2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisranges.as_ptr()), fontaxisranges.len() as _, ::core::mem::transmute(actualfontaxisrangecount)).ok() } pub unsafe fn GetFontFaceReference2(&self, listindex: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -12658,11 +12658,11 @@ impl IDWriteFontSet2 { } pub unsafe fn GetMatchingFonts2(&self, properties: &[DWRITE_FONT_PROPERTY]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.GetMatchingFonts2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.GetMatchingFonts2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(properties.as_ptr()), properties.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetMatchingFonts3(&self, fontproperty: ::core::option::Option<&DWRITE_FONT_PROPERTY>, fontaxisvalues: &[DWRITE_FONT_AXIS_VALUE]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.GetMatchingFonts3)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontproperty), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.GetMatchingFonts3)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontproperty), ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetFirstFontResources(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -12670,7 +12670,7 @@ impl IDWriteFontSet2 { } pub unsafe fn GetFilteredFonts(&self, indices: &[u32]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.GetFilteredFonts)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(indices)), indices.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.GetFilteredFonts)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(indices.as_ptr()), indices.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12679,16 +12679,16 @@ impl IDWriteFontSet2 { P0: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.GetFilteredFonts2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisranges)), fontaxisranges.len() as _, selectanyrange.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.GetFilteredFonts2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisranges.as_ptr()), fontaxisranges.len() as _, selectanyrange.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetFilteredFonts3<'a, P0>(&self, properties: &[DWRITE_FONT_PROPERTY], selectanyproperty: P0) -> ::windows::core::Result + pub unsafe fn GetFilteredFonts3<'a, P0>(&self, properties: ::core::option::Option<&[DWRITE_FONT_PROPERTY]>, selectanyproperty: P0) -> ::windows::core::Result where P0: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.GetFilteredFonts3)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, selectanyproperty.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.GetFilteredFonts3)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), selectanyproperty.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12696,7 +12696,7 @@ impl IDWriteFontSet2 { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).base__.GetFilteredFontIndices)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisranges)), fontaxisranges.len() as _, selectanyrange.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(indices)), indices.len() as _, ::core::mem::transmute(actualindexcount)).ok() + (::windows::core::Interface::vtable(self).base__.GetFilteredFontIndices)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisranges.as_ptr()), fontaxisranges.len() as _, selectanyrange.into(), ::core::mem::transmute(indices.as_ptr()), indices.len() as _, ::core::mem::transmute(actualindexcount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12704,13 +12704,13 @@ impl IDWriteFontSet2 { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).base__.GetFilteredFontIndices2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, selectanyproperty.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(indices)), indices.len() as _, ::core::mem::transmute(actualindexcount)).ok() + (::windows::core::Interface::vtable(self).base__.GetFilteredFontIndices2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(properties.as_ptr()), properties.len() as _, selectanyproperty.into(), ::core::mem::transmute(indices.as_ptr()), indices.len() as _, ::core::mem::transmute(actualindexcount)).ok() } pub unsafe fn GetFontAxisRanges(&self, listindex: u32, fontaxisranges: &mut [DWRITE_FONT_AXIS_RANGE], actualfontaxisrangecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetFontAxisRanges)(::windows::core::Interface::as_raw(self), listindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontaxisranges)), fontaxisranges.len() as _, ::core::mem::transmute(actualfontaxisrangecount)).ok() + (::windows::core::Interface::vtable(self).base__.GetFontAxisRanges)(::windows::core::Interface::as_raw(self), listindex, ::core::mem::transmute(fontaxisranges.as_ptr()), fontaxisranges.len() as _, ::core::mem::transmute(actualfontaxisrangecount)).ok() } pub unsafe fn GetFontAxisRanges2(&self, fontaxisranges: &mut [DWRITE_FONT_AXIS_RANGE], actualfontaxisrangecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetFontAxisRanges2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontaxisranges)), fontaxisranges.len() as _, ::core::mem::transmute(actualfontaxisrangecount)).ok() + (::windows::core::Interface::vtable(self).base__.GetFontAxisRanges2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisranges.as_ptr()), fontaxisranges.len() as _, ::core::mem::transmute(actualfontaxisrangecount)).ok() } pub unsafe fn GetFontFaceReference2(&self, listindex: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -12863,11 +12863,11 @@ impl IDWriteFontSet3 { } pub unsafe fn GetMatchingFonts2(&self, properties: &[DWRITE_FONT_PROPERTY]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.GetMatchingFonts2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.GetMatchingFonts2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(properties.as_ptr()), properties.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetMatchingFonts3(&self, fontproperty: ::core::option::Option<&DWRITE_FONT_PROPERTY>, fontaxisvalues: &[DWRITE_FONT_AXIS_VALUE]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.GetMatchingFonts3)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontproperty), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.GetMatchingFonts3)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontproperty), ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetFirstFontResources(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -12875,7 +12875,7 @@ impl IDWriteFontSet3 { } pub unsafe fn GetFilteredFonts(&self, indices: &[u32]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.GetFilteredFonts)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(indices)), indices.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.GetFilteredFonts)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(indices.as_ptr()), indices.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12884,16 +12884,16 @@ impl IDWriteFontSet3 { P0: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.GetFilteredFonts2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisranges)), fontaxisranges.len() as _, selectanyrange.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.GetFilteredFonts2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisranges.as_ptr()), fontaxisranges.len() as _, selectanyrange.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetFilteredFonts3<'a, P0>(&self, properties: &[DWRITE_FONT_PROPERTY], selectanyproperty: P0) -> ::windows::core::Result + pub unsafe fn GetFilteredFonts3<'a, P0>(&self, properties: ::core::option::Option<&[DWRITE_FONT_PROPERTY]>, selectanyproperty: P0) -> ::windows::core::Result where P0: ::std::convert::Into, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.GetFilteredFonts3)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, selectanyproperty.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.GetFilteredFonts3)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), selectanyproperty.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12901,7 +12901,7 @@ impl IDWriteFontSet3 { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).base__.base__.GetFilteredFontIndices)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisranges)), fontaxisranges.len() as _, selectanyrange.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(indices)), indices.len() as _, ::core::mem::transmute(actualindexcount)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetFilteredFontIndices)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisranges.as_ptr()), fontaxisranges.len() as _, selectanyrange.into(), ::core::mem::transmute(indices.as_ptr()), indices.len() as _, ::core::mem::transmute(actualindexcount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12909,13 +12909,13 @@ impl IDWriteFontSet3 { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).base__.base__.GetFilteredFontIndices2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, selectanyproperty.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(indices)), indices.len() as _, ::core::mem::transmute(actualindexcount)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetFilteredFontIndices2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(properties.as_ptr()), properties.len() as _, selectanyproperty.into(), ::core::mem::transmute(indices.as_ptr()), indices.len() as _, ::core::mem::transmute(actualindexcount)).ok() } pub unsafe fn GetFontAxisRanges(&self, listindex: u32, fontaxisranges: &mut [DWRITE_FONT_AXIS_RANGE], actualfontaxisrangecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetFontAxisRanges)(::windows::core::Interface::as_raw(self), listindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontaxisranges)), fontaxisranges.len() as _, ::core::mem::transmute(actualfontaxisrangecount)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetFontAxisRanges)(::windows::core::Interface::as_raw(self), listindex, ::core::mem::transmute(fontaxisranges.as_ptr()), fontaxisranges.len() as _, ::core::mem::transmute(actualfontaxisrangecount)).ok() } pub unsafe fn GetFontAxisRanges2(&self, fontaxisranges: &mut [DWRITE_FONT_AXIS_RANGE], actualfontaxisrangecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetFontAxisRanges2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontaxisranges)), fontaxisranges.len() as _, ::core::mem::transmute(actualfontaxisrangecount)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetFontAxisRanges2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisranges.as_ptr()), fontaxisranges.len() as _, ::core::mem::transmute(actualfontaxisrangecount)).ok() } pub unsafe fn GetFontFaceReference2(&self, listindex: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -12944,7 +12944,7 @@ impl IDWriteFontSet3 { (::windows::core::Interface::vtable(self).GetFontSourceNameLength)(::windows::core::Interface::as_raw(self), listindex) } pub unsafe fn GetFontSourceName(&self, listindex: u32, stringbuffer: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFontSourceName)(::windows::core::Interface::as_raw(self), listindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(stringbuffer)), stringbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).GetFontSourceName)(::windows::core::Interface::as_raw(self), listindex, ::core::mem::transmute(stringbuffer.as_ptr()), stringbuffer.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -13043,7 +13043,7 @@ impl IDWriteFontSetBuilder { where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFaceReference>>, { - (::windows::core::Interface::vtable(self).AddFontFaceReference)(::windows::core::Interface::as_raw(self), fontfacereference.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _).ok() + (::windows::core::Interface::vtable(self).AddFontFaceReference)(::windows::core::Interface::as_raw(self), fontfacereference.into().abi(), ::core::mem::transmute(properties.as_ptr()), properties.len() as _).ok() } pub unsafe fn AddFontFaceReference2<'a, P0>(&self, fontfacereference: P0) -> ::windows::core::Result<()> where @@ -13114,7 +13114,7 @@ impl IDWriteFontSetBuilder1 { where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFaceReference>>, { - (::windows::core::Interface::vtable(self).base__.AddFontFaceReference)(::windows::core::Interface::as_raw(self), fontfacereference.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.AddFontFaceReference)(::windows::core::Interface::as_raw(self), fontfacereference.into().abi(), ::core::mem::transmute(properties.as_ptr()), properties.len() as _).ok() } pub unsafe fn AddFontFaceReference2<'a, P0>(&self, fontfacereference: P0) -> ::windows::core::Result<()> where @@ -13203,7 +13203,7 @@ impl IDWriteFontSetBuilder2 { where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFaceReference>>, { - (::windows::core::Interface::vtable(self).base__.base__.AddFontFaceReference)(::windows::core::Interface::as_raw(self), fontfacereference.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.AddFontFaceReference)(::windows::core::Interface::as_raw(self), fontfacereference.into().abi(), ::core::mem::transmute(properties.as_ptr()), properties.len() as _).ok() } pub unsafe fn AddFontFaceReference2<'a, P0>(&self, fontfacereference: P0) -> ::windows::core::Result<()> where @@ -13231,7 +13231,7 @@ impl IDWriteFontSetBuilder2 { where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFile>>, { - (::windows::core::Interface::vtable(self).AddFont)(::windows::core::Interface::as_raw(self), fontfile.into().abi(), fontfaceindex, fontsimulations, ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisranges)), fontaxisranges.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _).ok() + (::windows::core::Interface::vtable(self).AddFont)(::windows::core::Interface::as_raw(self), fontfile.into().abi(), fontfaceindex, fontsimulations, ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _, ::core::mem::transmute(fontaxisranges.as_ptr()), fontaxisranges.len() as _, ::core::mem::transmute(properties.as_ptr()), properties.len() as _).ok() } pub unsafe fn AddFontFile2<'a, P0>(&self, filepath: P0) -> ::windows::core::Result<()> where @@ -13583,8 +13583,8 @@ impl IDWriteGlyphRunAnalysis { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn CreateAlphaTexture(&self, texturetype: DWRITE_TEXTURE_TYPE, texturebounds: &super::super::Foundation::RECT, alphavalues: &mut u8, buffersize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CreateAlphaTexture)(::windows::core::Interface::as_raw(self), texturetype, ::core::mem::transmute(texturebounds), ::core::mem::transmute(alphavalues), buffersize).ok() + pub unsafe fn CreateAlphaTexture(&self, texturetype: DWRITE_TEXTURE_TYPE, texturebounds: &super::super::Foundation::RECT, alphavalues: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).CreateAlphaTexture)(::windows::core::Interface::as_raw(self), texturetype, ::core::mem::transmute(texturebounds), ::core::mem::transmute(alphavalues.as_ptr()), alphavalues.len() as _).ok() } pub unsafe fn GetAlphaBlendParams<'a, P0>(&self, renderingparams: P0, blendgamma: &mut f32, blendenhancedcontrast: &mut f32, blendcleartypelevel: &mut f32) -> ::windows::core::Result<()> where @@ -13646,17 +13646,17 @@ pub struct IDWriteGlyphRunAnalysis_Vtbl { #[repr(transparent)] pub struct IDWriteInMemoryFontFileLoader(::windows::core::IUnknown); impl IDWriteInMemoryFontFileLoader { - pub unsafe fn CreateStreamFromKey(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::core::Result { + pub unsafe fn CreateStreamFromKey(&self, fontfilereferencekey: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateStreamFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateStreamFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateInMemoryFontFileReference<'a, P0, P1>(&self, factory: P0, fontdata: *const ::core::ffi::c_void, fontdatasize: u32, ownerobject: P1) -> ::windows::core::Result + pub unsafe fn CreateInMemoryFontFileReference<'a, P0, P1>(&self, factory: P0, fontdata: &[u8], ownerobject: P1) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFactory>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateInMemoryFontFileReference)(::windows::core::Interface::as_raw(self), factory.into().abi(), ::core::mem::transmute(fontdata), fontdatasize, ownerobject.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateInMemoryFontFileReference)(::windows::core::Interface::as_raw(self), factory.into().abi(), ::core::mem::transmute(fontdata.as_ptr()), fontdata.len() as _, ownerobject.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetFileCount(&self) -> u32 { (::windows::core::Interface::vtable(self).GetFileCount)(::windows::core::Interface::as_raw(self)) @@ -13802,22 +13802,22 @@ pub struct IDWriteInlineObject_Vtbl { #[repr(transparent)] pub struct IDWriteLocalFontFileLoader(::windows::core::IUnknown); impl IDWriteLocalFontFileLoader { - pub unsafe fn CreateStreamFromKey(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::core::Result { + pub unsafe fn CreateStreamFromKey(&self, fontfilereferencekey: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateStreamFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateStreamFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetFilePathLengthFromKey(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::core::Result { + pub unsafe fn GetFilePathLengthFromKey(&self, fontfilereferencekey: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetFilePathLengthFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetFilePathLengthFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetFilePathFromKey(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32, filepath: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFilePathFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filepath)), filepath.len() as _).ok() + pub unsafe fn GetFilePathFromKey(&self, fontfilereferencekey: &[u8], filepath: &mut [u16]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetFilePathFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, ::core::mem::transmute(filepath.as_ptr()), filepath.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLastWriteTimeFromKey(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::core::Result { + pub unsafe fn GetLastWriteTimeFromKey(&self, fontfilereferencekey: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetLastWriteTimeFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetLastWriteTimeFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -13901,14 +13901,14 @@ impl IDWriteLocalizedStrings { (::windows::core::Interface::vtable(self).GetLocaleNameLength)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetLocaleName(&self, index: u32, localename: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLocaleName)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(localename)), localename.len() as _).ok() + (::windows::core::Interface::vtable(self).GetLocaleName)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(localename.as_ptr()), localename.len() as _).ok() } pub unsafe fn GetStringLength(&self, index: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetStringLength)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, index: u32, stringbuffer: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetString)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(stringbuffer)), stringbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).GetString)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(stringbuffer.as_ptr()), stringbuffer.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -14073,17 +14073,17 @@ pub struct IDWritePixelSnapping_Vtbl { #[repr(transparent)] pub struct IDWriteRemoteFontFileLoader(::windows::core::IUnknown); impl IDWriteRemoteFontFileLoader { - pub unsafe fn CreateStreamFromKey(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::core::Result { + pub unsafe fn CreateStreamFromKey(&self, fontfilereferencekey: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateStreamFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateStreamFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateRemoteStreamFromKey(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::core::Result { + pub unsafe fn CreateRemoteStreamFromKey(&self, fontfilereferencekey: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateRemoteStreamFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateRemoteStreamFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetLocalityFromKey(&self, fontfilereferencekey: *const ::core::ffi::c_void, fontfilereferencekeysize: u32) -> ::windows::core::Result { + pub unsafe fn GetLocalityFromKey(&self, fontfilereferencekey: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetLocalityFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey), fontfilereferencekeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetLocalityFromKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfilereferencekey.as_ptr()), fontfilereferencekey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateFontFileReferenceFromUrl<'a, P0, P1, P2>(&self, factory: P0, baseurl: P1, fontfileurl: P2) -> ::windows::core::Result where @@ -14185,7 +14185,7 @@ impl IDWriteRemoteFontFileStream { } pub unsafe fn BeginDownload(&self, downloadoperationid: &::windows::core::GUID, filefragments: &[DWRITE_FILE_FRAGMENT]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).BeginDownload)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(downloadoperationid), ::core::mem::transmute(::windows::core::as_ptr_or_null(filefragments)), filefragments.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).BeginDownload)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(downloadoperationid), ::core::mem::transmute(filefragments.as_ptr()), filefragments.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -14618,14 +14618,14 @@ impl IDWriteStringList { (::windows::core::Interface::vtable(self).GetLocaleNameLength)(::windows::core::Interface::as_raw(self), listindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetLocaleName(&self, listindex: u32, localename: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLocaleName)(::windows::core::Interface::as_raw(self), listindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(localename)), localename.len() as _).ok() + (::windows::core::Interface::vtable(self).GetLocaleName)(::windows::core::Interface::as_raw(self), listindex, ::core::mem::transmute(localename.as_ptr()), localename.len() as _).ok() } pub unsafe fn GetStringLength(&self, listindex: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetStringLength)(::windows::core::Interface::as_raw(self), listindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, listindex: u32, stringbuffer: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetString)(::windows::core::Interface::as_raw(self), listindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(stringbuffer)), stringbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).GetString)(::windows::core::Interface::as_raw(self), listindex, ::core::mem::transmute(stringbuffer.as_ptr()), stringbuffer.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -14681,7 +14681,7 @@ impl IDWriteTextAnalysisSink { (::windows::core::Interface::vtable(self).SetScriptAnalysis)(::windows::core::Interface::as_raw(self), textposition, textlength, ::core::mem::transmute(scriptanalysis)).ok() } pub unsafe fn SetLineBreakpoints(&self, textposition: u32, linebreakpoints: &[DWRITE_LINE_BREAKPOINT]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetLineBreakpoints)(::windows::core::Interface::as_raw(self), textposition, linebreakpoints.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(linebreakpoints))).ok() + (::windows::core::Interface::vtable(self).SetLineBreakpoints)(::windows::core::Interface::as_raw(self), textposition, linebreakpoints.len() as _, ::core::mem::transmute(linebreakpoints.as_ptr())).ok() } pub unsafe fn SetBidiLevel(&self, textposition: u32, textlength: u32, explicitlevel: u8, resolvedlevel: u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetBidiLevel)(::windows::core::Interface::as_raw(self), textposition, textlength, explicitlevel, resolvedlevel).ok() @@ -14745,7 +14745,7 @@ impl IDWriteTextAnalysisSink1 { (::windows::core::Interface::vtable(self).base__.SetScriptAnalysis)(::windows::core::Interface::as_raw(self), textposition, textlength, ::core::mem::transmute(scriptanalysis)).ok() } pub unsafe fn SetLineBreakpoints(&self, textposition: u32, linebreakpoints: &[DWRITE_LINE_BREAKPOINT]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetLineBreakpoints)(::windows::core::Interface::as_raw(self), textposition, linebreakpoints.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(linebreakpoints))).ok() + (::windows::core::Interface::vtable(self).base__.SetLineBreakpoints)(::windows::core::Interface::as_raw(self), textposition, linebreakpoints.len() as _, ::core::mem::transmute(linebreakpoints.as_ptr())).ok() } pub unsafe fn SetBidiLevel(&self, textposition: u32, textlength: u32, explicitlevel: u8, resolvedlevel: u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SetBidiLevel)(::windows::core::Interface::as_raw(self), textposition, textlength, explicitlevel, resolvedlevel).ok() @@ -15003,7 +15003,7 @@ impl IDWriteTextAnalyzer { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGlyphs<'a, P0, P1, P2, P3, P4>(&self, textstring: ::windows::core::PCWSTR, textlength: u32, fontface: P0, issideways: P1, isrighttoleft: P2, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P3, numbersubstitution: P4, features: ::core::option::Option<&*const DWRITE_TYPOGRAPHIC_FEATURES>, featurerangelengths: ::core::option::Option<&u32>, featureranges: u32, maxglyphcount: u32, clustermap: &mut u16, textprops: &mut DWRITE_SHAPING_TEXT_PROPERTIES, glyphindices: &mut u16, glyphprops: &mut DWRITE_SHAPING_GLYPH_PROPERTIES, actualglyphcount: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetGlyphs<'a, P0, P1, P2, P3, P4>(&self, textstring: ::windows::core::PCWSTR, textlength: u32, fontface: P0, issideways: P1, isrighttoleft: P2, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P3, numbersubstitution: P4, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, maxglyphcount: u32, clustermap: *mut u16, textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES, glyphindices: *mut u16, glyphprops: *mut DWRITE_SHAPING_GLYPH_PROPERTIES, actualglyphcount: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, P1: ::std::convert::Into, @@ -15035,7 +15035,7 @@ impl IDWriteTextAnalyzer { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGlyphPlacements<'a, P0, P1, P2, P3>(&self, textstring: ::windows::core::PCWSTR, clustermap: &u16, textprops: &mut DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: &u16, glyphprops: &DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: P0, fontemsize: f32, issideways: P1, isrighttoleft: P2, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P3, features: ::core::option::Option<&*const DWRITE_TYPOGRAPHIC_FEATURES>, featurerangelengths: ::core::option::Option<&u32>, featureranges: u32, glyphadvances: &mut f32, glyphoffsets: &mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> + pub unsafe fn GetGlyphPlacements<'a, P0, P1, P2, P3>(&self, textstring: ::windows::core::PCWSTR, clustermap: *const u16, textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: *const u16, glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: P0, fontemsize: f32, issideways: P1, isrighttoleft: P2, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P3, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, glyphadvances: *mut f32, glyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, P1: ::std::convert::Into, @@ -15067,7 +15067,7 @@ impl IDWriteTextAnalyzer { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGdiCompatibleGlyphPlacements<'a, P0, P1, P2, P3, P4>(&self, textstring: ::windows::core::PCWSTR, clustermap: &u16, textprops: &DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: &u16, glyphprops: &DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: P0, fontemsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P1, issideways: P2, isrighttoleft: P3, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P4, features: ::core::option::Option<&*const DWRITE_TYPOGRAPHIC_FEATURES>, featurerangelengths: ::core::option::Option<&u32>, featureranges: u32, glyphadvances: &mut f32, glyphoffsets: &mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> + pub unsafe fn GetGdiCompatibleGlyphPlacements<'a, P0, P1, P2, P3, P4>(&self, textstring: ::windows::core::PCWSTR, clustermap: *const u16, textprops: *const DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: *const u16, glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: P0, fontemsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P1, issideways: P2, isrighttoleft: P3, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P4, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, glyphadvances: *mut f32, glyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, P1: ::std::convert::Into, @@ -15215,7 +15215,7 @@ impl IDWriteTextAnalyzer1 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGlyphs<'a, P0, P1, P2, P3, P4>(&self, textstring: ::windows::core::PCWSTR, textlength: u32, fontface: P0, issideways: P1, isrighttoleft: P2, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P3, numbersubstitution: P4, features: ::core::option::Option<&*const DWRITE_TYPOGRAPHIC_FEATURES>, featurerangelengths: ::core::option::Option<&u32>, featureranges: u32, maxglyphcount: u32, clustermap: &mut u16, textprops: &mut DWRITE_SHAPING_TEXT_PROPERTIES, glyphindices: &mut u16, glyphprops: &mut DWRITE_SHAPING_GLYPH_PROPERTIES, actualglyphcount: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetGlyphs<'a, P0, P1, P2, P3, P4>(&self, textstring: ::windows::core::PCWSTR, textlength: u32, fontface: P0, issideways: P1, isrighttoleft: P2, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P3, numbersubstitution: P4, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, maxglyphcount: u32, clustermap: *mut u16, textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES, glyphindices: *mut u16, glyphprops: *mut DWRITE_SHAPING_GLYPH_PROPERTIES, actualglyphcount: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, P1: ::std::convert::Into, @@ -15247,7 +15247,7 @@ impl IDWriteTextAnalyzer1 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGlyphPlacements<'a, P0, P1, P2, P3>(&self, textstring: ::windows::core::PCWSTR, clustermap: &u16, textprops: &mut DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: &u16, glyphprops: &DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: P0, fontemsize: f32, issideways: P1, isrighttoleft: P2, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P3, features: ::core::option::Option<&*const DWRITE_TYPOGRAPHIC_FEATURES>, featurerangelengths: ::core::option::Option<&u32>, featureranges: u32, glyphadvances: &mut f32, glyphoffsets: &mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> + pub unsafe fn GetGlyphPlacements<'a, P0, P1, P2, P3>(&self, textstring: ::windows::core::PCWSTR, clustermap: *const u16, textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: *const u16, glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: P0, fontemsize: f32, issideways: P1, isrighttoleft: P2, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P3, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, glyphadvances: *mut f32, glyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, P1: ::std::convert::Into, @@ -15279,7 +15279,7 @@ impl IDWriteTextAnalyzer1 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGdiCompatibleGlyphPlacements<'a, P0, P1, P2, P3, P4>(&self, textstring: ::windows::core::PCWSTR, clustermap: &u16, textprops: &DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: &u16, glyphprops: &DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: P0, fontemsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P1, issideways: P2, isrighttoleft: P3, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P4, features: ::core::option::Option<&*const DWRITE_TYPOGRAPHIC_FEATURES>, featurerangelengths: ::core::option::Option<&u32>, featureranges: u32, glyphadvances: &mut f32, glyphoffsets: &mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> + pub unsafe fn GetGdiCompatibleGlyphPlacements<'a, P0, P1, P2, P3, P4>(&self, textstring: ::windows::core::PCWSTR, clustermap: *const u16, textprops: *const DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: *const u16, glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: P0, fontemsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P1, issideways: P2, isrighttoleft: P3, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P4, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, glyphadvances: *mut f32, glyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, P1: ::std::convert::Into, @@ -15313,8 +15313,8 @@ impl IDWriteTextAnalyzer1 { ) .ok() } - pub unsafe fn ApplyCharacterSpacing(&self, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, glyphcount: u32, clustermap: &[u16], glyphadvances: &f32, glyphoffsets: &DWRITE_GLYPH_OFFSET, glyphproperties: &DWRITE_SHAPING_GLYPH_PROPERTIES, modifiedglyphadvances: &mut f32, modifiedglyphoffsets: &mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ApplyCharacterSpacing)(::windows::core::Interface::as_raw(self), leadingspacing, trailingspacing, minimumadvancewidth, clustermap.len() as _, ::core::mem::transmute(glyphcount), ::core::mem::transmute(::windows::core::as_ptr_or_null(clustermap)), ::core::mem::transmute(glyphadvances), ::core::mem::transmute(glyphoffsets), ::core::mem::transmute(glyphproperties), ::core::mem::transmute(modifiedglyphadvances), ::core::mem::transmute(modifiedglyphoffsets)).ok() + pub unsafe fn ApplyCharacterSpacing(&self, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, glyphcount: u32, clustermap: &[u16], glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, modifiedglyphadvances: *mut f32, modifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ApplyCharacterSpacing)(::windows::core::Interface::as_raw(self), leadingspacing, trailingspacing, minimumadvancewidth, clustermap.len() as _, ::core::mem::transmute(glyphcount), ::core::mem::transmute(clustermap.as_ptr()), ::core::mem::transmute(glyphadvances), ::core::mem::transmute(glyphoffsets), ::core::mem::transmute(glyphproperties), ::core::mem::transmute(modifiedglyphadvances), ::core::mem::transmute(modifiedglyphoffsets)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -15349,22 +15349,22 @@ impl IDWriteTextAnalyzer1 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetTextComplexity<'a, P0>(&self, textstring: ::windows::core::PCWSTR, textlength: u32, fontface: P0, istextsimple: &mut super::super::Foundation::BOOL, textlengthread: &mut u32, glyphindices: ::core::option::Option<&mut u16>) -> ::windows::core::Result<()> + pub unsafe fn GetTextComplexity<'a, P0>(&self, textstring: ::windows::core::PCWSTR, textlength: u32, fontface: P0, istextsimple: &mut super::super::Foundation::BOOL, textlengthread: &mut u32, glyphindices: *mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, { (::windows::core::Interface::vtable(self).GetTextComplexity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(textstring), ::core::mem::transmute(textlength), fontface.into().abi(), ::core::mem::transmute(istextsimple), ::core::mem::transmute(textlengthread), ::core::mem::transmute(glyphindices)).ok() } - pub unsafe fn GetJustificationOpportunities<'a, P0>(&self, fontface: P0, fontemsize: f32, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, textlength: u32, glyphcount: u32, textstring: ::windows::core::PCWSTR, clustermap: &u16, glyphproperties: &DWRITE_SHAPING_GLYPH_PROPERTIES, justificationopportunities: &mut DWRITE_JUSTIFICATION_OPPORTUNITY) -> ::windows::core::Result<()> + pub unsafe fn GetJustificationOpportunities<'a, P0>(&self, fontface: P0, fontemsize: f32, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, textlength: u32, glyphcount: u32, textstring: ::windows::core::PCWSTR, clustermap: *const u16, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, justificationopportunities: *mut DWRITE_JUSTIFICATION_OPPORTUNITY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, { (::windows::core::Interface::vtable(self).GetJustificationOpportunities)(::windows::core::Interface::as_raw(self), fontface.into().abi(), fontemsize, ::core::mem::transmute(scriptanalysis), ::core::mem::transmute(textlength), ::core::mem::transmute(glyphcount), ::core::mem::transmute(textstring), ::core::mem::transmute(clustermap), ::core::mem::transmute(glyphproperties), ::core::mem::transmute(justificationopportunities)).ok() } - pub unsafe fn JustifyGlyphAdvances(&self, linewidth: f32, glyphcount: u32, justificationopportunities: &DWRITE_JUSTIFICATION_OPPORTUNITY, glyphadvances: &f32, glyphoffsets: &DWRITE_GLYPH_OFFSET, justifiedglyphadvances: &mut f32, justifiedglyphoffsets: ::core::option::Option<&mut DWRITE_GLYPH_OFFSET>) -> ::windows::core::Result<()> { + pub unsafe fn JustifyGlyphAdvances(&self, linewidth: f32, glyphcount: u32, justificationopportunities: *const DWRITE_JUSTIFICATION_OPPORTUNITY, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, justifiedglyphadvances: *mut f32, justifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).JustifyGlyphAdvances)(::windows::core::Interface::as_raw(self), linewidth, ::core::mem::transmute(glyphcount), ::core::mem::transmute(justificationopportunities), ::core::mem::transmute(glyphadvances), ::core::mem::transmute(glyphoffsets), ::core::mem::transmute(justifiedglyphadvances), ::core::mem::transmute(justifiedglyphoffsets)).ok() } - pub unsafe fn GetJustifiedGlyphs<'a, P0>(&self, fontface: P0, fontemsize: f32, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, textlength: u32, glyphcount: u32, maxglyphcount: u32, clustermap: ::core::option::Option<&u16>, glyphindices: &u16, glyphadvances: &f32, justifiedglyphadvances: &f32, justifiedglyphoffsets: &DWRITE_GLYPH_OFFSET, glyphproperties: &DWRITE_SHAPING_GLYPH_PROPERTIES, actualglyphcount: &mut u32, modifiedclustermap: ::core::option::Option<&mut u16>, modifiedglyphindices: &mut u16, modifiedglyphadvances: &mut f32, modifiedglyphoffsets: &mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> + pub unsafe fn GetJustifiedGlyphs<'a, P0>(&self, fontface: P0, fontemsize: f32, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, textlength: u32, glyphcount: u32, maxglyphcount: u32, clustermap: *const u16, glyphindices: *const u16, glyphadvances: *const f32, justifiedglyphadvances: *const f32, justifiedglyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, actualglyphcount: &mut u32, modifiedclustermap: *mut u16, modifiedglyphindices: *mut u16, modifiedglyphadvances: *mut f32, modifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, { @@ -15498,7 +15498,7 @@ impl IDWriteTextAnalyzer2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGlyphs<'a, P0, P1, P2, P3, P4>(&self, textstring: ::windows::core::PCWSTR, textlength: u32, fontface: P0, issideways: P1, isrighttoleft: P2, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P3, numbersubstitution: P4, features: ::core::option::Option<&*const DWRITE_TYPOGRAPHIC_FEATURES>, featurerangelengths: ::core::option::Option<&u32>, featureranges: u32, maxglyphcount: u32, clustermap: &mut u16, textprops: &mut DWRITE_SHAPING_TEXT_PROPERTIES, glyphindices: &mut u16, glyphprops: &mut DWRITE_SHAPING_GLYPH_PROPERTIES, actualglyphcount: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetGlyphs<'a, P0, P1, P2, P3, P4>(&self, textstring: ::windows::core::PCWSTR, textlength: u32, fontface: P0, issideways: P1, isrighttoleft: P2, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P3, numbersubstitution: P4, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, maxglyphcount: u32, clustermap: *mut u16, textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES, glyphindices: *mut u16, glyphprops: *mut DWRITE_SHAPING_GLYPH_PROPERTIES, actualglyphcount: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, P1: ::std::convert::Into, @@ -15530,7 +15530,7 @@ impl IDWriteTextAnalyzer2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGlyphPlacements<'a, P0, P1, P2, P3>(&self, textstring: ::windows::core::PCWSTR, clustermap: &u16, textprops: &mut DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: &u16, glyphprops: &DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: P0, fontemsize: f32, issideways: P1, isrighttoleft: P2, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P3, features: ::core::option::Option<&*const DWRITE_TYPOGRAPHIC_FEATURES>, featurerangelengths: ::core::option::Option<&u32>, featureranges: u32, glyphadvances: &mut f32, glyphoffsets: &mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> + pub unsafe fn GetGlyphPlacements<'a, P0, P1, P2, P3>(&self, textstring: ::windows::core::PCWSTR, clustermap: *const u16, textprops: *mut DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: *const u16, glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: P0, fontemsize: f32, issideways: P1, isrighttoleft: P2, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P3, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, glyphadvances: *mut f32, glyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, P1: ::std::convert::Into, @@ -15562,7 +15562,7 @@ impl IDWriteTextAnalyzer2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGdiCompatibleGlyphPlacements<'a, P0, P1, P2, P3, P4>(&self, textstring: ::windows::core::PCWSTR, clustermap: &u16, textprops: &DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: &u16, glyphprops: &DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: P0, fontemsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P1, issideways: P2, isrighttoleft: P3, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P4, features: ::core::option::Option<&*const DWRITE_TYPOGRAPHIC_FEATURES>, featurerangelengths: ::core::option::Option<&u32>, featureranges: u32, glyphadvances: &mut f32, glyphoffsets: &mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> + pub unsafe fn GetGdiCompatibleGlyphPlacements<'a, P0, P1, P2, P3, P4>(&self, textstring: ::windows::core::PCWSTR, clustermap: *const u16, textprops: *const DWRITE_SHAPING_TEXT_PROPERTIES, textlength: u32, glyphindices: *const u16, glyphprops: *const DWRITE_SHAPING_GLYPH_PROPERTIES, glyphcount: u32, fontface: P0, fontemsize: f32, pixelsperdip: f32, transform: ::core::option::Option<&DWRITE_MATRIX>, usegdinatural: P1, issideways: P2, isrighttoleft: P3, scriptanalysis: &DWRITE_SCRIPT_ANALYSIS, localename: P4, features: *const *const DWRITE_TYPOGRAPHIC_FEATURES, featurerangelengths: *const u32, featureranges: u32, glyphadvances: *mut f32, glyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, P1: ::std::convert::Into, @@ -15596,8 +15596,8 @@ impl IDWriteTextAnalyzer2 { ) .ok() } - pub unsafe fn ApplyCharacterSpacing(&self, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, glyphcount: u32, clustermap: &[u16], glyphadvances: &f32, glyphoffsets: &DWRITE_GLYPH_OFFSET, glyphproperties: &DWRITE_SHAPING_GLYPH_PROPERTIES, modifiedglyphadvances: &mut f32, modifiedglyphoffsets: &mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.ApplyCharacterSpacing)(::windows::core::Interface::as_raw(self), leadingspacing, trailingspacing, minimumadvancewidth, clustermap.len() as _, ::core::mem::transmute(glyphcount), ::core::mem::transmute(::windows::core::as_ptr_or_null(clustermap)), ::core::mem::transmute(glyphadvances), ::core::mem::transmute(glyphoffsets), ::core::mem::transmute(glyphproperties), ::core::mem::transmute(modifiedglyphadvances), ::core::mem::transmute(modifiedglyphoffsets)).ok() + pub unsafe fn ApplyCharacterSpacing(&self, leadingspacing: f32, trailingspacing: f32, minimumadvancewidth: f32, glyphcount: u32, clustermap: &[u16], glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, modifiedglyphadvances: *mut f32, modifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.ApplyCharacterSpacing)(::windows::core::Interface::as_raw(self), leadingspacing, trailingspacing, minimumadvancewidth, clustermap.len() as _, ::core::mem::transmute(glyphcount), ::core::mem::transmute(clustermap.as_ptr()), ::core::mem::transmute(glyphadvances), ::core::mem::transmute(glyphoffsets), ::core::mem::transmute(glyphproperties), ::core::mem::transmute(modifiedglyphadvances), ::core::mem::transmute(modifiedglyphoffsets)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -15632,22 +15632,22 @@ impl IDWriteTextAnalyzer2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetTextComplexity<'a, P0>(&self, textstring: ::windows::core::PCWSTR, textlength: u32, fontface: P0, istextsimple: &mut super::super::Foundation::BOOL, textlengthread: &mut u32, glyphindices: ::core::option::Option<&mut u16>) -> ::windows::core::Result<()> + pub unsafe fn GetTextComplexity<'a, P0>(&self, textstring: ::windows::core::PCWSTR, textlength: u32, fontface: P0, istextsimple: &mut super::super::Foundation::BOOL, textlengthread: &mut u32, glyphindices: *mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, { (::windows::core::Interface::vtable(self).base__.GetTextComplexity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(textstring), ::core::mem::transmute(textlength), fontface.into().abi(), ::core::mem::transmute(istextsimple), ::core::mem::transmute(textlengthread), ::core::mem::transmute(glyphindices)).ok() } - pub unsafe fn GetJustificationOpportunities<'a, P0>(&self, fontface: P0, fontemsize: f32, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, textlength: u32, glyphcount: u32, textstring: ::windows::core::PCWSTR, clustermap: &u16, glyphproperties: &DWRITE_SHAPING_GLYPH_PROPERTIES, justificationopportunities: &mut DWRITE_JUSTIFICATION_OPPORTUNITY) -> ::windows::core::Result<()> + pub unsafe fn GetJustificationOpportunities<'a, P0>(&self, fontface: P0, fontemsize: f32, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, textlength: u32, glyphcount: u32, textstring: ::windows::core::PCWSTR, clustermap: *const u16, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, justificationopportunities: *mut DWRITE_JUSTIFICATION_OPPORTUNITY) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, { (::windows::core::Interface::vtable(self).base__.GetJustificationOpportunities)(::windows::core::Interface::as_raw(self), fontface.into().abi(), fontemsize, ::core::mem::transmute(scriptanalysis), ::core::mem::transmute(textlength), ::core::mem::transmute(glyphcount), ::core::mem::transmute(textstring), ::core::mem::transmute(clustermap), ::core::mem::transmute(glyphproperties), ::core::mem::transmute(justificationopportunities)).ok() } - pub unsafe fn JustifyGlyphAdvances(&self, linewidth: f32, glyphcount: u32, justificationopportunities: &DWRITE_JUSTIFICATION_OPPORTUNITY, glyphadvances: &f32, glyphoffsets: &DWRITE_GLYPH_OFFSET, justifiedglyphadvances: &mut f32, justifiedglyphoffsets: ::core::option::Option<&mut DWRITE_GLYPH_OFFSET>) -> ::windows::core::Result<()> { + pub unsafe fn JustifyGlyphAdvances(&self, linewidth: f32, glyphcount: u32, justificationopportunities: *const DWRITE_JUSTIFICATION_OPPORTUNITY, glyphadvances: *const f32, glyphoffsets: *const DWRITE_GLYPH_OFFSET, justifiedglyphadvances: *mut f32, justifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.JustifyGlyphAdvances)(::windows::core::Interface::as_raw(self), linewidth, ::core::mem::transmute(glyphcount), ::core::mem::transmute(justificationopportunities), ::core::mem::transmute(glyphadvances), ::core::mem::transmute(glyphoffsets), ::core::mem::transmute(justifiedglyphadvances), ::core::mem::transmute(justifiedglyphoffsets)).ok() } - pub unsafe fn GetJustifiedGlyphs<'a, P0>(&self, fontface: P0, fontemsize: f32, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, textlength: u32, glyphcount: u32, maxglyphcount: u32, clustermap: ::core::option::Option<&u16>, glyphindices: &u16, glyphadvances: &f32, justifiedglyphadvances: &f32, justifiedglyphoffsets: &DWRITE_GLYPH_OFFSET, glyphproperties: &DWRITE_SHAPING_GLYPH_PROPERTIES, actualglyphcount: &mut u32, modifiedclustermap: ::core::option::Option<&mut u16>, modifiedglyphindices: &mut u16, modifiedglyphadvances: &mut f32, modifiedglyphoffsets: &mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> + pub unsafe fn GetJustifiedGlyphs<'a, P0>(&self, fontface: P0, fontemsize: f32, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, textlength: u32, glyphcount: u32, maxglyphcount: u32, clustermap: *const u16, glyphindices: *const u16, glyphadvances: *const f32, justifiedglyphadvances: *const f32, justifiedglyphoffsets: *const DWRITE_GLYPH_OFFSET, glyphproperties: *const DWRITE_SHAPING_GLYPH_PROPERTIES, actualglyphcount: &mut u32, modifiedclustermap: *mut u16, modifiedglyphindices: *mut u16, modifiedglyphadvances: *mut f32, modifiedglyphoffsets: *mut DWRITE_GLYPH_OFFSET) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, { @@ -15687,9 +15687,9 @@ impl IDWriteTextAnalyzer2 { P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetTypographicFeatures)(::windows::core::Interface::as_raw(self), fontface.into().abi(), ::core::mem::transmute(scriptanalysis), localename.into(), tags.len() as _, ::core::mem::transmute(actualtagcount), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(tags))).ok() + (::windows::core::Interface::vtable(self).GetTypographicFeatures)(::windows::core::Interface::as_raw(self), fontface.into().abi(), ::core::mem::transmute(scriptanalysis), localename.into(), tags.len() as _, ::core::mem::transmute(actualtagcount), ::core::mem::transmute(tags.as_ptr())).ok() } - pub unsafe fn CheckTypographicFeature<'a, P0, P1>(&self, fontface: P0, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, localename: P1, featuretag: DWRITE_FONT_FEATURE_TAG, glyphcount: u32, glyphindices: &u16, featureapplies: &mut u8) -> ::windows::core::Result<()> + pub unsafe fn CheckTypographicFeature<'a, P0, P1>(&self, fontface: P0, scriptanalysis: DWRITE_SCRIPT_ANALYSIS, localename: P1, featuretag: DWRITE_FONT_FEATURE_TAG, glyphcount: u32, glyphindices: *const u16, featureapplies: *mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDWriteFontFace>>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -15836,7 +15836,7 @@ impl IDWriteTextFormat { (::windows::core::Interface::vtable(self).GetFontFamilyNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetFontFamilyName(&self, fontfamilyname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontfamilyname)), fontfamilyname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfamilyname.as_ptr()), fontfamilyname.len() as _).ok() } pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT { (::windows::core::Interface::vtable(self).GetFontWeight)(::windows::core::Interface::as_raw(self)) @@ -15854,7 +15854,7 @@ impl IDWriteTextFormat { (::windows::core::Interface::vtable(self).GetLocaleNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetLocaleName(&self, localename: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(localename)), localename.len() as _).ok() + (::windows::core::Interface::vtable(self).GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(localename.as_ptr()), localename.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -15985,7 +15985,7 @@ impl IDWriteTextFormat1 { (::windows::core::Interface::vtable(self).base__.GetFontFamilyNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetFontFamilyName(&self, fontfamilyname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontfamilyname)), fontfamilyname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfamilyname.as_ptr()), fontfamilyname.len() as _).ok() } pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT { (::windows::core::Interface::vtable(self).base__.GetFontWeight)(::windows::core::Interface::as_raw(self)) @@ -16003,7 +16003,7 @@ impl IDWriteTextFormat1 { (::windows::core::Interface::vtable(self).base__.GetLocaleNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetLocaleName(&self, localename: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(localename)), localename.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(localename.as_ptr()), localename.len() as _).ok() } pub unsafe fn SetVerticalGlyphOrientation(&self, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetVerticalGlyphOrientation)(::windows::core::Interface::as_raw(self), glyphorientation).ok() @@ -16173,7 +16173,7 @@ impl IDWriteTextFormat2 { (::windows::core::Interface::vtable(self).base__.base__.GetFontFamilyNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetFontFamilyName(&self, fontfamilyname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontfamilyname)), fontfamilyname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfamilyname.as_ptr()), fontfamilyname.len() as _).ok() } pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT { (::windows::core::Interface::vtable(self).base__.base__.GetFontWeight)(::windows::core::Interface::as_raw(self)) @@ -16191,7 +16191,7 @@ impl IDWriteTextFormat2 { (::windows::core::Interface::vtable(self).base__.base__.GetLocaleNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetLocaleName(&self, localename: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(localename)), localename.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(localename.as_ptr()), localename.len() as _).ok() } pub unsafe fn SetVerticalGlyphOrientation(&self, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SetVerticalGlyphOrientation)(::windows::core::Interface::as_raw(self), glyphorientation).ok() @@ -16371,7 +16371,7 @@ impl IDWriteTextFormat3 { (::windows::core::Interface::vtable(self).base__.base__.base__.GetFontFamilyNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetFontFamilyName(&self, fontfamilyname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontfamilyname)), fontfamilyname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfamilyname.as_ptr()), fontfamilyname.len() as _).ok() } pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT { (::windows::core::Interface::vtable(self).base__.base__.base__.GetFontWeight)(::windows::core::Interface::as_raw(self)) @@ -16389,7 +16389,7 @@ impl IDWriteTextFormat3 { (::windows::core::Interface::vtable(self).base__.base__.base__.GetLocaleNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetLocaleName(&self, localename: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(localename)), localename.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(localename.as_ptr()), localename.len() as _).ok() } pub unsafe fn SetVerticalGlyphOrientation(&self, glyphorientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.SetVerticalGlyphOrientation)(::windows::core::Interface::as_raw(self), glyphorientation).ok() @@ -16434,13 +16434,13 @@ impl IDWriteTextFormat3 { (::windows::core::Interface::vtable(self).base__.GetLineSpacing2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetFontAxisValues(&self, fontaxisvalues: &[DWRITE_FONT_AXIS_VALUE]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetFontAxisValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _).ok() + (::windows::core::Interface::vtable(self).SetFontAxisValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _).ok() } pub unsafe fn GetFontAxisValueCount(&self) -> u32 { (::windows::core::Interface::vtable(self).GetFontAxisValueCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetFontAxisValues(&self, fontaxisvalues: &mut [DWRITE_FONT_AXIS_VALUE]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFontAxisValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _).ok() + (::windows::core::Interface::vtable(self).GetFontAxisValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _).ok() } pub unsafe fn GetAutomaticFontAxes(&self) -> DWRITE_AUTOMATIC_FONT_AXES { (::windows::core::Interface::vtable(self).GetAutomaticFontAxes)(::windows::core::Interface::as_raw(self)) @@ -16602,7 +16602,7 @@ impl IDWriteTextLayout { (::windows::core::Interface::vtable(self).base__.GetFontFamilyNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetFontFamilyName(&self, fontfamilyname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontfamilyname)), fontfamilyname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfamilyname.as_ptr()), fontfamilyname.len() as _).ok() } pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT { (::windows::core::Interface::vtable(self).base__.GetFontWeight)(::windows::core::Interface::as_raw(self)) @@ -16620,7 +16620,7 @@ impl IDWriteTextLayout { (::windows::core::Interface::vtable(self).base__.GetLocaleNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetLocaleName(&self, localename: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(localename)), localename.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(localename.as_ptr()), localename.len() as _).ok() } pub unsafe fn SetMaxWidth(&self, maxwidth: f32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetMaxWidth)(::windows::core::Interface::as_raw(self), maxwidth).ok() @@ -16705,7 +16705,7 @@ impl IDWriteTextLayout { (::windows::core::Interface::vtable(self).GetFontFamilyNameLength2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(namelength), ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetFontFamilyName2(&self, currentposition: u32, fontfamilyname: &mut [u16], textrange: ::core::option::Option<&mut DWRITE_TEXT_RANGE>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFontFamilyName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontfamilyname)), fontfamilyname.len() as _, ::core::mem::transmute(textrange)).ok() + (::windows::core::Interface::vtable(self).GetFontFamilyName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(fontfamilyname.as_ptr()), fontfamilyname.len() as _, ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetFontWeight2(&self, currentposition: u32, fontweight: &mut DWRITE_FONT_WEIGHT, textrange: ::core::option::Option<&mut DWRITE_TEXT_RANGE>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetFontWeight2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(fontweight), ::core::mem::transmute(textrange)).ok() @@ -16742,7 +16742,7 @@ impl IDWriteTextLayout { (::windows::core::Interface::vtable(self).GetLocaleNameLength2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(namelength), ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetLocaleName2(&self, currentposition: u32, localename: &mut [u16], textrange: ::core::option::Option<&mut DWRITE_TEXT_RANGE>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLocaleName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(localename)), localename.len() as _, ::core::mem::transmute(textrange)).ok() + (::windows::core::Interface::vtable(self).GetLocaleName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(localename.as_ptr()), localename.len() as _, ::core::mem::transmute(textrange)).ok() } pub unsafe fn Draw<'a, P0>(&self, clientdrawingcontext: *const ::core::ffi::c_void, renderer: P0, originx: f32, originy: f32) -> ::windows::core::Result<()> where @@ -16752,8 +16752,8 @@ impl IDWriteTextLayout { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLineMetrics(&self, linemetrics: &mut [DWRITE_LINE_METRICS], actuallinecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLineMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(linemetrics)), linemetrics.len() as _, ::core::mem::transmute(actuallinecount)).ok() + pub unsafe fn GetLineMetrics(&self, linemetrics: ::core::option::Option<&mut [DWRITE_LINE_METRICS]>, actuallinecount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLineMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(linemetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), linemetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actuallinecount)).ok() } pub unsafe fn GetMetrics(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -16763,8 +16763,8 @@ impl IDWriteTextLayout { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetOverhangMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetClusterMetrics(&self, clustermetrics: &mut [DWRITE_CLUSTER_METRICS], actualclustercount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetClusterMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(clustermetrics)), clustermetrics.len() as _, ::core::mem::transmute(actualclustercount)).ok() + pub unsafe fn GetClusterMetrics(&self, clustermetrics: ::core::option::Option<&mut [DWRITE_CLUSTER_METRICS]>, actualclustercount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetClusterMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(clustermetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), clustermetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualclustercount)).ok() } pub unsafe fn DetermineMinWidth(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -16785,8 +16785,8 @@ impl IDWriteTextLayout { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: &mut [DWRITE_HIT_TEST_METRICS], actualhittestmetricscount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).HitTestTextRange)(::windows::core::Interface::as_raw(self), textposition, textlength, originx, originy, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(hittestmetrics)), hittestmetrics.len() as _, ::core::mem::transmute(actualhittestmetricscount)).ok() + pub unsafe fn HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: ::core::option::Option<&mut [DWRITE_HIT_TEST_METRICS]>, actualhittestmetricscount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).HitTestTextRange)(::windows::core::Interface::as_raw(self), textposition, textlength, originx, originy, ::core::mem::transmute(hittestmetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), hittestmetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualhittestmetricscount)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -16970,7 +16970,7 @@ impl IDWriteTextLayout1 { (::windows::core::Interface::vtable(self).base__.base__.GetFontFamilyNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetFontFamilyName(&self, fontfamilyname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontfamilyname)), fontfamilyname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfamilyname.as_ptr()), fontfamilyname.len() as _).ok() } pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT { (::windows::core::Interface::vtable(self).base__.base__.GetFontWeight)(::windows::core::Interface::as_raw(self)) @@ -16988,7 +16988,7 @@ impl IDWriteTextLayout1 { (::windows::core::Interface::vtable(self).base__.base__.GetLocaleNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetLocaleName(&self, localename: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(localename)), localename.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(localename.as_ptr()), localename.len() as _).ok() } pub unsafe fn SetMaxWidth(&self, maxwidth: f32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SetMaxWidth)(::windows::core::Interface::as_raw(self), maxwidth).ok() @@ -17073,7 +17073,7 @@ impl IDWriteTextLayout1 { (::windows::core::Interface::vtable(self).base__.GetFontFamilyNameLength2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(namelength), ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetFontFamilyName2(&self, currentposition: u32, fontfamilyname: &mut [u16], textrange: ::core::option::Option<&mut DWRITE_TEXT_RANGE>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetFontFamilyName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontfamilyname)), fontfamilyname.len() as _, ::core::mem::transmute(textrange)).ok() + (::windows::core::Interface::vtable(self).base__.GetFontFamilyName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(fontfamilyname.as_ptr()), fontfamilyname.len() as _, ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetFontWeight2(&self, currentposition: u32, fontweight: &mut DWRITE_FONT_WEIGHT, textrange: ::core::option::Option<&mut DWRITE_TEXT_RANGE>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetFontWeight2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(fontweight), ::core::mem::transmute(textrange)).ok() @@ -17110,7 +17110,7 @@ impl IDWriteTextLayout1 { (::windows::core::Interface::vtable(self).base__.GetLocaleNameLength2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(namelength), ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetLocaleName2(&self, currentposition: u32, localename: &mut [u16], textrange: ::core::option::Option<&mut DWRITE_TEXT_RANGE>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetLocaleName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(localename)), localename.len() as _, ::core::mem::transmute(textrange)).ok() + (::windows::core::Interface::vtable(self).base__.GetLocaleName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(localename.as_ptr()), localename.len() as _, ::core::mem::transmute(textrange)).ok() } pub unsafe fn Draw<'a, P0>(&self, clientdrawingcontext: *const ::core::ffi::c_void, renderer: P0, originx: f32, originy: f32) -> ::windows::core::Result<()> where @@ -17120,8 +17120,8 @@ impl IDWriteTextLayout1 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLineMetrics(&self, linemetrics: &mut [DWRITE_LINE_METRICS], actuallinecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetLineMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(linemetrics)), linemetrics.len() as _, ::core::mem::transmute(actuallinecount)).ok() + pub unsafe fn GetLineMetrics(&self, linemetrics: ::core::option::Option<&mut [DWRITE_LINE_METRICS]>, actuallinecount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetLineMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(linemetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), linemetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actuallinecount)).ok() } pub unsafe fn GetMetrics(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -17131,8 +17131,8 @@ impl IDWriteTextLayout1 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetOverhangMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetClusterMetrics(&self, clustermetrics: &mut [DWRITE_CLUSTER_METRICS], actualclustercount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetClusterMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(clustermetrics)), clustermetrics.len() as _, ::core::mem::transmute(actualclustercount)).ok() + pub unsafe fn GetClusterMetrics(&self, clustermetrics: ::core::option::Option<&mut [DWRITE_CLUSTER_METRICS]>, actualclustercount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetClusterMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(clustermetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), clustermetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualclustercount)).ok() } pub unsafe fn DetermineMinWidth(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -17153,8 +17153,8 @@ impl IDWriteTextLayout1 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: &mut [DWRITE_HIT_TEST_METRICS], actualhittestmetricscount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.HitTestTextRange)(::windows::core::Interface::as_raw(self), textposition, textlength, originx, originy, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(hittestmetrics)), hittestmetrics.len() as _, ::core::mem::transmute(actualhittestmetricscount)).ok() + pub unsafe fn HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: ::core::option::Option<&mut [DWRITE_HIT_TEST_METRICS]>, actualhittestmetricscount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.HitTestTextRange)(::windows::core::Interface::as_raw(self), textposition, textlength, originx, originy, ::core::mem::transmute(hittestmetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), hittestmetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualhittestmetricscount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -17319,7 +17319,7 @@ impl IDWriteTextLayout2 { (::windows::core::Interface::vtable(self).base__.base__.base__.GetFontFamilyNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetFontFamilyName(&self, fontfamilyname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontfamilyname)), fontfamilyname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfamilyname.as_ptr()), fontfamilyname.len() as _).ok() } pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT { (::windows::core::Interface::vtable(self).base__.base__.base__.GetFontWeight)(::windows::core::Interface::as_raw(self)) @@ -17337,7 +17337,7 @@ impl IDWriteTextLayout2 { (::windows::core::Interface::vtable(self).base__.base__.base__.GetLocaleNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetLocaleName(&self, localename: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(localename)), localename.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(localename.as_ptr()), localename.len() as _).ok() } pub unsafe fn SetMaxWidth(&self, maxwidth: f32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.SetMaxWidth)(::windows::core::Interface::as_raw(self), maxwidth).ok() @@ -17422,7 +17422,7 @@ impl IDWriteTextLayout2 { (::windows::core::Interface::vtable(self).base__.base__.GetFontFamilyNameLength2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(namelength), ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetFontFamilyName2(&self, currentposition: u32, fontfamilyname: &mut [u16], textrange: ::core::option::Option<&mut DWRITE_TEXT_RANGE>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetFontFamilyName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontfamilyname)), fontfamilyname.len() as _, ::core::mem::transmute(textrange)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetFontFamilyName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(fontfamilyname.as_ptr()), fontfamilyname.len() as _, ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetFontWeight2(&self, currentposition: u32, fontweight: &mut DWRITE_FONT_WEIGHT, textrange: ::core::option::Option<&mut DWRITE_TEXT_RANGE>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetFontWeight2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(fontweight), ::core::mem::transmute(textrange)).ok() @@ -17459,7 +17459,7 @@ impl IDWriteTextLayout2 { (::windows::core::Interface::vtable(self).base__.base__.GetLocaleNameLength2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(namelength), ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetLocaleName2(&self, currentposition: u32, localename: &mut [u16], textrange: ::core::option::Option<&mut DWRITE_TEXT_RANGE>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetLocaleName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(localename)), localename.len() as _, ::core::mem::transmute(textrange)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetLocaleName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(localename.as_ptr()), localename.len() as _, ::core::mem::transmute(textrange)).ok() } pub unsafe fn Draw<'a, P0>(&self, clientdrawingcontext: *const ::core::ffi::c_void, renderer: P0, originx: f32, originy: f32) -> ::windows::core::Result<()> where @@ -17469,8 +17469,8 @@ impl IDWriteTextLayout2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLineMetrics(&self, linemetrics: &mut [DWRITE_LINE_METRICS], actuallinecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetLineMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(linemetrics)), linemetrics.len() as _, ::core::mem::transmute(actuallinecount)).ok() + pub unsafe fn GetLineMetrics(&self, linemetrics: ::core::option::Option<&mut [DWRITE_LINE_METRICS]>, actuallinecount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.GetLineMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(linemetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), linemetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actuallinecount)).ok() } pub unsafe fn GetMetrics(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -17480,8 +17480,8 @@ impl IDWriteTextLayout2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.GetOverhangMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetClusterMetrics(&self, clustermetrics: &mut [DWRITE_CLUSTER_METRICS], actualclustercount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetClusterMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(clustermetrics)), clustermetrics.len() as _, ::core::mem::transmute(actualclustercount)).ok() + pub unsafe fn GetClusterMetrics(&self, clustermetrics: ::core::option::Option<&mut [DWRITE_CLUSTER_METRICS]>, actualclustercount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.GetClusterMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(clustermetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), clustermetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualclustercount)).ok() } pub unsafe fn DetermineMinWidth(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -17502,8 +17502,8 @@ impl IDWriteTextLayout2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: &mut [DWRITE_HIT_TEST_METRICS], actualhittestmetricscount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.HitTestTextRange)(::windows::core::Interface::as_raw(self), textposition, textlength, originx, originy, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(hittestmetrics)), hittestmetrics.len() as _, ::core::mem::transmute(actualhittestmetricscount)).ok() + pub unsafe fn HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: ::core::option::Option<&mut [DWRITE_HIT_TEST_METRICS]>, actualhittestmetricscount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.HitTestTextRange)(::windows::core::Interface::as_raw(self), textposition, textlength, originx, originy, ::core::mem::transmute(hittestmetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), hittestmetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualhittestmetricscount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -17727,7 +17727,7 @@ impl IDWriteTextLayout3 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetFontFamilyNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetFontFamilyName(&self, fontfamilyname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontfamilyname)), fontfamilyname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfamilyname.as_ptr()), fontfamilyname.len() as _).ok() } pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetFontWeight)(::windows::core::Interface::as_raw(self)) @@ -17745,7 +17745,7 @@ impl IDWriteTextLayout3 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetLocaleNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetLocaleName(&self, localename: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(localename)), localename.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(localename.as_ptr()), localename.len() as _).ok() } pub unsafe fn SetMaxWidth(&self, maxwidth: f32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.SetMaxWidth)(::windows::core::Interface::as_raw(self), maxwidth).ok() @@ -17830,7 +17830,7 @@ impl IDWriteTextLayout3 { (::windows::core::Interface::vtable(self).base__.base__.base__.GetFontFamilyNameLength2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(namelength), ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetFontFamilyName2(&self, currentposition: u32, fontfamilyname: &mut [u16], textrange: ::core::option::Option<&mut DWRITE_TEXT_RANGE>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetFontFamilyName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontfamilyname)), fontfamilyname.len() as _, ::core::mem::transmute(textrange)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.GetFontFamilyName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(fontfamilyname.as_ptr()), fontfamilyname.len() as _, ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetFontWeight2(&self, currentposition: u32, fontweight: &mut DWRITE_FONT_WEIGHT, textrange: ::core::option::Option<&mut DWRITE_TEXT_RANGE>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetFontWeight2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(fontweight), ::core::mem::transmute(textrange)).ok() @@ -17867,7 +17867,7 @@ impl IDWriteTextLayout3 { (::windows::core::Interface::vtable(self).base__.base__.base__.GetLocaleNameLength2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(namelength), ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetLocaleName2(&self, currentposition: u32, localename: &mut [u16], textrange: ::core::option::Option<&mut DWRITE_TEXT_RANGE>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetLocaleName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(localename)), localename.len() as _, ::core::mem::transmute(textrange)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.GetLocaleName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(localename.as_ptr()), localename.len() as _, ::core::mem::transmute(textrange)).ok() } pub unsafe fn Draw<'a, P0>(&self, clientdrawingcontext: *const ::core::ffi::c_void, renderer: P0, originx: f32, originy: f32) -> ::windows::core::Result<()> where @@ -17877,8 +17877,8 @@ impl IDWriteTextLayout3 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLineMetrics(&self, linemetrics: &mut [DWRITE_LINE_METRICS], actuallinecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetLineMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(linemetrics)), linemetrics.len() as _, ::core::mem::transmute(actuallinecount)).ok() + pub unsafe fn GetLineMetrics(&self, linemetrics: ::core::option::Option<&mut [DWRITE_LINE_METRICS]>, actuallinecount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.GetLineMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(linemetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), linemetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actuallinecount)).ok() } pub unsafe fn GetMetrics(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -17888,8 +17888,8 @@ impl IDWriteTextLayout3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.GetOverhangMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetClusterMetrics(&self, clustermetrics: &mut [DWRITE_CLUSTER_METRICS], actualclustercount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetClusterMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(clustermetrics)), clustermetrics.len() as _, ::core::mem::transmute(actualclustercount)).ok() + pub unsafe fn GetClusterMetrics(&self, clustermetrics: ::core::option::Option<&mut [DWRITE_CLUSTER_METRICS]>, actualclustercount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.GetClusterMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(clustermetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), clustermetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualclustercount)).ok() } pub unsafe fn DetermineMinWidth(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -17910,8 +17910,8 @@ impl IDWriteTextLayout3 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: &mut [DWRITE_HIT_TEST_METRICS], actualhittestmetricscount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.HitTestTextRange)(::windows::core::Interface::as_raw(self), textposition, textlength, originx, originy, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(hittestmetrics)), hittestmetrics.len() as _, ::core::mem::transmute(actualhittestmetricscount)).ok() + pub unsafe fn HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: ::core::option::Option<&mut [DWRITE_HIT_TEST_METRICS]>, actualhittestmetricscount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.HitTestTextRange)(::windows::core::Interface::as_raw(self), textposition, textlength, originx, originy, ::core::mem::transmute(hittestmetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), hittestmetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualhittestmetricscount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -17983,8 +17983,8 @@ impl IDWriteTextLayout3 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLineMetrics2(&self, linemetrics: &mut [DWRITE_LINE_METRICS1], actuallinecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLineMetrics2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(linemetrics)), linemetrics.len() as _, ::core::mem::transmute(actuallinecount)).ok() + pub unsafe fn GetLineMetrics2(&self, linemetrics: ::core::option::Option<&mut [DWRITE_LINE_METRICS1]>, actuallinecount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLineMetrics2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(linemetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), linemetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actuallinecount)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -18157,7 +18157,7 @@ impl IDWriteTextLayout4 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetFontFamilyNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetFontFamilyName(&self, fontfamilyname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontfamilyname)), fontfamilyname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetFontFamilyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontfamilyname.as_ptr()), fontfamilyname.len() as _).ok() } pub unsafe fn GetFontWeight(&self) -> DWRITE_FONT_WEIGHT { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetFontWeight)(::windows::core::Interface::as_raw(self)) @@ -18175,7 +18175,7 @@ impl IDWriteTextLayout4 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetLocaleNameLength)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetLocaleName(&self, localename: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(localename)), localename.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetLocaleName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(localename.as_ptr()), localename.len() as _).ok() } pub unsafe fn SetMaxWidth(&self, maxwidth: f32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetMaxWidth)(::windows::core::Interface::as_raw(self), maxwidth).ok() @@ -18260,7 +18260,7 @@ impl IDWriteTextLayout4 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetFontFamilyNameLength2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(namelength), ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetFontFamilyName2(&self, currentposition: u32, fontfamilyname: &mut [u16], textrange: ::core::option::Option<&mut DWRITE_TEXT_RANGE>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetFontFamilyName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontfamilyname)), fontfamilyname.len() as _, ::core::mem::transmute(textrange)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetFontFamilyName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(fontfamilyname.as_ptr()), fontfamilyname.len() as _, ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetFontWeight2(&self, currentposition: u32, fontweight: &mut DWRITE_FONT_WEIGHT, textrange: ::core::option::Option<&mut DWRITE_TEXT_RANGE>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetFontWeight2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(fontweight), ::core::mem::transmute(textrange)).ok() @@ -18297,7 +18297,7 @@ impl IDWriteTextLayout4 { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetLocaleNameLength2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(namelength), ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetLocaleName2(&self, currentposition: u32, localename: &mut [u16], textrange: ::core::option::Option<&mut DWRITE_TEXT_RANGE>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetLocaleName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(localename)), localename.len() as _, ::core::mem::transmute(textrange)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetLocaleName2)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(localename.as_ptr()), localename.len() as _, ::core::mem::transmute(textrange)).ok() } pub unsafe fn Draw<'a, P0>(&self, clientdrawingcontext: *const ::core::ffi::c_void, renderer: P0, originx: f32, originy: f32) -> ::windows::core::Result<()> where @@ -18307,8 +18307,8 @@ impl IDWriteTextLayout4 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLineMetrics(&self, linemetrics: &mut [DWRITE_LINE_METRICS], actuallinecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetLineMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(linemetrics)), linemetrics.len() as _, ::core::mem::transmute(actuallinecount)).ok() + pub unsafe fn GetLineMetrics(&self, linemetrics: ::core::option::Option<&mut [DWRITE_LINE_METRICS]>, actuallinecount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetLineMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(linemetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), linemetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actuallinecount)).ok() } pub unsafe fn GetMetrics(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -18318,8 +18318,8 @@ impl IDWriteTextLayout4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetOverhangMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetClusterMetrics(&self, clustermetrics: &mut [DWRITE_CLUSTER_METRICS], actualclustercount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetClusterMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(clustermetrics)), clustermetrics.len() as _, ::core::mem::transmute(actualclustercount)).ok() + pub unsafe fn GetClusterMetrics(&self, clustermetrics: ::core::option::Option<&mut [DWRITE_CLUSTER_METRICS]>, actualclustercount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetClusterMetrics)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(clustermetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), clustermetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualclustercount)).ok() } pub unsafe fn DetermineMinWidth(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -18340,8 +18340,8 @@ impl IDWriteTextLayout4 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: &mut [DWRITE_HIT_TEST_METRICS], actualhittestmetricscount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HitTestTextRange)(::windows::core::Interface::as_raw(self), textposition, textlength, originx, originy, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(hittestmetrics)), hittestmetrics.len() as _, ::core::mem::transmute(actualhittestmetricscount)).ok() + pub unsafe fn HitTestTextRange(&self, textposition: u32, textlength: u32, originx: f32, originy: f32, hittestmetrics: ::core::option::Option<&mut [DWRITE_HIT_TEST_METRICS]>, actualhittestmetricscount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.HitTestTextRange)(::windows::core::Interface::as_raw(self), textposition, textlength, originx, originy, ::core::mem::transmute(hittestmetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), hittestmetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualhittestmetricscount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -18413,17 +18413,17 @@ impl IDWriteTextLayout4 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLineMetrics2(&self, linemetrics: &mut [DWRITE_LINE_METRICS1], actuallinecount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetLineMetrics2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(linemetrics)), linemetrics.len() as _, ::core::mem::transmute(actuallinecount)).ok() + pub unsafe fn GetLineMetrics2(&self, linemetrics: ::core::option::Option<&mut [DWRITE_LINE_METRICS1]>, actuallinecount: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetLineMetrics2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(linemetrics.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), linemetrics.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actuallinecount)).ok() } pub unsafe fn SetFontAxisValues(&self, fontaxisvalues: &[DWRITE_FONT_AXIS_VALUE], textrange: DWRITE_TEXT_RANGE) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetFontAxisValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _, ::core::mem::transmute(textrange)).ok() + (::windows::core::Interface::vtable(self).SetFontAxisValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _, ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetFontAxisValueCount(&self, currentposition: u32) -> u32 { (::windows::core::Interface::vtable(self).GetFontAxisValueCount)(::windows::core::Interface::as_raw(self), currentposition) } pub unsafe fn GetFontAxisValues(&self, currentposition: u32, fontaxisvalues: &mut [DWRITE_FONT_AXIS_VALUE], textrange: ::core::option::Option<&mut DWRITE_TEXT_RANGE>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFontAxisValues)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fontaxisvalues)), fontaxisvalues.len() as _, ::core::mem::transmute(textrange)).ok() + (::windows::core::Interface::vtable(self).GetFontAxisValues)(::windows::core::Interface::as_raw(self), currentposition, ::core::mem::transmute(fontaxisvalues.as_ptr()), fontaxisvalues.len() as _, ::core::mem::transmute(textrange)).ok() } pub unsafe fn GetAutomaticFontAxes(&self) -> DWRITE_AUTOMATIC_FONT_AXES { (::windows::core::Interface::vtable(self).GetAutomaticFontAxes)(::windows::core::Interface::as_raw(self)) diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/Dwm/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/Dwm/mod.rs index 552dc9e93d..adefb54e03 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Dwm/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Dwm/mod.rs @@ -734,7 +734,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Dwm\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn DwmGetWindowAttribute<'a, P0>(hwnd: P0, dwattribute: DWMWINDOWATTRIBUTE, pvattribute: *mut ::core::ffi::c_void, cbattribute: u32) -> ::windows::core::Result<()> +pub unsafe fn DwmGetWindowAttribute<'a, P0>(hwnd: P0, dwattribute: DWMWINDOWATTRIBUTE, pvattribute: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -742,7 +742,7 @@ where extern "system" { fn DwmGetWindowAttribute(hwnd: super::super::Foundation::HWND, dwattribute: DWMWINDOWATTRIBUTE, pvattribute: *mut ::core::ffi::c_void, cbattribute: u32) -> ::windows::core::HRESULT; } - DwmGetWindowAttribute(hwnd.into(), dwattribute, ::core::mem::transmute(pvattribute), cbattribute).ok() + DwmGetWindowAttribute(hwnd.into(), dwattribute, ::core::mem::transmute(pvattribute.as_ptr()), pvattribute.len() as _).ok() } #[doc = "*Required features: `\"Win32_Graphics_Dwm\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -811,7 +811,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Dwm\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn DwmRenderGesture(gt: GESTURE_TYPE, ccontacts: u32, pdwpointerid: &u32, ppoints: &super::super::Foundation::POINT) -> ::windows::core::Result<()> { +pub unsafe fn DwmRenderGesture(gt: GESTURE_TYPE, ccontacts: u32, pdwpointerid: *const u32, ppoints: *const super::super::Foundation::POINT) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn DwmRenderGesture(gt: GESTURE_TYPE, ccontacts: u32, pdwpointerid: *const u32, ppoints: *const super::super::Foundation::POINT) -> ::windows::core::HRESULT; @@ -875,7 +875,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Dwm\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn DwmSetWindowAttribute<'a, P0>(hwnd: P0, dwattribute: DWMWINDOWATTRIBUTE, pvattribute: *const ::core::ffi::c_void, cbattribute: u32) -> ::windows::core::Result<()> +pub unsafe fn DwmSetWindowAttribute<'a, P0>(hwnd: P0, dwattribute: DWMWINDOWATTRIBUTE, pvattribute: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -883,7 +883,7 @@ where extern "system" { fn DwmSetWindowAttribute(hwnd: super::super::Foundation::HWND, dwattribute: DWMWINDOWATTRIBUTE, pvattribute: *const ::core::ffi::c_void, cbattribute: u32) -> ::windows::core::HRESULT; } - DwmSetWindowAttribute(hwnd.into(), dwattribute, ::core::mem::transmute(pvattribute), cbattribute).ok() + DwmSetWindowAttribute(hwnd.into(), dwattribute, ::core::mem::transmute(pvattribute.as_ptr()), pvattribute.len() as _).ok() } #[doc = "*Required features: `\"Win32_Graphics_Dwm\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/Dxgi/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/Dxgi/mod.rs index 9494c6bda0..83351f73d0 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Dxgi/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Dxgi/mod.rs @@ -3095,8 +3095,8 @@ pub const DXGI_USAGE_UNORDERED_ACCESS: u32 = 1024u32; #[repr(transparent)] pub struct IDXGIAdapter(::windows::core::IUnknown); impl IDXGIAdapter { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -3194,8 +3194,8 @@ pub struct IDXGIAdapter_Vtbl { #[repr(transparent)] pub struct IDXGIAdapter1(::windows::core::IUnknown); impl IDXGIAdapter1 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -3312,8 +3312,8 @@ pub struct IDXGIAdapter1_Vtbl { #[repr(transparent)] pub struct IDXGIAdapter2(::windows::core::IUnknown); impl IDXGIAdapter2 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -3451,8 +3451,8 @@ pub struct IDXGIAdapter2_Vtbl { #[repr(transparent)] pub struct IDXGIAdapter3(::windows::core::IUnknown); impl IDXGIAdapter3 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -3644,8 +3644,8 @@ pub struct IDXGIAdapter3_Vtbl { #[repr(transparent)] pub struct IDXGIAdapter4(::windows::core::IUnknown); impl IDXGIAdapter4 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -4082,8 +4082,8 @@ pub struct IDXGIDecodeSwapChain_Vtbl { #[repr(transparent)] pub struct IDXGIDevice(::windows::core::IUnknown); impl IDXGIDevice { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -4108,9 +4108,9 @@ impl IDXGIDevice { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] pub unsafe fn CreateSurface(&self, pdesc: &DXGI_SURFACE_DESC, usage: u32, psharedresource: ::core::option::Option<&DXGI_SHARED_RESOURCE>, ppsurface: &mut [::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CreateSurface)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ppsurface.len() as _, usage, ::core::mem::transmute(psharedresource), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsurface))).ok() + (::windows::core::Interface::vtable(self).CreateSurface)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ppsurface.len() as _, usage, ::core::mem::transmute(psharedresource), ::core::mem::transmute(ppsurface.as_ptr())).ok() } - pub unsafe fn QueryResourceResidency(&self, ppresources: &::core::option::Option<::windows::core::IUnknown>, presidencystatus: &mut DXGI_RESIDENCY, numresources: u32) -> ::windows::core::Result<()> { + pub unsafe fn QueryResourceResidency(&self, ppresources: *const ::core::option::Option<::windows::core::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).QueryResourceResidency)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources), ::core::mem::transmute(presidencystatus), ::core::mem::transmute(numresources)).ok() } pub unsafe fn SetGPUThreadPriority(&self, priority: i32) -> ::windows::core::Result<()> { @@ -4188,8 +4188,8 @@ pub struct IDXGIDevice_Vtbl { #[repr(transparent)] pub struct IDXGIDevice1(::windows::core::IUnknown); impl IDXGIDevice1 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -4214,9 +4214,9 @@ impl IDXGIDevice1 { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] pub unsafe fn CreateSurface(&self, pdesc: &DXGI_SURFACE_DESC, usage: u32, psharedresource: ::core::option::Option<&DXGI_SHARED_RESOURCE>, ppsurface: &mut [::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.CreateSurface)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ppsurface.len() as _, usage, ::core::mem::transmute(psharedresource), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsurface))).ok() + (::windows::core::Interface::vtable(self).base__.CreateSurface)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ppsurface.len() as _, usage, ::core::mem::transmute(psharedresource), ::core::mem::transmute(ppsurface.as_ptr())).ok() } - pub unsafe fn QueryResourceResidency(&self, ppresources: &::core::option::Option<::windows::core::IUnknown>, presidencystatus: &mut DXGI_RESIDENCY, numresources: u32) -> ::windows::core::Result<()> { + pub unsafe fn QueryResourceResidency(&self, ppresources: *const ::core::option::Option<::windows::core::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.QueryResourceResidency)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources), ::core::mem::transmute(presidencystatus), ::core::mem::transmute(numresources)).ok() } pub unsafe fn SetGPUThreadPriority(&self, priority: i32) -> ::windows::core::Result<()> { @@ -4310,8 +4310,8 @@ pub struct IDXGIDevice1_Vtbl { #[repr(transparent)] pub struct IDXGIDevice2(::windows::core::IUnknown); impl IDXGIDevice2 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -4336,9 +4336,9 @@ impl IDXGIDevice2 { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] pub unsafe fn CreateSurface(&self, pdesc: &DXGI_SURFACE_DESC, usage: u32, psharedresource: ::core::option::Option<&DXGI_SHARED_RESOURCE>, ppsurface: &mut [::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.CreateSurface)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ppsurface.len() as _, usage, ::core::mem::transmute(psharedresource), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsurface))).ok() + (::windows::core::Interface::vtable(self).base__.base__.CreateSurface)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ppsurface.len() as _, usage, ::core::mem::transmute(psharedresource), ::core::mem::transmute(ppsurface.as_ptr())).ok() } - pub unsafe fn QueryResourceResidency(&self, ppresources: &::core::option::Option<::windows::core::IUnknown>, presidencystatus: &mut DXGI_RESIDENCY, numresources: u32) -> ::windows::core::Result<()> { + pub unsafe fn QueryResourceResidency(&self, ppresources: *const ::core::option::Option<::windows::core::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.QueryResourceResidency)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources), ::core::mem::transmute(presidencystatus), ::core::mem::transmute(numresources)).ok() } pub unsafe fn SetGPUThreadPriority(&self, priority: i32) -> ::windows::core::Result<()> { @@ -4356,13 +4356,13 @@ impl IDXGIDevice2 { (::windows::core::Interface::vtable(self).base__.GetMaximumFrameLatency)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn OfferResources(&self, ppresources: &[::core::option::Option], priority: DXGI_OFFER_RESOURCE_PRIORITY) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OfferResources)(::windows::core::Interface::as_raw(self), ppresources.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), priority).ok() + (::windows::core::Interface::vtable(self).OfferResources)(::windows::core::Interface::as_raw(self), ppresources.len() as _, ::core::mem::transmute(ppresources.as_ptr()), priority).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ReclaimResources(&self, ppresources: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).ReclaimResources)(::windows::core::Interface::as_raw(self), ppresources.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).ReclaimResources)(::windows::core::Interface::as_raw(self), ppresources.len() as _, ::core::mem::transmute(ppresources.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4471,8 +4471,8 @@ pub struct IDXGIDevice2_Vtbl { #[repr(transparent)] pub struct IDXGIDevice3(::windows::core::IUnknown); impl IDXGIDevice3 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -4497,9 +4497,9 @@ impl IDXGIDevice3 { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] pub unsafe fn CreateSurface(&self, pdesc: &DXGI_SURFACE_DESC, usage: u32, psharedresource: ::core::option::Option<&DXGI_SHARED_RESOURCE>, ppsurface: &mut [::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateSurface)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ppsurface.len() as _, usage, ::core::mem::transmute(psharedresource), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsurface))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateSurface)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ppsurface.len() as _, usage, ::core::mem::transmute(psharedresource), ::core::mem::transmute(ppsurface.as_ptr())).ok() } - pub unsafe fn QueryResourceResidency(&self, ppresources: &::core::option::Option<::windows::core::IUnknown>, presidencystatus: &mut DXGI_RESIDENCY, numresources: u32) -> ::windows::core::Result<()> { + pub unsafe fn QueryResourceResidency(&self, ppresources: *const ::core::option::Option<::windows::core::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.QueryResourceResidency)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources), ::core::mem::transmute(presidencystatus), ::core::mem::transmute(numresources)).ok() } pub unsafe fn SetGPUThreadPriority(&self, priority: i32) -> ::windows::core::Result<()> { @@ -4517,13 +4517,13 @@ impl IDXGIDevice3 { (::windows::core::Interface::vtable(self).base__.base__.GetMaximumFrameLatency)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn OfferResources(&self, ppresources: &[::core::option::Option], priority: DXGI_OFFER_RESOURCE_PRIORITY) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.OfferResources)(::windows::core::Interface::as_raw(self), ppresources.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), priority).ok() + (::windows::core::Interface::vtable(self).base__.OfferResources)(::windows::core::Interface::as_raw(self), ppresources.len() as _, ::core::mem::transmute(ppresources.as_ptr()), priority).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ReclaimResources(&self, ppresources: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.ReclaimResources)(::windows::core::Interface::as_raw(self), ppresources.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.ReclaimResources)(::windows::core::Interface::as_raw(self), ppresources.len() as _, ::core::mem::transmute(ppresources.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4642,8 +4642,8 @@ pub struct IDXGIDevice3_Vtbl { #[repr(transparent)] pub struct IDXGIDevice4(::windows::core::IUnknown); impl IDXGIDevice4 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -4668,9 +4668,9 @@ impl IDXGIDevice4 { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] pub unsafe fn CreateSurface(&self, pdesc: &DXGI_SURFACE_DESC, usage: u32, psharedresource: ::core::option::Option<&DXGI_SHARED_RESOURCE>, ppsurface: &mut [::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateSurface)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ppsurface.len() as _, usage, ::core::mem::transmute(psharedresource), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsurface))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateSurface)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ppsurface.len() as _, usage, ::core::mem::transmute(psharedresource), ::core::mem::transmute(ppsurface.as_ptr())).ok() } - pub unsafe fn QueryResourceResidency(&self, ppresources: &::core::option::Option<::windows::core::IUnknown>, presidencystatus: &mut DXGI_RESIDENCY, numresources: u32) -> ::windows::core::Result<()> { + pub unsafe fn QueryResourceResidency(&self, ppresources: *const ::core::option::Option<::windows::core::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.QueryResourceResidency)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources), ::core::mem::transmute(presidencystatus), ::core::mem::transmute(numresources)).ok() } pub unsafe fn SetGPUThreadPriority(&self, priority: i32) -> ::windows::core::Result<()> { @@ -4688,13 +4688,13 @@ impl IDXGIDevice4 { (::windows::core::Interface::vtable(self).base__.base__.base__.GetMaximumFrameLatency)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn OfferResources(&self, ppresources: &[::core::option::Option], priority: DXGI_OFFER_RESOURCE_PRIORITY) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.OfferResources)(::windows::core::Interface::as_raw(self), ppresources.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), priority).ok() + (::windows::core::Interface::vtable(self).base__.base__.OfferResources)(::windows::core::Interface::as_raw(self), ppresources.len() as _, ::core::mem::transmute(ppresources.as_ptr()), priority).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ReclaimResources(&self, ppresources: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.ReclaimResources)(::windows::core::Interface::as_raw(self), ppresources.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.ReclaimResources)(::windows::core::Interface::as_raw(self), ppresources.len() as _, ::core::mem::transmute(ppresources.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4708,11 +4708,11 @@ impl IDXGIDevice4 { (::windows::core::Interface::vtable(self).base__.Trim)(::windows::core::Interface::as_raw(self)) } pub unsafe fn OfferResources1(&self, ppresources: &[::core::option::Option], priority: DXGI_OFFER_RESOURCE_PRIORITY, flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OfferResources1)(::windows::core::Interface::as_raw(self), ppresources.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), priority, flags).ok() + (::windows::core::Interface::vtable(self).OfferResources1)(::windows::core::Interface::as_raw(self), ppresources.len() as _, ::core::mem::transmute(ppresources.as_ptr()), priority, flags).ok() } pub unsafe fn ReclaimResources1(&self, ppresources: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).ReclaimResources1)(::windows::core::Interface::as_raw(self), ppresources.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppresources)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).ReclaimResources1)(::windows::core::Interface::as_raw(self), ppresources.len() as _, ::core::mem::transmute(ppresources.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -4836,8 +4836,8 @@ pub struct IDXGIDevice4_Vtbl { #[repr(transparent)] pub struct IDXGIDeviceSubObject(::windows::core::IUnknown); impl IDXGIDeviceSubObject { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -4989,8 +4989,8 @@ pub struct IDXGIDisplayControl_Vtbl { #[repr(transparent)] pub struct IDXGIFactory(::windows::core::IUnknown); impl IDXGIFactory { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -5120,8 +5120,8 @@ pub struct IDXGIFactory_Vtbl { #[repr(transparent)] pub struct IDXGIFactory1(::windows::core::IUnknown); impl IDXGIFactory1 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -5263,8 +5263,8 @@ pub struct IDXGIFactory1_Vtbl { #[repr(transparent)] pub struct IDXGIFactory2(::windows::core::IUnknown); impl IDXGIFactory2 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -5542,8 +5542,8 @@ pub struct IDXGIFactory2_Vtbl { #[repr(transparent)] pub struct IDXGIFactory3(::windows::core::IUnknown); impl IDXGIFactory3 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -5802,8 +5802,8 @@ pub struct IDXGIFactory3_Vtbl { #[repr(transparent)] pub struct IDXGIFactory4(::windows::core::IUnknown); impl IDXGIFactory4 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -6097,8 +6097,8 @@ pub struct IDXGIFactory4_Vtbl { #[repr(transparent)] pub struct IDXGIFactory5(::windows::core::IUnknown); impl IDXGIFactory5 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -6267,8 +6267,8 @@ impl IDXGIFactory5 { let mut result__ = ::core::option::Option::None; (::windows::core::Interface::vtable(self).base__.EnumWarpAdapter)(::windows::core::Interface::as_raw(self), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: DXGI_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: DXGI_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -6406,8 +6406,8 @@ pub struct IDXGIFactory5_Vtbl { #[repr(transparent)] pub struct IDXGIFactory6(::windows::core::IUnknown); impl IDXGIFactory6 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -6576,8 +6576,8 @@ impl IDXGIFactory6 { let mut result__ = ::core::option::Option::None; (::windows::core::Interface::vtable(self).base__.base__.EnumWarpAdapter)(::windows::core::Interface::as_raw(self), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: DXGI_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: DXGI_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn EnumAdapterByGpuPreference(&self, adapter: u32, gpupreference: DXGI_GPU_PREFERENCE) -> ::windows::core::Result where @@ -6737,8 +6737,8 @@ pub struct IDXGIFactory6_Vtbl { #[repr(transparent)] pub struct IDXGIFactory7(::windows::core::IUnknown); impl IDXGIFactory7 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -6907,8 +6907,8 @@ impl IDXGIFactory7 { let mut result__ = ::core::option::Option::None; (::windows::core::Interface::vtable(self).base__.base__.base__.EnumWarpAdapter)(::windows::core::Interface::as_raw(self), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } - pub unsafe fn CheckFeatureSupport(&self, feature: DXGI_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, feature: DXGI_FEATURE, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn EnumAdapterByGpuPreference(&self, adapter: u32, gpupreference: DXGI_GPU_PREFERENCE) -> ::windows::core::Result where @@ -7181,7 +7181,7 @@ impl IDXGIInfoQueue { pub unsafe fn ClearStoredMessages(&self, producer: ::windows::core::GUID) { (::windows::core::Interface::vtable(self).ClearStoredMessages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(producer)) } - pub unsafe fn GetMessage(&self, producer: ::windows::core::GUID, messageindex: u64, pmessage: ::core::option::Option<&mut DXGI_INFO_QUEUE_MESSAGE>, pmessagebytelength: &mut usize) -> ::windows::core::Result<()> { + pub unsafe fn GetMessage(&self, producer: ::windows::core::GUID, messageindex: u64, pmessage: *mut DXGI_INFO_QUEUE_MESSAGE, pmessagebytelength: &mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetMessage)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(producer), messageindex, ::core::mem::transmute(pmessage), ::core::mem::transmute(pmessagebytelength)).ok() } pub unsafe fn GetNumStoredMessagesAllowedByRetrievalFilters(&self, producer: ::windows::core::GUID) -> u64 { @@ -7205,7 +7205,7 @@ impl IDXGIInfoQueue { pub unsafe fn AddStorageFilterEntries(&self, producer: ::windows::core::GUID, pfilter: &DXGI_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AddStorageFilterEntries)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(producer), ::core::mem::transmute(pfilter)).ok() } - pub unsafe fn GetStorageFilter(&self, producer: ::windows::core::GUID, pfilter: ::core::option::Option<&mut DXGI_INFO_QUEUE_FILTER>, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { + pub unsafe fn GetStorageFilter(&self, producer: ::windows::core::GUID, pfilter: *mut DXGI_INFO_QUEUE_FILTER, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetStorageFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(producer), ::core::mem::transmute(pfilter), ::core::mem::transmute(pfilterbytelength)).ok() } pub unsafe fn ClearStorageFilter(&self, producer: ::windows::core::GUID) { @@ -7232,7 +7232,7 @@ impl IDXGIInfoQueue { pub unsafe fn AddRetrievalFilterEntries(&self, producer: ::windows::core::GUID, pfilter: &DXGI_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AddRetrievalFilterEntries)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(producer), ::core::mem::transmute(pfilter)).ok() } - pub unsafe fn GetRetrievalFilter(&self, producer: ::windows::core::GUID, pfilter: ::core::option::Option<&mut DXGI_INFO_QUEUE_FILTER>, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { + pub unsafe fn GetRetrievalFilter(&self, producer: ::windows::core::GUID, pfilter: *mut DXGI_INFO_QUEUE_FILTER, pfilterbytelength: &mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetRetrievalFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(producer), ::core::mem::transmute(pfilter), ::core::mem::transmute(pfilterbytelength)).ok() } pub unsafe fn ClearRetrievalFilter(&self, producer: ::windows::core::GUID) { @@ -7426,8 +7426,8 @@ pub struct IDXGIInfoQueue_Vtbl { #[repr(transparent)] pub struct IDXGIKeyedMutex(::windows::core::IUnknown); impl IDXGIKeyedMutex { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -7535,8 +7535,8 @@ pub struct IDXGIKeyedMutex_Vtbl { #[repr(transparent)] pub struct IDXGIObject(::windows::core::IUnknown); impl IDXGIObject { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -7603,8 +7603,8 @@ pub struct IDXGIObject_Vtbl { #[repr(transparent)] pub struct IDXGIOutput(::windows::core::IUnknown); impl IDXGIOutput { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -7630,7 +7630,7 @@ impl IDXGIOutput { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: ::core::option::Option<&mut Common::DXGI_MODE_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: *mut Common::DXGI_MODE_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDisplayModeList)(::windows::core::Interface::as_raw(self), enumformat, flags, ::core::mem::transmute(pnummodes), ::core::mem::transmute(pdesc)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -7782,8 +7782,8 @@ pub struct IDXGIOutput_Vtbl { #[repr(transparent)] pub struct IDXGIOutput1(::windows::core::IUnknown); impl IDXGIOutput1 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -7809,7 +7809,7 @@ impl IDXGIOutput1 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: ::core::option::Option<&mut Common::DXGI_MODE_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: *mut Common::DXGI_MODE_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetDisplayModeList)(::windows::core::Interface::as_raw(self), enumformat, flags, ::core::mem::transmute(pnummodes), ::core::mem::transmute(pdesc)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -7870,7 +7870,7 @@ impl IDXGIOutput1 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] - pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: ::core::option::Option<&mut DXGI_MODE_DESC1>) -> ::windows::core::Result<()> { + pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDisplayModeList1)(::windows::core::Interface::as_raw(self), enumformat, flags, ::core::mem::transmute(pnummodes), ::core::mem::transmute(pdesc)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -7979,8 +7979,8 @@ pub struct IDXGIOutput1_Vtbl { #[repr(transparent)] pub struct IDXGIOutput2(::windows::core::IUnknown); impl IDXGIOutput2 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -8006,7 +8006,7 @@ impl IDXGIOutput2 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: ::core::option::Option<&mut Common::DXGI_MODE_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: *mut Common::DXGI_MODE_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetDisplayModeList)(::windows::core::Interface::as_raw(self), enumformat, flags, ::core::mem::transmute(pnummodes), ::core::mem::transmute(pdesc)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -8067,7 +8067,7 @@ impl IDXGIOutput2 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] - pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: ::core::option::Option<&mut DXGI_MODE_DESC1>) -> ::windows::core::Result<()> { + pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetDisplayModeList1)(::windows::core::Interface::as_raw(self), enumformat, flags, ::core::mem::transmute(pnummodes), ::core::mem::transmute(pdesc)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -8190,8 +8190,8 @@ pub struct IDXGIOutput2_Vtbl { #[repr(transparent)] pub struct IDXGIOutput3(::windows::core::IUnknown); impl IDXGIOutput3 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -8217,7 +8217,7 @@ impl IDXGIOutput3 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: ::core::option::Option<&mut Common::DXGI_MODE_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: *mut Common::DXGI_MODE_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetDisplayModeList)(::windows::core::Interface::as_raw(self), enumformat, flags, ::core::mem::transmute(pnummodes), ::core::mem::transmute(pdesc)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -8278,7 +8278,7 @@ impl IDXGIOutput3 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] - pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: ::core::option::Option<&mut DXGI_MODE_DESC1>) -> ::windows::core::Result<()> { + pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetDisplayModeList1)(::windows::core::Interface::as_raw(self), enumformat, flags, ::core::mem::transmute(pnummodes), ::core::mem::transmute(pdesc)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -8425,8 +8425,8 @@ pub struct IDXGIOutput3_Vtbl { #[repr(transparent)] pub struct IDXGIOutput4(::windows::core::IUnknown); impl IDXGIOutput4 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -8452,7 +8452,7 @@ impl IDXGIOutput4 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: ::core::option::Option<&mut Common::DXGI_MODE_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: *mut Common::DXGI_MODE_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetDisplayModeList)(::windows::core::Interface::as_raw(self), enumformat, flags, ::core::mem::transmute(pnummodes), ::core::mem::transmute(pdesc)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -8513,7 +8513,7 @@ impl IDXGIOutput4 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] - pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: ::core::option::Option<&mut DXGI_MODE_DESC1>) -> ::windows::core::Result<()> { + pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetDisplayModeList1)(::windows::core::Interface::as_raw(self), enumformat, flags, ::core::mem::transmute(pnummodes), ::core::mem::transmute(pdesc)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -8684,8 +8684,8 @@ pub struct IDXGIOutput4_Vtbl { #[repr(transparent)] pub struct IDXGIOutput5(::windows::core::IUnknown); impl IDXGIOutput5 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -8711,7 +8711,7 @@ impl IDXGIOutput5 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: ::core::option::Option<&mut Common::DXGI_MODE_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: *mut Common::DXGI_MODE_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetDisplayModeList)(::windows::core::Interface::as_raw(self), enumformat, flags, ::core::mem::transmute(pnummodes), ::core::mem::transmute(pdesc)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -8772,7 +8772,7 @@ impl IDXGIOutput5 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] - pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: ::core::option::Option<&mut DXGI_MODE_DESC1>) -> ::windows::core::Result<()> { + pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetDisplayModeList1)(::windows::core::Interface::as_raw(self), enumformat, flags, ::core::mem::transmute(pnummodes), ::core::mem::transmute(pdesc)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -8826,7 +8826,7 @@ impl IDXGIOutput5 { P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).DuplicateOutput1)(::windows::core::Interface::as_raw(self), pdevice.into().abi(), flags, psupportedformats.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psupportedformats)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).DuplicateOutput1)(::windows::core::Interface::as_raw(self), pdevice.into().abi(), flags, psupportedformats.len() as _, ::core::mem::transmute(psupportedformats.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -8967,8 +8967,8 @@ pub struct IDXGIOutput5_Vtbl { #[repr(transparent)] pub struct IDXGIOutput6(::windows::core::IUnknown); impl IDXGIOutput6 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -8994,7 +8994,7 @@ impl IDXGIOutput6 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: ::core::option::Option<&mut Common::DXGI_MODE_DESC>) -> ::windows::core::Result<()> { + pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: *mut Common::DXGI_MODE_DESC) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetDisplayModeList)(::windows::core::Interface::as_raw(self), enumformat, flags, ::core::mem::transmute(pnummodes), ::core::mem::transmute(pdesc)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -9055,7 +9055,7 @@ impl IDXGIOutput6 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] - pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: ::core::option::Option<&mut DXGI_MODE_DESC1>) -> ::windows::core::Result<()> { + pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: &mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetDisplayModeList1)(::windows::core::Interface::as_raw(self), enumformat, flags, ::core::mem::transmute(pnummodes), ::core::mem::transmute(pdesc)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -9109,7 +9109,7 @@ impl IDXGIOutput6 { P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.DuplicateOutput1)(::windows::core::Interface::as_raw(self), pdevice.into().abi(), flags, psupportedformats.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psupportedformats)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.DuplicateOutput1)(::windows::core::Interface::as_raw(self), pdevice.into().abi(), flags, psupportedformats.len() as _, ::core::mem::transmute(psupportedformats.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))] @@ -9276,8 +9276,8 @@ pub struct IDXGIOutput6_Vtbl { #[repr(transparent)] pub struct IDXGIOutputDuplication(::windows::core::IUnknown); impl IDXGIOutputDuplication { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -9307,18 +9307,18 @@ impl IDXGIOutputDuplication { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetFrameDirtyRects(&self, dirtyrectsbuffersize: u32, pdirtyrectsbuffer: &mut super::super::Foundation::RECT, pdirtyrectsbuffersizerequired: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFrameDirtyRects)(::windows::core::Interface::as_raw(self), dirtyrectsbuffersize, ::core::mem::transmute(pdirtyrectsbuffer), ::core::mem::transmute(pdirtyrectsbuffersizerequired)).ok() + pub unsafe fn GetFrameDirtyRects(&self, pdirtyrectsbuffer: &mut [u8], pdirtyrectsbuffersizerequired: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetFrameDirtyRects)(::windows::core::Interface::as_raw(self), pdirtyrectsbuffer.len() as _, ::core::mem::transmute(pdirtyrectsbuffer.as_ptr()), ::core::mem::transmute(pdirtyrectsbuffersizerequired)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetFrameMoveRects(&self, moverectsbuffersize: u32, pmoverectbuffer: &mut DXGI_OUTDUPL_MOVE_RECT, pmoverectsbuffersizerequired: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFrameMoveRects)(::windows::core::Interface::as_raw(self), moverectsbuffersize, ::core::mem::transmute(pmoverectbuffer), ::core::mem::transmute(pmoverectsbuffersizerequired)).ok() + pub unsafe fn GetFrameMoveRects(&self, pmoverectbuffer: &mut [u8], pmoverectsbuffersizerequired: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetFrameMoveRects)(::windows::core::Interface::as_raw(self), pmoverectbuffer.len() as _, ::core::mem::transmute(pmoverectbuffer.as_ptr()), ::core::mem::transmute(pmoverectsbuffersizerequired)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetFramePointerShape(&self, pointershapebuffersize: u32, ppointershapebuffer: *mut ::core::ffi::c_void, ppointershapebuffersizerequired: &mut u32, ppointershapeinfo: &mut DXGI_OUTDUPL_POINTER_SHAPE_INFO) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFramePointerShape)(::windows::core::Interface::as_raw(self), pointershapebuffersize, ::core::mem::transmute(ppointershapebuffer), ::core::mem::transmute(ppointershapebuffersizerequired), ::core::mem::transmute(ppointershapeinfo)).ok() + pub unsafe fn GetFramePointerShape(&self, ppointershapebuffer: &mut [u8], ppointershapebuffersizerequired: &mut u32, ppointershapeinfo: &mut DXGI_OUTDUPL_POINTER_SHAPE_INFO) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetFramePointerShape)(::windows::core::Interface::as_raw(self), ppointershapebuffer.len() as _, ::core::mem::transmute(ppointershapebuffer.as_ptr()), ::core::mem::transmute(ppointershapebuffersizerequired), ::core::mem::transmute(ppointershapeinfo)).ok() } pub unsafe fn MapDesktopSurface(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -9413,8 +9413,8 @@ pub struct IDXGIOutputDuplication_Vtbl { #[repr(transparent)] pub struct IDXGIResource(::windows::core::IUnknown); impl IDXGIResource { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -9538,8 +9538,8 @@ pub struct IDXGIResource_Vtbl { #[repr(transparent)] pub struct IDXGIResource1(::windows::core::IUnknown); impl IDXGIResource1 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -9689,8 +9689,8 @@ pub struct IDXGIResource1_Vtbl { #[repr(transparent)] pub struct IDXGISurface(::windows::core::IUnknown); impl IDXGISurface { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -9808,8 +9808,8 @@ pub struct IDXGISurface_Vtbl { #[repr(transparent)] pub struct IDXGISurface1(::windows::core::IUnknown); impl IDXGISurface1 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -9958,8 +9958,8 @@ pub struct IDXGISurface1_Vtbl { #[repr(transparent)] pub struct IDXGISurface2(::windows::core::IUnknown); impl IDXGISurface2 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -10123,8 +10123,8 @@ pub struct IDXGISurface2_Vtbl { #[repr(transparent)] pub struct IDXGISwapChain(::windows::core::IUnknown); impl IDXGISwapChain { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -10301,8 +10301,8 @@ pub struct IDXGISwapChain_Vtbl { #[repr(transparent)] pub struct IDXGISwapChain1(::windows::core::IUnknown); impl IDXGISwapChain1 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -10558,8 +10558,8 @@ pub struct IDXGISwapChain1_Vtbl { #[repr(transparent)] pub struct IDXGISwapChain2(::windows::core::IUnknown); impl IDXGISwapChain2 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -10833,8 +10833,8 @@ pub struct IDXGISwapChain2_Vtbl { #[repr(transparent)] pub struct IDXGISwapChain3(::windows::core::IUnknown); impl IDXGISwapChain3 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -11009,7 +11009,7 @@ impl IDXGISwapChain3 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn ResizeBuffers1(&self, buffercount: u32, width: u32, height: u32, format: Common::DXGI_FORMAT, swapchainflags: u32, pcreationnodemask: &u32, pppresentqueue: &::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> { + pub unsafe fn ResizeBuffers1(&self, buffercount: u32, width: u32, height: u32, format: Common::DXGI_FORMAT, swapchainflags: u32, pcreationnodemask: *const u32, pppresentqueue: *const ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ResizeBuffers1)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffercount), width, height, format, swapchainflags, ::core::mem::transmute(pcreationnodemask), ::core::mem::transmute(pppresentqueue)).ok() } } @@ -11145,8 +11145,8 @@ pub struct IDXGISwapChain3_Vtbl { #[repr(transparent)] pub struct IDXGISwapChain4(::windows::core::IUnknown); impl IDXGISwapChain4 { - pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, name: &::windows::core::GUID, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(name), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } pub unsafe fn SetPrivateDataInterface<'a, P0>(&self, name: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -11321,11 +11321,11 @@ impl IDXGISwapChain4 { } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] - pub unsafe fn ResizeBuffers1(&self, buffercount: u32, width: u32, height: u32, format: Common::DXGI_FORMAT, swapchainflags: u32, pcreationnodemask: &u32, pppresentqueue: &::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> { + pub unsafe fn ResizeBuffers1(&self, buffercount: u32, width: u32, height: u32, format: Common::DXGI_FORMAT, swapchainflags: u32, pcreationnodemask: *const u32, pppresentqueue: *const ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.ResizeBuffers1)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffercount), width, height, format, swapchainflags, ::core::mem::transmute(pcreationnodemask), ::core::mem::transmute(pppresentqueue)).ok() } - pub unsafe fn SetHDRMetaData(&self, r#type: DXGI_HDR_METADATA_TYPE, pmetadata: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetHDRMetaData)(::windows::core::Interface::as_raw(self), r#type, pmetadata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pmetadata))).ok() + pub unsafe fn SetHDRMetaData(&self, r#type: DXGI_HDR_METADATA_TYPE, pmetadata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetHDRMetaData)(::windows::core::Interface::as_raw(self), r#type, pmetadata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pmetadata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/Gdi/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/Gdi/mod.rs index 2057b02067..8d47700d39 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Gdi/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Gdi/mod.rs @@ -277,12 +277,12 @@ where #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AddFontMemResourceEx(pfileview: *const ::core::ffi::c_void, cjsize: u32, pvresrved: *mut ::core::ffi::c_void, pnumfonts: &u32) -> super::super::Foundation::HANDLE { +pub unsafe fn AddFontMemResourceEx(pfileview: &[u8], pvresrved: *mut ::core::ffi::c_void, pnumfonts: &u32) -> super::super::Foundation::HANDLE { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn AddFontMemResourceEx(pfileview: *const ::core::ffi::c_void, cjsize: u32, pvresrved: *mut ::core::ffi::c_void, pnumfonts: *const u32) -> super::super::Foundation::HANDLE; } - AddFontMemResourceEx(::core::mem::transmute(pfileview), cjsize, ::core::mem::transmute(pvresrved), ::core::mem::transmute(pnumfonts)) + AddFontMemResourceEx(::core::mem::transmute(pfileview.as_ptr()), pfileview.len() as _, ::core::mem::transmute(pvresrved), ::core::mem::transmute(pnumfonts)) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -370,7 +370,7 @@ where extern "system" { fn AnimatePalette(hpal: HPALETTE, istartindex: u32, centries: u32, ppe: *const PALETTEENTRY) -> super::super::Foundation::BOOL; } - AnimatePalette(hpal.into(), istartindex, ppe.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppe))) + AnimatePalette(hpal.into(), istartindex, ppe.len() as _, ::core::mem::transmute(ppe.as_ptr())) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1917,7 +1917,7 @@ pub unsafe fn CreatePolyPolygonRgn(pptl: &super::super::Foundation::POINT, pc: & extern "system" { fn CreatePolyPolygonRgn(pptl: *const super::super::Foundation::POINT, pc: *const i32, cpoly: i32, imode: CREATE_POLYGON_RGN_MODE) -> HRGN; } - CreatePolyPolygonRgn(::core::mem::transmute(pptl), ::core::mem::transmute(::windows::core::as_ptr_or_null(pc)), pc.len() as _, imode) + CreatePolyPolygonRgn(::core::mem::transmute(pptl), ::core::mem::transmute(pc.as_ptr()), pc.len() as _, imode) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1927,7 +1927,7 @@ pub unsafe fn CreatePolygonRgn(pptl: &[super::super::Foundation::POINT], imode: extern "system" { fn CreatePolygonRgn(pptl: *const super::super::Foundation::POINT, cpoint: i32, imode: CREATE_POLYGON_RGN_MODE) -> HRGN; } - CreatePolygonRgn(::core::mem::transmute(::windows::core::as_ptr_or_null(pptl)), pptl.len() as _, imode) + CreatePolygonRgn(::core::mem::transmute(pptl.as_ptr()), pptl.len() as _, imode) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -3468,7 +3468,7 @@ where extern "system" { fn DPtoLP(hdc: HDC, lppt: *mut super::super::Foundation::POINT, c: i32) -> super::super::Foundation::BOOL; } - DPtoLP(hdc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lppt)), lppt.len() as _) + DPtoLP(hdc.into(), ::core::mem::transmute(lppt.as_ptr()), lppt.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] pub const DRAFTMODE: u32 = 7u32; @@ -4022,16 +4022,15 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn DrawEscape<'a, P0, P1>(hdc: P0, iescape: i32, cjin: i32, lpin: P1) -> i32 +pub unsafe fn DrawEscape<'a, P0>(hdc: P0, iescape: i32, lpin: ::core::option::Option<&[u8]>) -> i32 where P0: ::std::convert::Into, - P1: ::std::convert::Into<::windows::core::PCSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn DrawEscape(hdc: HDC, iescape: i32, cjin: i32, lpin: ::windows::core::PCSTR) -> i32; } - DrawEscape(hdc.into(), iescape, cjin, lpin.into()) + DrawEscape(hdc.into(), iescape, lpin.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpin.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4102,7 +4101,7 @@ where extern "system" { fn DrawTextA(hdc: HDC, lpchtext: ::windows::core::PCSTR, cchtext: i32, lprc: *mut super::super::Foundation::RECT, format: DRAW_TEXT_FORMAT) -> i32; } - DrawTextA(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpchtext)), lpchtext.len() as _, ::core::mem::transmute(lprc), format) + DrawTextA(hdc.into(), ::core::mem::transmute(lpchtext.as_ptr()), lpchtext.len() as _, ::core::mem::transmute(lprc), format) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4115,7 +4114,7 @@ where extern "system" { fn DrawTextExA(hdc: HDC, lpchtext: ::windows::core::PSTR, cchtext: i32, lprc: *mut super::super::Foundation::RECT, format: DRAW_TEXT_FORMAT, lpdtp: *const DRAWTEXTPARAMS) -> i32; } - DrawTextExA(hdc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpchtext)), lpchtext.len() as _, ::core::mem::transmute(lprc), format, ::core::mem::transmute(lpdtp)) + DrawTextExA(hdc.into(), ::core::mem::transmute(lpchtext.as_ptr()), lpchtext.len() as _, ::core::mem::transmute(lprc), format, ::core::mem::transmute(lpdtp)) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4128,7 +4127,7 @@ where extern "system" { fn DrawTextExW(hdc: HDC, lpchtext: ::windows::core::PWSTR, cchtext: i32, lprc: *mut super::super::Foundation::RECT, format: DRAW_TEXT_FORMAT, lpdtp: *const DRAWTEXTPARAMS) -> i32; } - DrawTextExW(hdc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpchtext)), lpchtext.len() as _, ::core::mem::transmute(lprc), format, ::core::mem::transmute(lpdtp)) + DrawTextExW(hdc.into(), ::core::mem::transmute(lpchtext.as_ptr()), lpchtext.len() as _, ::core::mem::transmute(lprc), format, ::core::mem::transmute(lpdtp)) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4141,7 +4140,7 @@ where extern "system" { fn DrawTextW(hdc: HDC, lpchtext: ::windows::core::PCWSTR, cchtext: i32, lprc: *mut super::super::Foundation::RECT, format: DRAW_TEXT_FORMAT) -> i32; } - DrawTextW(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpchtext)), lpchtext.len() as _, ::core::mem::transmute(lprc), format) + DrawTextW(hdc.into(), ::core::mem::transmute(lpchtext.as_ptr()), lpchtext.len() as _, ::core::mem::transmute(lprc), format) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] pub const EASTEUROPE_CHARSET: u32 = 238u32; @@ -8340,22 +8339,22 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn ExtCreatePen(ipenstyle: PEN_STYLE, cwidth: u32, plbrush: &LOGBRUSH, pstyle: &[u32]) -> HPEN { +pub unsafe fn ExtCreatePen(ipenstyle: PEN_STYLE, cwidth: u32, plbrush: &LOGBRUSH, pstyle: ::core::option::Option<&[u32]>) -> HPEN { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ExtCreatePen(ipenstyle: PEN_STYLE, cwidth: u32, plbrush: *const LOGBRUSH, cstyle: u32, pstyle: *const u32) -> HPEN; } - ExtCreatePen(ipenstyle, cwidth, ::core::mem::transmute(plbrush), pstyle.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pstyle))) + ExtCreatePen(ipenstyle, cwidth, ::core::mem::transmute(plbrush), pstyle.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pstyle.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ExtCreateRegion(lpx: ::core::option::Option<&XFORM>, ncount: u32, lpdata: &RGNDATA) -> HRGN { +pub unsafe fn ExtCreateRegion(lpx: ::core::option::Option<&XFORM>, lpdata: &[u8]) -> HRGN { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ExtCreateRegion(lpx: *const XFORM, ncount: u32, lpdata: *const RGNDATA) -> HRGN; } - ExtCreateRegion(::core::mem::transmute(lpx), ncount, ::core::mem::transmute(lpdata)) + ExtCreateRegion(::core::mem::transmute(lpx), lpdata.len() as _, ::core::mem::transmute(lpdata.as_ptr())) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8386,7 +8385,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ExtTextOutA<'a, P0>(hdc: P0, x: i32, y: i32, options: ETO_OPTIONS, lprect: ::core::option::Option<&super::super::Foundation::RECT>, lpstring: ::windows::core::PCSTR, c: u32, lpdx: ::core::option::Option<&i32>) -> super::super::Foundation::BOOL +pub unsafe fn ExtTextOutA<'a, P0>(hdc: P0, x: i32, y: i32, options: ETO_OPTIONS, lprect: ::core::option::Option<&super::super::Foundation::RECT>, lpstring: ::windows::core::PCSTR, c: u32, lpdx: *const i32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -8399,7 +8398,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ExtTextOutW<'a, P0>(hdc: P0, x: i32, y: i32, options: ETO_OPTIONS, lprect: ::core::option::Option<&super::super::Foundation::RECT>, lpstring: ::windows::core::PCWSTR, c: u32, lpdx: ::core::option::Option<&i32>) -> super::super::Foundation::BOOL +pub unsafe fn ExtTextOutW<'a, P0>(hdc: P0, x: i32, y: i32, options: ETO_OPTIONS, lprect: ::core::option::Option<&super::super::Foundation::RECT>, lpstring: ::windows::core::PCWSTR, c: u32, lpdx: *const i32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -9651,7 +9650,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GdiComment<'a, P0>(hdc: P0, nsize: u32, lpdata: &u8) -> super::super::Foundation::BOOL +pub unsafe fn GdiComment<'a, P0>(hdc: P0, lpdata: &[u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -9659,7 +9658,7 @@ where extern "system" { fn GdiComment(hdc: HDC, nsize: u32, lpdata: *const u8) -> super::super::Foundation::BOOL; } - GdiComment(hdc.into(), nsize, ::core::mem::transmute(lpdata)) + GdiComment(hdc.into(), lpdata.len() as _, ::core::mem::transmute(lpdata.as_ptr())) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9691,7 +9690,7 @@ where extern "system" { fn GdiGradientFill(hdc: HDC, pvertex: *const TRIVERTEX, nvertex: u32, pmesh: *const ::core::ffi::c_void, ncount: u32, ulmode: GRADIENT_FILL) -> super::super::Foundation::BOOL; } - GdiGradientFill(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pvertex)), pvertex.len() as _, ::core::mem::transmute(pmesh), ncount, ulmode) + GdiGradientFill(hdc.into(), ::core::mem::transmute(pvertex.as_ptr()), pvertex.len() as _, ::core::mem::transmute(pmesh), ncount, ulmode) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -9743,7 +9742,7 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetBitmapBits<'a, P0>(hbit: P0, cb: i32, lpvbits: *mut ::core::ffi::c_void) -> i32 +pub unsafe fn GetBitmapBits<'a, P0>(hbit: P0, lpvbits: &mut [u8]) -> i32 where P0: ::std::convert::Into, { @@ -9751,7 +9750,7 @@ where extern "system" { fn GetBitmapBits(hbit: HBITMAP, cb: i32, lpvbits: *mut ::core::ffi::c_void) -> i32; } - GetBitmapBits(hbit.into(), cb, ::core::mem::transmute(lpvbits)) + GetBitmapBits(hbit.into(), lpvbits.len() as _, ::core::mem::transmute(lpvbits.as_ptr())) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9858,7 +9857,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetCharABCWidthsI<'a, P0>(hdc: P0, gifirst: u32, cgi: u32, pgi: ::core::option::Option<&u16>, pabc: &mut ABC) -> super::super::Foundation::BOOL +pub unsafe fn GetCharABCWidthsI<'a, P0>(hdc: P0, gifirst: u32, cgi: u32, pgi: *const u16, pabc: *mut ABC) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -9949,7 +9948,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetCharWidthI<'a, P0>(hdc: P0, gifirst: u32, cgi: u32, pgi: ::core::option::Option<&u16>, piwidths: &mut i32) -> super::super::Foundation::BOOL +pub unsafe fn GetCharWidthI<'a, P0>(hdc: P0, gifirst: u32, cgi: u32, pgi: *const u16, piwidths: *mut i32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -9982,7 +9981,7 @@ where extern "system" { fn GetCharacterPlacementA(hdc: HDC, lpstring: ::windows::core::PCSTR, ncount: i32, nmexextent: i32, lpresults: *mut GCP_RESULTSA, dwflags: GET_CHARACTER_PLACEMENT_FLAGS) -> u32; } - GetCharacterPlacementA(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring)), lpstring.len() as _, nmexextent, ::core::mem::transmute(lpresults), dwflags) + GetCharacterPlacementA(hdc.into(), ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _, nmexextent, ::core::mem::transmute(lpresults), dwflags) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -9994,7 +9993,7 @@ where extern "system" { fn GetCharacterPlacementW(hdc: HDC, lpstring: ::windows::core::PCWSTR, ncount: i32, nmexextent: i32, lpresults: *mut GCP_RESULTSW, dwflags: GET_CHARACTER_PLACEMENT_FLAGS) -> u32; } - GetCharacterPlacementW(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring)), lpstring.len() as _, nmexextent, ::core::mem::transmute(lpresults), dwflags) + GetCharacterPlacementW(hdc.into(), ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _, nmexextent, ::core::mem::transmute(lpresults), dwflags) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10134,7 +10133,7 @@ where extern "system" { fn GetDIBColorTable(hdc: HDC, istart: u32, centries: u32, prgbq: *mut RGBQUAD) -> u32; } - GetDIBColorTable(hdc.into(), istart, prgbq.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgbq))) + GetDIBColorTable(hdc.into(), istart, prgbq.len() as _, ::core::mem::transmute(prgbq.as_ptr())) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -10175,7 +10174,7 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetEnhMetaFileBits<'a, P0>(hemf: P0, nsize: u32, lpdata: ::core::option::Option<&mut u8>) -> u32 +pub unsafe fn GetEnhMetaFileBits<'a, P0>(hemf: P0, lpdata: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -10183,11 +10182,11 @@ where extern "system" { fn GetEnhMetaFileBits(hemf: HENHMETAFILE, nsize: u32, lpdata: *mut u8) -> u32; } - GetEnhMetaFileBits(hemf.into(), nsize, ::core::mem::transmute(lpdata)) + GetEnhMetaFileBits(hemf.into(), lpdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetEnhMetaFileDescriptionA<'a, P0>(hemf: P0, lpdescription: &mut [u8]) -> u32 +pub unsafe fn GetEnhMetaFileDescriptionA<'a, P0>(hemf: P0, lpdescription: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -10195,11 +10194,11 @@ where extern "system" { fn GetEnhMetaFileDescriptionA(hemf: HENHMETAFILE, cchbuffer: u32, lpdescription: ::windows::core::PSTR) -> u32; } - GetEnhMetaFileDescriptionA(hemf.into(), lpdescription.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdescription))) + GetEnhMetaFileDescriptionA(hemf.into(), lpdescription.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpdescription.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetEnhMetaFileDescriptionW<'a, P0>(hemf: P0, lpdescription: &mut [u16]) -> u32 +pub unsafe fn GetEnhMetaFileDescriptionW<'a, P0>(hemf: P0, lpdescription: ::core::option::Option<&mut [u16]>) -> u32 where P0: ::std::convert::Into, { @@ -10207,12 +10206,12 @@ where extern "system" { fn GetEnhMetaFileDescriptionW(hemf: HENHMETAFILE, cchbuffer: u32, lpdescription: ::windows::core::PWSTR) -> u32; } - GetEnhMetaFileDescriptionW(hemf.into(), lpdescription.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdescription))) + GetEnhMetaFileDescriptionW(hemf.into(), lpdescription.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpdescription.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetEnhMetaFileHeader<'a, P0>(hemf: P0, nsize: u32, lpenhmetaheader: ::core::option::Option<&mut ENHMETAHEADER>) -> u32 +pub unsafe fn GetEnhMetaFileHeader<'a, P0>(hemf: P0, lpenhmetaheader: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -10220,11 +10219,11 @@ where extern "system" { fn GetEnhMetaFileHeader(hemf: HENHMETAFILE, nsize: u32, lpenhmetaheader: *mut ENHMETAHEADER) -> u32; } - GetEnhMetaFileHeader(hemf.into(), nsize, ::core::mem::transmute(lpenhmetaheader)) + GetEnhMetaFileHeader(hemf.into(), lpenhmetaheader.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpenhmetaheader.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetEnhMetaFilePaletteEntries<'a, P0>(hemf: P0, lppaletteentries: &mut [PALETTEENTRY]) -> u32 +pub unsafe fn GetEnhMetaFilePaletteEntries<'a, P0>(hemf: P0, lppaletteentries: ::core::option::Option<&mut [PALETTEENTRY]>) -> u32 where P0: ::std::convert::Into, { @@ -10232,7 +10231,7 @@ where extern "system" { fn GetEnhMetaFilePaletteEntries(hemf: HENHMETAFILE, nnumentries: u32, lppaletteentries: *mut PALETTEENTRY) -> u32; } - GetEnhMetaFilePaletteEntries(hemf.into(), lppaletteentries.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lppaletteentries))) + GetEnhMetaFilePaletteEntries(hemf.into(), lppaletteentries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lppaletteentries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -10248,7 +10247,7 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetFontData<'a, P0>(hdc: P0, dwtable: u32, dwoffset: u32, pvbuffer: *mut ::core::ffi::c_void, cjbuffer: u32) -> u32 +pub unsafe fn GetFontData<'a, P0>(hdc: P0, dwtable: u32, dwoffset: u32, pvbuffer: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -10256,7 +10255,7 @@ where extern "system" { fn GetFontData(hdc: HDC, dwtable: u32, dwoffset: u32, pvbuffer: *mut ::core::ffi::c_void, cjbuffer: u32) -> u32; } - GetFontData(hdc.into(), dwtable, dwoffset, ::core::mem::transmute(pvbuffer), cjbuffer) + GetFontData(hdc.into(), dwtable, dwoffset, ::core::mem::transmute(pvbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -10284,7 +10283,7 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetGlyphIndicesA<'a, P0>(hdc: P0, lpstr: ::windows::core::PCSTR, c: i32, pgi: &mut u16, fl: u32) -> u32 +pub unsafe fn GetGlyphIndicesA<'a, P0>(hdc: P0, lpstr: ::windows::core::PCSTR, c: i32, pgi: *mut u16, fl: u32) -> u32 where P0: ::std::convert::Into, { @@ -10296,7 +10295,7 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetGlyphIndicesW<'a, P0>(hdc: P0, lpstr: ::windows::core::PCWSTR, c: i32, pgi: &mut u16, fl: u32) -> u32 +pub unsafe fn GetGlyphIndicesW<'a, P0>(hdc: P0, lpstr: ::windows::core::PCWSTR, c: i32, pgi: *mut u16, fl: u32) -> u32 where P0: ::std::convert::Into, { @@ -10309,7 +10308,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetGlyphOutlineA<'a, P0>(hdc: P0, uchar: u32, fuformat: GET_GLYPH_OUTLINE_FORMAT, lpgm: &mut GLYPHMETRICS, cjbuffer: u32, pvbuffer: *mut ::core::ffi::c_void, lpmat2: &MAT2) -> u32 +pub unsafe fn GetGlyphOutlineA<'a, P0>(hdc: P0, uchar: u32, fuformat: GET_GLYPH_OUTLINE_FORMAT, lpgm: &mut GLYPHMETRICS, pvbuffer: ::core::option::Option<&mut [u8]>, lpmat2: &MAT2) -> u32 where P0: ::std::convert::Into, { @@ -10317,12 +10316,12 @@ where extern "system" { fn GetGlyphOutlineA(hdc: HDC, uchar: u32, fuformat: GET_GLYPH_OUTLINE_FORMAT, lpgm: *mut GLYPHMETRICS, cjbuffer: u32, pvbuffer: *mut ::core::ffi::c_void, lpmat2: *const MAT2) -> u32; } - GetGlyphOutlineA(hdc.into(), uchar, fuformat, ::core::mem::transmute(lpgm), cjbuffer, ::core::mem::transmute(pvbuffer), ::core::mem::transmute(lpmat2)) + GetGlyphOutlineA(hdc.into(), uchar, fuformat, ::core::mem::transmute(lpgm), pvbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pvbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(lpmat2)) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetGlyphOutlineW<'a, P0>(hdc: P0, uchar: u32, fuformat: GET_GLYPH_OUTLINE_FORMAT, lpgm: &mut GLYPHMETRICS, cjbuffer: u32, pvbuffer: *mut ::core::ffi::c_void, lpmat2: &MAT2) -> u32 +pub unsafe fn GetGlyphOutlineW<'a, P0>(hdc: P0, uchar: u32, fuformat: GET_GLYPH_OUTLINE_FORMAT, lpgm: &mut GLYPHMETRICS, pvbuffer: ::core::option::Option<&mut [u8]>, lpmat2: &MAT2) -> u32 where P0: ::std::convert::Into, { @@ -10330,7 +10329,7 @@ where extern "system" { fn GetGlyphOutlineW(hdc: HDC, uchar: u32, fuformat: GET_GLYPH_OUTLINE_FORMAT, lpgm: *mut GLYPHMETRICS, cjbuffer: u32, pvbuffer: *mut ::core::ffi::c_void, lpmat2: *const MAT2) -> u32; } - GetGlyphOutlineW(hdc.into(), uchar, fuformat, ::core::mem::transmute(lpgm), cjbuffer, ::core::mem::transmute(pvbuffer), ::core::mem::transmute(lpmat2)) + GetGlyphOutlineW(hdc.into(), uchar, fuformat, ::core::mem::transmute(lpgm), pvbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pvbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(lpmat2)) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -10346,7 +10345,7 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetKerningPairsA<'a, P0>(hdc: P0, lpkernpair: &mut [KERNINGPAIR]) -> u32 +pub unsafe fn GetKerningPairsA<'a, P0>(hdc: P0, lpkernpair: ::core::option::Option<&mut [KERNINGPAIR]>) -> u32 where P0: ::std::convert::Into, { @@ -10354,11 +10353,11 @@ where extern "system" { fn GetKerningPairsA(hdc: HDC, npairs: u32, lpkernpair: *mut KERNINGPAIR) -> u32; } - GetKerningPairsA(hdc.into(), lpkernpair.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpkernpair))) + GetKerningPairsA(hdc.into(), lpkernpair.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpkernpair.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetKerningPairsW<'a, P0>(hdc: P0, lpkernpair: &mut [KERNINGPAIR]) -> u32 +pub unsafe fn GetKerningPairsW<'a, P0>(hdc: P0, lpkernpair: ::core::option::Option<&mut [KERNINGPAIR]>) -> u32 where P0: ::std::convert::Into, { @@ -10366,7 +10365,7 @@ where extern "system" { fn GetKerningPairsW(hdc: HDC, npairs: u32, lpkernpair: *mut KERNINGPAIR) -> u32; } - GetKerningPairsW(hdc.into(), lpkernpair.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpkernpair))) + GetKerningPairsW(hdc.into(), lpkernpair.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpkernpair.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -10406,7 +10405,7 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetMetaFileBitsEx<'a, P0>(hmf: P0, cbbuffer: u32, lpdata: *mut ::core::ffi::c_void) -> u32 +pub unsafe fn GetMetaFileBitsEx<'a, P0>(hmf: P0, lpdata: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -10414,7 +10413,7 @@ where extern "system" { fn GetMetaFileBitsEx(hmf: HMETAFILE, cbbuffer: u32, lpdata: *mut ::core::ffi::c_void) -> u32; } - GetMetaFileBitsEx(hmf.into(), cbbuffer, ::core::mem::transmute(lpdata)) + GetMetaFileBitsEx(hmf.into(), lpdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -10506,7 +10505,7 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetObjectA<'a, P0>(h: P0, c: i32, pv: *mut ::core::ffi::c_void) -> i32 +pub unsafe fn GetObjectA<'a, P0>(h: P0, pv: ::core::option::Option<&mut [u8]>) -> i32 where P0: ::std::convert::Into, { @@ -10514,7 +10513,7 @@ where extern "system" { fn GetObjectA(h: HGDIOBJ, c: i32, pv: *mut ::core::ffi::c_void) -> i32; } - GetObjectA(h.into(), c, ::core::mem::transmute(pv)) + GetObjectA(h.into(), pv.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pv.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -10530,7 +10529,7 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetObjectW<'a, P0>(h: P0, c: i32, pv: *mut ::core::ffi::c_void) -> i32 +pub unsafe fn GetObjectW<'a, P0>(h: P0, pv: ::core::option::Option<&mut [u8]>) -> i32 where P0: ::std::convert::Into, { @@ -10538,12 +10537,12 @@ where extern "system" { fn GetObjectW(h: HGDIOBJ, c: i32, pv: *mut ::core::ffi::c_void) -> i32; } - GetObjectW(h.into(), c, ::core::mem::transmute(pv)) + GetObjectW(h.into(), pv.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pv.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetOutlineTextMetricsA<'a, P0>(hdc: P0, cjcopy: u32, potm: ::core::option::Option<&mut OUTLINETEXTMETRICA>) -> u32 +pub unsafe fn GetOutlineTextMetricsA<'a, P0>(hdc: P0, potm: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -10551,12 +10550,12 @@ where extern "system" { fn GetOutlineTextMetricsA(hdc: HDC, cjcopy: u32, potm: *mut OUTLINETEXTMETRICA) -> u32; } - GetOutlineTextMetricsA(hdc.into(), cjcopy, ::core::mem::transmute(potm)) + GetOutlineTextMetricsA(hdc.into(), potm.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(potm.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetOutlineTextMetricsW<'a, P0>(hdc: P0, cjcopy: u32, potm: ::core::option::Option<&mut OUTLINETEXTMETRICW>) -> u32 +pub unsafe fn GetOutlineTextMetricsW<'a, P0>(hdc: P0, potm: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -10564,11 +10563,11 @@ where extern "system" { fn GetOutlineTextMetricsW(hdc: HDC, cjcopy: u32, potm: *mut OUTLINETEXTMETRICW) -> u32; } - GetOutlineTextMetricsW(hdc.into(), cjcopy, ::core::mem::transmute(potm)) + GetOutlineTextMetricsW(hdc.into(), potm.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(potm.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetPaletteEntries<'a, P0>(hpal: P0, istart: u32, ppalentries: &mut [PALETTEENTRY]) -> u32 +pub unsafe fn GetPaletteEntries<'a, P0>(hpal: P0, istart: u32, ppalentries: ::core::option::Option<&mut [PALETTEENTRY]>) -> u32 where P0: ::std::convert::Into, { @@ -10576,12 +10575,12 @@ where extern "system" { fn GetPaletteEntries(hpal: HPALETTE, istart: u32, centries: u32, ppalentries: *mut PALETTEENTRY) -> u32; } - GetPaletteEntries(hpal.into(), istart, ppalentries.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppalentries))) + GetPaletteEntries(hpal.into(), istart, ppalentries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppalentries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPath<'a, P0>(hdc: P0, apt: ::core::option::Option<&mut super::super::Foundation::POINT>, aj: ::core::option::Option<&mut u8>, cpt: i32) -> i32 +pub unsafe fn GetPath<'a, P0>(hdc: P0, apt: *mut super::super::Foundation::POINT, aj: *mut u8, cpt: i32) -> i32 where P0: ::std::convert::Into, { @@ -10643,17 +10642,17 @@ where #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetRasterizerCaps(lpraststat: &mut RASTERIZER_STATUS, cjbytes: u32) -> super::super::Foundation::BOOL { +pub unsafe fn GetRasterizerCaps(lpraststat: &mut [u8]) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetRasterizerCaps(lpraststat: *mut RASTERIZER_STATUS, cjbytes: u32) -> super::super::Foundation::BOOL; } - GetRasterizerCaps(::core::mem::transmute(lpraststat), cjbytes) + GetRasterizerCaps(::core::mem::transmute(lpraststat.as_ptr()), lpraststat.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetRegionData<'a, P0>(hrgn: P0, ncount: u32, lprgndata: ::core::option::Option<&mut RGNDATA>) -> u32 +pub unsafe fn GetRegionData<'a, P0>(hrgn: P0, lprgndata: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -10661,7 +10660,7 @@ where extern "system" { fn GetRegionData(hrgn: HRGN, ncount: u32, lprgndata: *mut RGNDATA) -> u32; } - GetRegionData(hrgn.into(), ncount, ::core::mem::transmute(lprgndata)) + GetRegionData(hrgn.into(), lprgndata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lprgndata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10708,7 +10707,7 @@ pub unsafe fn GetSysColorBrush(nindex: i32) -> HBRUSH { } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetSystemPaletteEntries<'a, P0>(hdc: P0, istart: u32, ppalentries: &mut [PALETTEENTRY]) -> u32 +pub unsafe fn GetSystemPaletteEntries<'a, P0>(hdc: P0, istart: u32, ppalentries: ::core::option::Option<&mut [PALETTEENTRY]>) -> u32 where P0: ::std::convert::Into, { @@ -10716,7 +10715,7 @@ where extern "system" { fn GetSystemPaletteEntries(hdc: HDC, istart: u32, centries: u32, ppalentries: *mut PALETTEENTRY) -> u32; } - GetSystemPaletteEntries(hdc.into(), istart, ppalentries.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppalentries))) + GetSystemPaletteEntries(hdc.into(), istart, ppalentries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppalentries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -10732,7 +10731,7 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetTabbedTextExtentA<'a, P0>(hdc: P0, lpstring: &[u8], lpntabstoppositions: &[i32]) -> u32 +pub unsafe fn GetTabbedTextExtentA<'a, P0>(hdc: P0, lpstring: &[u8], lpntabstoppositions: ::core::option::Option<&[i32]>) -> u32 where P0: ::std::convert::Into, { @@ -10740,11 +10739,11 @@ where extern "system" { fn GetTabbedTextExtentA(hdc: HDC, lpstring: ::windows::core::PCSTR, chcount: i32, ntabpositions: i32, lpntabstoppositions: *const i32) -> u32; } - GetTabbedTextExtentA(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring)), lpstring.len() as _, lpntabstoppositions.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpntabstoppositions))) + GetTabbedTextExtentA(hdc.into(), ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _, lpntabstoppositions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpntabstoppositions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetTabbedTextExtentW<'a, P0>(hdc: P0, lpstring: &[u16], lpntabstoppositions: &[i32]) -> u32 +pub unsafe fn GetTabbedTextExtentW<'a, P0>(hdc: P0, lpstring: &[u16], lpntabstoppositions: ::core::option::Option<&[i32]>) -> u32 where P0: ::std::convert::Into, { @@ -10752,7 +10751,7 @@ where extern "system" { fn GetTabbedTextExtentW(hdc: HDC, lpstring: ::windows::core::PCWSTR, chcount: i32, ntabpositions: i32, lpntabstoppositions: *const i32) -> u32; } - GetTabbedTextExtentW(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring)), lpstring.len() as _, lpntabstoppositions.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpntabstoppositions))) + GetTabbedTextExtentW(hdc.into(), ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _, lpntabstoppositions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpntabstoppositions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -10793,7 +10792,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetTextExtentExPointA<'a, P0>(hdc: P0, lpszstring: ::windows::core::PCSTR, cchstring: i32, nmaxextent: i32, lpnfit: ::core::option::Option<&mut i32>, lpndx: ::core::option::Option<&mut i32>, lpsize: &mut super::super::Foundation::SIZE) -> super::super::Foundation::BOOL +pub unsafe fn GetTextExtentExPointA<'a, P0>(hdc: P0, lpszstring: ::windows::core::PCSTR, cchstring: i32, nmaxextent: i32, lpnfit: ::core::option::Option<&mut i32>, lpndx: *mut i32, lpsize: &mut super::super::Foundation::SIZE) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -10806,7 +10805,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetTextExtentExPointI<'a, P0>(hdc: P0, lpwszstring: &u16, cwchstring: i32, nmaxextent: i32, lpnfit: ::core::option::Option<&mut i32>, lpndx: ::core::option::Option<&mut i32>, lpsize: &mut super::super::Foundation::SIZE) -> super::super::Foundation::BOOL +pub unsafe fn GetTextExtentExPointI<'a, P0>(hdc: P0, lpwszstring: *const u16, cwchstring: i32, nmaxextent: i32, lpnfit: ::core::option::Option<&mut i32>, lpndx: *mut i32, lpsize: &mut super::super::Foundation::SIZE) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -10819,7 +10818,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetTextExtentExPointW<'a, P0>(hdc: P0, lpszstring: ::windows::core::PCWSTR, cchstring: i32, nmaxextent: i32, lpnfit: ::core::option::Option<&mut i32>, lpndx: ::core::option::Option<&mut i32>, lpsize: &mut super::super::Foundation::SIZE) -> super::super::Foundation::BOOL +pub unsafe fn GetTextExtentExPointW<'a, P0>(hdc: P0, lpszstring: ::windows::core::PCWSTR, cchstring: i32, nmaxextent: i32, lpnfit: ::core::option::Option<&mut i32>, lpndx: *mut i32, lpsize: &mut super::super::Foundation::SIZE) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -10840,7 +10839,7 @@ where extern "system" { fn GetTextExtentPoint32A(hdc: HDC, lpstring: ::windows::core::PCSTR, c: i32, psizl: *mut super::super::Foundation::SIZE) -> super::super::Foundation::BOOL; } - GetTextExtentPoint32A(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring)), lpstring.len() as _, ::core::mem::transmute(psizl)) + GetTextExtentPoint32A(hdc.into(), ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _, ::core::mem::transmute(psizl)) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10853,7 +10852,7 @@ where extern "system" { fn GetTextExtentPoint32W(hdc: HDC, lpstring: ::windows::core::PCWSTR, c: i32, psizl: *mut super::super::Foundation::SIZE) -> super::super::Foundation::BOOL; } - GetTextExtentPoint32W(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring)), lpstring.len() as _, ::core::mem::transmute(psizl)) + GetTextExtentPoint32W(hdc.into(), ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _, ::core::mem::transmute(psizl)) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10866,7 +10865,7 @@ where extern "system" { fn GetTextExtentPointA(hdc: HDC, lpstring: ::windows::core::PCSTR, c: i32, lpsz: *mut super::super::Foundation::SIZE) -> super::super::Foundation::BOOL; } - GetTextExtentPointA(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring)), lpstring.len() as _, ::core::mem::transmute(lpsz)) + GetTextExtentPointA(hdc.into(), ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _, ::core::mem::transmute(lpsz)) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10879,7 +10878,7 @@ where extern "system" { fn GetTextExtentPointI(hdc: HDC, pgiin: *const u16, cgi: i32, psize: *mut super::super::Foundation::SIZE) -> super::super::Foundation::BOOL; } - GetTextExtentPointI(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pgiin)), pgiin.len() as _, ::core::mem::transmute(psize)) + GetTextExtentPointI(hdc.into(), ::core::mem::transmute(pgiin.as_ptr()), pgiin.len() as _, ::core::mem::transmute(psize)) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10892,11 +10891,11 @@ where extern "system" { fn GetTextExtentPointW(hdc: HDC, lpstring: ::windows::core::PCWSTR, c: i32, lpsz: *mut super::super::Foundation::SIZE) -> super::super::Foundation::BOOL; } - GetTextExtentPointW(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring)), lpstring.len() as _, ::core::mem::transmute(lpsz)) + GetTextExtentPointW(hdc.into(), ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _, ::core::mem::transmute(lpsz)) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetTextFaceA<'a, P0>(hdc: P0, lpname: &mut [u8]) -> i32 +pub unsafe fn GetTextFaceA<'a, P0>(hdc: P0, lpname: ::core::option::Option<&mut [u8]>) -> i32 where P0: ::std::convert::Into, { @@ -10904,11 +10903,11 @@ where extern "system" { fn GetTextFaceA(hdc: HDC, c: i32, lpname: ::windows::core::PSTR) -> i32; } - GetTextFaceA(hdc.into(), lpname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpname))) + GetTextFaceA(hdc.into(), lpname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetTextFaceW<'a, P0>(hdc: P0, lpname: &mut [u16]) -> i32 +pub unsafe fn GetTextFaceW<'a, P0>(hdc: P0, lpname: ::core::option::Option<&mut [u16]>) -> i32 where P0: ::std::convert::Into, { @@ -10916,7 +10915,7 @@ where extern "system" { fn GetTextFaceW(hdc: HDC, c: i32, lpname: ::windows::core::PWSTR) -> i32; } - GetTextFaceW(hdc.into(), lpname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpname))) + GetTextFaceW(hdc.into(), lpname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -11001,7 +11000,7 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn GetWinMetaFileBits<'a, P0, P1>(hemf: P0, cbdata16: u32, pdata16: ::core::option::Option<&mut u8>, imapmode: i32, hdcref: P1) -> u32 +pub unsafe fn GetWinMetaFileBits<'a, P0, P1>(hemf: P0, pdata16: ::core::option::Option<&mut [u8]>, imapmode: i32, hdcref: P1) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -11010,7 +11009,7 @@ where extern "system" { fn GetWinMetaFileBits(hemf: HENHMETAFILE, cbdata16: u32, pdata16: *mut u8, imapmode: i32, hdcref: HDC) -> u32; } - GetWinMetaFileBits(hemf.into(), cbdata16, ::core::mem::transmute(pdata16), imapmode, hdcref.into()) + GetWinMetaFileBits(hemf.into(), pdata16.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata16.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), imapmode, hdcref.into()) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -11102,7 +11101,7 @@ where extern "system" { fn GradientFill(hdc: HDC, pvertex: *const TRIVERTEX, nvertex: u32, pmesh: *const ::core::ffi::c_void, nmesh: u32, ulmode: GRADIENT_FILL) -> super::super::Foundation::BOOL; } - GradientFill(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pvertex)), pvertex.len() as _, ::core::mem::transmute(pmesh), nmesh, ulmode) + GradientFill(hdc.into(), ::core::mem::transmute(pvertex.as_ptr()), pvertex.len() as _, ::core::mem::transmute(pmesh), nmesh, ulmode) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12190,7 +12189,7 @@ where extern "system" { fn LPtoDP(hdc: HDC, lppt: *mut super::super::Foundation::POINT, c: i32) -> super::super::Foundation::BOOL; } - LPtoDP(hdc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lppt)), lppt.len() as _) + LPtoDP(hdc.into(), ::core::mem::transmute(lppt.as_ptr()), lppt.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12708,7 +12707,7 @@ where extern "system" { fn MapWindowPoints(hwndfrom: super::super::Foundation::HWND, hwndto: super::super::Foundation::HWND, lppoints: *mut super::super::Foundation::POINT, cpoints: u32) -> i32; } - MapWindowPoints(hwndfrom.into(), hwndto.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lppoints)), lppoints.len() as _) + MapWindowPoints(hwndfrom.into(), hwndto.into(), ::core::mem::transmute(lppoints.as_ptr()), lppoints.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14037,7 +14036,7 @@ where extern "system" { fn PlayEnhMetaFileRecord(hdc: HDC, pht: *const HANDLETABLE, pmr: *const ENHMETARECORD, cht: u32) -> super::super::Foundation::BOOL; } - PlayEnhMetaFileRecord(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pht)), ::core::mem::transmute(pmr), pht.len() as _) + PlayEnhMetaFileRecord(hdc.into(), ::core::mem::transmute(pht.as_ptr()), ::core::mem::transmute(pmr), pht.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14064,7 +14063,7 @@ where extern "system" { fn PlayMetaFileRecord(hdc: HDC, lphandletable: *const HANDLETABLE, lpmr: *const METARECORD, noobjs: u32) -> super::super::Foundation::BOOL; } - PlayMetaFileRecord(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lphandletable)), ::core::mem::transmute(lpmr), lphandletable.len() as _) + PlayMetaFileRecord(hdc.into(), ::core::mem::transmute(lphandletable.as_ptr()), ::core::mem::transmute(lpmr), lphandletable.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14079,7 +14078,7 @@ where extern "system" { fn PlgBlt(hdcdest: HDC, lppoint: *const super::super::Foundation::POINT, hdcsrc: HDC, xsrc: i32, ysrc: i32, width: i32, height: i32, hbmmask: HBITMAP, xmask: i32, ymask: i32) -> super::super::Foundation::BOOL; } - PlgBlt(hdcdest.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lppoint)), hdcsrc.into(), xsrc, ysrc, width, height, hbmmask.into(), xmask, ymask) + PlgBlt(hdcdest.into(), ::core::mem::transmute(lppoint.as_ptr()), hdcsrc.into(), xsrc, ysrc, width, height, hbmmask.into(), xmask, ymask) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14092,7 +14091,7 @@ where extern "system" { fn PolyBezier(hdc: HDC, apt: *const super::super::Foundation::POINT, cpt: u32) -> super::super::Foundation::BOOL; } - PolyBezier(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(apt)), apt.len() as _) + PolyBezier(hdc.into(), ::core::mem::transmute(apt.as_ptr()), apt.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14105,12 +14104,12 @@ where extern "system" { fn PolyBezierTo(hdc: HDC, apt: *const super::super::Foundation::POINT, cpt: u32) -> super::super::Foundation::BOOL; } - PolyBezierTo(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(apt)), apt.len() as _) + PolyBezierTo(hdc.into(), ::core::mem::transmute(apt.as_ptr()), apt.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PolyDraw<'a, P0>(hdc: P0, apt: &super::super::Foundation::POINT, aj: &u8, cpt: i32) -> super::super::Foundation::BOOL +pub unsafe fn PolyDraw<'a, P0>(hdc: P0, apt: *const super::super::Foundation::POINT, aj: *const u8, cpt: i32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -14131,7 +14130,7 @@ where extern "system" { fn PolyPolygon(hdc: HDC, apt: *const super::super::Foundation::POINT, asz: *const i32, csz: i32) -> super::super::Foundation::BOOL; } - PolyPolygon(hdc.into(), ::core::mem::transmute(apt), ::core::mem::transmute(::windows::core::as_ptr_or_null(asz)), asz.len() as _) + PolyPolygon(hdc.into(), ::core::mem::transmute(apt), ::core::mem::transmute(asz.as_ptr()), asz.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14144,7 +14143,7 @@ where extern "system" { fn PolyPolyline(hdc: HDC, apt: *const super::super::Foundation::POINT, asz: *const u32, csz: u32) -> super::super::Foundation::BOOL; } - PolyPolyline(hdc.into(), ::core::mem::transmute(apt), ::core::mem::transmute(::windows::core::as_ptr_or_null(asz)), asz.len() as _) + PolyPolyline(hdc.into(), ::core::mem::transmute(apt), ::core::mem::transmute(asz.as_ptr()), asz.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14157,7 +14156,7 @@ where extern "system" { fn PolyTextOutA(hdc: HDC, ppt: *const POLYTEXTA, nstrings: i32) -> super::super::Foundation::BOOL; } - PolyTextOutA(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppt)), ppt.len() as _) + PolyTextOutA(hdc.into(), ::core::mem::transmute(ppt.as_ptr()), ppt.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14170,7 +14169,7 @@ where extern "system" { fn PolyTextOutW(hdc: HDC, ppt: *const POLYTEXTW, nstrings: i32) -> super::super::Foundation::BOOL; } - PolyTextOutW(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppt)), ppt.len() as _) + PolyTextOutW(hdc.into(), ::core::mem::transmute(ppt.as_ptr()), ppt.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14183,7 +14182,7 @@ where extern "system" { fn Polygon(hdc: HDC, apt: *const super::super::Foundation::POINT, cpt: i32) -> super::super::Foundation::BOOL; } - Polygon(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(apt)), apt.len() as _) + Polygon(hdc.into(), ::core::mem::transmute(apt.as_ptr()), apt.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14196,7 +14195,7 @@ where extern "system" { fn Polyline(hdc: HDC, apt: *const super::super::Foundation::POINT, cpt: i32) -> super::super::Foundation::BOOL; } - Polyline(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(apt)), apt.len() as _) + Polyline(hdc.into(), ::core::mem::transmute(apt.as_ptr()), apt.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14209,7 +14208,7 @@ where extern "system" { fn PolylineTo(hdc: HDC, apt: *const super::super::Foundation::POINT, cpt: u32) -> super::super::Foundation::BOOL; } - PolylineTo(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(apt)), apt.len() as _) + PolylineTo(hdc.into(), ::core::mem::transmute(apt.as_ptr()), apt.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -15298,7 +15297,7 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn SetBitmapBits<'a, P0>(hbm: P0, cb: u32, pvbits: *const ::core::ffi::c_void) -> i32 +pub unsafe fn SetBitmapBits<'a, P0>(hbm: P0, pvbits: &[u8]) -> i32 where P0: ::std::convert::Into, { @@ -15306,7 +15305,7 @@ where extern "system" { fn SetBitmapBits(hbm: HBITMAP, cb: u32, pvbits: *const ::core::ffi::c_void) -> i32; } - SetBitmapBits(hbm.into(), cb, ::core::mem::transmute(pvbits)) + SetBitmapBits(hbm.into(), pvbits.len() as _, ::core::mem::transmute(pvbits.as_ptr())) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -15418,7 +15417,7 @@ where extern "system" { fn SetDIBColorTable(hdc: HDC, istart: u32, centries: u32, prgbq: *const RGBQUAD) -> u32; } - SetDIBColorTable(hdc.into(), istart, prgbq.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prgbq))) + SetDIBColorTable(hdc.into(), istart, prgbq.len() as _, ::core::mem::transmute(prgbq.as_ptr())) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -15447,12 +15446,12 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn SetEnhMetaFileBits(nsize: u32, pb: &u8) -> HENHMETAFILE { +pub unsafe fn SetEnhMetaFileBits(pb: &[u8]) -> HENHMETAFILE { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetEnhMetaFileBits(nsize: u32, pb: *const u8) -> HENHMETAFILE; } - SetEnhMetaFileBits(nsize, ::core::mem::transmute(pb)) + SetEnhMetaFileBits(pb.len() as _, ::core::mem::transmute(pb.as_ptr())) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -15504,12 +15503,12 @@ where } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn SetMetaFileBitsEx(cbbuffer: u32, lpdata: &u8) -> HMETAFILE { +pub unsafe fn SetMetaFileBitsEx(lpdata: &[u8]) -> HMETAFILE { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetMetaFileBitsEx(cbbuffer: u32, lpdata: *const u8) -> HMETAFILE; } - SetMetaFileBitsEx(cbbuffer, ::core::mem::transmute(lpdata)) + SetMetaFileBitsEx(lpdata.len() as _, ::core::mem::transmute(lpdata.as_ptr())) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -15546,7 +15545,7 @@ where extern "system" { fn SetPaletteEntries(hpal: HPALETTE, istart: u32, centries: u32, ppalentries: *const PALETTEENTRY) -> u32; } - SetPaletteEntries(hpal.into(), istart, ppalentries.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppalentries))) + SetPaletteEntries(hpal.into(), istart, ppalentries.len() as _, ::core::mem::transmute(ppalentries.as_ptr())) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -16133,7 +16132,7 @@ where extern "system" { fn TTCharToUnicode(hdc: HDC, puccharcodes: *const u8, ulcharcodesize: u32, pusshortcodes: *mut u16, ulshortcodesize: u32, ulflags: u32) -> i32; } - TTCharToUnicode(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(puccharcodes)), puccharcodes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pusshortcodes)), pusshortcodes.len() as _, ulflags) + TTCharToUnicode(hdc.into(), ::core::mem::transmute(puccharcodes.as_ptr()), puccharcodes.len() as _, ::core::mem::transmute(pusshortcodes.as_ptr()), pusshortcodes.len() as _, ulflags) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] pub const TTDELETE_DONTREMOVEFONT: u32 = 1u32; @@ -16263,7 +16262,7 @@ where extern "system" { fn TTEmbedFont(hdc: HDC, ulflags: TTEMBED_FLAGS, ulcharset: EMBED_FONT_CHARSET, pulprivstatus: *mut EMBEDDED_FONT_PRIV_STATUS, pulstatus: *mut u32, lpfnwritetostream: *mut ::core::ffi::c_void, lpvwritestream: *const ::core::ffi::c_void, puscharcodeset: *const u16, uscharcodecount: u16, uslanguage: u16, pttembedinfo: *const TTEMBEDINFO) -> i32; } - TTEmbedFont(hdc.into(), ulflags, ulcharset, ::core::mem::transmute(pulprivstatus), ::core::mem::transmute(pulstatus), ::core::mem::transmute(lpfnwritetostream), ::core::mem::transmute(lpvwritestream), ::core::mem::transmute(::windows::core::as_ptr_or_null(puscharcodeset)), puscharcodeset.len() as _, uslanguage, ::core::mem::transmute(pttembedinfo)) + TTEmbedFont(hdc.into(), ulflags, ulcharset, ::core::mem::transmute(pulprivstatus), ::core::mem::transmute(pulstatus), ::core::mem::transmute(lpfnwritetostream), ::core::mem::transmute(lpvwritestream), ::core::mem::transmute(puscharcodeset.as_ptr()), puscharcodeset.len() as _, uslanguage, ::core::mem::transmute(pttembedinfo)) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -16275,7 +16274,7 @@ where extern "system" { fn TTEmbedFontEx(hdc: HDC, ulflags: TTEMBED_FLAGS, ulcharset: EMBED_FONT_CHARSET, pulprivstatus: *mut EMBEDDED_FONT_PRIV_STATUS, pulstatus: *mut u32, lpfnwritetostream: *mut ::core::ffi::c_void, lpvwritestream: *const ::core::ffi::c_void, pulcharcodeset: *const u32, uscharcodecount: u16, uslanguage: u16, pttembedinfo: *const TTEMBEDINFO) -> i32; } - TTEmbedFontEx(hdc.into(), ulflags, ulcharset, ::core::mem::transmute(pulprivstatus), ::core::mem::transmute(pulstatus), ::core::mem::transmute(lpfnwritetostream), ::core::mem::transmute(lpvwritestream), ::core::mem::transmute(::windows::core::as_ptr_or_null(pulcharcodeset)), pulcharcodeset.len() as _, uslanguage, ::core::mem::transmute(pttembedinfo)) + TTEmbedFontEx(hdc.into(), ulflags, ulcharset, ::core::mem::transmute(pulprivstatus), ::core::mem::transmute(pulstatus), ::core::mem::transmute(lpfnwritetostream), ::core::mem::transmute(lpvwritestream), ::core::mem::transmute(pulcharcodeset.as_ptr()), pulcharcodeset.len() as _, uslanguage, ::core::mem::transmute(pttembedinfo)) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] @@ -16288,7 +16287,7 @@ where extern "system" { fn TTEmbedFontFromFileA(hdc: HDC, szfontfilename: ::windows::core::PCSTR, usttcindex: u16, ulflags: TTEMBED_FLAGS, ulcharset: EMBED_FONT_CHARSET, pulprivstatus: *mut EMBEDDED_FONT_PRIV_STATUS, pulstatus: *mut u32, lpfnwritetostream: *mut ::core::ffi::c_void, lpvwritestream: *const ::core::ffi::c_void, puscharcodeset: *const u16, uscharcodecount: u16, uslanguage: u16, pttembedinfo: *const TTEMBEDINFO) -> i32; } - TTEmbedFontFromFileA(hdc.into(), szfontfilename.into(), usttcindex, ulflags, ulcharset, ::core::mem::transmute(pulprivstatus), ::core::mem::transmute(pulstatus), ::core::mem::transmute(lpfnwritetostream), ::core::mem::transmute(lpvwritestream), ::core::mem::transmute(::windows::core::as_ptr_or_null(puscharcodeset)), puscharcodeset.len() as _, uslanguage, ::core::mem::transmute(pttembedinfo)) + TTEmbedFontFromFileA(hdc.into(), szfontfilename.into(), usttcindex, ulflags, ulcharset, ::core::mem::transmute(pulprivstatus), ::core::mem::transmute(pulstatus), ::core::mem::transmute(lpfnwritetostream), ::core::mem::transmute(lpvwritestream), ::core::mem::transmute(puscharcodeset.as_ptr()), puscharcodeset.len() as _, uslanguage, ::core::mem::transmute(pttembedinfo)) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -16361,7 +16360,7 @@ pub unsafe fn TTGetNewFontName(phfontreference: &super::super::Foundation::HANDL extern "system" { fn TTGetNewFontName(phfontreference: *const super::super::Foundation::HANDLE, wzwinfamilyname: ::windows::core::PWSTR, cchmaxwinname: i32, szmacfamilyname: ::windows::core::PSTR, cchmaxmacname: i32) -> i32; } - TTGetNewFontName(::core::mem::transmute(phfontreference), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzwinfamilyname)), wzwinfamilyname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szmacfamilyname)), szmacfamilyname.len() as _) + TTGetNewFontName(::core::mem::transmute(phfontreference), ::core::mem::transmute(wzwinfamilyname.as_ptr()), wzwinfamilyname.len() as _, ::core::mem::transmute(szmacfamilyname.as_ptr()), szmacfamilyname.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -16672,7 +16671,7 @@ pub const TT_PRIM_QSPLINE: u32 = 2u32; pub const TURKISH_CHARSET: u32 = 162u32; #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn TabbedTextOutA<'a, P0>(hdc: P0, x: i32, y: i32, lpstring: &[u8], lpntabstoppositions: &[i32], ntaborigin: i32) -> i32 +pub unsafe fn TabbedTextOutA<'a, P0>(hdc: P0, x: i32, y: i32, lpstring: &[u8], lpntabstoppositions: ::core::option::Option<&[i32]>, ntaborigin: i32) -> i32 where P0: ::std::convert::Into, { @@ -16680,11 +16679,11 @@ where extern "system" { fn TabbedTextOutA(hdc: HDC, x: i32, y: i32, lpstring: ::windows::core::PCSTR, chcount: i32, ntabpositions: i32, lpntabstoppositions: *const i32, ntaborigin: i32) -> i32; } - TabbedTextOutA(hdc.into(), x, y, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring)), lpstring.len() as _, lpntabstoppositions.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpntabstoppositions)), ntaborigin) + TabbedTextOutA(hdc.into(), x, y, ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _, lpntabstoppositions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpntabstoppositions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ntaborigin) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[inline] -pub unsafe fn TabbedTextOutW<'a, P0>(hdc: P0, x: i32, y: i32, lpstring: &[u16], lpntabstoppositions: &[i32], ntaborigin: i32) -> i32 +pub unsafe fn TabbedTextOutW<'a, P0>(hdc: P0, x: i32, y: i32, lpstring: &[u16], lpntabstoppositions: ::core::option::Option<&[i32]>, ntaborigin: i32) -> i32 where P0: ::std::convert::Into, { @@ -16692,7 +16691,7 @@ where extern "system" { fn TabbedTextOutW(hdc: HDC, x: i32, y: i32, lpstring: ::windows::core::PCWSTR, chcount: i32, ntabpositions: i32, lpntabstoppositions: *const i32, ntaborigin: i32) -> i32; } - TabbedTextOutW(hdc.into(), x, y, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring)), lpstring.len() as _, lpntabstoppositions.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpntabstoppositions)), ntaborigin) + TabbedTextOutW(hdc.into(), x, y, ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _, lpntabstoppositions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpntabstoppositions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ntaborigin) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -16705,7 +16704,7 @@ where extern "system" { fn TextOutA(hdc: HDC, x: i32, y: i32, lpstring: ::windows::core::PCSTR, c: i32) -> super::super::Foundation::BOOL; } - TextOutA(hdc.into(), x, y, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring)), lpstring.len() as _) + TextOutA(hdc.into(), x, y, ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -16718,7 +16717,7 @@ where extern "system" { fn TextOutW(hdc: HDC, x: i32, y: i32, lpstring: ::windows::core::PCWSTR, c: i32) -> super::super::Foundation::BOOL; } - TextOutW(hdc.into(), x, y, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstring)), lpstring.len() as _) + TextOutW(hdc.into(), x, y, ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/Imaging/D2D/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/Imaging/D2D/mod.rs index 086e57a649..da3cac3e1b 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Imaging/D2D/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Imaging/D2D/mod.rs @@ -172,7 +172,7 @@ impl IWICImagingFactory2 { } pub unsafe fn CreateBitmapFromMemory(&self, uiwidth: u32, uiheight: u32, pixelformat: &::windows::core::GUID, cbstride: u32, pbbuffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateBitmapFromMemory)(::windows::core::Interface::as_raw(self), uiwidth, uiheight, ::core::mem::transmute(pixelformat), cbstride, pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbbuffer)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateBitmapFromMemory)(::windows::core::Interface::as_raw(self), uiwidth, uiheight, ::core::mem::transmute(pixelformat), cbstride, pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/Imaging/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/Imaging/mod.rs index 8ce112c911..b06dc06b89 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Imaging/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Imaging/mod.rs @@ -288,7 +288,7 @@ impl IWICBitmap { (::windows::core::Interface::vtable(self).base__.CopyPalette)(::windows::core::Interface::as_raw(self), pipalette.into().abi()).ok() } pub unsafe fn CopyPixels(&self, prc: &WICRect, cbstride: u32, pbbuffer: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbbuffer))).ok() + (::windows::core::Interface::vtable(self).base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr())).ok() } pub unsafe fn Lock(&self, prclock: &WICRect, flags: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -383,7 +383,7 @@ impl IWICBitmapClipper { (::windows::core::Interface::vtable(self).base__.CopyPalette)(::windows::core::Interface::as_raw(self), pipalette.into().abi()).ok() } pub unsafe fn CopyPixels(&self, prc: &WICRect, cbstride: u32, pbbuffer: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbbuffer))).ok() + (::windows::core::Interface::vtable(self).base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr())).ok() } pub unsafe fn Initialize<'a, P0>(&self, pisource: P0, prc: &WICRect) -> ::windows::core::Result<()> where @@ -465,42 +465,42 @@ impl IWICBitmapCodecInfo { (::windows::core::Interface::vtable(self).base__.GetSigningStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetAuthor(&self, wzauthor: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzauthor)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(wzauthor.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetVendorGUID(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetVendorGUID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetVersion(&self, wzversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(wzversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetSpecVersion(&self, wzspecversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzspecversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(wzspecversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetFriendlyName(&self, wzfriendlyname: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzfriendlyname)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(wzfriendlyname.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetContainerFormat(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetContainerFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetPixelFormats(&self, pguidpixelformats: &mut [::windows::core::GUID], pcactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPixelFormats)(::windows::core::Interface::as_raw(self), pguidpixelformats.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pguidpixelformats)), ::core::mem::transmute(pcactual)).ok() + (::windows::core::Interface::vtable(self).GetPixelFormats)(::windows::core::Interface::as_raw(self), pguidpixelformats.len() as _, ::core::mem::transmute(pguidpixelformats.as_ptr()), ::core::mem::transmute(pcactual)).ok() } pub unsafe fn GetColorManagementVersion(&self, wzcolormanagementversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetColorManagementVersion)(::windows::core::Interface::as_raw(self), wzcolormanagementversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzcolormanagementversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).GetColorManagementVersion)(::windows::core::Interface::as_raw(self), wzcolormanagementversion.len() as _, ::core::mem::transmute(wzcolormanagementversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetDeviceManufacturer(&self, wzdevicemanufacturer: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDeviceManufacturer)(::windows::core::Interface::as_raw(self), wzdevicemanufacturer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzdevicemanufacturer)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).GetDeviceManufacturer)(::windows::core::Interface::as_raw(self), wzdevicemanufacturer.len() as _, ::core::mem::transmute(wzdevicemanufacturer.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetDeviceModels(&self, wzdevicemodels: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDeviceModels)(::windows::core::Interface::as_raw(self), wzdevicemodels.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzdevicemodels)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).GetDeviceModels)(::windows::core::Interface::as_raw(self), wzdevicemodels.len() as _, ::core::mem::transmute(wzdevicemodels.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetMimeTypes(&self, wzmimetypes: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetMimeTypes)(::windows::core::Interface::as_raw(self), wzmimetypes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzmimetypes)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).GetMimeTypes)(::windows::core::Interface::as_raw(self), wzmimetypes.len() as _, ::core::mem::transmute(wzmimetypes.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetFileExtensions(&self, wzfileextensions: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFileExtensions)(::windows::core::Interface::as_raw(self), wzfileextensions.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzfileextensions)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).GetFileExtensions)(::windows::core::Interface::as_raw(self), wzfileextensions.len() as _, ::core::mem::transmute(wzfileextensions.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -711,7 +711,7 @@ impl IWICBitmapDecoder { (::windows::core::Interface::vtable(self).GetPreview)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetColorContexts(&self, ppicolorcontexts: &mut [::core::option::Option], pcactualcount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetColorContexts)(::windows::core::Interface::as_raw(self), ppicolorcontexts.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppicolorcontexts)), ::core::mem::transmute(pcactualcount)).ok() + (::windows::core::Interface::vtable(self).GetColorContexts)(::windows::core::Interface::as_raw(self), ppicolorcontexts.len() as _, ::core::mem::transmute(ppicolorcontexts.as_ptr()), ::core::mem::transmute(pcactualcount)).ok() } pub unsafe fn GetThumbnail(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -800,42 +800,42 @@ impl IWICBitmapDecoderInfo { (::windows::core::Interface::vtable(self).base__.base__.GetSigningStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetAuthor(&self, wzauthor: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzauthor)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(wzauthor.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetVendorGUID(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.GetVendorGUID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetVersion(&self, wzversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(wzversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetSpecVersion(&self, wzspecversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzspecversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(wzspecversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetFriendlyName(&self, wzfriendlyname: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzfriendlyname)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(wzfriendlyname.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetContainerFormat(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetContainerFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetPixelFormats(&self, pguidpixelformats: &mut [::windows::core::GUID], pcactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetPixelFormats)(::windows::core::Interface::as_raw(self), pguidpixelformats.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pguidpixelformats)), ::core::mem::transmute(pcactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetPixelFormats)(::windows::core::Interface::as_raw(self), pguidpixelformats.len() as _, ::core::mem::transmute(pguidpixelformats.as_ptr()), ::core::mem::transmute(pcactual)).ok() } pub unsafe fn GetColorManagementVersion(&self, wzcolormanagementversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetColorManagementVersion)(::windows::core::Interface::as_raw(self), wzcolormanagementversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzcolormanagementversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetColorManagementVersion)(::windows::core::Interface::as_raw(self), wzcolormanagementversion.len() as _, ::core::mem::transmute(wzcolormanagementversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetDeviceManufacturer(&self, wzdevicemanufacturer: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetDeviceManufacturer)(::windows::core::Interface::as_raw(self), wzdevicemanufacturer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzdevicemanufacturer)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetDeviceManufacturer)(::windows::core::Interface::as_raw(self), wzdevicemanufacturer.len() as _, ::core::mem::transmute(wzdevicemanufacturer.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetDeviceModels(&self, wzdevicemodels: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetDeviceModels)(::windows::core::Interface::as_raw(self), wzdevicemodels.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzdevicemodels)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetDeviceModels)(::windows::core::Interface::as_raw(self), wzdevicemodels.len() as _, ::core::mem::transmute(wzdevicemodels.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetMimeTypes(&self, wzmimetypes: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetMimeTypes)(::windows::core::Interface::as_raw(self), wzmimetypes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzmimetypes)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetMimeTypes)(::windows::core::Interface::as_raw(self), wzmimetypes.len() as _, ::core::mem::transmute(wzmimetypes.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetFileExtensions(&self, wzfileextensions: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetFileExtensions)(::windows::core::Interface::as_raw(self), wzfileextensions.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzfileextensions)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetFileExtensions)(::windows::core::Interface::as_raw(self), wzfileextensions.len() as _, ::core::mem::transmute(wzfileextensions.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -872,8 +872,8 @@ impl IWICBitmapDecoderInfo { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetPatterns(&self, cbsizepatterns: u32, ppatterns: ::core::option::Option<&mut WICBitmapPattern>, pcpatterns: ::core::option::Option<&mut u32>, pcbpatternsactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPatterns)(::windows::core::Interface::as_raw(self), cbsizepatterns, ::core::mem::transmute(ppatterns), ::core::mem::transmute(pcpatterns), ::core::mem::transmute(pcbpatternsactual)).ok() + pub unsafe fn GetPatterns(&self, ppatterns: ::core::option::Option<&mut [u8]>, pcpatterns: ::core::option::Option<&mut u32>, pcbpatternsactual: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPatterns)(::windows::core::Interface::as_raw(self), ppatterns.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppatterns.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcpatterns), ::core::mem::transmute(pcbpatternsactual)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] @@ -989,7 +989,7 @@ impl IWICBitmapEncoder { (::windows::core::Interface::vtable(self).GetEncoderInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetColorContexts(&self, ppicolorcontext: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetColorContexts)(::windows::core::Interface::as_raw(self), ppicolorcontext.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppicolorcontext))).ok() + (::windows::core::Interface::vtable(self).SetColorContexts)(::windows::core::Interface::as_raw(self), ppicolorcontext.len() as _, ::core::mem::transmute(ppicolorcontext.as_ptr())).ok() } pub unsafe fn SetPalette<'a, P0>(&self, pipalette: P0) -> ::windows::core::Result<()> where @@ -1095,42 +1095,42 @@ impl IWICBitmapEncoderInfo { (::windows::core::Interface::vtable(self).base__.base__.GetSigningStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetAuthor(&self, wzauthor: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzauthor)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(wzauthor.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetVendorGUID(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.GetVendorGUID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetVersion(&self, wzversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(wzversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetSpecVersion(&self, wzspecversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzspecversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(wzspecversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetFriendlyName(&self, wzfriendlyname: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzfriendlyname)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(wzfriendlyname.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetContainerFormat(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetContainerFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetPixelFormats(&self, pguidpixelformats: &mut [::windows::core::GUID], pcactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetPixelFormats)(::windows::core::Interface::as_raw(self), pguidpixelformats.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pguidpixelformats)), ::core::mem::transmute(pcactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetPixelFormats)(::windows::core::Interface::as_raw(self), pguidpixelformats.len() as _, ::core::mem::transmute(pguidpixelformats.as_ptr()), ::core::mem::transmute(pcactual)).ok() } pub unsafe fn GetColorManagementVersion(&self, wzcolormanagementversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetColorManagementVersion)(::windows::core::Interface::as_raw(self), wzcolormanagementversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzcolormanagementversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetColorManagementVersion)(::windows::core::Interface::as_raw(self), wzcolormanagementversion.len() as _, ::core::mem::transmute(wzcolormanagementversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetDeviceManufacturer(&self, wzdevicemanufacturer: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetDeviceManufacturer)(::windows::core::Interface::as_raw(self), wzdevicemanufacturer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzdevicemanufacturer)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetDeviceManufacturer)(::windows::core::Interface::as_raw(self), wzdevicemanufacturer.len() as _, ::core::mem::transmute(wzdevicemanufacturer.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetDeviceModels(&self, wzdevicemodels: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetDeviceModels)(::windows::core::Interface::as_raw(self), wzdevicemodels.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzdevicemodels)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetDeviceModels)(::windows::core::Interface::as_raw(self), wzdevicemodels.len() as _, ::core::mem::transmute(wzdevicemodels.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetMimeTypes(&self, wzmimetypes: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetMimeTypes)(::windows::core::Interface::as_raw(self), wzmimetypes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzmimetypes)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetMimeTypes)(::windows::core::Interface::as_raw(self), wzmimetypes.len() as _, ::core::mem::transmute(wzmimetypes.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetFileExtensions(&self, wzfileextensions: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetFileExtensions)(::windows::core::Interface::as_raw(self), wzfileextensions.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzfileextensions)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetFileExtensions)(::windows::core::Interface::as_raw(self), wzfileextensions.len() as _, ::core::mem::transmute(wzfileextensions.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1262,7 +1262,7 @@ impl IWICBitmapFlipRotator { (::windows::core::Interface::vtable(self).base__.CopyPalette)(::windows::core::Interface::as_raw(self), pipalette.into().abi()).ok() } pub unsafe fn CopyPixels(&self, prc: &WICRect, cbstride: u32, pbbuffer: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbbuffer))).ok() + (::windows::core::Interface::vtable(self).base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr())).ok() } pub unsafe fn Initialize<'a, P0>(&self, pisource: P0, options: WICBitmapTransformOptions) -> ::windows::core::Result<()> where @@ -1348,14 +1348,14 @@ impl IWICBitmapFrameDecode { (::windows::core::Interface::vtable(self).base__.CopyPalette)(::windows::core::Interface::as_raw(self), pipalette.into().abi()).ok() } pub unsafe fn CopyPixels(&self, prc: &WICRect, cbstride: u32, pbbuffer: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbbuffer))).ok() + (::windows::core::Interface::vtable(self).base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr())).ok() } pub unsafe fn GetMetadataQueryReader(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetMetadataQueryReader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetColorContexts(&self, ppicolorcontexts: &mut [::core::option::Option], pcactualcount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetColorContexts)(::windows::core::Interface::as_raw(self), ppicolorcontexts.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppicolorcontexts)), ::core::mem::transmute(pcactualcount)).ok() + (::windows::core::Interface::vtable(self).GetColorContexts)(::windows::core::Interface::as_raw(self), ppicolorcontexts.len() as _, ::core::mem::transmute(ppicolorcontexts.as_ptr()), ::core::mem::transmute(pcactualcount)).ok() } pub unsafe fn GetThumbnail(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1442,7 +1442,7 @@ impl IWICBitmapFrameEncode { (::windows::core::Interface::vtable(self).SetPixelFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppixelformat)).ok() } pub unsafe fn SetColorContexts(&self, ppicolorcontext: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetColorContexts)(::windows::core::Interface::as_raw(self), ppicolorcontext.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppicolorcontext))).ok() + (::windows::core::Interface::vtable(self).SetColorContexts)(::windows::core::Interface::as_raw(self), ppicolorcontext.len() as _, ::core::mem::transmute(ppicolorcontext.as_ptr())).ok() } pub unsafe fn SetPalette<'a, P0>(&self, pipalette: P0) -> ::windows::core::Result<()> where @@ -1457,7 +1457,7 @@ impl IWICBitmapFrameEncode { (::windows::core::Interface::vtable(self).SetThumbnail)(::windows::core::Interface::as_raw(self), pithumbnail.into().abi()).ok() } pub unsafe fn WritePixels(&self, linecount: u32, cbstride: u32, pbpixels: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WritePixels)(::windows::core::Interface::as_raw(self), linecount, cbstride, pbpixels.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpixels))).ok() + (::windows::core::Interface::vtable(self).WritePixels)(::windows::core::Interface::as_raw(self), linecount, cbstride, pbpixels.len() as _, ::core::mem::transmute(pbpixels.as_ptr())).ok() } pub unsafe fn WriteSource<'a, P0>(&self, pibitmapsource: P0, prc: &WICRect) -> ::windows::core::Result<()> where @@ -1538,7 +1538,7 @@ impl IWICBitmapLock { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetStride)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetDataPointer(&self, pcbbuffersize: &mut u32, ppbdata: &mut *mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetDataPointer(&self, pcbbuffersize: &mut u32, ppbdata: *mut *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDataPointer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcbbuffersize), ::core::mem::transmute(ppbdata)).ok() } pub unsafe fn GetPixelFormat(&self) -> ::windows::core::Result<::windows::core::GUID> { @@ -1611,7 +1611,7 @@ impl IWICBitmapScaler { (::windows::core::Interface::vtable(self).base__.CopyPalette)(::windows::core::Interface::as_raw(self), pipalette.into().abi()).ok() } pub unsafe fn CopyPixels(&self, prc: &WICRect, cbstride: u32, pbbuffer: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbbuffer))).ok() + (::windows::core::Interface::vtable(self).base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr())).ok() } pub unsafe fn Initialize<'a, P0>(&self, pisource: P0, uiwidth: u32, uiheight: u32, mode: WICBitmapInterpolationMode) -> ::windows::core::Result<()> where @@ -1697,7 +1697,7 @@ impl IWICBitmapSource { (::windows::core::Interface::vtable(self).CopyPalette)(::windows::core::Interface::as_raw(self), pipalette.into().abi()).ok() } pub unsafe fn CopyPixels(&self, prc: &WICRect, cbstride: u32, pbbuffer: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbbuffer))).ok() + (::windows::core::Interface::vtable(self).CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1750,7 +1750,7 @@ pub struct IWICBitmapSource_Vtbl { pub struct IWICBitmapSourceTransform(::windows::core::IUnknown); impl IWICBitmapSourceTransform { pub unsafe fn CopyPixels(&self, prc: &WICRect, uiwidth: u32, uiheight: u32, pguiddstformat: &::windows::core::GUID, dsttransform: WICBitmapTransformOptions, nstride: u32, pbbuffer: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), uiwidth, uiheight, ::core::mem::transmute(pguiddstformat), dsttransform, nstride, pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbbuffer))).ok() + (::windows::core::Interface::vtable(self).CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), uiwidth, uiheight, ::core::mem::transmute(pguiddstformat), dsttransform, nstride, pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr())).ok() } pub unsafe fn GetClosestSize(&self, puiwidth: &mut u32, puiheight: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetClosestSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(puiwidth), ::core::mem::transmute(puiheight)).ok() @@ -1823,7 +1823,7 @@ impl IWICColorContext { (::windows::core::Interface::vtable(self).InitializeFromFilename)(::windows::core::Interface::as_raw(self), wzfilename.into()).ok() } pub unsafe fn InitializeFromMemory(&self, pbbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).InitializeFromMemory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbbuffer)), pbbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).InitializeFromMemory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbbuffer.as_ptr()), pbbuffer.len() as _).ok() } pub unsafe fn InitializeFromExifColorSpace(&self, value: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).InitializeFromExifColorSpace)(::windows::core::Interface::as_raw(self), value).ok() @@ -1833,7 +1833,7 @@ impl IWICColorContext { (::windows::core::Interface::vtable(self).GetType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetProfileBytes(&self, pbbuffer: &mut [u8], pcbactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProfileBytes)(::windows::core::Interface::as_raw(self), pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbbuffer)), ::core::mem::transmute(pcbactual)).ok() + (::windows::core::Interface::vtable(self).GetProfileBytes)(::windows::core::Interface::as_raw(self), pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr()), ::core::mem::transmute(pcbactual)).ok() } pub unsafe fn GetExifColorSpace(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1907,7 +1907,7 @@ impl IWICColorTransform { (::windows::core::Interface::vtable(self).base__.CopyPalette)(::windows::core::Interface::as_raw(self), pipalette.into().abi()).ok() } pub unsafe fn CopyPixels(&self, prc: &WICRect, cbstride: u32, pbbuffer: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbbuffer))).ok() + (::windows::core::Interface::vtable(self).base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr())).ok() } pub unsafe fn Initialize<'a, P0, P1, P2>(&self, pibitmapsource: P0, picontextsource: P1, picontextdest: P2, pixelfmtdest: &::windows::core::GUID) -> ::windows::core::Result<()> where @@ -2064,7 +2064,7 @@ impl IWICComponentFactory { } pub unsafe fn CreateBitmapFromMemory(&self, uiwidth: u32, uiheight: u32, pixelformat: &::windows::core::GUID, cbstride: u32, pbbuffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateBitmapFromMemory)(::windows::core::Interface::as_raw(self), uiwidth, uiheight, ::core::mem::transmute(pixelformat), cbstride, pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbbuffer)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateBitmapFromMemory)(::windows::core::Interface::as_raw(self), uiwidth, uiheight, ::core::mem::transmute(pixelformat), cbstride, pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] @@ -2163,7 +2163,7 @@ impl IWICComponentFactory { #[cfg(feature = "Win32_System_Com_StructuredStorage")] pub unsafe fn CreateEncoderPropertyBag(&self, ppropoptions: &[super::super::System::Com::StructuredStorage::PROPBAG2]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateEncoderPropertyBag)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppropoptions)), ppropoptions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateEncoderPropertyBag)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppropoptions.as_ptr()), ppropoptions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2254,20 +2254,20 @@ impl IWICComponentInfo { (::windows::core::Interface::vtable(self).GetSigningStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetAuthor(&self, wzauthor: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzauthor)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(wzauthor.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetVendorGUID(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetVendorGUID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetVersion(&self, wzversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(wzversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetSpecVersion(&self, wzspecversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzspecversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(wzspecversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetFriendlyName(&self, wzfriendlyname: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzfriendlyname)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(wzfriendlyname.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2460,7 +2460,7 @@ impl IWICDdsFrameDecode { (::windows::core::Interface::vtable(self).GetFormatInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CopyBlocks(&self, prcboundsinblocks: &WICRect, cbstride: u32, pbbuffer: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CopyBlocks)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prcboundsinblocks), cbstride, pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbbuffer))).ok() + (::windows::core::Interface::vtable(self).CopyBlocks)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prcboundsinblocks), cbstride, pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2530,14 +2530,14 @@ impl IWICDevelopRaw { (::windows::core::Interface::vtable(self).base__.base__.CopyPalette)(::windows::core::Interface::as_raw(self), pipalette.into().abi()).ok() } pub unsafe fn CopyPixels(&self, prc: &WICRect, cbstride: u32, pbbuffer: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbbuffer))).ok() + (::windows::core::Interface::vtable(self).base__.base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr())).ok() } pub unsafe fn GetMetadataQueryReader(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetMetadataQueryReader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetColorContexts(&self, ppicolorcontexts: &mut [::core::option::Option], pcactualcount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetColorContexts)(::windows::core::Interface::as_raw(self), ppicolorcontexts.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppicolorcontexts)), ::core::mem::transmute(pcactualcount)).ok() + (::windows::core::Interface::vtable(self).base__.GetColorContexts)(::windows::core::Interface::as_raw(self), ppicolorcontexts.len() as _, ::core::mem::transmute(ppicolorcontexts.as_ptr()), ::core::mem::transmute(pcactualcount)).ok() } pub unsafe fn GetThumbnail(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2633,11 +2633,11 @@ impl IWICDevelopRaw { { (::windows::core::Interface::vtable(self).SetDestinationColorContext)(::windows::core::Interface::as_raw(self), pcolorcontext.into().abi()).ok() } - pub unsafe fn SetToneCurve(&self, cbtonecurvesize: u32, ptonecurve: &WICRawToneCurve) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetToneCurve)(::windows::core::Interface::as_raw(self), cbtonecurvesize, ::core::mem::transmute(ptonecurve)).ok() + pub unsafe fn SetToneCurve(&self, ptonecurve: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetToneCurve)(::windows::core::Interface::as_raw(self), ptonecurve.len() as _, ::core::mem::transmute(ptonecurve.as_ptr())).ok() } - pub unsafe fn GetToneCurve(&self, cbtonecurvebuffersize: u32, ptonecurve: ::core::option::Option<&mut WICRawToneCurve>, pcbactualtonecurvebuffersize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetToneCurve)(::windows::core::Interface::as_raw(self), cbtonecurvebuffersize, ::core::mem::transmute(ptonecurve), ::core::mem::transmute(pcbactualtonecurvebuffersize)).ok() + pub unsafe fn GetToneCurve(&self, ptonecurve: ::core::option::Option<&mut [u8]>, pcbactualtonecurvebuffersize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetToneCurve)(::windows::core::Interface::as_raw(self), ptonecurve.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ptonecurve.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcbactualtonecurvebuffersize)).ok() } pub unsafe fn SetRotation(&self, rotation: f64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetRotation)(::windows::core::Interface::as_raw(self), rotation).ok() @@ -2820,7 +2820,7 @@ pub struct IWICEnumMetadataItem(::windows::core::IUnknown); impl IWICEnumMetadataItem { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] - pub unsafe fn Next(&self, celt: u32, rgeltschema: &mut super::super::System::Com::StructuredStorage::PROPVARIANT, rgeltid: &mut super::super::System::Com::StructuredStorage::PROPVARIANT, rgeltvalue: &mut super::super::System::Com::StructuredStorage::PROPVARIANT, pceltfetched: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Next(&self, celt: u32, rgeltschema: *mut super::super::System::Com::StructuredStorage::PROPVARIANT, rgeltid: *mut super::super::System::Com::StructuredStorage::PROPVARIANT, rgeltvalue: *mut super::super::System::Com::StructuredStorage::PROPVARIANT, pceltfetched: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(celt), ::core::mem::transmute(rgeltschema), ::core::mem::transmute(rgeltid), ::core::mem::transmute(rgeltvalue), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { @@ -2956,7 +2956,7 @@ impl IWICFormatConverter { (::windows::core::Interface::vtable(self).base__.CopyPalette)(::windows::core::Interface::as_raw(self), pipalette.into().abi()).ok() } pub unsafe fn CopyPixels(&self, prc: &WICRect, cbstride: u32, pbbuffer: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbbuffer))).ok() + (::windows::core::Interface::vtable(self).base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr())).ok() } pub unsafe fn Initialize<'a, P0, P1>(&self, pisource: P0, dstformat: &::windows::core::GUID, dither: WICBitmapDitherType, pipalette: P1, alphathresholdpercent: f64, palettetranslate: WICBitmapPaletteType) -> ::windows::core::Result<()> where @@ -3049,23 +3049,23 @@ impl IWICFormatConverterInfo { (::windows::core::Interface::vtable(self).base__.GetSigningStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetAuthor(&self, wzauthor: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzauthor)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(wzauthor.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetVendorGUID(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetVendorGUID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetVersion(&self, wzversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(wzversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetSpecVersion(&self, wzspecversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzspecversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(wzspecversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetFriendlyName(&self, wzfriendlyname: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzfriendlyname)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(wzfriendlyname.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetPixelFormats(&self, ppixelformatguids: &mut [::windows::core::GUID], pcactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPixelFormats)(::windows::core::Interface::as_raw(self), ppixelformatguids.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppixelformatguids)), ::core::mem::transmute(pcactual)).ok() + (::windows::core::Interface::vtable(self).GetPixelFormats)(::windows::core::Interface::as_raw(self), ppixelformatguids.len() as _, ::core::mem::transmute(ppixelformatguids.as_ptr()), ::core::mem::transmute(pcactual)).ok() } pub unsafe fn CreateInstance(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -3219,7 +3219,7 @@ impl IWICImagingFactory { } pub unsafe fn CreateBitmapFromMemory(&self, uiwidth: u32, uiheight: u32, pixelformat: &::windows::core::GUID, cbstride: u32, pbbuffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateBitmapFromMemory)(::windows::core::Interface::as_raw(self), uiwidth, uiheight, ::core::mem::transmute(pixelformat), cbstride, pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbbuffer)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateBitmapFromMemory)(::windows::core::Interface::as_raw(self), uiwidth, uiheight, ::core::mem::transmute(pixelformat), cbstride, pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] @@ -3395,10 +3395,10 @@ impl IWICJpegFrameDecode { (::windows::core::Interface::vtable(self).GetScanHeader)(::windows::core::Interface::as_raw(self), scanindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CopyScan(&self, scanindex: u32, scanoffset: u32, pbscandata: &mut [u8], pcbscandataactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CopyScan)(::windows::core::Interface::as_raw(self), scanindex, scanoffset, pbscandata.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbscandata)), ::core::mem::transmute(pcbscandataactual)).ok() + (::windows::core::Interface::vtable(self).CopyScan)(::windows::core::Interface::as_raw(self), scanindex, scanoffset, pbscandata.len() as _, ::core::mem::transmute(pbscandata.as_ptr()), ::core::mem::transmute(pcbscandataactual)).ok() } pub unsafe fn CopyMinimalStream(&self, streamoffset: u32, pbstreamdata: &mut [u8], pcbstreamdataactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CopyMinimalStream)(::windows::core::Interface::as_raw(self), streamoffset, pbstreamdata.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbstreamdata)), ::core::mem::transmute(pcbstreamdataactual)).ok() + (::windows::core::Interface::vtable(self).CopyMinimalStream)(::windows::core::Interface::as_raw(self), streamoffset, pbstreamdata.len() as _, ::core::mem::transmute(pbstreamdata.as_ptr()), ::core::mem::transmute(pcbstreamdataactual)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3486,7 +3486,7 @@ impl IWICJpegFrameEncode { (::windows::core::Interface::vtable(self).GetQuantizationTable)(::windows::core::Interface::as_raw(self), scanindex, tableindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn WriteScan(&self, pbscandata: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteScan)(::windows::core::Interface::as_raw(self), pbscandata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbscandata))).ok() + (::windows::core::Interface::vtable(self).WriteScan)(::windows::core::Interface::as_raw(self), pbscandata.len() as _, ::core::mem::transmute(pbscandata.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3737,33 +3737,33 @@ impl IWICMetadataHandlerInfo { (::windows::core::Interface::vtable(self).base__.GetSigningStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetAuthor(&self, wzauthor: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzauthor)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(wzauthor.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetVendorGUID(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetVendorGUID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetVersion(&self, wzversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(wzversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetSpecVersion(&self, wzspecversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzspecversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(wzspecversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetFriendlyName(&self, wzfriendlyname: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzfriendlyname)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(wzfriendlyname.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetMetadataFormat(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetMetadataFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetContainerFormats(&self, pguidcontainerformats: &mut [::windows::core::GUID], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetContainerFormats)(::windows::core::Interface::as_raw(self), pguidcontainerformats.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pguidcontainerformats)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).GetContainerFormats)(::windows::core::Interface::as_raw(self), pguidcontainerformats.len() as _, ::core::mem::transmute(pguidcontainerformats.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetDeviceManufacturer(&self, wzdevicemanufacturer: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDeviceManufacturer)(::windows::core::Interface::as_raw(self), wzdevicemanufacturer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzdevicemanufacturer)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).GetDeviceManufacturer)(::windows::core::Interface::as_raw(self), wzdevicemanufacturer.len() as _, ::core::mem::transmute(wzdevicemanufacturer.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetDeviceModels(&self, wzdevicemodels: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDeviceModels)(::windows::core::Interface::as_raw(self), wzdevicemodels.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzdevicemodels)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).GetDeviceModels)(::windows::core::Interface::as_raw(self), wzdevicemodels.len() as _, ::core::mem::transmute(wzdevicemodels.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3864,7 +3864,7 @@ impl IWICMetadataQueryReader { (::windows::core::Interface::vtable(self).GetContainerFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetLocation(&self, wznamespace: &mut [u16], pcchactuallength: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLocation)(::windows::core::Interface::as_raw(self), wznamespace.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wznamespace)), ::core::mem::transmute(pcchactuallength)).ok() + (::windows::core::Interface::vtable(self).GetLocation)(::windows::core::Interface::as_raw(self), wznamespace.len() as _, ::core::mem::transmute(wznamespace.as_ptr()), ::core::mem::transmute(pcchactuallength)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -3940,7 +3940,7 @@ impl IWICMetadataQueryWriter { (::windows::core::Interface::vtable(self).base__.GetContainerFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetLocation(&self, wznamespace: &mut [u16], pcchactuallength: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetLocation)(::windows::core::Interface::as_raw(self), wznamespace.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wznamespace)), ::core::mem::transmute(pcchactuallength)).ok() + (::windows::core::Interface::vtable(self).base__.GetLocation)(::windows::core::Interface::as_raw(self), wznamespace.len() as _, ::core::mem::transmute(wznamespace.as_ptr()), ::core::mem::transmute(pcchactuallength)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -4131,33 +4131,33 @@ impl IWICMetadataReaderInfo { (::windows::core::Interface::vtable(self).base__.base__.GetSigningStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetAuthor(&self, wzauthor: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzauthor)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(wzauthor.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetVendorGUID(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.GetVendorGUID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetVersion(&self, wzversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(wzversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetSpecVersion(&self, wzspecversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzspecversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(wzspecversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetFriendlyName(&self, wzfriendlyname: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzfriendlyname)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(wzfriendlyname.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetMetadataFormat(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetMetadataFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetContainerFormats(&self, pguidcontainerformats: &mut [::windows::core::GUID], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetContainerFormats)(::windows::core::Interface::as_raw(self), pguidcontainerformats.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pguidcontainerformats)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetContainerFormats)(::windows::core::Interface::as_raw(self), pguidcontainerformats.len() as _, ::core::mem::transmute(pguidcontainerformats.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetDeviceManufacturer(&self, wzdevicemanufacturer: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetDeviceManufacturer)(::windows::core::Interface::as_raw(self), wzdevicemanufacturer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzdevicemanufacturer)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetDeviceManufacturer)(::windows::core::Interface::as_raw(self), wzdevicemanufacturer.len() as _, ::core::mem::transmute(wzdevicemanufacturer.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetDeviceModels(&self, wzdevicemodels: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetDeviceModels)(::windows::core::Interface::as_raw(self), wzdevicemodels.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzdevicemodels)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetDeviceModels)(::windows::core::Interface::as_raw(self), wzdevicemodels.len() as _, ::core::mem::transmute(wzdevicemodels.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4177,8 +4177,8 @@ impl IWICMetadataReaderInfo { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.DoesRequireFixedSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetPatterns(&self, guidcontainerformat: &::windows::core::GUID, cbsize: u32, ppattern: ::core::option::Option<&mut WICMetadataPattern>, pccount: ::core::option::Option<&mut u32>, pcbactual: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPatterns)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidcontainerformat), cbsize, ::core::mem::transmute(ppattern), ::core::mem::transmute(pccount), ::core::mem::transmute(pcbactual)).ok() + pub unsafe fn GetPatterns(&self, guidcontainerformat: &::windows::core::GUID, ppattern: ::core::option::Option<&mut [u8]>, pccount: ::core::option::Option<&mut u32>, pcbactual: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPatterns)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidcontainerformat), ppattern.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppattern.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pccount), ::core::mem::transmute(pcbactual)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] @@ -4404,33 +4404,33 @@ impl IWICMetadataWriterInfo { (::windows::core::Interface::vtable(self).base__.base__.GetSigningStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetAuthor(&self, wzauthor: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzauthor)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(wzauthor.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetVendorGUID(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.GetVendorGUID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetVersion(&self, wzversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(wzversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetSpecVersion(&self, wzspecversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzspecversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(wzspecversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetFriendlyName(&self, wzfriendlyname: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzfriendlyname)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(wzfriendlyname.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetMetadataFormat(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetMetadataFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetContainerFormats(&self, pguidcontainerformats: &mut [::windows::core::GUID], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetContainerFormats)(::windows::core::Interface::as_raw(self), pguidcontainerformats.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pguidcontainerformats)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetContainerFormats)(::windows::core::Interface::as_raw(self), pguidcontainerformats.len() as _, ::core::mem::transmute(pguidcontainerformats.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetDeviceManufacturer(&self, wzdevicemanufacturer: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetDeviceManufacturer)(::windows::core::Interface::as_raw(self), wzdevicemanufacturer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzdevicemanufacturer)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetDeviceManufacturer)(::windows::core::Interface::as_raw(self), wzdevicemanufacturer.len() as _, ::core::mem::transmute(wzdevicemanufacturer.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetDeviceModels(&self, wzdevicemodels: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetDeviceModels)(::windows::core::Interface::as_raw(self), wzdevicemodels.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzdevicemodels)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetDeviceModels)(::windows::core::Interface::as_raw(self), wzdevicemodels.len() as _, ::core::mem::transmute(wzdevicemodels.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4450,8 +4450,8 @@ impl IWICMetadataWriterInfo { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.DoesRequireFixedSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetHeader(&self, guidcontainerformat: &::windows::core::GUID, cbsize: u32, pheader: ::core::option::Option<&mut WICMetadataHeader>, pcbactual: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetHeader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidcontainerformat), cbsize, ::core::mem::transmute(pheader), ::core::mem::transmute(pcbactual)).ok() + pub unsafe fn GetHeader(&self, guidcontainerformat: &::windows::core::GUID, pheader: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetHeader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidcontainerformat), pheader.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pheader.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcbactual)).ok() } pub unsafe fn CreateInstance(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -4543,7 +4543,7 @@ impl IWICPalette { (::windows::core::Interface::vtable(self).InitializePredefined)(::windows::core::Interface::as_raw(self), epalettetype, faddtransparentcolor.into()).ok() } pub unsafe fn InitializeCustom(&self, pcolors: &[u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).InitializeCustom)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pcolors)), pcolors.len() as _).ok() + (::windows::core::Interface::vtable(self).InitializeCustom)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcolors.as_ptr()), pcolors.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4569,7 +4569,7 @@ impl IWICPalette { (::windows::core::Interface::vtable(self).GetColorCount)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetColors(&self, pcolors: &mut [u32], pcactualcolors: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetColors)(::windows::core::Interface::as_raw(self), pcolors.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pcolors)), ::core::mem::transmute(pcactualcolors)).ok() + (::windows::core::Interface::vtable(self).GetColors)(::windows::core::Interface::as_raw(self), pcolors.len() as _, ::core::mem::transmute(pcolors.as_ptr()), ::core::mem::transmute(pcactualcolors)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4823,20 +4823,20 @@ impl IWICPixelFormatInfo { (::windows::core::Interface::vtable(self).base__.GetSigningStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetAuthor(&self, wzauthor: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzauthor)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(wzauthor.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetVendorGUID(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetVendorGUID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetVersion(&self, wzversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(wzversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetSpecVersion(&self, wzspecversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzspecversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(wzspecversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetFriendlyName(&self, wzfriendlyname: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzfriendlyname)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(wzfriendlyname.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetFormatGUID(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -4855,7 +4855,7 @@ impl IWICPixelFormatInfo { (::windows::core::Interface::vtable(self).GetChannelCount)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetChannelMask(&self, uichannelindex: u32, pbmaskbuffer: &mut [u8], pcbactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetChannelMask)(::windows::core::Interface::as_raw(self), uichannelindex, pbmaskbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbmaskbuffer)), ::core::mem::transmute(pcbactual)).ok() + (::windows::core::Interface::vtable(self).GetChannelMask)(::windows::core::Interface::as_raw(self), uichannelindex, pbmaskbuffer.len() as _, ::core::mem::transmute(pbmaskbuffer.as_ptr()), ::core::mem::transmute(pcbactual)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -4935,20 +4935,20 @@ impl IWICPixelFormatInfo2 { (::windows::core::Interface::vtable(self).base__.base__.GetSigningStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetAuthor(&self, wzauthor: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzauthor)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetAuthor)(::windows::core::Interface::as_raw(self), wzauthor.len() as _, ::core::mem::transmute(wzauthor.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetVendorGUID(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.GetVendorGUID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn GetVersion(&self, wzversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetVersion)(::windows::core::Interface::as_raw(self), wzversion.len() as _, ::core::mem::transmute(wzversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetSpecVersion(&self, wzspecversion: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzspecversion)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetSpecVersion)(::windows::core::Interface::as_raw(self), wzspecversion.len() as _, ::core::mem::transmute(wzspecversion.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetFriendlyName(&self, wzfriendlyname: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzfriendlyname)), ::core::mem::transmute(pcchactual)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetFriendlyName)(::windows::core::Interface::as_raw(self), wzfriendlyname.len() as _, ::core::mem::transmute(wzfriendlyname.as_ptr()), ::core::mem::transmute(pcchactual)).ok() } pub unsafe fn GetFormatGUID(&self) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -4967,7 +4967,7 @@ impl IWICPixelFormatInfo2 { (::windows::core::Interface::vtable(self).base__.GetChannelCount)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetChannelMask(&self, uichannelindex: u32, pbmaskbuffer: &mut [u8], pcbactual: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetChannelMask)(::windows::core::Interface::as_raw(self), uichannelindex, pbmaskbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbmaskbuffer)), ::core::mem::transmute(pcbactual)).ok() + (::windows::core::Interface::vtable(self).base__.GetChannelMask)(::windows::core::Interface::as_raw(self), uichannelindex, pbmaskbuffer.len() as _, ::core::mem::transmute(pbmaskbuffer.as_ptr()), ::core::mem::transmute(pcbactual)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5060,10 +5060,10 @@ pub struct IWICPixelFormatInfo2_Vtbl { pub struct IWICPlanarBitmapFrameEncode(::windows::core::IUnknown); impl IWICPlanarBitmapFrameEncode { pub unsafe fn WritePixels(&self, linecount: u32, pplanes: &[WICBitmapPlane]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WritePixels)(::windows::core::Interface::as_raw(self), linecount, ::core::mem::transmute(::windows::core::as_ptr_or_null(pplanes)), pplanes.len() as _).ok() + (::windows::core::Interface::vtable(self).WritePixels)(::windows::core::Interface::as_raw(self), linecount, ::core::mem::transmute(pplanes.as_ptr()), pplanes.len() as _).ok() } pub unsafe fn WriteSource(&self, ppplanes: &[::core::option::Option], prcsource: &WICRect) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteSource)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppplanes)), ppplanes.len() as _, ::core::mem::transmute(prcsource)).ok() + (::windows::core::Interface::vtable(self).WriteSource)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppplanes.as_ptr()), ppplanes.len() as _, ::core::mem::transmute(prcsource)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -5114,11 +5114,11 @@ pub struct IWICPlanarBitmapSourceTransform(::windows::core::IUnknown); impl IWICPlanarBitmapSourceTransform { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn DoesSupportTransform(&self, puiwidth: &mut u32, puiheight: &mut u32, dsttransform: WICBitmapTransformOptions, dstplanaroptions: WICPlanarOptions, pguiddstformats: &::windows::core::GUID, pplanedescriptions: &mut WICBitmapPlaneDescription, cplanes: u32, pfissupported: &mut super::super::Foundation::BOOL) -> ::windows::core::Result<()> { + pub unsafe fn DoesSupportTransform(&self, puiwidth: &mut u32, puiheight: &mut u32, dsttransform: WICBitmapTransformOptions, dstplanaroptions: WICPlanarOptions, pguiddstformats: *const ::windows::core::GUID, pplanedescriptions: *mut WICBitmapPlaneDescription, cplanes: u32, pfissupported: &mut super::super::Foundation::BOOL) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DoesSupportTransform)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(puiwidth), ::core::mem::transmute(puiheight), dsttransform, dstplanaroptions, ::core::mem::transmute(pguiddstformats), ::core::mem::transmute(pplanedescriptions), ::core::mem::transmute(cplanes), ::core::mem::transmute(pfissupported)).ok() } pub unsafe fn CopyPixels(&self, prcsource: &WICRect, uiwidth: u32, uiheight: u32, dsttransform: WICBitmapTransformOptions, dstplanaroptions: WICPlanarOptions, pdstplanes: &[WICBitmapPlane]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prcsource), uiwidth, uiheight, dsttransform, dstplanaroptions, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdstplanes)), pdstplanes.len() as _).ok() + (::windows::core::Interface::vtable(self).CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prcsource), uiwidth, uiheight, dsttransform, dstplanaroptions, ::core::mem::transmute(pdstplanes.as_ptr()), pdstplanes.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -5187,19 +5187,19 @@ impl IWICPlanarFormatConverter { (::windows::core::Interface::vtable(self).base__.CopyPalette)(::windows::core::Interface::as_raw(self), pipalette.into().abi()).ok() } pub unsafe fn CopyPixels(&self, prc: &WICRect, cbstride: u32, pbbuffer: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbbuffer))).ok() + (::windows::core::Interface::vtable(self).base__.CopyPixels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prc), cbstride, pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr())).ok() } pub unsafe fn Initialize<'a, P0>(&self, ppplanes: &[::core::option::Option], dstformat: &::windows::core::GUID, dither: WICBitmapDitherType, pipalette: P0, alphathresholdpercent: f64, palettetranslate: WICBitmapPaletteType) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IWICPalette>>, { - (::windows::core::Interface::vtable(self).Initialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppplanes)), ppplanes.len() as _, ::core::mem::transmute(dstformat), dither, pipalette.into().abi(), alphathresholdpercent, palettetranslate).ok() + (::windows::core::Interface::vtable(self).Initialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppplanes.as_ptr()), ppplanes.len() as _, ::core::mem::transmute(dstformat), dither, pipalette.into().abi(), alphathresholdpercent, palettetranslate).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn CanConvert(&self, psrcpixelformats: &[::windows::core::GUID], dstpixelformat: &::windows::core::GUID) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CanConvert)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(psrcpixelformats)), psrcpixelformats.len() as _, ::core::mem::transmute(dstpixelformat), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CanConvert)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psrcpixelformats.as_ptr()), psrcpixelformats.len() as _, ::core::mem::transmute(dstpixelformat), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -5378,13 +5378,13 @@ pub struct IWICStream(::windows::core::IUnknown); impl IWICStream { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Read(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread)) + pub unsafe fn Read(&self, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Write(&self, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbwritten)) + pub unsafe fn Write(&self, pv: &[u8], pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbwritten)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -5451,7 +5451,7 @@ impl IWICStream { (::windows::core::Interface::vtable(self).InitializeFromFilename)(::windows::core::Interface::as_raw(self), wzfilename.into(), dwdesiredaccess).ok() } pub unsafe fn InitializeFromMemory(&self, pbbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).InitializeFromMemory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbbuffer)), pbbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).InitializeFromMemory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbbuffer.as_ptr()), pbbuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -7103,16 +7103,16 @@ impl ::core::fmt::Debug for WICJpegYCrCbSubsamplingOption { } #[doc = "*Required features: `\"Win32_Graphics_Imaging\"`*"] #[inline] -pub unsafe fn WICMapGuidToShortName(guid: &::windows::core::GUID, wzname: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> { +pub unsafe fn WICMapGuidToShortName(guid: &::windows::core::GUID, wzname: ::core::option::Option<&mut [u16]>, pcchactual: &mut u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WICMapGuidToShortName(guid: *const ::windows::core::GUID, cchname: u32, wzname: ::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::HRESULT; } - WICMapGuidToShortName(::core::mem::transmute(guid), wzname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzname)), ::core::mem::transmute(pcchactual)).ok() + WICMapGuidToShortName(::core::mem::transmute(guid), wzname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(wzname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcchactual)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Imaging\"`*"] #[inline] -pub unsafe fn WICMapSchemaToName<'a, P0>(guidmetadataformat: &::windows::core::GUID, pwzschema: P0, wzname: &mut [u16], pcchactual: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn WICMapSchemaToName<'a, P0>(guidmetadataformat: &::windows::core::GUID, pwzschema: P0, wzname: ::core::option::Option<&mut [u16]>, pcchactual: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -7120,7 +7120,7 @@ where extern "system" { fn WICMapSchemaToName(guidmetadataformat: *const ::windows::core::GUID, pwzschema: ::windows::core::PCWSTR, cchname: u32, wzname: ::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::HRESULT; } - WICMapSchemaToName(::core::mem::transmute(guidmetadataformat), pwzschema.into(), wzname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wzname)), ::core::mem::transmute(pcchactual)).ok() + WICMapSchemaToName(::core::mem::transmute(guidmetadataformat), pwzschema.into(), wzname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(wzname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcchactual)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Imaging\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/OpenGL/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/OpenGL/mod.rs index 8947fc116d..ddff7b9ba3 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/OpenGL/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/OpenGL/mod.rs @@ -14,7 +14,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_OpenGL\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn DescribePixelFormat<'a, P0>(hdc: P0, ipixelformat: PFD_PIXEL_TYPE, nbytes: u32, ppfd: ::core::option::Option<&mut PIXELFORMATDESCRIPTOR>) -> i32 +pub unsafe fn DescribePixelFormat<'a, P0>(hdc: P0, ipixelformat: PFD_PIXEL_TYPE, ppfd: ::core::option::Option<&mut [u8]>) -> i32 where P0: ::std::convert::Into, { @@ -22,7 +22,7 @@ where extern "system" { fn DescribePixelFormat(hdc: super::Gdi::HDC, ipixelformat: PFD_PIXEL_TYPE, nbytes: u32, ppfd: *mut PIXELFORMATDESCRIPTOR) -> i32; } - DescribePixelFormat(hdc.into(), ipixelformat, nbytes, ::core::mem::transmute(ppfd)) + DescribePixelFormat(hdc.into(), ipixelformat, ppfd.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppfd.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[repr(C)] #[doc = "*Required features: `\"Win32_Graphics_OpenGL\"`, `\"Win32_Graphics_Gdi\"`*"] @@ -1540,7 +1540,7 @@ pub const GL_ZOOM_Y: u32 = 3351u32; #[doc = "*Required features: `\"Win32_Graphics_OpenGL\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn GetEnhMetaFilePixelFormat<'a, P0>(hemf: P0, cbbuffer: u32, ppfd: ::core::option::Option<&mut PIXELFORMATDESCRIPTOR>) -> u32 +pub unsafe fn GetEnhMetaFilePixelFormat<'a, P0>(hemf: P0, ppfd: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -1548,7 +1548,7 @@ where extern "system" { fn GetEnhMetaFilePixelFormat(hemf: super::Gdi::HENHMETAFILE, cbbuffer: u32, ppfd: *mut PIXELFORMATDESCRIPTOR) -> u32; } - GetEnhMetaFilePixelFormat(hemf.into(), cbbuffer, ::core::mem::transmute(ppfd)) + GetEnhMetaFilePixelFormat(hemf.into(), ppfd.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppfd.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_OpenGL\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/Printing/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/Printing/mod.rs index e90c9fd33a..8ab044ef12 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Printing/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Printing/mod.rs @@ -310,7 +310,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AddJobA<'a, P0>(hprinter: P0, level: u32, pdata: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn AddJobA<'a, P0>(hprinter: P0, level: u32, pdata: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -318,12 +318,12 @@ where extern "system" { fn AddJobA(hprinter: super::super::Foundation::HANDLE, level: u32, pdata: *mut u8, cbbuf: u32, pcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - AddJobA(hprinter.into(), level, ::core::mem::transmute(pdata), cbbuf, ::core::mem::transmute(pcbneeded)) + AddJobA(hprinter.into(), level, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AddJobW<'a, P0>(hprinter: P0, level: u32, pdata: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn AddJobW<'a, P0>(hprinter: P0, level: u32, pdata: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -331,7 +331,7 @@ where extern "system" { fn AddJobW(hprinter: super::super::Foundation::HANDLE, level: u32, pdata: *mut u8, cbbuf: u32, pcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - AddJobW(hprinter.into(), level, ::core::mem::transmute(pdata), cbbuf, ::core::mem::transmute(pcbneeded)) + AddJobW(hprinter.into(), level, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4986,7 +4986,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumFormsA<'a, P0>(hprinter: P0, level: u32, pform: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumFormsA<'a, P0>(hprinter: P0, level: u32, pform: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -4994,12 +4994,12 @@ where extern "system" { fn EnumFormsA(hprinter: super::super::Foundation::HANDLE, level: u32, pform: *mut u8, cbbuf: u32, pcbneeded: *mut u32, pcreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumFormsA(hprinter.into(), level, ::core::mem::transmute(pform), cbbuf, ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) + EnumFormsA(hprinter.into(), level, ::core::mem::transmute(pform.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pform.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumFormsW<'a, P0>(hprinter: P0, level: u32, pform: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumFormsW<'a, P0>(hprinter: P0, level: u32, pform: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -5007,7 +5007,7 @@ where extern "system" { fn EnumFormsW(hprinter: super::super::Foundation::HANDLE, level: u32, pform: *mut u8, cbbuf: u32, pcbneeded: *mut u32, pcreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumFormsW(hprinter.into(), level, ::core::mem::transmute(pform), cbbuf, ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) + EnumFormsW(hprinter.into(), level, ::core::mem::transmute(pform.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pform.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5025,7 +5025,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumJobsA<'a, P0>(hprinter: P0, firstjob: u32, nojobs: u32, level: u32, pjob: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumJobsA<'a, P0>(hprinter: P0, firstjob: u32, nojobs: u32, level: u32, pjob: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -5033,12 +5033,12 @@ where extern "system" { fn EnumJobsA(hprinter: super::super::Foundation::HANDLE, firstjob: u32, nojobs: u32, level: u32, pjob: *mut u8, cbbuf: u32, pcbneeded: *mut u32, pcreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumJobsA(hprinter.into(), firstjob, nojobs, level, ::core::mem::transmute(pjob), cbbuf, ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) + EnumJobsA(hprinter.into(), firstjob, nojobs, level, ::core::mem::transmute(pjob.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pjob.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumJobsW<'a, P0>(hprinter: P0, firstjob: u32, nojobs: u32, level: u32, pjob: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumJobsW<'a, P0>(hprinter: P0, firstjob: u32, nojobs: u32, level: u32, pjob: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -5046,12 +5046,12 @@ where extern "system" { fn EnumJobsW(hprinter: super::super::Foundation::HANDLE, firstjob: u32, nojobs: u32, level: u32, pjob: *mut u8, cbbuf: u32, pcbneeded: *mut u32, pcreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumJobsW(hprinter.into(), firstjob, nojobs, level, ::core::mem::transmute(pjob), cbbuf, ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) + EnumJobsW(hprinter.into(), firstjob, nojobs, level, ::core::mem::transmute(pjob.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pjob.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumMonitorsA<'a, P0>(pname: P0, level: u32, pmonitor: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumMonitorsA<'a, P0>(pname: P0, level: u32, pmonitor: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -5059,12 +5059,12 @@ where extern "system" { fn EnumMonitorsA(pname: ::windows::core::PCSTR, level: u32, pmonitor: *mut u8, cbbuf: u32, pcbneeded: *mut u32, pcreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumMonitorsA(pname.into(), level, ::core::mem::transmute(pmonitor), cbbuf, ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) + EnumMonitorsA(pname.into(), level, ::core::mem::transmute(pmonitor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pmonitor.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumMonitorsW<'a, P0>(pname: P0, level: u32, pmonitor: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumMonitorsW<'a, P0>(pname: P0, level: u32, pmonitor: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -5072,12 +5072,12 @@ where extern "system" { fn EnumMonitorsW(pname: ::windows::core::PCWSTR, level: u32, pmonitor: *mut u8, cbbuf: u32, pcbneeded: *mut u32, pcreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumMonitorsW(pname.into(), level, ::core::mem::transmute(pmonitor), cbbuf, ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) + EnumMonitorsW(pname.into(), level, ::core::mem::transmute(pmonitor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pmonitor.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumPortsA<'a, P0>(pname: P0, level: u32, pport: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumPortsA<'a, P0>(pname: P0, level: u32, pport: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -5085,12 +5085,12 @@ where extern "system" { fn EnumPortsA(pname: ::windows::core::PCSTR, level: u32, pport: *mut u8, cbbuf: u32, pcbneeded: *mut u32, pcreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumPortsA(pname.into(), level, ::core::mem::transmute(pport), cbbuf, ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) + EnumPortsA(pname.into(), level, ::core::mem::transmute(pport.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pport.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumPortsW<'a, P0>(pname: P0, level: u32, pport: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumPortsW<'a, P0>(pname: P0, level: u32, pport: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -5098,12 +5098,12 @@ where extern "system" { fn EnumPortsW(pname: ::windows::core::PCWSTR, level: u32, pport: *mut u8, cbbuf: u32, pcbneeded: *mut u32, pcreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumPortsW(pname.into(), level, ::core::mem::transmute(pport), cbbuf, ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) + EnumPortsW(pname.into(), level, ::core::mem::transmute(pport.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pport.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumPrintProcessorDatatypesA<'a, P0, P1>(pname: P0, pprintprocessorname: P1, level: u32, pdatatypes: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumPrintProcessorDatatypesA<'a, P0, P1>(pname: P0, pprintprocessorname: P1, level: u32, pdatatypes: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -5112,12 +5112,12 @@ where extern "system" { fn EnumPrintProcessorDatatypesA(pname: ::windows::core::PCSTR, pprintprocessorname: ::windows::core::PCSTR, level: u32, pdatatypes: *mut u8, cbbuf: u32, pcbneeded: *mut u32, pcreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumPrintProcessorDatatypesA(pname.into(), pprintprocessorname.into(), level, ::core::mem::transmute(pdatatypes), cbbuf, ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) + EnumPrintProcessorDatatypesA(pname.into(), pprintprocessorname.into(), level, ::core::mem::transmute(pdatatypes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdatatypes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumPrintProcessorDatatypesW<'a, P0, P1>(pname: P0, pprintprocessorname: P1, level: u32, pdatatypes: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumPrintProcessorDatatypesW<'a, P0, P1>(pname: P0, pprintprocessorname: P1, level: u32, pdatatypes: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -5126,12 +5126,12 @@ where extern "system" { fn EnumPrintProcessorDatatypesW(pname: ::windows::core::PCWSTR, pprintprocessorname: ::windows::core::PCWSTR, level: u32, pdatatypes: *mut u8, cbbuf: u32, pcbneeded: *mut u32, pcreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumPrintProcessorDatatypesW(pname.into(), pprintprocessorname.into(), level, ::core::mem::transmute(pdatatypes), cbbuf, ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) + EnumPrintProcessorDatatypesW(pname.into(), pprintprocessorname.into(), level, ::core::mem::transmute(pdatatypes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdatatypes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumPrintProcessorsA<'a, P0, P1>(pname: P0, penvironment: P1, level: u32, pprintprocessorinfo: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumPrintProcessorsA<'a, P0, P1>(pname: P0, penvironment: P1, level: u32, pprintprocessorinfo: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -5140,12 +5140,12 @@ where extern "system" { fn EnumPrintProcessorsA(pname: ::windows::core::PCSTR, penvironment: ::windows::core::PCSTR, level: u32, pprintprocessorinfo: *mut u8, cbbuf: u32, pcbneeded: *mut u32, pcreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumPrintProcessorsA(pname.into(), penvironment.into(), level, ::core::mem::transmute(pprintprocessorinfo), cbbuf, ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) + EnumPrintProcessorsA(pname.into(), penvironment.into(), level, ::core::mem::transmute(pprintprocessorinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pprintprocessorinfo.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumPrintProcessorsW<'a, P0, P1>(pname: P0, penvironment: P1, level: u32, pprintprocessorinfo: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumPrintProcessorsW<'a, P0, P1>(pname: P0, penvironment: P1, level: u32, pprintprocessorinfo: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -5154,12 +5154,12 @@ where extern "system" { fn EnumPrintProcessorsW(pname: ::windows::core::PCWSTR, penvironment: ::windows::core::PCWSTR, level: u32, pprintprocessorinfo: *mut u8, cbbuf: u32, pcbneeded: *mut u32, pcreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumPrintProcessorsW(pname.into(), penvironment.into(), level, ::core::mem::transmute(pprintprocessorinfo), cbbuf, ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) + EnumPrintProcessorsW(pname.into(), penvironment.into(), level, ::core::mem::transmute(pprintprocessorinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pprintprocessorinfo.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumPrinterDataA<'a, P0>(hprinter: P0, dwindex: u32, pvaluename: ::windows::core::PSTR, cbvaluename: u32, pcbvaluename: &mut u32, ptype: ::core::option::Option<&mut u32>, pdata: &mut [u8], pcbdata: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn EnumPrinterDataA<'a, P0>(hprinter: P0, dwindex: u32, pvaluename: &mut [u8], pcbvaluename: &mut u32, ptype: ::core::option::Option<&mut u32>, pdata: ::core::option::Option<&mut [u8]>, pcbdata: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into, { @@ -5167,12 +5167,12 @@ where extern "system" { fn EnumPrinterDataA(hprinter: super::super::Foundation::HANDLE, dwindex: u32, pvaluename: ::windows::core::PSTR, cbvaluename: u32, pcbvaluename: *mut u32, ptype: *mut u32, pdata: *mut u8, cbdata: u32, pcbdata: *mut u32) -> u32; } - EnumPrinterDataA(hprinter.into(), dwindex, ::core::mem::transmute(pvaluename), cbvaluename, ::core::mem::transmute(pcbvaluename), ::core::mem::transmute(ptype), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pdata)), pdata.len() as _, ::core::mem::transmute(pcbdata)) + EnumPrinterDataA(hprinter.into(), dwindex, ::core::mem::transmute(pvaluename.as_ptr()), pvaluename.len() as _, ::core::mem::transmute(pcbvaluename), ::core::mem::transmute(ptype), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbdata)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumPrinterDataExA<'a, P0, P1>(hprinter: P0, pkeyname: P1, penumvalues: ::core::option::Option<&mut u8>, cbenumvalues: u32, pcbenumvalues: &mut u32, pnenumvalues: &mut u32) -> u32 +pub unsafe fn EnumPrinterDataExA<'a, P0, P1>(hprinter: P0, pkeyname: P1, penumvalues: ::core::option::Option<&mut [u8]>, pcbenumvalues: &mut u32, pnenumvalues: &mut u32) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -5181,12 +5181,12 @@ where extern "system" { fn EnumPrinterDataExA(hprinter: super::super::Foundation::HANDLE, pkeyname: ::windows::core::PCSTR, penumvalues: *mut u8, cbenumvalues: u32, pcbenumvalues: *mut u32, pnenumvalues: *mut u32) -> u32; } - EnumPrinterDataExA(hprinter.into(), pkeyname.into(), ::core::mem::transmute(penumvalues), cbenumvalues, ::core::mem::transmute(pcbenumvalues), ::core::mem::transmute(pnenumvalues)) + EnumPrinterDataExA(hprinter.into(), pkeyname.into(), ::core::mem::transmute(penumvalues.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), penumvalues.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbenumvalues), ::core::mem::transmute(pnenumvalues)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumPrinterDataExW<'a, P0, P1>(hprinter: P0, pkeyname: P1, penumvalues: ::core::option::Option<&mut u8>, cbenumvalues: u32, pcbenumvalues: &mut u32, pnenumvalues: &mut u32) -> u32 +pub unsafe fn EnumPrinterDataExW<'a, P0, P1>(hprinter: P0, pkeyname: P1, penumvalues: ::core::option::Option<&mut [u8]>, pcbenumvalues: &mut u32, pnenumvalues: &mut u32) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -5195,12 +5195,12 @@ where extern "system" { fn EnumPrinterDataExW(hprinter: super::super::Foundation::HANDLE, pkeyname: ::windows::core::PCWSTR, penumvalues: *mut u8, cbenumvalues: u32, pcbenumvalues: *mut u32, pnenumvalues: *mut u32) -> u32; } - EnumPrinterDataExW(hprinter.into(), pkeyname.into(), ::core::mem::transmute(penumvalues), cbenumvalues, ::core::mem::transmute(pcbenumvalues), ::core::mem::transmute(pnenumvalues)) + EnumPrinterDataExW(hprinter.into(), pkeyname.into(), ::core::mem::transmute(penumvalues.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), penumvalues.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbenumvalues), ::core::mem::transmute(pnenumvalues)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumPrinterDataW<'a, P0>(hprinter: P0, dwindex: u32, pvaluename: ::windows::core::PWSTR, cbvaluename: u32, pcbvaluename: &mut u32, ptype: ::core::option::Option<&mut u32>, pdata: &mut [u8], pcbdata: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn EnumPrinterDataW<'a, P0>(hprinter: P0, dwindex: u32, pvaluename: &mut [u8], pcbvaluename: &mut u32, ptype: ::core::option::Option<&mut u32>, pdata: ::core::option::Option<&mut [u8]>, pcbdata: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into, { @@ -5208,12 +5208,12 @@ where extern "system" { fn EnumPrinterDataW(hprinter: super::super::Foundation::HANDLE, dwindex: u32, pvaluename: ::windows::core::PWSTR, cbvaluename: u32, pcbvaluename: *mut u32, ptype: *mut u32, pdata: *mut u8, cbdata: u32, pcbdata: *mut u32) -> u32; } - EnumPrinterDataW(hprinter.into(), dwindex, ::core::mem::transmute(pvaluename), cbvaluename, ::core::mem::transmute(pcbvaluename), ::core::mem::transmute(ptype), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pdata)), pdata.len() as _, ::core::mem::transmute(pcbdata)) + EnumPrinterDataW(hprinter.into(), dwindex, ::core::mem::transmute(pvaluename.as_ptr()), pvaluename.len() as _, ::core::mem::transmute(pcbvaluename), ::core::mem::transmute(ptype), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbdata)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumPrinterDriversA<'a, P0, P1>(pname: P0, penvironment: P1, level: u32, pdriverinfo: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumPrinterDriversA<'a, P0, P1>(pname: P0, penvironment: P1, level: u32, pdriverinfo: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -5222,12 +5222,12 @@ where extern "system" { fn EnumPrinterDriversA(pname: ::windows::core::PCSTR, penvironment: ::windows::core::PCSTR, level: u32, pdriverinfo: *mut u8, cbbuf: u32, pcbneeded: *mut u32, pcreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumPrinterDriversA(pname.into(), penvironment.into(), level, ::core::mem::transmute(pdriverinfo), cbbuf, ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) + EnumPrinterDriversA(pname.into(), penvironment.into(), level, ::core::mem::transmute(pdriverinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdriverinfo.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumPrinterDriversW<'a, P0, P1>(pname: P0, penvironment: P1, level: u32, pdriverinfo: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumPrinterDriversW<'a, P0, P1>(pname: P0, penvironment: P1, level: u32, pdriverinfo: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -5236,12 +5236,12 @@ where extern "system" { fn EnumPrinterDriversW(pname: ::windows::core::PCWSTR, penvironment: ::windows::core::PCWSTR, level: u32, pdriverinfo: *mut u8, cbbuf: u32, pcbneeded: *mut u32, pcreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumPrinterDriversW(pname.into(), penvironment.into(), level, ::core::mem::transmute(pdriverinfo), cbbuf, ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) + EnumPrinterDriversW(pname.into(), penvironment.into(), level, ::core::mem::transmute(pdriverinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdriverinfo.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumPrinterKeyA<'a, P0, P1>(hprinter: P0, pkeyname: P1, psubkey: ::windows::core::PSTR, cbsubkey: u32, pcbsubkey: &mut u32) -> u32 +pub unsafe fn EnumPrinterKeyA<'a, P0, P1>(hprinter: P0, pkeyname: P1, psubkey: ::core::option::Option<&mut [u8]>, pcbsubkey: &mut u32) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -5250,12 +5250,12 @@ where extern "system" { fn EnumPrinterKeyA(hprinter: super::super::Foundation::HANDLE, pkeyname: ::windows::core::PCSTR, psubkey: ::windows::core::PSTR, cbsubkey: u32, pcbsubkey: *mut u32) -> u32; } - EnumPrinterKeyA(hprinter.into(), pkeyname.into(), ::core::mem::transmute(psubkey), cbsubkey, ::core::mem::transmute(pcbsubkey)) + EnumPrinterKeyA(hprinter.into(), pkeyname.into(), ::core::mem::transmute(psubkey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psubkey.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbsubkey)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumPrinterKeyW<'a, P0, P1>(hprinter: P0, pkeyname: P1, psubkey: ::windows::core::PWSTR, cbsubkey: u32, pcbsubkey: &mut u32) -> u32 +pub unsafe fn EnumPrinterKeyW<'a, P0, P1>(hprinter: P0, pkeyname: P1, psubkey: ::core::option::Option<&mut [u8]>, pcbsubkey: &mut u32) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -5264,12 +5264,12 @@ where extern "system" { fn EnumPrinterKeyW(hprinter: super::super::Foundation::HANDLE, pkeyname: ::windows::core::PCWSTR, psubkey: ::windows::core::PWSTR, cbsubkey: u32, pcbsubkey: *mut u32) -> u32; } - EnumPrinterKeyW(hprinter.into(), pkeyname.into(), ::core::mem::transmute(psubkey), cbsubkey, ::core::mem::transmute(pcbsubkey)) + EnumPrinterKeyW(hprinter.into(), pkeyname.into(), ::core::mem::transmute(psubkey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psubkey.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbsubkey)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumPrintersA<'a, P0>(flags: u32, name: P0, level: u32, pprinterenum: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumPrintersA<'a, P0>(flags: u32, name: P0, level: u32, pprinterenum: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -5277,12 +5277,12 @@ where extern "system" { fn EnumPrintersA(flags: u32, name: ::windows::core::PCSTR, level: u32, pprinterenum: *mut u8, cbbuf: u32, pcbneeded: *mut u32, pcreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumPrintersA(flags, name.into(), level, ::core::mem::transmute(pprinterenum), cbbuf, ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) + EnumPrintersA(flags, name.into(), level, ::core::mem::transmute(pprinterenum.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pprinterenum.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumPrintersW<'a, P0>(flags: u32, name: P0, level: u32, pprinterenum: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumPrintersW<'a, P0>(flags: u32, name: P0, level: u32, pprinterenum: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32, pcreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -5290,7 +5290,7 @@ where extern "system" { fn EnumPrintersW(flags: u32, name: ::windows::core::PCWSTR, level: u32, pprinterenum: *mut u8, cbbuf: u32, pcbneeded: *mut u32, pcreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumPrintersW(flags, name.into(), level, ::core::mem::transmute(pprinterenum), cbbuf, ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) + EnumPrintersW(flags, name.into(), level, ::core::mem::transmute(pprinterenum.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pprinterenum.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded), ::core::mem::transmute(pcreturned)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -5586,7 +5586,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FlushPrinter<'a, P0>(hprinter: P0, pbuf: *const ::core::ffi::c_void, cbbuf: u32, pcwritten: &mut u32, csleep: u32) -> super::super::Foundation::BOOL +pub unsafe fn FlushPrinter<'a, P0>(hprinter: P0, pbuf: ::core::option::Option<&[u8]>, pcwritten: &mut u32, csleep: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -5594,16 +5594,16 @@ where extern "system" { fn FlushPrinter(hprinter: super::super::Foundation::HANDLE, pbuf: *const ::core::ffi::c_void, cbbuf: u32, pcwritten: *mut u32, csleep: u32) -> super::super::Foundation::BOOL; } - FlushPrinter(hprinter.into(), ::core::mem::transmute(pbuf), cbbuf, ::core::mem::transmute(pcwritten), csleep) + FlushPrinter(hprinter.into(), ::core::mem::transmute(pbuf.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbuf.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcwritten), csleep) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`*"] #[inline] -pub unsafe fn FreePrintNamedPropertyArray(ppproperties: &mut [*mut PrintNamedProperty]) { +pub unsafe fn FreePrintNamedPropertyArray(ppproperties: ::core::option::Option<&mut [*mut PrintNamedProperty]>) { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn FreePrintNamedPropertyArray(cproperties: u32, ppproperties: *mut *mut PrintNamedProperty); } - FreePrintNamedPropertyArray(ppproperties.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppproperties))) + FreePrintNamedPropertyArray(ppproperties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`*"] #[inline] @@ -5856,7 +5856,7 @@ where extern "system" { fn GetCorePrinterDriversA(pszserver: ::windows::core::PCSTR, pszenvironment: ::windows::core::PCSTR, pszzcoredriverdependencies: ::windows::core::PCSTR, ccoreprinterdrivers: u32, pcoreprinterdrivers: *mut CORE_PRINTER_DRIVERA) -> ::windows::core::HRESULT; } - GetCorePrinterDriversA(pszserver.into(), pszenvironment.into(), pszzcoredriverdependencies.into(), pcoreprinterdrivers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pcoreprinterdrivers))).ok() + GetCorePrinterDriversA(pszserver.into(), pszenvironment.into(), pszzcoredriverdependencies.into(), pcoreprinterdrivers.len() as _, ::core::mem::transmute(pcoreprinterdrivers.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5871,7 +5871,7 @@ where extern "system" { fn GetCorePrinterDriversW(pszserver: ::windows::core::PCWSTR, pszenvironment: ::windows::core::PCWSTR, pszzcoredriverdependencies: ::windows::core::PCWSTR, ccoreprinterdrivers: u32, pcoreprinterdrivers: *mut CORE_PRINTER_DRIVERW) -> ::windows::core::HRESULT; } - GetCorePrinterDriversW(pszserver.into(), pszenvironment.into(), pszzcoredriverdependencies.into(), pcoreprinterdrivers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pcoreprinterdrivers))).ok() + GetCorePrinterDriversW(pszserver.into(), pszenvironment.into(), pszzcoredriverdependencies.into(), pcoreprinterdrivers.len() as _, ::core::mem::transmute(pcoreprinterdrivers.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5896,7 +5896,7 @@ pub unsafe fn GetDefaultPrinterW(pszbuffer: ::windows::core::PWSTR, pcchbuffer: #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetFormA<'a, P0, P1>(hprinter: P0, pformname: P1, level: u32, pform: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetFormA<'a, P0, P1>(hprinter: P0, pformname: P1, level: u32, pform: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -5905,12 +5905,12 @@ where extern "system" { fn GetFormA(hprinter: super::super::Foundation::HANDLE, pformname: ::windows::core::PCSTR, level: u32, pform: *mut u8, cbbuf: u32, pcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetFormA(hprinter.into(), pformname.into(), level, ::core::mem::transmute(pform), cbbuf, ::core::mem::transmute(pcbneeded)) + GetFormA(hprinter.into(), pformname.into(), level, ::core::mem::transmute(pform.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pform.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetFormW<'a, P0, P1>(hprinter: P0, pformname: P1, level: u32, pform: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetFormW<'a, P0, P1>(hprinter: P0, pformname: P1, level: u32, pform: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -5919,12 +5919,12 @@ where extern "system" { fn GetFormW(hprinter: super::super::Foundation::HANDLE, pformname: ::windows::core::PCWSTR, level: u32, pform: *mut u8, cbbuf: u32, pcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetFormW(hprinter.into(), pformname.into(), level, ::core::mem::transmute(pform), cbbuf, ::core::mem::transmute(pcbneeded)) + GetFormW(hprinter.into(), pformname.into(), level, ::core::mem::transmute(pform.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pform.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetJobA<'a, P0>(hprinter: P0, jobid: u32, level: u32, pjob: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetJobA<'a, P0>(hprinter: P0, jobid: u32, level: u32, pjob: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -5932,7 +5932,7 @@ where extern "system" { fn GetJobA(hprinter: super::super::Foundation::HANDLE, jobid: u32, level: u32, pjob: *mut u8, cbbuf: u32, pcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetJobA(hprinter.into(), jobid, level, ::core::mem::transmute(pjob), cbbuf, ::core::mem::transmute(pcbneeded)) + GetJobA(hprinter.into(), jobid, level, ::core::mem::transmute(pjob.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pjob.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -5950,7 +5950,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] #[inline] -pub unsafe fn GetJobAttributesEx<'a, P0>(pprintername: P0, pdevmode: &super::Gdi::DEVMODEW, dwlevel: u32, pattributeinfo: &mut u8, nsize: u32, dwflags: u32) -> super::super::Foundation::BOOL +pub unsafe fn GetJobAttributesEx<'a, P0>(pprintername: P0, pdevmode: &super::Gdi::DEVMODEW, dwlevel: u32, pattributeinfo: &mut [u8], dwflags: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -5958,7 +5958,7 @@ where extern "system" { fn GetJobAttributesEx(pprintername: ::windows::core::PCWSTR, pdevmode: *const super::Gdi::DEVMODEW, dwlevel: u32, pattributeinfo: *mut u8, nsize: u32, dwflags: u32) -> super::super::Foundation::BOOL; } - GetJobAttributesEx(pprintername.into(), ::core::mem::transmute(pdevmode), dwlevel, ::core::mem::transmute(pattributeinfo), nsize, dwflags) + GetJobAttributesEx(pprintername.into(), ::core::mem::transmute(pdevmode), dwlevel, ::core::mem::transmute(pattributeinfo.as_ptr()), pattributeinfo.len() as _, dwflags) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5977,7 +5977,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetJobW<'a, P0>(hprinter: P0, jobid: u32, level: u32, pjob: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetJobW<'a, P0>(hprinter: P0, jobid: u32, level: u32, pjob: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -5985,7 +5985,7 @@ where extern "system" { fn GetJobW(hprinter: super::super::Foundation::HANDLE, jobid: u32, level: u32, pjob: *mut u8, cbbuf: u32, pcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetJobW(hprinter.into(), jobid, level, ::core::mem::transmute(pjob), cbbuf, ::core::mem::transmute(pcbneeded)) + GetJobW(hprinter.into(), jobid, level, ::core::mem::transmute(pjob.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pjob.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6014,7 +6014,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrintProcessorDirectoryA<'a, P0, P1>(pname: P0, penvironment: P1, level: u32, pprintprocessorinfo: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetPrintProcessorDirectoryA<'a, P0, P1>(pname: P0, penvironment: P1, level: u32, pprintprocessorinfo: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -6023,12 +6023,12 @@ where extern "system" { fn GetPrintProcessorDirectoryA(pname: ::windows::core::PCSTR, penvironment: ::windows::core::PCSTR, level: u32, pprintprocessorinfo: *mut u8, cbbuf: u32, pcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetPrintProcessorDirectoryA(pname.into(), penvironment.into(), level, ::core::mem::transmute(pprintprocessorinfo), cbbuf, ::core::mem::transmute(pcbneeded)) + GetPrintProcessorDirectoryA(pname.into(), penvironment.into(), level, ::core::mem::transmute(pprintprocessorinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pprintprocessorinfo.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrintProcessorDirectoryW<'a, P0, P1>(pname: P0, penvironment: P1, level: u32, pprintprocessorinfo: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetPrintProcessorDirectoryW<'a, P0, P1>(pname: P0, penvironment: P1, level: u32, pprintprocessorinfo: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -6037,12 +6037,12 @@ where extern "system" { fn GetPrintProcessorDirectoryW(pname: ::windows::core::PCWSTR, penvironment: ::windows::core::PCWSTR, level: u32, pprintprocessorinfo: *mut u8, cbbuf: u32, pcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetPrintProcessorDirectoryW(pname.into(), penvironment.into(), level, ::core::mem::transmute(pprintprocessorinfo), cbbuf, ::core::mem::transmute(pcbneeded)) + GetPrintProcessorDirectoryW(pname.into(), penvironment.into(), level, ::core::mem::transmute(pprintprocessorinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pprintprocessorinfo.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrinterA<'a, P0>(hprinter: P0, level: u32, pprinter: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetPrinterA<'a, P0>(hprinter: P0, level: u32, pprinter: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -6050,12 +6050,12 @@ where extern "system" { fn GetPrinterA(hprinter: super::super::Foundation::HANDLE, level: u32, pprinter: *mut u8, cbbuf: u32, pcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetPrinterA(hprinter.into(), level, ::core::mem::transmute(pprinter), cbbuf, ::core::mem::transmute(pcbneeded)) + GetPrinterA(hprinter.into(), level, ::core::mem::transmute(pprinter.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pprinter.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrinterDataA<'a, P0, P1>(hprinter: P0, pvaluename: P1, ptype: ::core::option::Option<&mut u32>, pdata: ::core::option::Option<&mut u8>, nsize: u32, pcbneeded: &mut u32) -> u32 +pub unsafe fn GetPrinterDataA<'a, P0, P1>(hprinter: P0, pvaluename: P1, ptype: ::core::option::Option<&mut u32>, pdata: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -6064,12 +6064,12 @@ where extern "system" { fn GetPrinterDataA(hprinter: super::super::Foundation::HANDLE, pvaluename: ::windows::core::PCSTR, ptype: *mut u32, pdata: *mut u8, nsize: u32, pcbneeded: *mut u32) -> u32; } - GetPrinterDataA(hprinter.into(), pvaluename.into(), ::core::mem::transmute(ptype), ::core::mem::transmute(pdata), nsize, ::core::mem::transmute(pcbneeded)) + GetPrinterDataA(hprinter.into(), pvaluename.into(), ::core::mem::transmute(ptype), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrinterDataExA<'a, P0, P1, P2>(hprinter: P0, pkeyname: P1, pvaluename: P2, ptype: ::core::option::Option<&mut u32>, pdata: ::core::option::Option<&mut u8>, nsize: u32, pcbneeded: &mut u32) -> u32 +pub unsafe fn GetPrinterDataExA<'a, P0, P1, P2>(hprinter: P0, pkeyname: P1, pvaluename: P2, ptype: ::core::option::Option<&mut u32>, pdata: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -6079,12 +6079,12 @@ where extern "system" { fn GetPrinterDataExA(hprinter: super::super::Foundation::HANDLE, pkeyname: ::windows::core::PCSTR, pvaluename: ::windows::core::PCSTR, ptype: *mut u32, pdata: *mut u8, nsize: u32, pcbneeded: *mut u32) -> u32; } - GetPrinterDataExA(hprinter.into(), pkeyname.into(), pvaluename.into(), ::core::mem::transmute(ptype), ::core::mem::transmute(pdata), nsize, ::core::mem::transmute(pcbneeded)) + GetPrinterDataExA(hprinter.into(), pkeyname.into(), pvaluename.into(), ::core::mem::transmute(ptype), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrinterDataExW<'a, P0, P1, P2>(hprinter: P0, pkeyname: P1, pvaluename: P2, ptype: ::core::option::Option<&mut u32>, pdata: ::core::option::Option<&mut u8>, nsize: u32, pcbneeded: &mut u32) -> u32 +pub unsafe fn GetPrinterDataExW<'a, P0, P1, P2>(hprinter: P0, pkeyname: P1, pvaluename: P2, ptype: ::core::option::Option<&mut u32>, pdata: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -6094,12 +6094,12 @@ where extern "system" { fn GetPrinterDataExW(hprinter: super::super::Foundation::HANDLE, pkeyname: ::windows::core::PCWSTR, pvaluename: ::windows::core::PCWSTR, ptype: *mut u32, pdata: *mut u8, nsize: u32, pcbneeded: *mut u32) -> u32; } - GetPrinterDataExW(hprinter.into(), pkeyname.into(), pvaluename.into(), ::core::mem::transmute(ptype), ::core::mem::transmute(pdata), nsize, ::core::mem::transmute(pcbneeded)) + GetPrinterDataExW(hprinter.into(), pkeyname.into(), pvaluename.into(), ::core::mem::transmute(ptype), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrinterDataW<'a, P0, P1>(hprinter: P0, pvaluename: P1, ptype: ::core::option::Option<&mut u32>, pdata: ::core::option::Option<&mut u8>, nsize: u32, pcbneeded: &mut u32) -> u32 +pub unsafe fn GetPrinterDataW<'a, P0, P1>(hprinter: P0, pvaluename: P1, ptype: ::core::option::Option<&mut u32>, pdata: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -6108,12 +6108,12 @@ where extern "system" { fn GetPrinterDataW(hprinter: super::super::Foundation::HANDLE, pvaluename: ::windows::core::PCWSTR, ptype: *mut u32, pdata: *mut u8, nsize: u32, pcbneeded: *mut u32) -> u32; } - GetPrinterDataW(hprinter.into(), pvaluename.into(), ::core::mem::transmute(ptype), ::core::mem::transmute(pdata), nsize, ::core::mem::transmute(pcbneeded)) + GetPrinterDataW(hprinter.into(), pvaluename.into(), ::core::mem::transmute(ptype), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrinterDriver2A<'a, P0, P1, P2>(hwnd: P0, hprinter: P1, penvironment: P2, level: u32, pdriverinfo: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetPrinterDriver2A<'a, P0, P1, P2>(hwnd: P0, hprinter: P1, penvironment: P2, level: u32, pdriverinfo: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -6123,12 +6123,12 @@ where extern "system" { fn GetPrinterDriver2A(hwnd: super::super::Foundation::HWND, hprinter: super::super::Foundation::HANDLE, penvironment: ::windows::core::PCSTR, level: u32, pdriverinfo: *mut u8, cbbuf: u32, pcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetPrinterDriver2A(hwnd.into(), hprinter.into(), penvironment.into(), level, ::core::mem::transmute(pdriverinfo), cbbuf, ::core::mem::transmute(pcbneeded)) + GetPrinterDriver2A(hwnd.into(), hprinter.into(), penvironment.into(), level, ::core::mem::transmute(pdriverinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdriverinfo.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrinterDriver2W<'a, P0, P1, P2>(hwnd: P0, hprinter: P1, penvironment: P2, level: u32, pdriverinfo: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetPrinterDriver2W<'a, P0, P1, P2>(hwnd: P0, hprinter: P1, penvironment: P2, level: u32, pdriverinfo: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -6138,12 +6138,12 @@ where extern "system" { fn GetPrinterDriver2W(hwnd: super::super::Foundation::HWND, hprinter: super::super::Foundation::HANDLE, penvironment: ::windows::core::PCWSTR, level: u32, pdriverinfo: *mut u8, cbbuf: u32, pcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetPrinterDriver2W(hwnd.into(), hprinter.into(), penvironment.into(), level, ::core::mem::transmute(pdriverinfo), cbbuf, ::core::mem::transmute(pcbneeded)) + GetPrinterDriver2W(hwnd.into(), hprinter.into(), penvironment.into(), level, ::core::mem::transmute(pdriverinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdriverinfo.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrinterDriverA<'a, P0, P1>(hprinter: P0, penvironment: P1, level: u32, pdriverinfo: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetPrinterDriverA<'a, P0, P1>(hprinter: P0, penvironment: P1, level: u32, pdriverinfo: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -6152,12 +6152,12 @@ where extern "system" { fn GetPrinterDriverA(hprinter: super::super::Foundation::HANDLE, penvironment: ::windows::core::PCSTR, level: u32, pdriverinfo: *mut u8, cbbuf: u32, pcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetPrinterDriverA(hprinter.into(), penvironment.into(), level, ::core::mem::transmute(pdriverinfo), cbbuf, ::core::mem::transmute(pcbneeded)) + GetPrinterDriverA(hprinter.into(), penvironment.into(), level, ::core::mem::transmute(pdriverinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdriverinfo.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrinterDriverDirectoryA<'a, P0, P1>(pname: P0, penvironment: P1, level: u32, pdriverdirectory: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetPrinterDriverDirectoryA<'a, P0, P1>(pname: P0, penvironment: P1, level: u32, pdriverdirectory: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -6166,12 +6166,12 @@ where extern "system" { fn GetPrinterDriverDirectoryA(pname: ::windows::core::PCSTR, penvironment: ::windows::core::PCSTR, level: u32, pdriverdirectory: *mut u8, cbbuf: u32, pcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetPrinterDriverDirectoryA(pname.into(), penvironment.into(), level, ::core::mem::transmute(pdriverdirectory), cbbuf, ::core::mem::transmute(pcbneeded)) + GetPrinterDriverDirectoryA(pname.into(), penvironment.into(), level, ::core::mem::transmute(pdriverdirectory.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdriverdirectory.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrinterDriverDirectoryW<'a, P0, P1>(pname: P0, penvironment: P1, level: u32, pdriverdirectory: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetPrinterDriverDirectoryW<'a, P0, P1>(pname: P0, penvironment: P1, level: u32, pdriverdirectory: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -6180,11 +6180,11 @@ where extern "system" { fn GetPrinterDriverDirectoryW(pname: ::windows::core::PCWSTR, penvironment: ::windows::core::PCWSTR, level: u32, pdriverdirectory: *mut u8, cbbuf: u32, pcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetPrinterDriverDirectoryW(pname.into(), penvironment.into(), level, ::core::mem::transmute(pdriverdirectory), cbbuf, ::core::mem::transmute(pcbneeded)) + GetPrinterDriverDirectoryW(pname.into(), penvironment.into(), level, ::core::mem::transmute(pdriverdirectory.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdriverdirectory.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`*"] #[inline] -pub unsafe fn GetPrinterDriverPackagePathA<'a, P0, P1, P2, P3>(pszserver: P0, pszenvironment: P1, pszlanguage: P2, pszpackageid: P3, pszdriverpackagecab: &mut [u8], pcchrequiredsize: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn GetPrinterDriverPackagePathA<'a, P0, P1, P2, P3>(pszserver: P0, pszenvironment: P1, pszlanguage: P2, pszpackageid: P3, pszdriverpackagecab: ::core::option::Option<&mut [u8]>, pcchrequiredsize: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -6195,11 +6195,11 @@ where extern "system" { fn GetPrinterDriverPackagePathA(pszserver: ::windows::core::PCSTR, pszenvironment: ::windows::core::PCSTR, pszlanguage: ::windows::core::PCSTR, pszpackageid: ::windows::core::PCSTR, pszdriverpackagecab: ::windows::core::PSTR, cchdriverpackagecab: u32, pcchrequiredsize: *mut u32) -> ::windows::core::HRESULT; } - GetPrinterDriverPackagePathA(pszserver.into(), pszenvironment.into(), pszlanguage.into(), pszpackageid.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdriverpackagecab)), pszdriverpackagecab.len() as _, ::core::mem::transmute(pcchrequiredsize)).ok() + GetPrinterDriverPackagePathA(pszserver.into(), pszenvironment.into(), pszlanguage.into(), pszpackageid.into(), ::core::mem::transmute(pszdriverpackagecab.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszdriverpackagecab.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchrequiredsize)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`*"] #[inline] -pub unsafe fn GetPrinterDriverPackagePathW<'a, P0, P1, P2, P3>(pszserver: P0, pszenvironment: P1, pszlanguage: P2, pszpackageid: P3, pszdriverpackagecab: &mut [u16], pcchrequiredsize: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn GetPrinterDriverPackagePathW<'a, P0, P1, P2, P3>(pszserver: P0, pszenvironment: P1, pszlanguage: P2, pszpackageid: P3, pszdriverpackagecab: ::core::option::Option<&mut [u16]>, pcchrequiredsize: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -6210,12 +6210,12 @@ where extern "system" { fn GetPrinterDriverPackagePathW(pszserver: ::windows::core::PCWSTR, pszenvironment: ::windows::core::PCWSTR, pszlanguage: ::windows::core::PCWSTR, pszpackageid: ::windows::core::PCWSTR, pszdriverpackagecab: ::windows::core::PWSTR, cchdriverpackagecab: u32, pcchrequiredsize: *mut u32) -> ::windows::core::HRESULT; } - GetPrinterDriverPackagePathW(pszserver.into(), pszenvironment.into(), pszlanguage.into(), pszpackageid.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdriverpackagecab)), pszdriverpackagecab.len() as _, ::core::mem::transmute(pcchrequiredsize)).ok() + GetPrinterDriverPackagePathW(pszserver.into(), pszenvironment.into(), pszlanguage.into(), pszpackageid.into(), ::core::mem::transmute(pszdriverpackagecab.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszdriverpackagecab.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchrequiredsize)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrinterDriverW<'a, P0, P1>(hprinter: P0, penvironment: P1, level: u32, pdriverinfo: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetPrinterDriverW<'a, P0, P1>(hprinter: P0, penvironment: P1, level: u32, pdriverinfo: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -6224,12 +6224,12 @@ where extern "system" { fn GetPrinterDriverW(hprinter: super::super::Foundation::HANDLE, penvironment: ::windows::core::PCWSTR, level: u32, pdriverinfo: *mut u8, cbbuf: u32, pcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetPrinterDriverW(hprinter.into(), penvironment.into(), level, ::core::mem::transmute(pdriverinfo), cbbuf, ::core::mem::transmute(pcbneeded)) + GetPrinterDriverW(hprinter.into(), penvironment.into(), level, ::core::mem::transmute(pdriverinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdriverinfo.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrinterW<'a, P0>(hprinter: P0, level: u32, pprinter: ::core::option::Option<&mut u8>, cbbuf: u32, pcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetPrinterW<'a, P0>(hprinter: P0, level: u32, pprinter: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -6237,7 +6237,7 @@ where extern "system" { fn GetPrinterW(hprinter: super::super::Foundation::HANDLE, level: u32, pprinter: *mut u8, cbbuf: u32, pcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetPrinterW(hprinter.into(), level, ::core::mem::transmute(pprinter), cbbuf, ::core::mem::transmute(pcbneeded)) + GetPrinterW(hprinter.into(), level, ::core::mem::transmute(pprinter.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pprinter.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9439,12 +9439,12 @@ pub struct IPrintCoreHelper(::windows::core::IUnknown); impl IPrintCoreHelper { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] - pub unsafe fn GetOption<'a, P0>(&self, pdevmode: ::core::option::Option<&super::Gdi::DEVMODEA>, cbsize: u32, pszfeaturerequested: P0) -> ::windows::core::Result<::windows::core::PSTR> + pub unsafe fn GetOption<'a, P0>(&self, pdevmode: ::core::option::Option<&[u8]>, pszfeaturerequested: P0) -> ::windows::core::Result<::windows::core::PSTR> where P0: ::std::convert::Into<::windows::core::PCSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetOption)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode), cbsize, pszfeaturerequested.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PSTR>(result__) + (::windows::core::Interface::vtable(self).GetOption)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdevmode.as_deref().map_or(0, |slice| slice.len() as _), pszfeaturerequested.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PSTR>(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -9464,12 +9464,12 @@ impl IPrintCoreHelper { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] - pub unsafe fn WhyConstrained<'a, P0, P1>(&self, pdevmode: ::core::option::Option<&super::Gdi::DEVMODEA>, cbsize: u32, pszfeaturekeyword: P0, pszoptionkeyword: P1, ppfoconstraints: &mut *mut PRINT_FEATURE_OPTION, pdwnumoptions: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn WhyConstrained<'a, P0, P1>(&self, pdevmode: ::core::option::Option<&[u8]>, pszfeaturekeyword: P0, pszoptionkeyword: P1, ppfoconstraints: &mut *mut PRINT_FEATURE_OPTION, pdwnumoptions: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).WhyConstrained)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode), cbsize, pszfeaturekeyword.into(), pszoptionkeyword.into(), ::core::mem::transmute(ppfoconstraints), ::core::mem::transmute(pdwnumoptions)).ok() + (::windows::core::Interface::vtable(self).WhyConstrained)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdevmode.as_deref().map_or(0, |slice| slice.len() as _), pszfeaturekeyword.into(), pszoptionkeyword.into(), ::core::mem::transmute(ppfoconstraints), ::core::mem::transmute(pdwnumoptions)).ok() } pub unsafe fn EnumFeatures(&self, pfeaturelist: &mut *mut *mut ::windows::core::PSTR, pdwnumfeatures: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).EnumFeatures)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfeaturelist), ::core::mem::transmute(pdwnumfeatures)).ok() @@ -9567,12 +9567,12 @@ pub struct IPrintCoreHelperPS(::windows::core::IUnknown); impl IPrintCoreHelperPS { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] - pub unsafe fn GetOption<'a, P0>(&self, pdevmode: ::core::option::Option<&super::Gdi::DEVMODEA>, cbsize: u32, pszfeaturerequested: P0) -> ::windows::core::Result<::windows::core::PSTR> + pub unsafe fn GetOption<'a, P0>(&self, pdevmode: ::core::option::Option<&[u8]>, pszfeaturerequested: P0) -> ::windows::core::Result<::windows::core::PSTR> where P0: ::std::convert::Into<::windows::core::PCSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.GetOption)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode), cbsize, pszfeaturerequested.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PSTR>(result__) + (::windows::core::Interface::vtable(self).base__.GetOption)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdevmode.as_deref().map_or(0, |slice| slice.len() as _), pszfeaturerequested.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PSTR>(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -9592,12 +9592,12 @@ impl IPrintCoreHelperPS { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] - pub unsafe fn WhyConstrained<'a, P0, P1>(&self, pdevmode: ::core::option::Option<&super::Gdi::DEVMODEA>, cbsize: u32, pszfeaturekeyword: P0, pszoptionkeyword: P1, ppfoconstraints: &mut *mut PRINT_FEATURE_OPTION, pdwnumoptions: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn WhyConstrained<'a, P0, P1>(&self, pdevmode: ::core::option::Option<&[u8]>, pszfeaturekeyword: P0, pszoptionkeyword: P1, ppfoconstraints: &mut *mut PRINT_FEATURE_OPTION, pdwnumoptions: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).base__.WhyConstrained)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode), cbsize, pszfeaturekeyword.into(), pszoptionkeyword.into(), ::core::mem::transmute(ppfoconstraints), ::core::mem::transmute(pdwnumoptions)).ok() + (::windows::core::Interface::vtable(self).base__.WhyConstrained)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdevmode.as_deref().map_or(0, |slice| slice.len() as _), pszfeaturekeyword.into(), pszoptionkeyword.into(), ::core::mem::transmute(ppfoconstraints), ::core::mem::transmute(pdwnumoptions)).ok() } pub unsafe fn EnumFeatures(&self, pfeaturelist: &mut *mut *mut ::windows::core::PSTR, pdwnumfeatures: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.EnumFeatures)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfeaturelist), ::core::mem::transmute(pdwnumfeatures)).ok() @@ -9713,12 +9713,12 @@ pub struct IPrintCoreHelperUni(::windows::core::IUnknown); impl IPrintCoreHelperUni { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] - pub unsafe fn GetOption<'a, P0>(&self, pdevmode: ::core::option::Option<&super::Gdi::DEVMODEA>, cbsize: u32, pszfeaturerequested: P0) -> ::windows::core::Result<::windows::core::PSTR> + pub unsafe fn GetOption<'a, P0>(&self, pdevmode: ::core::option::Option<&[u8]>, pszfeaturerequested: P0) -> ::windows::core::Result<::windows::core::PSTR> where P0: ::std::convert::Into<::windows::core::PCSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.GetOption)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode), cbsize, pszfeaturerequested.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PSTR>(result__) + (::windows::core::Interface::vtable(self).base__.GetOption)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdevmode.as_deref().map_or(0, |slice| slice.len() as _), pszfeaturerequested.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PSTR>(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -9738,12 +9738,12 @@ impl IPrintCoreHelperUni { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] - pub unsafe fn WhyConstrained<'a, P0, P1>(&self, pdevmode: ::core::option::Option<&super::Gdi::DEVMODEA>, cbsize: u32, pszfeaturekeyword: P0, pszoptionkeyword: P1, ppfoconstraints: &mut *mut PRINT_FEATURE_OPTION, pdwnumoptions: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn WhyConstrained<'a, P0, P1>(&self, pdevmode: ::core::option::Option<&[u8]>, pszfeaturekeyword: P0, pszoptionkeyword: P1, ppfoconstraints: &mut *mut PRINT_FEATURE_OPTION, pdwnumoptions: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).base__.WhyConstrained)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode), cbsize, pszfeaturekeyword.into(), pszoptionkeyword.into(), ::core::mem::transmute(ppfoconstraints), ::core::mem::transmute(pdwnumoptions)).ok() + (::windows::core::Interface::vtable(self).base__.WhyConstrained)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdevmode.as_deref().map_or(0, |slice| slice.len() as _), pszfeaturekeyword.into(), pszoptionkeyword.into(), ::core::mem::transmute(ppfoconstraints), ::core::mem::transmute(pdwnumoptions)).ok() } pub unsafe fn EnumFeatures(&self, pfeaturelist: &mut *mut *mut ::windows::core::PSTR, pdwnumfeatures: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.EnumFeatures)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfeaturelist), ::core::mem::transmute(pdwnumfeatures)).ok() @@ -9854,12 +9854,12 @@ pub struct IPrintCoreHelperUni2(::windows::core::IUnknown); impl IPrintCoreHelperUni2 { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] - pub unsafe fn GetOption<'a, P0>(&self, pdevmode: ::core::option::Option<&super::Gdi::DEVMODEA>, cbsize: u32, pszfeaturerequested: P0) -> ::windows::core::Result<::windows::core::PSTR> + pub unsafe fn GetOption<'a, P0>(&self, pdevmode: ::core::option::Option<&[u8]>, pszfeaturerequested: P0) -> ::windows::core::Result<::windows::core::PSTR> where P0: ::std::convert::Into<::windows::core::PCSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.GetOption)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode), cbsize, pszfeaturerequested.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PSTR>(result__) + (::windows::core::Interface::vtable(self).base__.base__.GetOption)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdevmode.as_deref().map_or(0, |slice| slice.len() as _), pszfeaturerequested.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PSTR>(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -9879,12 +9879,12 @@ impl IPrintCoreHelperUni2 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] - pub unsafe fn WhyConstrained<'a, P0, P1>(&self, pdevmode: ::core::option::Option<&super::Gdi::DEVMODEA>, cbsize: u32, pszfeaturekeyword: P0, pszoptionkeyword: P1, ppfoconstraints: &mut *mut PRINT_FEATURE_OPTION, pdwnumoptions: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn WhyConstrained<'a, P0, P1>(&self, pdevmode: ::core::option::Option<&[u8]>, pszfeaturekeyword: P0, pszoptionkeyword: P1, ppfoconstraints: &mut *mut PRINT_FEATURE_OPTION, pdwnumoptions: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.WhyConstrained)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode), cbsize, pszfeaturekeyword.into(), pszoptionkeyword.into(), ::core::mem::transmute(ppfoconstraints), ::core::mem::transmute(pdwnumoptions)).ok() + (::windows::core::Interface::vtable(self).base__.base__.WhyConstrained)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdevmode.as_deref().map_or(0, |slice| slice.len() as _), pszfeaturekeyword.into(), pszoptionkeyword.into(), ::core::mem::transmute(ppfoconstraints), ::core::mem::transmute(pdwnumoptions)).ok() } pub unsafe fn EnumFeatures(&self, pfeaturelist: &mut *mut *mut ::windows::core::PSTR, pdwnumfeatures: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.EnumFeatures)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfeaturelist), ::core::mem::transmute(pdwnumfeatures)).ok() @@ -9927,11 +9927,11 @@ impl IPrintCoreHelperUni2 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] - pub unsafe fn GetNamedCommand<'a, P0>(&self, pdevmode: ::core::option::Option<&super::Gdi::DEVMODEA>, cbsize: u32, pszcommandname: P0, ppcommandbytes: &mut *mut u8, pcbcommandsize: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetNamedCommand<'a, P0>(&self, pdevmode: ::core::option::Option<&[u8]>, pszcommandname: P0, ppcommandbytes: &mut *mut u8, pcbcommandsize: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetNamedCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode), cbsize, pszcommandname.into(), ::core::mem::transmute(ppcommandbytes), ::core::mem::transmute(pcbcommandsize)).ok() + (::windows::core::Interface::vtable(self).GetNamedCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdevmode.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdevmode.as_deref().map_or(0, |slice| slice.len() as _), pszcommandname.into(), ::core::mem::transmute(ppcommandbytes), ::core::mem::transmute(pcbcommandsize)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -10033,79 +10033,79 @@ impl IPrintCoreUI2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetOptions(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pmszfeaturesrequested: ::core::option::Option<&i8>, cbin: u32, pmszfeatureoptionbuf: ::windows::core::PSTR, cbsize: u32, pcbneeded: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, ::core::mem::transmute(pmszfeaturesrequested), cbin, ::core::mem::transmute(pmszfeatureoptionbuf), cbsize, ::core::mem::transmute(pcbneeded)).ok() + pub unsafe fn GetOptions(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pmszfeaturesrequested: ::core::option::Option<&[u8]>, pmszfeatureoptionbuf: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, ::core::mem::transmute(pmszfeaturesrequested.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pmszfeaturesrequested.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pmszfeatureoptionbuf.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pmszfeatureoptionbuf.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetOptions(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pmszfeatureoptionbuf: &i8, cbin: u32) -> ::windows::core::Result { + pub unsafe fn SetOptions(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pmszfeatureoptionbuf: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).SetOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, ::core::mem::transmute(pmszfeatureoptionbuf), cbin, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).SetOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, ::core::mem::transmute(pmszfeatureoptionbuf.as_ptr()), pmszfeatureoptionbuf.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn EnumConstrainedOptions<'a, P0>(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pszfeaturekeyword: P0, pmszconstrainedoptionlist: ::windows::core::PSTR, cbsize: u32, pcbneeded: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn EnumConstrainedOptions<'a, P0>(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pszfeaturekeyword: P0, pmszconstrainedoptionlist: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).EnumConstrainedOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, pszfeaturekeyword.into(), ::core::mem::transmute(pmszconstrainedoptionlist), cbsize, ::core::mem::transmute(pcbneeded)).ok() + (::windows::core::Interface::vtable(self).EnumConstrainedOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, pszfeaturekeyword.into(), ::core::mem::transmute(pmszconstrainedoptionlist.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pmszconstrainedoptionlist.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn WhyConstrained<'a, P0, P1>(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pszfeaturekeyword: P0, pszoptionkeyword: P1, pmszreasonlist: ::windows::core::PSTR, cbsize: u32, pcbneeded: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn WhyConstrained<'a, P0, P1>(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pszfeaturekeyword: P0, pszoptionkeyword: P1, pmszreasonlist: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).WhyConstrained)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, pszfeaturekeyword.into(), pszoptionkeyword.into(), ::core::mem::transmute(pmszreasonlist), cbsize, ::core::mem::transmute(pcbneeded)).ok() + (::windows::core::Interface::vtable(self).WhyConstrained)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, pszfeaturekeyword.into(), pszoptionkeyword.into(), ::core::mem::transmute(pmszreasonlist.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pmszreasonlist.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetGlobalAttribute<'a, P0>(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pszattribute: P0, pdwdatatype: &mut u32, pbdata: ::core::option::Option<&mut u8>, cbsize: u32, pcbneeded: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetGlobalAttribute<'a, P0>(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pszattribute: P0, pdwdatatype: &mut u32, pbdata: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetGlobalAttribute)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, pszattribute.into(), ::core::mem::transmute(pdwdatatype), ::core::mem::transmute(pbdata), cbsize, ::core::mem::transmute(pcbneeded)).ok() + (::windows::core::Interface::vtable(self).GetGlobalAttribute)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, pszattribute.into(), ::core::mem::transmute(pdwdatatype), ::core::mem::transmute(pbdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetFeatureAttribute<'a, P0, P1>(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pszfeaturekeyword: P0, pszattribute: P1, pdwdatatype: &mut u32, pbdata: ::core::option::Option<&mut u8>, cbsize: u32, pcbneeded: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetFeatureAttribute<'a, P0, P1>(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pszfeaturekeyword: P0, pszattribute: P1, pdwdatatype: &mut u32, pbdata: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetFeatureAttribute)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, pszfeaturekeyword.into(), pszattribute.into(), ::core::mem::transmute(pdwdatatype), ::core::mem::transmute(pbdata), cbsize, ::core::mem::transmute(pcbneeded)).ok() + (::windows::core::Interface::vtable(self).GetFeatureAttribute)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, pszfeaturekeyword.into(), pszattribute.into(), ::core::mem::transmute(pdwdatatype), ::core::mem::transmute(pbdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetOptionAttribute<'a, P0, P1, P2>(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pszfeaturekeyword: P0, pszoptionkeyword: P1, pszattribute: P2, pdwdatatype: &mut u32, pbdata: ::core::option::Option<&mut u8>, cbsize: u32, pcbneeded: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetOptionAttribute<'a, P0, P1, P2>(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pszfeaturekeyword: P0, pszoptionkeyword: P1, pszattribute: P2, pdwdatatype: &mut u32, pbdata: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, P2: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetOptionAttribute)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, pszfeaturekeyword.into(), pszoptionkeyword.into(), pszattribute.into(), ::core::mem::transmute(pdwdatatype), ::core::mem::transmute(pbdata), cbsize, ::core::mem::transmute(pcbneeded)).ok() + (::windows::core::Interface::vtable(self).GetOptionAttribute)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, pszfeaturekeyword.into(), pszoptionkeyword.into(), pszattribute.into(), ::core::mem::transmute(pdwdatatype), ::core::mem::transmute(pbdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn EnumFeatures(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pmszfeaturelist: ::windows::core::PSTR, cbsize: u32, pcbneeded: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).EnumFeatures)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, ::core::mem::transmute(pmszfeaturelist), cbsize, ::core::mem::transmute(pcbneeded)).ok() + pub unsafe fn EnumFeatures(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pmszfeaturelist: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).EnumFeatures)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, ::core::mem::transmute(pmszfeaturelist.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pmszfeaturelist.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn EnumOptions<'a, P0>(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pszfeaturekeyword: P0, pmszoptionlist: ::windows::core::PSTR, cbsize: u32, pcbneeded: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn EnumOptions<'a, P0>(&self, poemuiobj: &OEMUIOBJ, dwflags: u32, pszfeaturekeyword: P0, pmszoptionlist: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).EnumOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, pszfeaturekeyword.into(), ::core::mem::transmute(pmszoptionlist), cbsize, ::core::mem::transmute(pcbneeded)).ok() + (::windows::core::Interface::vtable(self).EnumOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(poemuiobj), dwflags, pszfeaturekeyword.into(), ::core::mem::transmute(pmszoptionlist.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pmszoptionlist.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn QuerySimulationSupport<'a, P0>(&self, hprinter: P0, dwlevel: u32, pcaps: ::core::option::Option<&mut u8>, cbsize: u32, pcbneeded: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn QuerySimulationSupport<'a, P0>(&self, hprinter: P0, dwlevel: u32, pcaps: ::core::option::Option<&mut [u8]>, pcbneeded: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).QuerySimulationSupport)(::windows::core::Interface::as_raw(self), hprinter.into(), dwlevel, ::core::mem::transmute(pcaps), cbsize, ::core::mem::transmute(pcbneeded)).ok() + (::windows::core::Interface::vtable(self).QuerySimulationSupport)(::windows::core::Interface::as_raw(self), hprinter.into(), dwlevel, ::core::mem::transmute(pcaps.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pcaps.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbneeded)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -10380,8 +10380,8 @@ pub struct IPrintJobCollection_Vtbl { #[repr(transparent)] pub struct IPrintOemCommon(::windows::core::IUnknown); impl IPrintOemCommon { - pub unsafe fn GetInfo(&self, dwmode: u32, pbuffer: *mut ::core::ffi::c_void, cbsize: u32, pcbneeded: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetInfo)(::windows::core::Interface::as_raw(self), dwmode, ::core::mem::transmute(pbuffer), cbsize, ::core::mem::transmute(pcbneeded)).ok() + pub unsafe fn GetInfo(&self, dwmode: u32, pbuffer: &mut [u8], pcbneeded: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetInfo)(::windows::core::Interface::as_raw(self), dwmode, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _, ::core::mem::transmute(pcbneeded)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -10508,8 +10508,8 @@ pub struct IPrintOemDriverUI_Vtbl { #[repr(transparent)] pub struct IPrintOemUI(::windows::core::IUnknown); impl IPrintOemUI { - pub unsafe fn GetInfo(&self, dwmode: u32, pbuffer: *mut ::core::ffi::c_void, cbsize: u32, pcbneeded: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetInfo)(::windows::core::Interface::as_raw(self), dwmode, ::core::mem::transmute(pbuffer), cbsize, ::core::mem::transmute(pcbneeded)).ok() + pub unsafe fn GetInfo(&self, dwmode: u32, pbuffer: &mut [u8], pcbneeded: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetInfo)(::windows::core::Interface::as_raw(self), dwmode, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _, ::core::mem::transmute(pcbneeded)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -10707,8 +10707,8 @@ pub struct IPrintOemUI_Vtbl { #[repr(transparent)] pub struct IPrintOemUI2(::windows::core::IUnknown); impl IPrintOemUI2 { - pub unsafe fn GetInfo(&self, dwmode: u32, pbuffer: *mut ::core::ffi::c_void, cbsize: u32, pcbneeded: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetInfo)(::windows::core::Interface::as_raw(self), dwmode, ::core::mem::transmute(pbuffer), cbsize, ::core::mem::transmute(pcbneeded)).ok() + pub unsafe fn GetInfo(&self, dwmode: u32, pbuffer: &mut [u8], pcbneeded: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.GetInfo)(::windows::core::Interface::as_raw(self), dwmode, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _, ::core::mem::transmute(pcbneeded)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -11314,8 +11314,8 @@ impl IPrintReadStream { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn ReadBytes(&self, pvbuffer: *mut ::core::ffi::c_void, cbrequested: u32, pcbread: &mut u32, pbendoffile: &mut super::super::Foundation::BOOL) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadBytes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvbuffer), cbrequested, ::core::mem::transmute(pcbread), ::core::mem::transmute(pbendoffile)).ok() + pub unsafe fn ReadBytes(&self, pvbuffer: &mut [u8], pcbread: &mut u32, pbendoffile: &mut super::super::Foundation::BOOL) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadBytes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvbuffer.as_ptr()), pvbuffer.len() as _, ::core::mem::transmute(pcbread), ::core::mem::transmute(pbendoffile)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -14111,9 +14111,9 @@ pub struct IPrintUnidiAsyncNotifyRegistration_Vtbl { #[repr(transparent)] pub struct IPrintWriteStream(::windows::core::IUnknown); impl IPrintWriteStream { - pub unsafe fn WriteBytes(&self, pvbuffer: *const ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::Result { + pub unsafe fn WriteBytes(&self, pvbuffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteBytes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvbuffer), cbbuffer, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteBytes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvbuffer.as_ptr()), pvbuffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Close(&self) { (::windows::core::Interface::vtable(self).Close)(::windows::core::Interface::as_raw(self)) @@ -15002,7 +15002,7 @@ impl IPrinterPropertyBag { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetBytes<'a, P0>(&self, bstrname: P0, pcbvalue: &mut u32, ppvalue: &mut *mut u8) -> ::windows::core::Result<()> + pub unsafe fn GetBytes<'a, P0>(&self, bstrname: P0, pcbvalue: &mut u32, ppvalue: *mut *mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { @@ -15014,7 +15014,7 @@ impl IPrinterPropertyBag { where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { - (::windows::core::Interface::vtable(self).SetBytes)(::windows::core::Interface::as_raw(self), bstrname.into().abi(), pvalue.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue))).ok() + (::windows::core::Interface::vtable(self).SetBytes)(::windows::core::Interface::as_raw(self), bstrname.into().abi(), pvalue.len() as _, ::core::mem::transmute(pvalue.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] @@ -22711,7 +22711,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PlayGdiScriptOnPrinterIC<'a, P0>(hprinteric: P0, pin: &u8, cin: u32, pout: &mut u8, cout: u32, ul: u32) -> super::super::Foundation::BOOL +pub unsafe fn PlayGdiScriptOnPrinterIC<'a, P0>(hprinteric: P0, pin: &[u8], pout: &mut [u8], ul: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -22719,7 +22719,7 @@ where extern "system" { fn PlayGdiScriptOnPrinterIC(hprinteric: super::super::Foundation::HANDLE, pin: *const u8, cin: u32, pout: *mut u8, cout: u32, ul: u32) -> super::super::Foundation::BOOL; } - PlayGdiScriptOnPrinterIC(hprinteric.into(), ::core::mem::transmute(pin), cin, ::core::mem::transmute(pout), cout, ul) + PlayGdiScriptOnPrinterIC(hprinteric.into(), ::core::mem::transmute(pin.as_ptr()), pin.len() as _, ::core::mem::transmute(pout.as_ptr()), pout.len() as _, ul) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`*"] #[repr(transparent)] @@ -23232,7 +23232,7 @@ pub const ROUTER_UNKNOWN: u32 = 0u32; #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ReadPrinter<'a, P0>(hprinter: P0, pbuf: *mut ::core::ffi::c_void, cbbuf: u32, pnobytesread: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn ReadPrinter<'a, P0>(hprinter: P0, pbuf: &mut [u8], pnobytesread: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -23240,7 +23240,7 @@ where extern "system" { fn ReadPrinter(hprinter: super::super::Foundation::HANDLE, pbuf: *mut ::core::ffi::c_void, cbbuf: u32, pnobytesread: *mut u32) -> super::super::Foundation::BOOL; } - ReadPrinter(hprinter.into(), ::core::mem::transmute(pbuf), cbbuf, ::core::mem::transmute(pnobytesread)) + ReadPrinter(hprinter.into(), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pnobytesread)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -23989,7 +23989,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetPrinterDataA<'a, P0, P1>(hprinter: P0, pvaluename: P1, r#type: u32, pdata: &u8, cbdata: u32) -> u32 +pub unsafe fn SetPrinterDataA<'a, P0, P1>(hprinter: P0, pvaluename: P1, r#type: u32, pdata: &[u8]) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -23998,12 +23998,12 @@ where extern "system" { fn SetPrinterDataA(hprinter: super::super::Foundation::HANDLE, pvaluename: ::windows::core::PCSTR, r#type: u32, pdata: *const u8, cbdata: u32) -> u32; } - SetPrinterDataA(hprinter.into(), pvaluename.into(), r#type, ::core::mem::transmute(pdata), cbdata) + SetPrinterDataA(hprinter.into(), pvaluename.into(), r#type, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetPrinterDataExA<'a, P0, P1, P2>(hprinter: P0, pkeyname: P1, pvaluename: P2, r#type: u32, pdata: &u8, cbdata: u32) -> u32 +pub unsafe fn SetPrinterDataExA<'a, P0, P1, P2>(hprinter: P0, pkeyname: P1, pvaluename: P2, r#type: u32, pdata: &[u8]) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -24013,12 +24013,12 @@ where extern "system" { fn SetPrinterDataExA(hprinter: super::super::Foundation::HANDLE, pkeyname: ::windows::core::PCSTR, pvaluename: ::windows::core::PCSTR, r#type: u32, pdata: *const u8, cbdata: u32) -> u32; } - SetPrinterDataExA(hprinter.into(), pkeyname.into(), pvaluename.into(), r#type, ::core::mem::transmute(pdata), cbdata) + SetPrinterDataExA(hprinter.into(), pkeyname.into(), pvaluename.into(), r#type, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetPrinterDataExW<'a, P0, P1, P2>(hprinter: P0, pkeyname: P1, pvaluename: P2, r#type: u32, pdata: &u8, cbdata: u32) -> u32 +pub unsafe fn SetPrinterDataExW<'a, P0, P1, P2>(hprinter: P0, pkeyname: P1, pvaluename: P2, r#type: u32, pdata: &[u8]) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -24028,12 +24028,12 @@ where extern "system" { fn SetPrinterDataExW(hprinter: super::super::Foundation::HANDLE, pkeyname: ::windows::core::PCWSTR, pvaluename: ::windows::core::PCWSTR, r#type: u32, pdata: *const u8, cbdata: u32) -> u32; } - SetPrinterDataExW(hprinter.into(), pkeyname.into(), pvaluename.into(), r#type, ::core::mem::transmute(pdata), cbdata) + SetPrinterDataExW(hprinter.into(), pkeyname.into(), pvaluename.into(), r#type, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetPrinterDataW<'a, P0, P1>(hprinter: P0, pvaluename: P1, r#type: u32, pdata: &u8, cbdata: u32) -> u32 +pub unsafe fn SetPrinterDataW<'a, P0, P1>(hprinter: P0, pvaluename: P1, r#type: u32, pdata: &[u8]) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -24042,7 +24042,7 @@ where extern "system" { fn SetPrinterDataW(hprinter: super::super::Foundation::HANDLE, pvaluename: ::windows::core::PCWSTR, r#type: u32, pdata: *const u8, cbdata: u32) -> u32; } - SetPrinterDataW(hprinter.into(), pvaluename.into(), r#type, ::core::mem::transmute(pdata), cbdata) + SetPrinterDataW(hprinter.into(), pvaluename.into(), r#type, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -24816,7 +24816,7 @@ where #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WritePrinter<'a, P0>(hprinter: P0, pbuf: *const ::core::ffi::c_void, cbbuf: u32, pcwritten: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn WritePrinter<'a, P0>(hprinter: P0, pbuf: &[u8], pcwritten: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -24824,7 +24824,7 @@ where extern "system" { fn WritePrinter(hprinter: super::super::Foundation::HANDLE, pbuf: *const ::core::ffi::c_void, cbbuf: u32, pcwritten: *mut u32) -> super::super::Foundation::BOOL; } - WritePrinter(hprinter.into(), ::core::mem::transmute(pbuf), cbbuf, ::core::mem::transmute(pcwritten)) + WritePrinter(hprinter.into(), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcwritten)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`*"] #[repr(transparent)] @@ -24946,7 +24946,7 @@ pub const XPS_FP_USER_TOKEN: &str = "UserSecurityToken"; #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn XcvDataW<'a, P0, P1>(hxcv: P0, pszdataname: P1, pinputdata: ::core::option::Option<&u8>, cbinputdata: u32, poutputdata: ::core::option::Option<&mut u8>, cboutputdata: u32, pcboutputneeded: &mut u32, pdwstatus: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn XcvDataW<'a, P0, P1>(hxcv: P0, pszdataname: P1, pinputdata: ::core::option::Option<&[u8]>, poutputdata: ::core::option::Option<&mut [u8]>, pcboutputneeded: &mut u32, pdwstatus: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -24955,7 +24955,7 @@ where extern "system" { fn XcvDataW(hxcv: super::super::Foundation::HANDLE, pszdataname: ::windows::core::PCWSTR, pinputdata: *const u8, cbinputdata: u32, poutputdata: *mut u8, cboutputdata: u32, pcboutputneeded: *mut u32, pdwstatus: *mut u32) -> super::super::Foundation::BOOL; } - XcvDataW(hxcv.into(), pszdataname.into(), ::core::mem::transmute(pinputdata), cbinputdata, ::core::mem::transmute(poutputdata), cboutputdata, ::core::mem::transmute(pcboutputneeded), ::core::mem::transmute(pdwstatus)) + XcvDataW(hxcv.into(), pszdataname.into(), ::core::mem::transmute(pinputdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pinputdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(poutputdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), poutputdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcboutputneeded), ::core::mem::transmute(pdwstatus)) } #[doc = "*Required features: `\"Win32_Graphics_Printing\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] diff --git a/crates/libs/windows/src/Windows/Win32/Management/MobileDeviceManagementRegistration/mod.rs b/crates/libs/windows/src/Windows/Win32/Management/MobileDeviceManagementRegistration/mod.rs index 4b16a9c838..9e0ee47093 100644 --- a/crates/libs/windows/src/Windows/Win32/Management/MobileDeviceManagementRegistration/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Management/MobileDeviceManagementRegistration/mod.rs @@ -76,17 +76,17 @@ pub unsafe fn GetManagementAppHyperlink(pszhyperlink: &mut [u16]) -> ::windows:: extern "system" { fn GetManagementAppHyperlink(cchhyperlink: u32, pszhyperlink: ::windows::core::PWSTR) -> ::windows::core::HRESULT; } - GetManagementAppHyperlink(pszhyperlink.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszhyperlink))).ok() + GetManagementAppHyperlink(pszhyperlink.len() as _, ::core::mem::transmute(pszhyperlink.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Management_MobileDeviceManagementRegistration\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn IsDeviceRegisteredWithManagement(pfisdeviceregisteredwithmanagement: &mut super::super::Foundation::BOOL, pszupn: &mut [u16]) -> ::windows::core::Result<()> { +pub unsafe fn IsDeviceRegisteredWithManagement(pfisdeviceregisteredwithmanagement: &mut super::super::Foundation::BOOL, pszupn: ::core::option::Option<&mut [u16]>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn IsDeviceRegisteredWithManagement(pfisdeviceregisteredwithmanagement: *mut super::super::Foundation::BOOL, cchupn: u32, pszupn: ::windows::core::PWSTR) -> ::windows::core::HRESULT; } - IsDeviceRegisteredWithManagement(::core::mem::transmute(pfisdeviceregisteredwithmanagement), pszupn.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszupn))).ok() + IsDeviceRegisteredWithManagement(::core::mem::transmute(pfisdeviceregisteredwithmanagement), pszupn.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pszupn.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Management_MobileDeviceManagementRegistration\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Media/Audio/Apo/mod.rs b/crates/libs/windows/src/Windows/Win32/Media/Audio/Apo/mod.rs index 3818088aaf..70bad95884 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/Audio/Apo/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/Audio/Apo/mod.rs @@ -1095,7 +1095,7 @@ pub struct IApoAcousticEchoCancellation_Vtbl { pub struct IApoAuxiliaryInputConfiguration(::windows::core::IUnknown); impl IApoAuxiliaryInputConfiguration { pub unsafe fn AddAuxiliaryInput(&self, dwinputid: u32, pbydata: &[u8], pinputconnection: &APO_CONNECTION_DESCRIPTOR) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddAuxiliaryInput)(::windows::core::Interface::as_raw(self), dwinputid, pbydata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbydata)), ::core::mem::transmute(pinputconnection)).ok() + (::windows::core::Interface::vtable(self).AddAuxiliaryInput)(::windows::core::Interface::as_raw(self), dwinputid, pbydata.len() as _, ::core::mem::transmute(pbydata.as_ptr()), ::core::mem::transmute(pinputconnection)).ok() } pub unsafe fn RemoveAuxiliaryInput(&self, dwinputid: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).RemoveAuxiliaryInput)(::windows::core::Interface::as_raw(self), dwinputid).ok() @@ -1340,7 +1340,7 @@ impl IAudioProcessingObject { (::windows::core::Interface::vtable(self).GetRegistrationProperties)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut APO_REG_PROPERTIES>(result__) } pub unsafe fn Initialize(&self, pbydata: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Initialize)(::windows::core::Interface::as_raw(self), pbydata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbydata))).ok() + (::windows::core::Interface::vtable(self).Initialize)(::windows::core::Interface::as_raw(self), pbydata.len() as _, ::core::mem::transmute(pbydata.as_ptr())).ok() } pub unsafe fn IsInputFormatSupported<'a, P0, P1>(&self, poppositeformat: P0, prequestedinputformat: P1) -> ::windows::core::Result where @@ -1519,7 +1519,7 @@ pub struct IAudioProcessingObjectLoggingService_Vtbl { #[repr(transparent)] pub struct IAudioProcessingObjectNotifications(::windows::core::IUnknown); impl IAudioProcessingObjectNotifications { - pub unsafe fn GetApoNotificationRegistrationInfo(&self, aponotifications: &mut *mut APO_NOTIFICATION_DESCRIPTOR, count: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetApoNotificationRegistrationInfo(&self, aponotifications: *mut *mut APO_NOTIFICATION_DESCRIPTOR, count: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetApoNotificationRegistrationInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(aponotifications), ::core::mem::transmute(count)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_PropertiesSystem\"`*"] diff --git a/crates/libs/windows/src/Windows/Win32/Media/Audio/DirectSound/mod.rs b/crates/libs/windows/src/Windows/Win32/Media/Audio/DirectSound/mod.rs index d542907ad7..8d5a1ca9fe 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/Audio/DirectSound/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/Audio/DirectSound/mod.rs @@ -2140,8 +2140,8 @@ impl IDirectSoundBuffer { pub unsafe fn GetCurrentPosition(&self, pdwcurrentplaycursor: ::core::option::Option<&mut u32>, pdwcurrentwritecursor: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetCurrentPosition)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwcurrentplaycursor), ::core::mem::transmute(pdwcurrentwritecursor)).ok() } - pub unsafe fn GetFormat(&self, pwfxformat: ::core::option::Option<&mut super::WAVEFORMATEX>, dwsizeallocated: u32, pdwsizewritten: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwfxformat), dwsizeallocated, ::core::mem::transmute(pdwsizewritten)).ok() + pub unsafe fn GetFormat(&self, pwfxformat: ::core::option::Option<&mut [u8]>, pdwsizewritten: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwfxformat.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pwfxformat.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdwsizewritten)).ok() } pub unsafe fn GetVolume(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2189,8 +2189,8 @@ impl IDirectSoundBuffer { pub unsafe fn Stop(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Stop)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn Unlock(&self, pvaudioptr1: *const ::core::ffi::c_void, dwaudiobytes1: u32, pvaudioptr2: *const ::core::ffi::c_void, dwaudiobytes2: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Unlock)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvaudioptr1), dwaudiobytes1, ::core::mem::transmute(pvaudioptr2), dwaudiobytes2).ok() + pub unsafe fn Unlock(&self, pvaudioptr1: &[u8], pvaudioptr2: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Unlock)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvaudioptr1.as_ptr()), pvaudioptr1.len() as _, ::core::mem::transmute(pvaudioptr2.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvaudioptr2.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn Restore(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Restore)(::windows::core::Interface::as_raw(self)).ok() @@ -2265,8 +2265,8 @@ impl IDirectSoundBuffer8 { pub unsafe fn GetCurrentPosition(&self, pdwcurrentplaycursor: ::core::option::Option<&mut u32>, pdwcurrentwritecursor: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetCurrentPosition)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwcurrentplaycursor), ::core::mem::transmute(pdwcurrentwritecursor)).ok() } - pub unsafe fn GetFormat(&self, pwfxformat: ::core::option::Option<&mut super::WAVEFORMATEX>, dwsizeallocated: u32, pdwsizewritten: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwfxformat), dwsizeallocated, ::core::mem::transmute(pdwsizewritten)).ok() + pub unsafe fn GetFormat(&self, pwfxformat: ::core::option::Option<&mut [u8]>, pdwsizewritten: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwfxformat.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pwfxformat.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdwsizewritten)).ok() } pub unsafe fn GetVolume(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2314,17 +2314,17 @@ impl IDirectSoundBuffer8 { pub unsafe fn Stop(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.Stop)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn Unlock(&self, pvaudioptr1: *const ::core::ffi::c_void, dwaudiobytes1: u32, pvaudioptr2: *const ::core::ffi::c_void, dwaudiobytes2: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.Unlock)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvaudioptr1), dwaudiobytes1, ::core::mem::transmute(pvaudioptr2), dwaudiobytes2).ok() + pub unsafe fn Unlock(&self, pvaudioptr1: &[u8], pvaudioptr2: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.Unlock)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvaudioptr1.as_ptr()), pvaudioptr1.len() as _, ::core::mem::transmute(pvaudioptr2.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvaudioptr2.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn Restore(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.Restore)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn SetFX(&self, dweffectscount: u32, pdsfxdesc: ::core::option::Option<&DSEFFECTDESC>, pdwresultcodes: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn SetFX(&self, dweffectscount: u32, pdsfxdesc: *const DSEFFECTDESC, pdwresultcodes: *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetFX)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(dweffectscount), ::core::mem::transmute(pdsfxdesc), ::core::mem::transmute(pdwresultcodes)).ok() } pub unsafe fn AcquireResources(&self, dwflags: u32, pdwresultcodes: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AcquireResources)(::windows::core::Interface::as_raw(self), dwflags, pdwresultcodes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pdwresultcodes))).ok() + (::windows::core::Interface::vtable(self).AcquireResources)(::windows::core::Interface::as_raw(self), dwflags, pdwresultcodes.len() as _, ::core::mem::transmute(pdwresultcodes.as_ptr())).ok() } pub unsafe fn GetObjectInPath(&self, rguidobject: &::windows::core::GUID, dwindex: u32, rguidinterface: &::windows::core::GUID, ppobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetObjectInPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rguidobject), dwindex, ::core::mem::transmute(rguidinterface), ::core::mem::transmute(ppobject)).ok() @@ -2460,8 +2460,8 @@ impl IDirectSoundCaptureBuffer { pub unsafe fn GetCurrentPosition(&self, pdwcaptureposition: ::core::option::Option<&mut u32>, pdwreadposition: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetCurrentPosition)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwcaptureposition), ::core::mem::transmute(pdwreadposition)).ok() } - pub unsafe fn GetFormat(&self, pwfxformat: ::core::option::Option<&mut super::WAVEFORMATEX>, dwsizeallocated: u32, pdwsizewritten: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwfxformat), dwsizeallocated, ::core::mem::transmute(pdwsizewritten)).ok() + pub unsafe fn GetFormat(&self, pwfxformat: ::core::option::Option<&mut [u8]>, pdwsizewritten: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwfxformat.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pwfxformat.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdwsizewritten)).ok() } pub unsafe fn GetStatus(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2482,8 +2482,8 @@ impl IDirectSoundCaptureBuffer { pub unsafe fn Stop(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Stop)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn Unlock(&self, pvaudioptr1: *const ::core::ffi::c_void, dwaudiobytes1: u32, pvaudioptr2: *const ::core::ffi::c_void, dwaudiobytes2: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Unlock)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvaudioptr1), dwaudiobytes1, ::core::mem::transmute(pvaudioptr2), dwaudiobytes2).ok() + pub unsafe fn Unlock(&self, pvaudioptr1: &[u8], pvaudioptr2: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Unlock)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvaudioptr1.as_ptr()), pvaudioptr1.len() as _, ::core::mem::transmute(pvaudioptr2.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvaudioptr2.as_deref().map_or(0, |slice| slice.len() as _)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2546,8 +2546,8 @@ impl IDirectSoundCaptureBuffer8 { pub unsafe fn GetCurrentPosition(&self, pdwcaptureposition: ::core::option::Option<&mut u32>, pdwreadposition: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetCurrentPosition)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwcaptureposition), ::core::mem::transmute(pdwreadposition)).ok() } - pub unsafe fn GetFormat(&self, pwfxformat: ::core::option::Option<&mut super::WAVEFORMATEX>, dwsizeallocated: u32, pdwsizewritten: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwfxformat), dwsizeallocated, ::core::mem::transmute(pdwsizewritten)).ok() + pub unsafe fn GetFormat(&self, pwfxformat: ::core::option::Option<&mut [u8]>, pdwsizewritten: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetFormat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwfxformat.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pwfxformat.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdwsizewritten)).ok() } pub unsafe fn GetStatus(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2568,14 +2568,14 @@ impl IDirectSoundCaptureBuffer8 { pub unsafe fn Stop(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.Stop)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn Unlock(&self, pvaudioptr1: *const ::core::ffi::c_void, dwaudiobytes1: u32, pvaudioptr2: *const ::core::ffi::c_void, dwaudiobytes2: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.Unlock)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvaudioptr1), dwaudiobytes1, ::core::mem::transmute(pvaudioptr2), dwaudiobytes2).ok() + pub unsafe fn Unlock(&self, pvaudioptr1: &[u8], pvaudioptr2: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.Unlock)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvaudioptr1.as_ptr()), pvaudioptr1.len() as _, ::core::mem::transmute(pvaudioptr2.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvaudioptr2.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn GetObjectInPath(&self, rguidobject: &::windows::core::GUID, dwindex: u32, rguidinterface: &::windows::core::GUID, ppobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetObjectInPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rguidobject), dwindex, ::core::mem::transmute(rguidinterface), ::core::mem::transmute(ppobject)).ok() } pub unsafe fn GetFXStatus(&self, pdwfxstatus: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFXStatus)(::windows::core::Interface::as_raw(self), pdwfxstatus.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pdwfxstatus))).ok() + (::windows::core::Interface::vtable(self).GetFXStatus)(::windows::core::Interface::as_raw(self), pdwfxstatus.len() as _, ::core::mem::transmute(pdwfxstatus.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3344,7 +3344,7 @@ impl IDirectSoundNotify { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn SetNotificationPositions(&self, pcpositionnotifies: &[DSBPOSITIONNOTIFY]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetNotificationPositions)(::windows::core::Interface::as_raw(self), pcpositionnotifies.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pcpositionnotifies))).ok() + (::windows::core::Interface::vtable(self).SetNotificationPositions)(::windows::core::Interface::as_raw(self), pcpositionnotifies.len() as _, ::core::mem::transmute(pcpositionnotifies.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/Media/Audio/Endpoints/mod.rs b/crates/libs/windows/src/Windows/Win32/Media/Audio/Endpoints/mod.rs index c3b902a85b..4f8a09b9bc 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/Audio/Endpoints/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/Audio/Endpoints/mod.rs @@ -772,7 +772,7 @@ impl IAudioMeterInformation { (::windows::core::Interface::vtable(self).GetMeteringChannelCount)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetChannelsPeakValues(&self, afpeakvalues: &mut [f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetChannelsPeakValues)(::windows::core::Interface::as_raw(self), afpeakvalues.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(afpeakvalues))).ok() + (::windows::core::Interface::vtable(self).GetChannelsPeakValues)(::windows::core::Interface::as_raw(self), afpeakvalues.len() as _, ::core::mem::transmute(afpeakvalues.as_ptr())).ok() } pub unsafe fn QueryHardwareSupport(&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 a71b3ae6f6..12cf323e91 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 @@ -22,12 +22,12 @@ pub unsafe fn CreateAudioVolumeMeter() -> ::windows::core::Result<::windows::cor } #[doc = "*Required features: `\"Win32_Media_Audio_XAudio2\"`*"] #[inline] -pub unsafe fn CreateFX(clsid: &::windows::core::GUID, peffect: &mut ::core::option::Option<::windows::core::IUnknown>, pinitdat: *const ::core::ffi::c_void, initdatabytesize: u32) -> ::windows::core::Result<()> { +pub unsafe fn CreateFX(clsid: &::windows::core::GUID, peffect: &mut ::core::option::Option<::windows::core::IUnknown>, pinitdat: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CreateFX(clsid: *const ::windows::core::GUID, peffect: *mut *mut ::core::ffi::c_void, pinitdat: *const ::core::ffi::c_void, initdatabytesize: u32) -> ::windows::core::HRESULT; } - CreateFX(::core::mem::transmute(clsid), ::core::mem::transmute(peffect), ::core::mem::transmute(pinitdat), initdatabytesize).ok() + CreateFX(::core::mem::transmute(clsid), ::core::mem::transmute(peffect), ::core::mem::transmute(pinitdat.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pinitdat.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_Media_Audio_XAudio2\"`*"] #[inline] @@ -593,25 +593,25 @@ impl IXAPO { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).IsOutputFormatSupported)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinputformat), ::core::mem::transmute(prequestedoutputformat), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut super::WAVEFORMATEX>(result__) } - pub unsafe fn Initialize(&self, pdata: *const ::core::ffi::c_void, databytesize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Initialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), databytesize).ok() + pub unsafe fn Initialize(&self, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Initialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn Reset(&self) { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)) } - pub unsafe fn LockForProcess(&self, pinputlockedparameters: &[XAPO_LOCKFORPROCESS_PARAMETERS], poutputlockedparameters: &[XAPO_LOCKFORPROCESS_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).LockForProcess)(::windows::core::Interface::as_raw(self), pinputlockedparameters.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputlockedparameters)), poutputlockedparameters.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(poutputlockedparameters))).ok() + pub unsafe fn LockForProcess(&self, pinputlockedparameters: ::core::option::Option<&[XAPO_LOCKFORPROCESS_PARAMETERS]>, poutputlockedparameters: ::core::option::Option<&[XAPO_LOCKFORPROCESS_PARAMETERS]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).LockForProcess)(::windows::core::Interface::as_raw(self), pinputlockedparameters.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pinputlockedparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), poutputlockedparameters.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(poutputlockedparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn UnlockForProcess(&self) { (::windows::core::Interface::vtable(self).UnlockForProcess)(::windows::core::Interface::as_raw(self)) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn Process<'a, P0>(&self, pinputprocessparameters: &[XAPO_PROCESS_BUFFER_PARAMETERS], poutputprocessparameters: &mut [XAPO_PROCESS_BUFFER_PARAMETERS], isenabled: P0) + pub unsafe fn Process<'a, P0>(&self, pinputprocessparameters: ::core::option::Option<&[XAPO_PROCESS_BUFFER_PARAMETERS]>, poutputprocessparameters: ::core::option::Option<&mut [XAPO_PROCESS_BUFFER_PARAMETERS]>, isenabled: P0) where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).Process)(::windows::core::Interface::as_raw(self), pinputprocessparameters.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputprocessparameters)), poutputprocessparameters.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(poutputprocessparameters)), isenabled.into()) + (::windows::core::Interface::vtable(self).Process)(::windows::core::Interface::as_raw(self), pinputprocessparameters.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pinputprocessparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), poutputprocessparameters.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(poutputprocessparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), isenabled.into()) } pub unsafe fn CalcInputFrames(&self, outputframecount: u32) -> u32 { (::windows::core::Interface::vtable(self).CalcInputFrames)(::windows::core::Interface::as_raw(self), outputframecount) @@ -738,11 +738,11 @@ pub struct IXAPOHrtfParameters_Vtbl { #[repr(transparent)] pub struct IXAPOParameters(::windows::core::IUnknown); impl IXAPOParameters { - pub unsafe fn SetParameters(&self, pparameters: *const ::core::ffi::c_void, parameterbytesize: u32) { - (::windows::core::Interface::vtable(self).SetParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pparameters), parameterbytesize) + pub unsafe fn SetParameters(&self, pparameters: &[u8]) { + (::windows::core::Interface::vtable(self).SetParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pparameters.as_ptr()), pparameters.len() as _) } - pub unsafe fn GetParameters(&self, pparameters: *mut ::core::ffi::c_void, parameterbytesize: u32) { - (::windows::core::Interface::vtable(self).GetParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pparameters), parameterbytesize) + pub unsafe fn GetParameters(&self, pparameters: &mut [u8]) { + (::windows::core::Interface::vtable(self).GetParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pparameters.as_ptr()), pparameters.len() as _) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1024,11 +1024,11 @@ impl IXAudio2MasteringVoice { pub unsafe fn GetEffectState(&self, effectindex: u32, penabled: &mut super::super::super::Foundation::BOOL) { (::windows::core::Interface::vtable(self).base__.GetEffectState)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(penabled)) } - pub unsafe fn SetEffectParameters(&self, effectindex: u32, pparameters: *const ::core::ffi::c_void, parametersbytesize: u32, operationset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetEffectParameters)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(pparameters), parametersbytesize, operationset).ok() + pub unsafe fn SetEffectParameters(&self, effectindex: u32, pparameters: &[u8], operationset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetEffectParameters)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(pparameters.as_ptr()), pparameters.len() as _, operationset).ok() } - pub unsafe fn GetEffectParameters(&self, effectindex: u32, pparameters: *mut ::core::ffi::c_void, parametersbytesize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetEffectParameters)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(pparameters), parametersbytesize).ok() + pub unsafe fn GetEffectParameters(&self, effectindex: u32, pparameters: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetEffectParameters)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(pparameters.as_ptr()), pparameters.len() as _).ok() } pub unsafe fn SetFilterParameters(&self, pparameters: &XAUDIO2_FILTER_PARAMETERS, operationset: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SetFilterParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pparameters), operationset).ok() @@ -1055,10 +1055,10 @@ impl IXAudio2MasteringVoice { (::windows::core::Interface::vtable(self).base__.GetVolume)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvolume)) } pub unsafe fn SetChannelVolumes(&self, pvolumes: &[f32], operationset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetChannelVolumes)(::windows::core::Interface::as_raw(self), pvolumes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvolumes)), operationset).ok() + (::windows::core::Interface::vtable(self).base__.SetChannelVolumes)(::windows::core::Interface::as_raw(self), pvolumes.len() as _, ::core::mem::transmute(pvolumes.as_ptr()), operationset).ok() } pub unsafe fn GetChannelVolumes(&self, pvolumes: &mut [f32]) { - (::windows::core::Interface::vtable(self).base__.GetChannelVolumes)(::windows::core::Interface::as_raw(self), pvolumes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pvolumes))) + (::windows::core::Interface::vtable(self).base__.GetChannelVolumes)(::windows::core::Interface::as_raw(self), pvolumes.len() as _, ::core::mem::transmute(pvolumes.as_ptr())) } pub unsafe fn SetOutputMatrix<'a, P0>(&self, pdestinationvoice: P0, sourcechannels: u32, destinationchannels: u32, plevelmatrix: &f32, operationset: u32) -> ::windows::core::Result<()> where @@ -1147,11 +1147,11 @@ impl IXAudio2SourceVoice { pub unsafe fn GetEffectState(&self, effectindex: u32, penabled: &mut super::super::super::Foundation::BOOL) { (::windows::core::Interface::vtable(self).base__.GetEffectState)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(penabled)) } - pub unsafe fn SetEffectParameters(&self, effectindex: u32, pparameters: *const ::core::ffi::c_void, parametersbytesize: u32, operationset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetEffectParameters)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(pparameters), parametersbytesize, operationset).ok() + pub unsafe fn SetEffectParameters(&self, effectindex: u32, pparameters: &[u8], operationset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetEffectParameters)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(pparameters.as_ptr()), pparameters.len() as _, operationset).ok() } - pub unsafe fn GetEffectParameters(&self, effectindex: u32, pparameters: *mut ::core::ffi::c_void, parametersbytesize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetEffectParameters)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(pparameters), parametersbytesize).ok() + pub unsafe fn GetEffectParameters(&self, effectindex: u32, pparameters: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetEffectParameters)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(pparameters.as_ptr()), pparameters.len() as _).ok() } pub unsafe fn SetFilterParameters(&self, pparameters: &XAUDIO2_FILTER_PARAMETERS, operationset: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SetFilterParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pparameters), operationset).ok() @@ -1178,10 +1178,10 @@ impl IXAudio2SourceVoice { (::windows::core::Interface::vtable(self).base__.GetVolume)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvolume)) } pub unsafe fn SetChannelVolumes(&self, pvolumes: &[f32], operationset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetChannelVolumes)(::windows::core::Interface::as_raw(self), pvolumes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvolumes)), operationset).ok() + (::windows::core::Interface::vtable(self).base__.SetChannelVolumes)(::windows::core::Interface::as_raw(self), pvolumes.len() as _, ::core::mem::transmute(pvolumes.as_ptr()), operationset).ok() } pub unsafe fn GetChannelVolumes(&self, pvolumes: &mut [f32]) { - (::windows::core::Interface::vtable(self).base__.GetChannelVolumes)(::windows::core::Interface::as_raw(self), pvolumes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pvolumes))) + (::windows::core::Interface::vtable(self).base__.GetChannelVolumes)(::windows::core::Interface::as_raw(self), pvolumes.len() as _, ::core::mem::transmute(pvolumes.as_ptr())) } pub unsafe fn SetOutputMatrix<'a, P0>(&self, pdestinationvoice: P0, sourcechannels: u32, destinationchannels: u32, plevelmatrix: &f32, operationset: u32) -> ::windows::core::Result<()> where @@ -1305,11 +1305,11 @@ impl IXAudio2SubmixVoice { pub unsafe fn GetEffectState(&self, effectindex: u32, penabled: &mut super::super::super::Foundation::BOOL) { (::windows::core::Interface::vtable(self).base__.GetEffectState)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(penabled)) } - pub unsafe fn SetEffectParameters(&self, effectindex: u32, pparameters: *const ::core::ffi::c_void, parametersbytesize: u32, operationset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetEffectParameters)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(pparameters), parametersbytesize, operationset).ok() + pub unsafe fn SetEffectParameters(&self, effectindex: u32, pparameters: &[u8], operationset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetEffectParameters)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(pparameters.as_ptr()), pparameters.len() as _, operationset).ok() } - pub unsafe fn GetEffectParameters(&self, effectindex: u32, pparameters: *mut ::core::ffi::c_void, parametersbytesize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetEffectParameters)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(pparameters), parametersbytesize).ok() + pub unsafe fn GetEffectParameters(&self, effectindex: u32, pparameters: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetEffectParameters)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(pparameters.as_ptr()), pparameters.len() as _).ok() } pub unsafe fn SetFilterParameters(&self, pparameters: &XAUDIO2_FILTER_PARAMETERS, operationset: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SetFilterParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pparameters), operationset).ok() @@ -1336,10 +1336,10 @@ impl IXAudio2SubmixVoice { (::windows::core::Interface::vtable(self).base__.GetVolume)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvolume)) } pub unsafe fn SetChannelVolumes(&self, pvolumes: &[f32], operationset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetChannelVolumes)(::windows::core::Interface::as_raw(self), pvolumes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvolumes)), operationset).ok() + (::windows::core::Interface::vtable(self).base__.SetChannelVolumes)(::windows::core::Interface::as_raw(self), pvolumes.len() as _, ::core::mem::transmute(pvolumes.as_ptr()), operationset).ok() } pub unsafe fn GetChannelVolumes(&self, pvolumes: &mut [f32]) { - (::windows::core::Interface::vtable(self).base__.GetChannelVolumes)(::windows::core::Interface::as_raw(self), pvolumes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pvolumes))) + (::windows::core::Interface::vtable(self).base__.GetChannelVolumes)(::windows::core::Interface::as_raw(self), pvolumes.len() as _, ::core::mem::transmute(pvolumes.as_ptr())) } pub unsafe fn SetOutputMatrix<'a, P0>(&self, pdestinationvoice: P0, sourcechannels: u32, destinationchannels: u32, plevelmatrix: &f32, operationset: u32) -> ::windows::core::Result<()> where @@ -1423,11 +1423,11 @@ impl IXAudio2Voice { pub unsafe fn GetEffectState(&self, effectindex: u32, penabled: &mut super::super::super::Foundation::BOOL) { (::windows::core::Interface::vtable(self).GetEffectState)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(penabled)) } - pub unsafe fn SetEffectParameters(&self, effectindex: u32, pparameters: *const ::core::ffi::c_void, parametersbytesize: u32, operationset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetEffectParameters)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(pparameters), parametersbytesize, operationset).ok() + pub unsafe fn SetEffectParameters(&self, effectindex: u32, pparameters: &[u8], operationset: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetEffectParameters)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(pparameters.as_ptr()), pparameters.len() as _, operationset).ok() } - pub unsafe fn GetEffectParameters(&self, effectindex: u32, pparameters: *mut ::core::ffi::c_void, parametersbytesize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEffectParameters)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(pparameters), parametersbytesize).ok() + pub unsafe fn GetEffectParameters(&self, effectindex: u32, pparameters: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEffectParameters)(::windows::core::Interface::as_raw(self), effectindex, ::core::mem::transmute(pparameters.as_ptr()), pparameters.len() as _).ok() } pub unsafe fn SetFilterParameters(&self, pparameters: &XAUDIO2_FILTER_PARAMETERS, operationset: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetFilterParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pparameters), operationset).ok() @@ -1454,10 +1454,10 @@ impl IXAudio2Voice { (::windows::core::Interface::vtable(self).GetVolume)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvolume)) } pub unsafe fn SetChannelVolumes(&self, pvolumes: &[f32], operationset: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetChannelVolumes)(::windows::core::Interface::as_raw(self), pvolumes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvolumes)), operationset).ok() + (::windows::core::Interface::vtable(self).SetChannelVolumes)(::windows::core::Interface::as_raw(self), pvolumes.len() as _, ::core::mem::transmute(pvolumes.as_ptr()), operationset).ok() } pub unsafe fn GetChannelVolumes(&self, pvolumes: &mut [f32]) { - (::windows::core::Interface::vtable(self).GetChannelVolumes)(::windows::core::Interface::as_raw(self), pvolumes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pvolumes))) + (::windows::core::Interface::vtable(self).GetChannelVolumes)(::windows::core::Interface::as_raw(self), pvolumes.len() as _, ::core::mem::transmute(pvolumes.as_ptr())) } pub unsafe fn SetOutputMatrix<'a, P0>(&self, pdestinationvoice: P0, sourcechannels: u32, destinationchannels: u32, plevelmatrix: &f32, operationset: u32) -> ::windows::core::Result<()> where diff --git a/crates/libs/windows/src/Windows/Win32/Media/Audio/mod.rs b/crates/libs/windows/src/Windows/Win32/Media/Audio/mod.rs index 911dfd971e..7b9a67d392 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/Audio/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/Audio/mod.rs @@ -3091,7 +3091,7 @@ pub struct IActivateAudioInterfaceCompletionHandler_Vtbl { pub struct IAudioAmbisonicsControl(::windows::core::IUnknown); impl IAudioAmbisonicsControl { pub unsafe fn SetData(&self, pambisonicsparams: &[AMBISONICS_PARAMS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pambisonicsparams)), pambisonicsparams.len() as _).ok() + (::windows::core::Interface::vtable(self).SetData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pambisonicsparams.as_ptr()), pambisonicsparams.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3250,7 +3250,7 @@ impl IAudioBass { (::windows::core::Interface::vtable(self).base__.SetLevelUniform)(::windows::core::Interface::as_raw(self), fleveldb, ::core::mem::transmute(pguideventcontext)).ok() } pub unsafe fn SetLevelAllChannels(&self, alevelsdb: &[f32], pguideventcontext: ::core::option::Option<&::windows::core::GUID>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetLevelAllChannels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(alevelsdb)), alevelsdb.len() as _, ::core::mem::transmute(pguideventcontext)).ok() + (::windows::core::Interface::vtable(self).base__.SetLevelAllChannels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(alevelsdb.as_ptr()), alevelsdb.len() as _, ::core::mem::transmute(pguideventcontext)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -4349,7 +4349,7 @@ impl IAudioMidrange { (::windows::core::Interface::vtable(self).base__.SetLevelUniform)(::windows::core::Interface::as_raw(self), fleveldb, ::core::mem::transmute(pguideventcontext)).ok() } pub unsafe fn SetLevelAllChannels(&self, alevelsdb: &[f32], pguideventcontext: ::core::option::Option<&::windows::core::GUID>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetLevelAllChannels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(alevelsdb)), alevelsdb.len() as _, ::core::mem::transmute(pguideventcontext)).ok() + (::windows::core::Interface::vtable(self).base__.SetLevelAllChannels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(alevelsdb.as_ptr()), alevelsdb.len() as _, ::core::mem::transmute(pguideventcontext)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -4948,7 +4948,7 @@ impl IAudioSessionEvents { (::windows::core::Interface::vtable(self).OnSimpleVolumeChanged)(::windows::core::Interface::as_raw(self), newvolume, newmute.into(), ::core::mem::transmute(eventcontext)).ok() } pub unsafe fn OnChannelVolumeChanged(&self, newchannelvolumearray: &[f32], changedchannel: u32, eventcontext: &::windows::core::GUID) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OnChannelVolumeChanged)(::windows::core::Interface::as_raw(self), newchannelvolumearray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(newchannelvolumearray)), changedchannel, ::core::mem::transmute(eventcontext)).ok() + (::windows::core::Interface::vtable(self).OnChannelVolumeChanged)(::windows::core::Interface::as_raw(self), newchannelvolumearray.len() as _, ::core::mem::transmute(newchannelvolumearray.as_ptr()), changedchannel, ::core::mem::transmute(eventcontext)).ok() } pub unsafe fn OnGroupingParamChanged(&self, newgroupingparam: &::windows::core::GUID, eventcontext: &::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OnGroupingParamChanged)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(newgroupingparam), ::core::mem::transmute(eventcontext)).ok() @@ -5293,10 +5293,10 @@ impl IAudioStreamVolume { (::windows::core::Interface::vtable(self).GetChannelVolume)(::windows::core::Interface::as_raw(self), dwindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetAllVolumes(&self, pfvolumes: &[f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetAllVolumes)(::windows::core::Interface::as_raw(self), pfvolumes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfvolumes))).ok() + (::windows::core::Interface::vtable(self).SetAllVolumes)(::windows::core::Interface::as_raw(self), pfvolumes.len() as _, ::core::mem::transmute(pfvolumes.as_ptr())).ok() } pub unsafe fn GetAllVolumes(&self, pfvolumes: &mut [f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetAllVolumes)(::windows::core::Interface::as_raw(self), pfvolumes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pfvolumes))).ok() + (::windows::core::Interface::vtable(self).GetAllVolumes)(::windows::core::Interface::as_raw(self), pfvolumes.len() as _, ::core::mem::transmute(pfvolumes.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -5517,7 +5517,7 @@ impl IAudioTreble { (::windows::core::Interface::vtable(self).base__.SetLevelUniform)(::windows::core::Interface::as_raw(self), fleveldb, ::core::mem::transmute(pguideventcontext)).ok() } pub unsafe fn SetLevelAllChannels(&self, alevelsdb: &[f32], pguideventcontext: ::core::option::Option<&::windows::core::GUID>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetLevelAllChannels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(alevelsdb)), alevelsdb.len() as _, ::core::mem::transmute(pguideventcontext)).ok() + (::windows::core::Interface::vtable(self).base__.SetLevelAllChannels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(alevelsdb.as_ptr()), alevelsdb.len() as _, ::core::mem::transmute(pguideventcontext)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -5656,7 +5656,7 @@ impl IAudioVolumeLevel { (::windows::core::Interface::vtable(self).base__.SetLevelUniform)(::windows::core::Interface::as_raw(self), fleveldb, ::core::mem::transmute(pguideventcontext)).ok() } pub unsafe fn SetLevelAllChannels(&self, alevelsdb: &[f32], pguideventcontext: ::core::option::Option<&::windows::core::GUID>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetLevelAllChannels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(alevelsdb)), alevelsdb.len() as _, ::core::mem::transmute(pguideventcontext)).ok() + (::windows::core::Interface::vtable(self).base__.SetLevelAllChannels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(alevelsdb.as_ptr()), alevelsdb.len() as _, ::core::mem::transmute(pguideventcontext)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -5730,10 +5730,10 @@ impl IChannelAudioVolume { (::windows::core::Interface::vtable(self).GetChannelVolume)(::windows::core::Interface::as_raw(self), dwindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetAllVolumes(&self, pfvolumes: &[f32], eventcontext: &::windows::core::GUID) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetAllVolumes)(::windows::core::Interface::as_raw(self), pfvolumes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfvolumes)), ::core::mem::transmute(eventcontext)).ok() + (::windows::core::Interface::vtable(self).SetAllVolumes)(::windows::core::Interface::as_raw(self), pfvolumes.len() as _, ::core::mem::transmute(pfvolumes.as_ptr()), ::core::mem::transmute(eventcontext)).ok() } pub unsafe fn GetAllVolumes(&self, pfvolumes: &mut [f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetAllVolumes)(::windows::core::Interface::as_raw(self), pfvolumes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pfvolumes))).ok() + (::windows::core::Interface::vtable(self).GetAllVolumes)(::windows::core::Interface::as_raw(self), pfvolumes.len() as _, ::core::mem::transmute(pfvolumes.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -6791,7 +6791,7 @@ impl IPerChannelDbLevel { (::windows::core::Interface::vtable(self).SetLevelUniform)(::windows::core::Interface::as_raw(self), fleveldb, ::core::mem::transmute(pguideventcontext)).ok() } pub unsafe fn SetLevelAllChannels(&self, alevelsdb: &[f32], pguideventcontext: ::core::option::Option<&::windows::core::GUID>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetLevelAllChannels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(alevelsdb)), alevelsdb.len() as _, ::core::mem::transmute(pguideventcontext)).ok() + (::windows::core::Interface::vtable(self).SetLevelAllChannels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(alevelsdb.as_ptr()), alevelsdb.len() as _, ::core::mem::transmute(pguideventcontext)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -7337,11 +7337,11 @@ pub struct ISpatialAudioMetadataItems_Vtbl { #[repr(transparent)] pub struct ISpatialAudioMetadataItemsBuffer(::windows::core::IUnknown); impl ISpatialAudioMetadataItemsBuffer { - pub unsafe fn AttachToBuffer(&self, buffer: &mut u8, bufferlength: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AttachToBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer), bufferlength).ok() + pub unsafe fn AttachToBuffer(&self, buffer: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).AttachToBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _).ok() } - pub unsafe fn AttachToPopulatedBuffer(&self, buffer: &mut u8, bufferlength: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AttachToPopulatedBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer), bufferlength).ok() + pub unsafe fn AttachToPopulatedBuffer(&self, buffer: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).AttachToPopulatedBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _).ok() } pub unsafe fn DetachBuffer(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DetachBuffer)(::windows::core::Interface::as_raw(self)).ok() @@ -7403,8 +7403,8 @@ impl ISpatialAudioMetadataReader { pub unsafe fn ReadNextItem(&self, commandcount: &mut u8, frameoffset: &mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReadNextItem)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandcount), ::core::mem::transmute(frameoffset)).ok() } - pub unsafe fn ReadNextItemCommand(&self, commandid: &mut u8, valuebuffer: *mut ::core::ffi::c_void, maxvaluebufferlength: u32, valuebufferlength: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadNextItemCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), ::core::mem::transmute(valuebuffer), maxvaluebufferlength, ::core::mem::transmute(valuebufferlength)).ok() + pub unsafe fn ReadNextItemCommand(&self, commandid: &mut u8, valuebuffer: &mut [u8], valuebufferlength: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadNextItemCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(commandid), ::core::mem::transmute(valuebuffer.as_ptr()), valuebuffer.len() as _, ::core::mem::transmute(valuebufferlength)).ok() } pub unsafe fn Close(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Close)(::windows::core::Interface::as_raw(self)).ok() @@ -7467,8 +7467,8 @@ impl ISpatialAudioMetadataWriter { pub unsafe fn WriteNextItem(&self, frameoffset: u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WriteNextItem)(::windows::core::Interface::as_raw(self), frameoffset).ok() } - pub unsafe fn WriteNextItemCommand(&self, commandid: u8, valuebuffer: *const ::core::ffi::c_void, valuebufferlength: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteNextItemCommand)(::windows::core::Interface::as_raw(self), commandid, ::core::mem::transmute(valuebuffer), valuebufferlength).ok() + pub unsafe fn WriteNextItemCommand(&self, commandid: u8, valuebuffer: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).WriteNextItemCommand)(::windows::core::Interface::as_raw(self), commandid, ::core::mem::transmute(valuebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), valuebuffer.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn Close(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Close)(::windows::core::Interface::as_raw(self)).ok() @@ -7790,8 +7790,8 @@ impl ISpatialAudioObjectForMetadataCommands { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetAudioObjectType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn WriteNextMetadataCommand(&self, commandid: u8, valuebuffer: *const ::core::ffi::c_void, valuebufferlength: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteNextMetadataCommand)(::windows::core::Interface::as_raw(self), commandid, ::core::mem::transmute(valuebuffer), valuebufferlength).ok() + pub unsafe fn WriteNextMetadataCommand(&self, commandid: u8, valuebuffer: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).WriteNextMetadataCommand)(::windows::core::Interface::as_raw(self), commandid, ::core::mem::transmute(valuebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), valuebuffer.as_deref().map_or(0, |slice| slice.len() as _)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -12161,21 +12161,21 @@ where #[doc = "*Required features: `\"Win32_Media_Audio\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn auxGetDevCapsA(udeviceid: usize, pac: &mut AUXCAPSA, cbac: u32) -> u32 { +pub unsafe fn auxGetDevCapsA(udeviceid: usize, pac: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn auxGetDevCapsA(udeviceid: usize, pac: *mut AUXCAPSA, cbac: u32) -> u32; } - auxGetDevCapsA(udeviceid, ::core::mem::transmute(pac), cbac) + auxGetDevCapsA(udeviceid, ::core::mem::transmute(pac.as_ptr()), pac.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn auxGetDevCapsW(udeviceid: usize, pac: &mut AUXCAPSW, cbac: u32) -> u32 { +pub unsafe fn auxGetDevCapsW(udeviceid: usize, pac: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn auxGetDevCapsW(udeviceid: usize, pac: *mut AUXCAPSW, cbac: u32) -> u32; } - auxGetDevCapsW(udeviceid, ::core::mem::transmute(pac), cbac) + auxGetDevCapsW(udeviceid, ::core::mem::transmute(pac.as_ptr()), pac.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12241,7 +12241,7 @@ where } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn midiInAddBuffer<'a, P0>(hmi: P0, pmh: &mut MIDIHDR, cbmh: u32) -> u32 +pub unsafe fn midiInAddBuffer<'a, P0>(hmi: P0, pmh: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -12249,7 +12249,7 @@ where extern "system" { fn midiInAddBuffer(hmi: HMIDIIN, pmh: *mut MIDIHDR, cbmh: u32) -> u32; } - midiInAddBuffer(hmi.into(), ::core::mem::transmute(pmh), cbmh) + midiInAddBuffer(hmi.into(), ::core::mem::transmute(pmh.as_ptr()), pmh.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12266,21 +12266,21 @@ where #[doc = "*Required features: `\"Win32_Media_Audio\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn midiInGetDevCapsA(udeviceid: usize, pmic: &mut MIDIINCAPSA, cbmic: u32) -> u32 { +pub unsafe fn midiInGetDevCapsA(udeviceid: usize, pmic: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn midiInGetDevCapsA(udeviceid: usize, pmic: *mut MIDIINCAPSA, cbmic: u32) -> u32; } - midiInGetDevCapsA(udeviceid, ::core::mem::transmute(pmic), cbmic) + midiInGetDevCapsA(udeviceid, ::core::mem::transmute(pmic.as_ptr()), pmic.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn midiInGetDevCapsW(udeviceid: usize, pmic: &mut MIDIINCAPSW, cbmic: u32) -> u32 { +pub unsafe fn midiInGetDevCapsW(udeviceid: usize, pmic: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn midiInGetDevCapsW(udeviceid: usize, pmic: *mut MIDIINCAPSW, cbmic: u32) -> u32; } - midiInGetDevCapsW(udeviceid, ::core::mem::transmute(pmic), cbmic) + midiInGetDevCapsW(udeviceid, ::core::mem::transmute(pmic.as_ptr()), pmic.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12289,7 +12289,7 @@ pub unsafe fn midiInGetErrorTextA(mmrerror: u32, psztext: &mut [u8]) -> u32 { extern "system" { fn midiInGetErrorTextA(mmrerror: u32, psztext: ::windows::core::PSTR, cchtext: u32) -> u32; } - midiInGetErrorTextA(mmrerror, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psztext)), psztext.len() as _) + midiInGetErrorTextA(mmrerror, ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12298,7 +12298,7 @@ pub unsafe fn midiInGetErrorTextW(mmrerror: u32, psztext: &mut [u16]) -> u32 { extern "system" { fn midiInGetErrorTextW(mmrerror: u32, psztext: ::windows::core::PWSTR, cchtext: u32) -> u32; } - midiInGetErrorTextW(mmrerror, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psztext)), psztext.len() as _) + midiInGetErrorTextW(mmrerror, ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12344,7 +12344,7 @@ pub unsafe fn midiInOpen(phmi: &mut HMIDIIN, udeviceid: u32, dwcallback: usize, } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn midiInPrepareHeader<'a, P0>(hmi: P0, pmh: &mut MIDIHDR, cbmh: u32) -> u32 +pub unsafe fn midiInPrepareHeader<'a, P0>(hmi: P0, pmh: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -12352,7 +12352,7 @@ where extern "system" { fn midiInPrepareHeader(hmi: HMIDIIN, pmh: *mut MIDIHDR, cbmh: u32) -> u32; } - midiInPrepareHeader(hmi.into(), ::core::mem::transmute(pmh), cbmh) + midiInPrepareHeader(hmi.into(), ::core::mem::transmute(pmh.as_ptr()), pmh.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12392,7 +12392,7 @@ where } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn midiInUnprepareHeader<'a, P0>(hmi: P0, pmh: &mut MIDIHDR, cbmh: u32) -> u32 +pub unsafe fn midiInUnprepareHeader<'a, P0>(hmi: P0, pmh: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -12400,7 +12400,7 @@ where extern "system" { fn midiInUnprepareHeader(hmi: HMIDIIN, pmh: *mut MIDIHDR, cbmh: u32) -> u32; } - midiInUnprepareHeader(hmi.into(), ::core::mem::transmute(pmh), cbmh) + midiInUnprepareHeader(hmi.into(), ::core::mem::transmute(pmh.as_ptr()), pmh.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12412,7 +12412,7 @@ where extern "system" { fn midiOutCacheDrumPatches(hmo: HMIDIOUT, upatch: u32, pwkya: *const u16, fucache: u32) -> u32; } - midiOutCacheDrumPatches(hmo.into(), upatch, ::core::mem::transmute(::windows::core::as_ptr_or_null(pwkya)), fucache) + midiOutCacheDrumPatches(hmo.into(), upatch, ::core::mem::transmute(pwkya.as_ptr()), fucache) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12424,7 +12424,7 @@ where extern "system" { fn midiOutCachePatches(hmo: HMIDIOUT, ubank: u32, pwpa: *const u16, fucache: u32) -> u32; } - midiOutCachePatches(hmo.into(), ubank, ::core::mem::transmute(::windows::core::as_ptr_or_null(pwpa)), fucache) + midiOutCachePatches(hmo.into(), ubank, ::core::mem::transmute(pwpa.as_ptr()), fucache) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12441,21 +12441,21 @@ where #[doc = "*Required features: `\"Win32_Media_Audio\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn midiOutGetDevCapsA(udeviceid: usize, pmoc: &mut MIDIOUTCAPSA, cbmoc: u32) -> u32 { +pub unsafe fn midiOutGetDevCapsA(udeviceid: usize, pmoc: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn midiOutGetDevCapsA(udeviceid: usize, pmoc: *mut MIDIOUTCAPSA, cbmoc: u32) -> u32; } - midiOutGetDevCapsA(udeviceid, ::core::mem::transmute(pmoc), cbmoc) + midiOutGetDevCapsA(udeviceid, ::core::mem::transmute(pmoc.as_ptr()), pmoc.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn midiOutGetDevCapsW(udeviceid: usize, pmoc: &mut MIDIOUTCAPSW, cbmoc: u32) -> u32 { +pub unsafe fn midiOutGetDevCapsW(udeviceid: usize, pmoc: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn midiOutGetDevCapsW(udeviceid: usize, pmoc: *mut MIDIOUTCAPSW, cbmoc: u32) -> u32; } - midiOutGetDevCapsW(udeviceid, ::core::mem::transmute(pmoc), cbmoc) + midiOutGetDevCapsW(udeviceid, ::core::mem::transmute(pmoc.as_ptr()), pmoc.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12464,7 +12464,7 @@ pub unsafe fn midiOutGetErrorTextA(mmrerror: u32, psztext: &mut [u8]) -> u32 { extern "system" { fn midiOutGetErrorTextA(mmrerror: u32, psztext: ::windows::core::PSTR, cchtext: u32) -> u32; } - midiOutGetErrorTextA(mmrerror, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psztext)), psztext.len() as _) + midiOutGetErrorTextA(mmrerror, ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12473,7 +12473,7 @@ pub unsafe fn midiOutGetErrorTextW(mmrerror: u32, psztext: &mut [u16]) -> u32 { extern "system" { fn midiOutGetErrorTextW(mmrerror: u32, psztext: ::windows::core::PWSTR, cchtext: u32) -> u32; } - midiOutGetErrorTextW(mmrerror, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psztext)), psztext.len() as _) + midiOutGetErrorTextW(mmrerror, ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12510,7 +12510,7 @@ where } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn midiOutLongMsg<'a, P0>(hmo: P0, pmh: &MIDIHDR, cbmh: u32) -> u32 +pub unsafe fn midiOutLongMsg<'a, P0>(hmo: P0, pmh: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -12518,7 +12518,7 @@ where extern "system" { fn midiOutLongMsg(hmo: HMIDIOUT, pmh: *const MIDIHDR, cbmh: u32) -> u32; } - midiOutLongMsg(hmo.into(), ::core::mem::transmute(pmh), cbmh) + midiOutLongMsg(hmo.into(), ::core::mem::transmute(pmh.as_ptr()), pmh.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12543,7 +12543,7 @@ pub unsafe fn midiOutOpen(phmo: &mut HMIDIOUT, udeviceid: u32, dwcallback: usize } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn midiOutPrepareHeader<'a, P0>(hmo: P0, pmh: &mut MIDIHDR, cbmh: u32) -> u32 +pub unsafe fn midiOutPrepareHeader<'a, P0>(hmo: P0, pmh: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -12551,7 +12551,7 @@ where extern "system" { fn midiOutPrepareHeader(hmo: HMIDIOUT, pmh: *mut MIDIHDR, cbmh: u32) -> u32; } - midiOutPrepareHeader(hmo.into(), ::core::mem::transmute(pmh), cbmh) + midiOutPrepareHeader(hmo.into(), ::core::mem::transmute(pmh.as_ptr()), pmh.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12591,7 +12591,7 @@ where } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn midiOutUnprepareHeader<'a, P0>(hmo: P0, pmh: &mut MIDIHDR, cbmh: u32) -> u32 +pub unsafe fn midiOutUnprepareHeader<'a, P0>(hmo: P0, pmh: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -12599,7 +12599,7 @@ where extern "system" { fn midiOutUnprepareHeader(hmo: HMIDIOUT, pmh: *mut MIDIHDR, cbmh: u32) -> u32; } - midiOutUnprepareHeader(hmo.into(), ::core::mem::transmute(pmh), cbmh) + midiOutUnprepareHeader(hmo.into(), ::core::mem::transmute(pmh.as_ptr()), pmh.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12620,11 +12620,11 @@ pub unsafe fn midiStreamOpen(phms: &mut HMIDISTRM, pudeviceid: &mut [u32], dwcal extern "system" { fn midiStreamOpen(phms: *mut HMIDISTRM, pudeviceid: *mut u32, cmidi: u32, dwcallback: usize, dwinstance: usize, fdwopen: u32) -> u32; } - midiStreamOpen(::core::mem::transmute(phms), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pudeviceid)), pudeviceid.len() as _, dwcallback, dwinstance, fdwopen) + midiStreamOpen(::core::mem::transmute(phms), ::core::mem::transmute(pudeviceid.as_ptr()), pudeviceid.len() as _, dwcallback, dwinstance, fdwopen) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn midiStreamOut<'a, P0>(hms: P0, pmh: &mut MIDIHDR, cbmh: u32) -> u32 +pub unsafe fn midiStreamOut<'a, P0>(hms: P0, pmh: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -12632,7 +12632,7 @@ where extern "system" { fn midiStreamOut(hms: HMIDISTRM, pmh: *mut MIDIHDR, cbmh: u32) -> u32; } - midiStreamOut(hms.into(), ::core::mem::transmute(pmh), cbmh) + midiStreamOut(hms.into(), ::core::mem::transmute(pmh.as_ptr()), pmh.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12648,7 +12648,7 @@ where } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn midiStreamPosition<'a, P0>(hms: P0, lpmmt: &mut super::MMTIME, cbmmt: u32) -> u32 +pub unsafe fn midiStreamPosition<'a, P0>(hms: P0, lpmmt: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -12656,7 +12656,7 @@ where extern "system" { fn midiStreamPosition(hms: HMIDISTRM, lpmmt: *mut super::MMTIME, cbmmt: u32) -> u32; } - midiStreamPosition(hms.into(), ::core::mem::transmute(lpmmt), cbmmt) + midiStreamPosition(hms.into(), ::core::mem::transmute(lpmmt.as_ptr()), lpmmt.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12735,21 +12735,21 @@ where #[doc = "*Required features: `\"Win32_Media_Audio\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn mixerGetDevCapsA(umxid: usize, pmxcaps: &mut MIXERCAPSA, cbmxcaps: u32) -> u32 { +pub unsafe fn mixerGetDevCapsA(umxid: usize, pmxcaps: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn mixerGetDevCapsA(umxid: usize, pmxcaps: *mut MIXERCAPSA, cbmxcaps: u32) -> u32; } - mixerGetDevCapsA(umxid, ::core::mem::transmute(pmxcaps), cbmxcaps) + mixerGetDevCapsA(umxid, ::core::mem::transmute(pmxcaps.as_ptr()), pmxcaps.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn mixerGetDevCapsW(umxid: usize, pmxcaps: &mut MIXERCAPSW, cbmxcaps: u32) -> u32 { +pub unsafe fn mixerGetDevCapsW(umxid: usize, pmxcaps: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn mixerGetDevCapsW(umxid: usize, pmxcaps: *mut MIXERCAPSW, cbmxcaps: u32) -> u32; } - mixerGetDevCapsW(umxid, ::core::mem::transmute(pmxcaps), cbmxcaps) + mixerGetDevCapsW(umxid, ::core::mem::transmute(pmxcaps.as_ptr()), pmxcaps.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -12981,7 +12981,7 @@ impl ::core::default::Default for tACMFORMATDETAILSW { } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn waveInAddBuffer<'a, P0>(hwi: P0, pwh: &mut WAVEHDR, cbwh: u32) -> u32 +pub unsafe fn waveInAddBuffer<'a, P0>(hwi: P0, pwh: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -12989,7 +12989,7 @@ where extern "system" { fn waveInAddBuffer(hwi: HWAVEIN, pwh: *mut WAVEHDR, cbwh: u32) -> u32; } - waveInAddBuffer(hwi.into(), ::core::mem::transmute(pwh), cbwh) + waveInAddBuffer(hwi.into(), ::core::mem::transmute(pwh.as_ptr()), pwh.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -13006,21 +13006,21 @@ where #[doc = "*Required features: `\"Win32_Media_Audio\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn waveInGetDevCapsA(udeviceid: usize, pwic: &mut WAVEINCAPSA, cbwic: u32) -> u32 { +pub unsafe fn waveInGetDevCapsA(udeviceid: usize, pwic: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn waveInGetDevCapsA(udeviceid: usize, pwic: *mut WAVEINCAPSA, cbwic: u32) -> u32; } - waveInGetDevCapsA(udeviceid, ::core::mem::transmute(pwic), cbwic) + waveInGetDevCapsA(udeviceid, ::core::mem::transmute(pwic.as_ptr()), pwic.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn waveInGetDevCapsW(udeviceid: usize, pwic: &mut WAVEINCAPSW, cbwic: u32) -> u32 { +pub unsafe fn waveInGetDevCapsW(udeviceid: usize, pwic: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn waveInGetDevCapsW(udeviceid: usize, pwic: *mut WAVEINCAPSW, cbwic: u32) -> u32; } - waveInGetDevCapsW(udeviceid, ::core::mem::transmute(pwic), cbwic) + waveInGetDevCapsW(udeviceid, ::core::mem::transmute(pwic.as_ptr()), pwic.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -13029,7 +13029,7 @@ pub unsafe fn waveInGetErrorTextA(mmrerror: u32, psztext: &mut [u8]) -> u32 { extern "system" { fn waveInGetErrorTextA(mmrerror: u32, psztext: ::windows::core::PSTR, cchtext: u32) -> u32; } - waveInGetErrorTextA(mmrerror, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psztext)), psztext.len() as _) + waveInGetErrorTextA(mmrerror, ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -13038,7 +13038,7 @@ pub unsafe fn waveInGetErrorTextW(mmrerror: u32, psztext: &mut [u16]) -> u32 { extern "system" { fn waveInGetErrorTextW(mmrerror: u32, psztext: ::windows::core::PWSTR, cchtext: u32) -> u32; } - waveInGetErrorTextW(mmrerror, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psztext)), psztext.len() as _) + waveInGetErrorTextW(mmrerror, ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -13063,7 +13063,7 @@ pub unsafe fn waveInGetNumDevs() -> u32 { } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn waveInGetPosition<'a, P0>(hwi: P0, pmmt: &mut super::MMTIME, cbmmt: u32) -> u32 +pub unsafe fn waveInGetPosition<'a, P0>(hwi: P0, pmmt: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -13071,7 +13071,7 @@ where extern "system" { fn waveInGetPosition(hwi: HWAVEIN, pmmt: *mut super::MMTIME, cbmmt: u32) -> u32; } - waveInGetPosition(hwi.into(), ::core::mem::transmute(pmmt), cbmmt) + waveInGetPosition(hwi.into(), ::core::mem::transmute(pmmt.as_ptr()), pmmt.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -13096,7 +13096,7 @@ pub unsafe fn waveInOpen(phwi: ::core::option::Option<&mut HWAVEIN>, udeviceid: } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn waveInPrepareHeader<'a, P0>(hwi: P0, pwh: &mut WAVEHDR, cbwh: u32) -> u32 +pub unsafe fn waveInPrepareHeader<'a, P0>(hwi: P0, pwh: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -13104,7 +13104,7 @@ where extern "system" { fn waveInPrepareHeader(hwi: HWAVEIN, pwh: *mut WAVEHDR, cbwh: u32) -> u32; } - waveInPrepareHeader(hwi.into(), ::core::mem::transmute(pwh), cbwh) + waveInPrepareHeader(hwi.into(), ::core::mem::transmute(pwh.as_ptr()), pwh.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -13144,7 +13144,7 @@ where } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn waveInUnprepareHeader<'a, P0>(hwi: P0, pwh: &mut WAVEHDR, cbwh: u32) -> u32 +pub unsafe fn waveInUnprepareHeader<'a, P0>(hwi: P0, pwh: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -13152,7 +13152,7 @@ where extern "system" { fn waveInUnprepareHeader(hwi: HWAVEIN, pwh: *mut WAVEHDR, cbwh: u32) -> u32; } - waveInUnprepareHeader(hwi.into(), ::core::mem::transmute(pwh), cbwh) + waveInUnprepareHeader(hwi.into(), ::core::mem::transmute(pwh.as_ptr()), pwh.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -13204,7 +13204,7 @@ pub unsafe fn waveOutGetErrorTextA(mmrerror: u32, psztext: &mut [u8]) -> u32 { extern "system" { fn waveOutGetErrorTextA(mmrerror: u32, psztext: ::windows::core::PSTR, cchtext: u32) -> u32; } - waveOutGetErrorTextA(mmrerror, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psztext)), psztext.len() as _) + waveOutGetErrorTextA(mmrerror, ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -13213,7 +13213,7 @@ pub unsafe fn waveOutGetErrorTextW(mmrerror: u32, psztext: &mut [u16]) -> u32 { extern "system" { fn waveOutGetErrorTextW(mmrerror: u32, psztext: ::windows::core::PWSTR, cchtext: u32) -> u32; } - waveOutGetErrorTextW(mmrerror, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psztext)), psztext.len() as _) + waveOutGetErrorTextW(mmrerror, ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -13262,7 +13262,7 @@ where } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn waveOutGetPosition<'a, P0>(hwo: P0, pmmt: &mut super::MMTIME, cbmmt: u32) -> u32 +pub unsafe fn waveOutGetPosition<'a, P0>(hwo: P0, pmmt: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -13270,7 +13270,7 @@ where extern "system" { fn waveOutGetPosition(hwo: HWAVEOUT, pmmt: *mut super::MMTIME, cbmmt: u32) -> u32; } - waveOutGetPosition(hwo.into(), ::core::mem::transmute(pmmt), cbmmt) + waveOutGetPosition(hwo.into(), ::core::mem::transmute(pmmt.as_ptr()), pmmt.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -13319,7 +13319,7 @@ where } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn waveOutPrepareHeader<'a, P0>(hwo: P0, pwh: &mut WAVEHDR, cbwh: u32) -> u32 +pub unsafe fn waveOutPrepareHeader<'a, P0>(hwo: P0, pwh: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -13327,7 +13327,7 @@ where extern "system" { fn waveOutPrepareHeader(hwo: HWAVEOUT, pwh: *mut WAVEHDR, cbwh: u32) -> u32; } - waveOutPrepareHeader(hwo.into(), ::core::mem::transmute(pwh), cbwh) + waveOutPrepareHeader(hwo.into(), ::core::mem::transmute(pwh.as_ptr()), pwh.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] @@ -13391,7 +13391,7 @@ where } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn waveOutUnprepareHeader<'a, P0>(hwo: P0, pwh: &mut WAVEHDR, cbwh: u32) -> u32 +pub unsafe fn waveOutUnprepareHeader<'a, P0>(hwo: P0, pwh: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -13399,11 +13399,11 @@ where extern "system" { fn waveOutUnprepareHeader(hwo: HWAVEOUT, pwh: *mut WAVEHDR, cbwh: u32) -> u32; } - waveOutUnprepareHeader(hwo.into(), ::core::mem::transmute(pwh), cbwh) + waveOutUnprepareHeader(hwo.into(), ::core::mem::transmute(pwh.as_ptr()), pwh.len() as _) } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[inline] -pub unsafe fn waveOutWrite<'a, P0>(hwo: P0, pwh: &mut WAVEHDR, cbwh: u32) -> u32 +pub unsafe fn waveOutWrite<'a, P0>(hwo: P0, pwh: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -13411,7 +13411,7 @@ where extern "system" { fn waveOutWrite(hwo: HWAVEOUT, pwh: *mut WAVEHDR, cbwh: u32) -> u32; } - waveOutWrite(hwo.into(), ::core::mem::transmute(pwh), cbwh) + waveOutWrite(hwo.into(), ::core::mem::transmute(pwh.as_ptr()), pwh.len() as _) } #[cfg(feature = "implement")] ::core::include!("impl.rs"); diff --git a/crates/libs/windows/src/Windows/Win32/Media/DeviceManager/mod.rs b/crates/libs/windows/src/Windows/Win32/Media/DeviceManager/mod.rs index f0b962dfa7..d03975a307 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/DeviceManager/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/DeviceManager/mod.rs @@ -7,10 +7,10 @@ pub const EVENT_WMDM_CONTENT_TRANSFER: ::windows::core::GUID = ::windows::core:: #[repr(transparent)] pub struct IComponentAuthenticate(::windows::core::IUnknown); impl IComponentAuthenticate { - pub unsafe fn SACAuth(&self, dwprotocolid: u32, dwpass: u32, pbdatain: &[u8], ppbdataout: &mut *mut u8, pdwdataoutlen: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SACAuth)(::windows::core::Interface::as_raw(self), dwprotocolid, dwpass, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbdatain)), pbdatain.len() as _, ::core::mem::transmute(ppbdataout), ::core::mem::transmute(pdwdataoutlen)).ok() + pub unsafe fn SACAuth(&self, dwprotocolid: u32, dwpass: u32, pbdatain: &[u8], ppbdataout: *mut *mut u8, pdwdataoutlen: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SACAuth)(::windows::core::Interface::as_raw(self), dwprotocolid, dwpass, ::core::mem::transmute(pbdatain.as_ptr()), pbdatain.len() as _, ::core::mem::transmute(ppbdataout), ::core::mem::transmute(pdwdataoutlen)).ok() } - pub unsafe fn SACGetProtocols(&self, ppdwprotocols: &mut *mut u32, pdwprotocolcount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn SACGetProtocols(&self, ppdwprotocols: *mut *mut u32, pdwprotocolcount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SACGetProtocols)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppdwprotocols), ::core::mem::transmute(pdwprotocolcount)).ok() } } @@ -61,10 +61,10 @@ pub struct IComponentAuthenticate_Vtbl { pub struct IMDSPDevice(::windows::core::IUnknown); impl IMDSPDevice { pub unsafe fn GetName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetManufacturer(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetManufacturer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetManufacturer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetVersion(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -94,7 +94,7 @@ impl IMDSPDevice { } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[cfg(feature = "Win32_Media_Audio")] - pub unsafe fn GetFormatSupport(&self, pformatex: &mut *mut super::Audio::WAVEFORMATEX, pnformatcount: &mut u32, pppwszmimetype: &mut *mut ::windows::core::PWSTR, pnmimetypecount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetFormatSupport(&self, pformatex: *mut *mut super::Audio::WAVEFORMATEX, pnformatcount: &mut u32, pppwszmimetype: *mut *mut ::windows::core::PWSTR, pnmimetypecount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetFormatSupport)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pformatex), ::core::mem::transmute(pnformatcount), ::core::mem::transmute(pppwszmimetype), ::core::mem::transmute(pnmimetypecount)).ok() } pub unsafe fn SendOpaqueCommand(&self, pcommand: &mut OPAQUECOMMAND) -> ::windows::core::Result<()> { @@ -160,10 +160,10 @@ pub struct IMDSPDevice_Vtbl { pub struct IMDSPDevice2(::windows::core::IUnknown); impl IMDSPDevice2 { pub unsafe fn GetName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetManufacturer(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetManufacturer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetManufacturer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetVersion(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -193,7 +193,7 @@ impl IMDSPDevice2 { } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[cfg(feature = "Win32_Media_Audio")] - pub unsafe fn GetFormatSupport(&self, pformatex: &mut *mut super::Audio::WAVEFORMATEX, pnformatcount: &mut u32, pppwszmimetype: &mut *mut ::windows::core::PWSTR, pnmimetypecount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetFormatSupport(&self, pformatex: *mut *mut super::Audio::WAVEFORMATEX, pnformatcount: &mut u32, pppwszmimetype: *mut *mut ::windows::core::PWSTR, pnmimetypecount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetFormatSupport)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pformatex), ::core::mem::transmute(pnformatcount), ::core::mem::transmute(pppwszmimetype), ::core::mem::transmute(pnmimetypecount)).ok() } pub unsafe fn SendOpaqueCommand(&self, pcommand: &mut OPAQUECOMMAND) -> ::windows::core::Result<()> { @@ -208,16 +208,16 @@ impl IMDSPDevice2 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Media_Audio\"`, `\"Win32_Media_MediaFoundation\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Media_Audio", feature = "Win32_Media_MediaFoundation"))] - pub unsafe fn GetFormatSupport2(&self, dwflags: u32, ppaudioformatex: &mut *mut super::Audio::WAVEFORMATEX, pnaudioformatcount: &mut u32, ppvideoformatex: &mut *mut super::MediaFoundation::VIDEOINFOHEADER, pnvideoformatcount: &mut u32, ppfiletype: &mut *mut WMFILECAPABILITIES, pnfiletypecount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetFormatSupport2(&self, dwflags: u32, ppaudioformatex: *mut *mut super::Audio::WAVEFORMATEX, pnaudioformatcount: &mut u32, ppvideoformatex: *mut *mut super::MediaFoundation::VIDEOINFOHEADER, pnvideoformatcount: &mut u32, ppfiletype: *mut *mut WMFILECAPABILITIES, pnfiletypecount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetFormatSupport2)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(ppaudioformatex), ::core::mem::transmute(pnaudioformatcount), ::core::mem::transmute(ppvideoformatex), ::core::mem::transmute(pnvideoformatcount), ::core::mem::transmute(ppfiletype), ::core::mem::transmute(pnfiletypecount)).ok() } #[doc = "*Required features: `\"Win32_System_Ole\"`*"] #[cfg(feature = "Win32_System_Ole")] - pub unsafe fn GetSpecifyPropertyPages(&self, ppspecifyproppages: &mut ::core::option::Option, pppunknowns: &mut *mut ::core::option::Option<::windows::core::IUnknown>, pcunks: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetSpecifyPropertyPages(&self, ppspecifyproppages: &mut ::core::option::Option, pppunknowns: *mut *mut ::core::option::Option<::windows::core::IUnknown>, pcunks: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSpecifyPropertyPages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppspecifyproppages), ::core::mem::transmute(pppunknowns), ::core::mem::transmute(pcunks)).ok() } pub unsafe fn GetCanonicalName(&self, pwszpnpname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCanonicalName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszpnpname)), pwszpnpname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetCanonicalName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszpnpname.as_ptr()), pwszpnpname.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -290,10 +290,10 @@ pub struct IMDSPDevice2_Vtbl { pub struct IMDSPDevice3(::windows::core::IUnknown); impl IMDSPDevice3 { pub unsafe fn GetName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetManufacturer(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetManufacturer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetManufacturer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetVersion(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -323,7 +323,7 @@ impl IMDSPDevice3 { } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[cfg(feature = "Win32_Media_Audio")] - pub unsafe fn GetFormatSupport(&self, pformatex: &mut *mut super::Audio::WAVEFORMATEX, pnformatcount: &mut u32, pppwszmimetype: &mut *mut ::windows::core::PWSTR, pnmimetypecount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetFormatSupport(&self, pformatex: *mut *mut super::Audio::WAVEFORMATEX, pnformatcount: &mut u32, pppwszmimetype: *mut *mut ::windows::core::PWSTR, pnmimetypecount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetFormatSupport)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pformatex), ::core::mem::transmute(pnformatcount), ::core::mem::transmute(pppwszmimetype), ::core::mem::transmute(pnmimetypecount)).ok() } pub unsafe fn SendOpaqueCommand(&self, pcommand: &mut OPAQUECOMMAND) -> ::windows::core::Result<()> { @@ -338,16 +338,16 @@ impl IMDSPDevice3 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Media_Audio\"`, `\"Win32_Media_MediaFoundation\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Media_Audio", feature = "Win32_Media_MediaFoundation"))] - pub unsafe fn GetFormatSupport2(&self, dwflags: u32, ppaudioformatex: &mut *mut super::Audio::WAVEFORMATEX, pnaudioformatcount: &mut u32, ppvideoformatex: &mut *mut super::MediaFoundation::VIDEOINFOHEADER, pnvideoformatcount: &mut u32, ppfiletype: &mut *mut WMFILECAPABILITIES, pnfiletypecount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetFormatSupport2(&self, dwflags: u32, ppaudioformatex: *mut *mut super::Audio::WAVEFORMATEX, pnaudioformatcount: &mut u32, ppvideoformatex: *mut *mut super::MediaFoundation::VIDEOINFOHEADER, pnvideoformatcount: &mut u32, ppfiletype: *mut *mut WMFILECAPABILITIES, pnfiletypecount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetFormatSupport2)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(ppaudioformatex), ::core::mem::transmute(pnaudioformatcount), ::core::mem::transmute(ppvideoformatex), ::core::mem::transmute(pnvideoformatcount), ::core::mem::transmute(ppfiletype), ::core::mem::transmute(pnfiletypecount)).ok() } #[doc = "*Required features: `\"Win32_System_Ole\"`*"] #[cfg(feature = "Win32_System_Ole")] - pub unsafe fn GetSpecifyPropertyPages(&self, ppspecifyproppages: &mut ::core::option::Option, pppunknowns: &mut *mut ::core::option::Option<::windows::core::IUnknown>, pcunks: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetSpecifyPropertyPages(&self, ppspecifyproppages: &mut ::core::option::Option, pppunknowns: *mut *mut ::core::option::Option<::windows::core::IUnknown>, pcunks: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetSpecifyPropertyPages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppspecifyproppages), ::core::mem::transmute(pppunknowns), ::core::mem::transmute(pcunks)).ok() } pub unsafe fn GetCanonicalName(&self, pwszpnpname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetCanonicalName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszpnpname)), pwszpnpname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetCanonicalName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszpnpname.as_ptr()), pwszpnpname.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -372,8 +372,8 @@ impl IMDSPDevice3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetFormatCapability)(::windows::core::Interface::as_raw(self), format, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn DeviceIoControl(&self, dwiocontrolcode: u32, lpinbuffer: &[u8], lpoutbuffer: &mut u8, pnoutbuffersize: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DeviceIoControl)(::windows::core::Interface::as_raw(self), dwiocontrolcode, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpinbuffer)), lpinbuffer.len() as _, ::core::mem::transmute(lpoutbuffer), ::core::mem::transmute(pnoutbuffersize)).ok() + pub unsafe fn DeviceIoControl(&self, dwiocontrolcode: u32, lpinbuffer: &[u8], lpoutbuffer: *mut u8, pnoutbuffersize: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).DeviceIoControl)(::windows::core::Interface::as_raw(self), dwiocontrolcode, ::core::mem::transmute(lpinbuffer.as_ptr()), lpinbuffer.len() as _, ::core::mem::transmute(lpoutbuffer), ::core::mem::transmute(pnoutbuffersize)).ok() } pub unsafe fn FindStorage<'a, P0>(&self, findscope: WMDM_FIND_SCOPE, pwszuniqueid: P0) -> ::windows::core::Result where @@ -612,7 +612,7 @@ pub struct IMDSPDirectTransfer_Vtbl { #[repr(transparent)] pub struct IMDSPEnumDevice(::windows::core::IUnknown); impl IMDSPEnumDevice { - pub unsafe fn Next(&self, celt: u32, ppdevice: &mut ::core::option::Option, pceltfetched: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Next(&self, celt: u32, ppdevice: *mut ::core::option::Option, pceltfetched: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), celt, ::core::mem::transmute(ppdevice), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result { @@ -675,7 +675,7 @@ pub struct IMDSPEnumDevice_Vtbl { #[repr(transparent)] pub struct IMDSPEnumStorage(::windows::core::IUnknown); impl IMDSPEnumStorage { - pub unsafe fn Next(&self, celt: u32, ppstorage: &mut ::core::option::Option, pceltfetched: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Next(&self, celt: u32, ppstorage: *mut ::core::option::Option, pceltfetched: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), celt, ::core::mem::transmute(ppstorage), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result { @@ -741,10 +741,10 @@ impl IMDSPObject { pub unsafe fn Open(&self, fumode: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Open)(::windows::core::Interface::as_raw(self), fumode).ok() } - pub unsafe fn Read(&self, pdata: &mut u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn Read(&self, pdata: *mut u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), ::core::mem::transmute(pdwsize), ::core::mem::transmute(abmac)).ok() } - pub unsafe fn Write(&self, pdata: &u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn Write(&self, pdata: *const u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), ::core::mem::transmute(pdwsize), ::core::mem::transmute(abmac)).ok() } pub unsafe fn Delete<'a, P0>(&self, fumode: u32, pprogress: P0) -> ::windows::core::Result<()> @@ -829,10 +829,10 @@ impl IMDSPObject2 { pub unsafe fn Open(&self, fumode: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.Open)(::windows::core::Interface::as_raw(self), fumode).ok() } - pub unsafe fn Read(&self, pdata: &mut u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn Read(&self, pdata: *mut u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), ::core::mem::transmute(pdwsize), ::core::mem::transmute(abmac)).ok() } - pub unsafe fn Write(&self, pdata: &u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn Write(&self, pdata: *const u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), ::core::mem::transmute(pdwsize), ::core::mem::transmute(abmac)).ok() } pub unsafe fn Delete<'a, P0>(&self, fumode: u32, pprogress: P0) -> ::windows::core::Result<()> @@ -861,10 +861,10 @@ impl IMDSPObject2 { pub unsafe fn Close(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.Close)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn ReadOnClearChannel(&self, pdata: &mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn ReadOnClearChannel(&self, pdata: *mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReadOnClearChannel)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), ::core::mem::transmute(pdwsize)).ok() } - pub unsafe fn WriteOnClearChannel(&self, pdata: &u8, pdwsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn WriteOnClearChannel(&self, pdata: *const u8, pdwsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WriteOnClearChannel)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), ::core::mem::transmute(pdwsize)).ok() } } @@ -1007,7 +1007,7 @@ pub struct IMDSPObjectInfo_Vtbl { #[repr(transparent)] pub struct IMDSPRevoked(::windows::core::IUnknown); impl IMDSPRevoked { - pub unsafe fn GetRevocationURL(&self, ppwszrevocationurl: &mut ::windows::core::PWSTR, pdwbufferlen: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetRevocationURL(&self, ppwszrevocationurl: *mut ::windows::core::PWSTR, pdwbufferlen: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetRevocationURL)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppwszrevocationurl), ::core::mem::transmute(pdwbufferlen)).ok() } } @@ -1071,7 +1071,7 @@ impl IMDSPStorage { (::windows::core::Interface::vtable(self).GetAttributes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwattributes), ::core::mem::transmute(pformat)).ok() } pub unsafe fn GetName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetDate(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1080,7 +1080,7 @@ impl IMDSPStorage { pub unsafe fn GetSize(&self, pdwsizelow: &mut u32, pdwsizehigh: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwsizelow), ::core::mem::transmute(pdwsizehigh)).ok() } - pub unsafe fn GetRights(&self, pprights: &mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetRights(&self, pprights: *mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetRights)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprights), ::core::mem::transmute(pnrightscount), ::core::mem::transmute(abmac)).ok() } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] @@ -1178,7 +1178,7 @@ impl IMDSPStorage2 { (::windows::core::Interface::vtable(self).base__.GetAttributes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwattributes), ::core::mem::transmute(pformat)).ok() } pub unsafe fn GetName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetDate(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1187,7 +1187,7 @@ impl IMDSPStorage2 { pub unsafe fn GetSize(&self, pdwsizelow: &mut u32, pdwsizehigh: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwsizelow), ::core::mem::transmute(pdwsizehigh)).ok() } - pub unsafe fn GetRights(&self, pprights: &mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetRights(&self, pprights: *mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetRights)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprights), ::core::mem::transmute(pnrightscount), ::core::mem::transmute(abmac)).ok() } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] @@ -1320,7 +1320,7 @@ impl IMDSPStorage3 { (::windows::core::Interface::vtable(self).base__.base__.GetAttributes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwattributes), ::core::mem::transmute(pformat)).ok() } pub unsafe fn GetName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetDate(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1329,7 +1329,7 @@ impl IMDSPStorage3 { pub unsafe fn GetSize(&self, pdwsizelow: &mut u32, pdwsizehigh: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwsizelow), ::core::mem::transmute(pdwsizehigh)).ok() } - pub unsafe fn GetRights(&self, pprights: &mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetRights(&self, pprights: *mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetRights)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprights), ::core::mem::transmute(pnrightscount), ::core::mem::transmute(abmac)).ok() } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] @@ -1478,7 +1478,7 @@ impl IMDSPStorage4 { (::windows::core::Interface::vtable(self).base__.base__.base__.GetAttributes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwattributes), ::core::mem::transmute(pformat)).ok() } pub unsafe fn GetName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetDate(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1487,7 +1487,7 @@ impl IMDSPStorage4 { pub unsafe fn GetSize(&self, pdwsizelow: &mut u32, pdwsizehigh: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwsizelow), ::core::mem::transmute(pdwsizehigh)).ok() } - pub unsafe fn GetRights(&self, pprights: &mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetRights(&self, pprights: *mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetRights)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprights), ::core::mem::transmute(pnrightscount), ::core::mem::transmute(abmac)).ok() } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] @@ -1544,10 +1544,10 @@ impl IMDSPStorage4 { { (::windows::core::Interface::vtable(self).base__.SetMetadata)(::windows::core::Interface::as_raw(self), pmetadata.into().abi()).ok() } - pub unsafe fn SetReferences(&self, ppispstorage: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetReferences)(::windows::core::Interface::as_raw(self), ppispstorage.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppispstorage))).ok() + pub unsafe fn SetReferences(&self, ppispstorage: ::core::option::Option<&[::core::option::Option]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetReferences)(::windows::core::Interface::as_raw(self), ppispstorage.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppispstorage.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } - pub unsafe fn GetReferences(&self, pdwrefs: &mut u32, pppispstorage: &mut *mut ::core::option::Option) -> ::windows::core::Result<()> { + pub unsafe fn GetReferences(&self, pdwrefs: &mut u32, pppispstorage: *mut *mut ::core::option::Option) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetReferences)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwrefs), ::core::mem::transmute(pppispstorage)).ok() } pub unsafe fn CreateStorageWithMetadata<'a, P0, P1>(&self, dwattributes: u32, pwszname: P0, pmetadata: P1, qwfilesize: u64) -> ::windows::core::Result @@ -1562,7 +1562,7 @@ impl IMDSPStorage4 { where P0: ::std::convert::Into<::windows::core::InParam<'a, IWMDMMetaData>>, { - (::windows::core::Interface::vtable(self).GetSpecifiedMetadata)(::windows::core::Interface::as_raw(self), ppwszpropnames.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppwszpropnames)), pmetadata.into().abi()).ok() + (::windows::core::Interface::vtable(self).GetSpecifiedMetadata)(::windows::core::Interface::as_raw(self), ppwszpropnames.len() as _, ::core::mem::transmute(ppwszpropnames.as_ptr()), pmetadata.into().abi()).ok() } pub unsafe fn FindStorage<'a, P0>(&self, findscope: WMDM_FIND_SCOPE, pwszuniqueid: P0) -> ::windows::core::Result where @@ -1822,7 +1822,7 @@ impl IMDServiceProvider2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.EnumDevices)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateDevice<'a, P0>(&self, pwszdevicepath: P0, pdwcount: &mut u32, pppdevicearray: &mut *mut ::core::option::Option) -> ::windows::core::Result<()> + pub unsafe fn CreateDevice<'a, P0>(&self, pwszdevicepath: P0, pdwcount: &mut u32, pppdevicearray: *mut *mut ::core::option::Option) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1897,7 +1897,7 @@ impl IMDServiceProvider3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.EnumDevices)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateDevice<'a, P0>(&self, pwszdevicepath: P0, pdwcount: &mut u32, pppdevicearray: &mut *mut ::core::option::Option) -> ::windows::core::Result<()> + pub unsafe fn CreateDevice<'a, P0>(&self, pwszdevicepath: P0, pdwcount: &mut u32, pppdevicearray: *mut *mut ::core::option::Option) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2104,9 +2104,9 @@ pub struct ISCPSecureAuthenticate2_Vtbl { pub struct ISCPSecureExchange(::windows::core::IUnknown); impl ISCPSecureExchange { pub unsafe fn TransferContainerData(&self, pdata: &[u8], pfureadyflags: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).TransferContainerData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, ::core::mem::transmute(pfureadyflags), ::core::mem::transmute(abmac)).ok() + (::windows::core::Interface::vtable(self).TransferContainerData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, ::core::mem::transmute(pfureadyflags), ::core::mem::transmute(abmac)).ok() } - pub unsafe fn ObjectData(&self, pdata: &mut u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn ObjectData(&self, pdata: *mut u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ObjectData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), ::core::mem::transmute(pdwsize), ::core::mem::transmute(abmac)).ok() } pub unsafe fn TransferComplete(&self) -> ::windows::core::Result<()> { @@ -2161,9 +2161,9 @@ pub struct ISCPSecureExchange_Vtbl { pub struct ISCPSecureExchange2(::windows::core::IUnknown); impl ISCPSecureExchange2 { pub unsafe fn TransferContainerData(&self, pdata: &[u8], pfureadyflags: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.TransferContainerData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, ::core::mem::transmute(pfureadyflags), ::core::mem::transmute(abmac)).ok() + (::windows::core::Interface::vtable(self).base__.TransferContainerData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, ::core::mem::transmute(pfureadyflags), ::core::mem::transmute(abmac)).ok() } - pub unsafe fn ObjectData(&self, pdata: &mut u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn ObjectData(&self, pdata: *mut u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.ObjectData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), ::core::mem::transmute(pdwsize), ::core::mem::transmute(abmac)).ok() } pub unsafe fn TransferComplete(&self) -> ::windows::core::Result<()> { @@ -2173,7 +2173,7 @@ impl ISCPSecureExchange2 { where P0: ::std::convert::Into<::windows::core::InParam<'a, IWMDMProgress3>>, { - (::windows::core::Interface::vtable(self).TransferContainerData2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, pprogresscallback.into().abi(), ::core::mem::transmute(pfureadyflags), ::core::mem::transmute(abmac)).ok() + (::windows::core::Interface::vtable(self).TransferContainerData2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, pprogresscallback.into().abi(), ::core::mem::transmute(pfureadyflags), ::core::mem::transmute(abmac)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2237,9 +2237,9 @@ pub struct ISCPSecureExchange2_Vtbl { pub struct ISCPSecureExchange3(::windows::core::IUnknown); impl ISCPSecureExchange3 { pub unsafe fn TransferContainerData(&self, pdata: &[u8], pfureadyflags: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.TransferContainerData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, ::core::mem::transmute(pfureadyflags), ::core::mem::transmute(abmac)).ok() + (::windows::core::Interface::vtable(self).base__.base__.TransferContainerData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, ::core::mem::transmute(pfureadyflags), ::core::mem::transmute(abmac)).ok() } - pub unsafe fn ObjectData(&self, pdata: &mut u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn ObjectData(&self, pdata: *mut u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.ObjectData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), ::core::mem::transmute(pdwsize), ::core::mem::transmute(abmac)).ok() } pub unsafe fn TransferComplete(&self) -> ::windows::core::Result<()> { @@ -2249,7 +2249,7 @@ impl ISCPSecureExchange3 { where P0: ::std::convert::Into<::windows::core::InParam<'a, IWMDMProgress3>>, { - (::windows::core::Interface::vtable(self).base__.TransferContainerData2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, pprogresscallback.into().abi(), ::core::mem::transmute(pfureadyflags), ::core::mem::transmute(abmac)).ok() + (::windows::core::Interface::vtable(self).base__.TransferContainerData2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, pprogresscallback.into().abi(), ::core::mem::transmute(pfureadyflags), ::core::mem::transmute(abmac)).ok() } pub unsafe fn TransferContainerDataOnClearChannel<'a, P0, P1>(&self, pdevice: P0, pdata: &[u8], pprogresscallback: P1) -> ::windows::core::Result where @@ -2257,9 +2257,9 @@ impl ISCPSecureExchange3 { P1: ::std::convert::Into<::windows::core::InParam<'a, IWMDMProgress3>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).TransferContainerDataOnClearChannel)(::windows::core::Interface::as_raw(self), pdevice.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, pprogresscallback.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).TransferContainerDataOnClearChannel)(::windows::core::Interface::as_raw(self), pdevice.into().abi(), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, pprogresscallback.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetObjectDataOnClearChannel<'a, P0>(&self, pdevice: P0, pdata: &mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetObjectDataOnClearChannel<'a, P0>(&self, pdevice: P0, pdata: *mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMDSPDevice>>, { @@ -2356,19 +2356,19 @@ impl ISCPSecureQuery { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).ExamineData)(::windows::core::Interface::as_raw(self), fuflags, pwszextension.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, ::core::mem::transmute(abmac)).ok() + (::windows::core::Interface::vtable(self).ExamineData)(::windows::core::Interface::as_raw(self), fuflags, pwszextension.into(), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, ::core::mem::transmute(abmac)).ok() } pub unsafe fn MakeDecision<'a, P0>(&self, fuflags: u32, pdata: &[u8], dwappsec: u32, pbspsessionkey: &[u8], pstorageglobals: P0, ppexchange: &mut ::core::option::Option, abmac: &mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMDSPStorageGlobals>>, { - (::windows::core::Interface::vtable(self).MakeDecision)(::windows::core::Interface::as_raw(self), fuflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, dwappsec, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbspsessionkey)), pbspsessionkey.len() as _, pstorageglobals.into().abi(), ::core::mem::transmute(ppexchange), ::core::mem::transmute(abmac)).ok() + (::windows::core::Interface::vtable(self).MakeDecision)(::windows::core::Interface::as_raw(self), fuflags, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, dwappsec, ::core::mem::transmute(pbspsessionkey.as_ptr()), pbspsessionkey.len() as _, pstorageglobals.into().abi(), ::core::mem::transmute(ppexchange), ::core::mem::transmute(abmac)).ok() } - pub unsafe fn GetRights<'a, P0>(&self, pdata: &[u8], pbspsessionkey: &[u8], pstgglobals: P0, pprights: &mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> + pub unsafe fn GetRights<'a, P0>(&self, pdata: &[u8], pbspsessionkey: &[u8], pstgglobals: P0, pprights: *mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMDSPStorageGlobals>>, { - (::windows::core::Interface::vtable(self).GetRights)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbspsessionkey)), pbspsessionkey.len() as _, pstgglobals.into().abi(), ::core::mem::transmute(pprights), ::core::mem::transmute(pnrightscount), ::core::mem::transmute(abmac)).ok() + (::windows::core::Interface::vtable(self).GetRights)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, ::core::mem::transmute(pbspsessionkey.as_ptr()), pbspsessionkey.len() as _, pstgglobals.into().abi(), ::core::mem::transmute(pprights), ::core::mem::transmute(pnrightscount), ::core::mem::transmute(abmac)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2426,21 +2426,21 @@ impl ISCPSecureQuery2 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.ExamineData)(::windows::core::Interface::as_raw(self), fuflags, pwszextension.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, ::core::mem::transmute(abmac)).ok() + (::windows::core::Interface::vtable(self).base__.ExamineData)(::windows::core::Interface::as_raw(self), fuflags, pwszextension.into(), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, ::core::mem::transmute(abmac)).ok() } pub unsafe fn MakeDecision<'a, P0>(&self, fuflags: u32, pdata: &[u8], dwappsec: u32, pbspsessionkey: &[u8], pstorageglobals: P0, ppexchange: &mut ::core::option::Option, abmac: &mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMDSPStorageGlobals>>, { - (::windows::core::Interface::vtable(self).base__.MakeDecision)(::windows::core::Interface::as_raw(self), fuflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, dwappsec, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbspsessionkey)), pbspsessionkey.len() as _, pstorageglobals.into().abi(), ::core::mem::transmute(ppexchange), ::core::mem::transmute(abmac)).ok() + (::windows::core::Interface::vtable(self).base__.MakeDecision)(::windows::core::Interface::as_raw(self), fuflags, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, dwappsec, ::core::mem::transmute(pbspsessionkey.as_ptr()), pbspsessionkey.len() as _, pstorageglobals.into().abi(), ::core::mem::transmute(ppexchange), ::core::mem::transmute(abmac)).ok() } - pub unsafe fn GetRights<'a, P0>(&self, pdata: &[u8], pbspsessionkey: &[u8], pstgglobals: P0, pprights: &mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> + pub unsafe fn GetRights<'a, P0>(&self, pdata: &[u8], pbspsessionkey: &[u8], pstgglobals: P0, pprights: *mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMDSPStorageGlobals>>, { - (::windows::core::Interface::vtable(self).base__.GetRights)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbspsessionkey)), pbspsessionkey.len() as _, pstgglobals.into().abi(), ::core::mem::transmute(pprights), ::core::mem::transmute(pnrightscount), ::core::mem::transmute(abmac)).ok() + (::windows::core::Interface::vtable(self).base__.GetRights)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, ::core::mem::transmute(pbspsessionkey.as_ptr()), pbspsessionkey.len() as _, pstgglobals.into().abi(), ::core::mem::transmute(pprights), ::core::mem::transmute(pnrightscount), ::core::mem::transmute(abmac)).ok() } - pub unsafe fn MakeDecision2<'a, P0, P1>(&self, fuflags: u32, pdata: &[u8], dwappsec: u32, pbspsessionkey: &[u8], pstorageglobals: P0, pappcertapp: &[u8], pappcertsp: &[u8], pszrevocationurl: &mut ::windows::core::PWSTR, pdwrevocationurllen: &mut u32, pdwrevocationbitflag: &mut u32, pqwfilesize: ::core::option::Option<&mut u64>, punknown: P1, ppexchange: &mut ::core::option::Option, abmac: &mut u8) -> ::windows::core::Result<()> + pub unsafe fn MakeDecision2<'a, P0, P1>(&self, fuflags: u32, pdata: &[u8], dwappsec: u32, pbspsessionkey: &[u8], pstorageglobals: P0, pappcertapp: &[u8], pappcertsp: &[u8], pszrevocationurl: *mut ::windows::core::PWSTR, pdwrevocationurllen: &mut u32, pdwrevocationbitflag: &mut u32, pqwfilesize: ::core::option::Option<&mut u64>, punknown: P1, ppexchange: &mut ::core::option::Option, abmac: &mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMDSPStorageGlobals>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, @@ -2448,15 +2448,15 @@ impl ISCPSecureQuery2 { (::windows::core::Interface::vtable(self).MakeDecision2)( ::windows::core::Interface::as_raw(self), fuflags, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), + ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, dwappsec, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbspsessionkey)), + ::core::mem::transmute(pbspsessionkey.as_ptr()), pbspsessionkey.len() as _, pstorageglobals.into().abi(), - ::core::mem::transmute(::windows::core::as_ptr_or_null(pappcertapp)), + ::core::mem::transmute(pappcertapp.as_ptr()), pappcertapp.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pappcertsp)), + ::core::mem::transmute(pappcertsp.as_ptr()), pappcertsp.len() as _, ::core::mem::transmute(pszrevocationurl), ::core::mem::transmute(pdwrevocationurllen), @@ -2536,21 +2536,21 @@ impl ISCPSecureQuery3 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.ExamineData)(::windows::core::Interface::as_raw(self), fuflags, pwszextension.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, ::core::mem::transmute(abmac)).ok() + (::windows::core::Interface::vtable(self).base__.base__.ExamineData)(::windows::core::Interface::as_raw(self), fuflags, pwszextension.into(), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, ::core::mem::transmute(abmac)).ok() } pub unsafe fn MakeDecision<'a, P0>(&self, fuflags: u32, pdata: &[u8], dwappsec: u32, pbspsessionkey: &[u8], pstorageglobals: P0, ppexchange: &mut ::core::option::Option, abmac: &mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMDSPStorageGlobals>>, { - (::windows::core::Interface::vtable(self).base__.base__.MakeDecision)(::windows::core::Interface::as_raw(self), fuflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, dwappsec, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbspsessionkey)), pbspsessionkey.len() as _, pstorageglobals.into().abi(), ::core::mem::transmute(ppexchange), ::core::mem::transmute(abmac)).ok() + (::windows::core::Interface::vtable(self).base__.base__.MakeDecision)(::windows::core::Interface::as_raw(self), fuflags, ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, dwappsec, ::core::mem::transmute(pbspsessionkey.as_ptr()), pbspsessionkey.len() as _, pstorageglobals.into().abi(), ::core::mem::transmute(ppexchange), ::core::mem::transmute(abmac)).ok() } - pub unsafe fn GetRights<'a, P0>(&self, pdata: &[u8], pbspsessionkey: &[u8], pstgglobals: P0, pprights: &mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> + pub unsafe fn GetRights<'a, P0>(&self, pdata: &[u8], pbspsessionkey: &[u8], pstgglobals: P0, pprights: *mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMDSPStorageGlobals>>, { - (::windows::core::Interface::vtable(self).base__.base__.GetRights)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbspsessionkey)), pbspsessionkey.len() as _, pstgglobals.into().abi(), ::core::mem::transmute(pprights), ::core::mem::transmute(pnrightscount), ::core::mem::transmute(abmac)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetRights)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, ::core::mem::transmute(pbspsessionkey.as_ptr()), pbspsessionkey.len() as _, pstgglobals.into().abi(), ::core::mem::transmute(pprights), ::core::mem::transmute(pnrightscount), ::core::mem::transmute(abmac)).ok() } - pub unsafe fn MakeDecision2<'a, P0, P1>(&self, fuflags: u32, pdata: &[u8], dwappsec: u32, pbspsessionkey: &[u8], pstorageglobals: P0, pappcertapp: &[u8], pappcertsp: &[u8], pszrevocationurl: &mut ::windows::core::PWSTR, pdwrevocationurllen: &mut u32, pdwrevocationbitflag: &mut u32, pqwfilesize: ::core::option::Option<&mut u64>, punknown: P1, ppexchange: &mut ::core::option::Option, abmac: &mut u8) -> ::windows::core::Result<()> + pub unsafe fn MakeDecision2<'a, P0, P1>(&self, fuflags: u32, pdata: &[u8], dwappsec: u32, pbspsessionkey: &[u8], pstorageglobals: P0, pappcertapp: &[u8], pappcertsp: &[u8], pszrevocationurl: *mut ::windows::core::PWSTR, pdwrevocationurllen: &mut u32, pdwrevocationbitflag: &mut u32, pqwfilesize: ::core::option::Option<&mut u64>, punknown: P1, ppexchange: &mut ::core::option::Option, abmac: &mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMDSPStorageGlobals>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, @@ -2558,15 +2558,15 @@ impl ISCPSecureQuery3 { (::windows::core::Interface::vtable(self).base__.MakeDecision2)( ::windows::core::Interface::as_raw(self), fuflags, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), + ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, dwappsec, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbspsessionkey)), + ::core::mem::transmute(pbspsessionkey.as_ptr()), pbspsessionkey.len() as _, pstorageglobals.into().abi(), - ::core::mem::transmute(::windows::core::as_ptr_or_null(pappcertapp)), + ::core::mem::transmute(pappcertapp.as_ptr()), pappcertapp.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pappcertsp)), + ::core::mem::transmute(pappcertsp.as_ptr()), pappcertsp.len() as _, ::core::mem::transmute(pszrevocationurl), ::core::mem::transmute(pdwrevocationurllen), @@ -2578,14 +2578,14 @@ impl ISCPSecureQuery3 { ) .ok() } - pub unsafe fn GetRightsOnClearChannel<'a, P0, P1>(&self, pdata: &[u8], pbspsessionkey: &[u8], pstgglobals: P0, pprogresscallback: P1, pprights: &mut *mut WMDMRIGHTS, pnrightscount: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetRightsOnClearChannel<'a, P0, P1>(&self, pdata: &[u8], pbspsessionkey: &[u8], pstgglobals: P0, pprogresscallback: P1, pprights: *mut *mut WMDMRIGHTS, pnrightscount: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMDSPStorageGlobals>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IWMDMProgress3>>, { - (::windows::core::Interface::vtable(self).GetRightsOnClearChannel)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbspsessionkey)), pbspsessionkey.len() as _, pstgglobals.into().abi(), pprogresscallback.into().abi(), ::core::mem::transmute(pprights), ::core::mem::transmute(pnrightscount)).ok() + (::windows::core::Interface::vtable(self).GetRightsOnClearChannel)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, ::core::mem::transmute(pbspsessionkey.as_ptr()), pbspsessionkey.len() as _, pstgglobals.into().abi(), pprogresscallback.into().abi(), ::core::mem::transmute(pprights), ::core::mem::transmute(pnrightscount)).ok() } - pub unsafe fn MakeDecisionOnClearChannel<'a, P0, P1, P2>(&self, fuflags: u32, pdata: &[u8], dwappsec: u32, pbspsessionkey: &[u8], pstorageglobals: P0, pprogresscallback: P1, pappcertapp: &[u8], pappcertsp: &[u8], pszrevocationurl: &mut ::windows::core::PWSTR, pdwrevocationurllen: &mut u32, pdwrevocationbitflag: &mut u32, pqwfilesize: ::core::option::Option<&mut u64>, punknown: P2, ppexchange: &mut ::core::option::Option) -> ::windows::core::Result<()> + pub unsafe fn MakeDecisionOnClearChannel<'a, P0, P1, P2>(&self, fuflags: u32, pdata: &[u8], dwappsec: u32, pbspsessionkey: &[u8], pstorageglobals: P0, pprogresscallback: P1, pappcertapp: &[u8], pappcertsp: &[u8], pszrevocationurl: *mut ::windows::core::PWSTR, pdwrevocationurllen: &mut u32, pdwrevocationbitflag: &mut u32, pqwfilesize: ::core::option::Option<&mut u64>, punknown: P2, ppexchange: &mut ::core::option::Option) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMDSPStorageGlobals>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IWMDMProgress3>>, @@ -2594,16 +2594,16 @@ impl ISCPSecureQuery3 { (::windows::core::Interface::vtable(self).MakeDecisionOnClearChannel)( ::windows::core::Interface::as_raw(self), fuflags, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), + ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, dwappsec, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbspsessionkey)), + ::core::mem::transmute(pbspsessionkey.as_ptr()), pbspsessionkey.len() as _, pstorageglobals.into().abi(), pprogresscallback.into().abi(), - ::core::mem::transmute(::windows::core::as_ptr_or_null(pappcertapp)), + ::core::mem::transmute(pappcertapp.as_ptr()), pappcertapp.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pappcertsp)), + ::core::mem::transmute(pappcertsp.as_ptr()), pappcertsp.len() as _, ::core::mem::transmute(pszrevocationurl), ::core::mem::transmute(pdwrevocationurllen), @@ -2695,10 +2695,10 @@ impl ISCPSession { where P0: ::std::convert::Into<::windows::core::InParam<'a, IMDSPDevice>>, { - (::windows::core::Interface::vtable(self).BeginSession)(::windows::core::Interface::as_raw(self), pidevice.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pctx)), pctx.len() as _).ok() + (::windows::core::Interface::vtable(self).BeginSession)(::windows::core::Interface::as_raw(self), pidevice.into().abi(), ::core::mem::transmute(pctx.as_ptr()), pctx.len() as _).ok() } pub unsafe fn EndSession(&self, pctx: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).EndSession)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pctx)), pctx.len() as _).ok() + (::windows::core::Interface::vtable(self).EndSession)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pctx.as_ptr()), pctx.len() as _).ok() } pub unsafe fn GetSecureQuery(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2753,10 +2753,10 @@ pub struct ISCPSession_Vtbl { pub struct IWMDMDevice(::windows::core::IUnknown); impl IWMDMDevice { pub unsafe fn GetName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetManufacturer(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetManufacturer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetManufacturer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetVersion(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2786,7 +2786,7 @@ impl IWMDMDevice { } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[cfg(feature = "Win32_Media_Audio")] - pub unsafe fn GetFormatSupport(&self, ppformatex: &mut *mut super::Audio::WAVEFORMATEX, pnformatcount: &mut u32, pppwszmimetype: &mut *mut ::windows::core::PWSTR, pnmimetypecount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetFormatSupport(&self, ppformatex: *mut *mut super::Audio::WAVEFORMATEX, pnformatcount: &mut u32, pppwszmimetype: *mut *mut ::windows::core::PWSTR, pnmimetypecount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetFormatSupport)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppformatex), ::core::mem::transmute(pnformatcount), ::core::mem::transmute(pppwszmimetype), ::core::mem::transmute(pnmimetypecount)).ok() } pub unsafe fn SendOpaqueCommand(&self, pcommand: &mut OPAQUECOMMAND) -> ::windows::core::Result<()> { @@ -2852,10 +2852,10 @@ pub struct IWMDMDevice_Vtbl { pub struct IWMDMDevice2(::windows::core::IUnknown); impl IWMDMDevice2 { pub unsafe fn GetName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetManufacturer(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetManufacturer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetManufacturer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetVersion(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2885,7 +2885,7 @@ impl IWMDMDevice2 { } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[cfg(feature = "Win32_Media_Audio")] - pub unsafe fn GetFormatSupport(&self, ppformatex: &mut *mut super::Audio::WAVEFORMATEX, pnformatcount: &mut u32, pppwszmimetype: &mut *mut ::windows::core::PWSTR, pnmimetypecount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetFormatSupport(&self, ppformatex: *mut *mut super::Audio::WAVEFORMATEX, pnformatcount: &mut u32, pppwszmimetype: *mut *mut ::windows::core::PWSTR, pnmimetypecount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetFormatSupport)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppformatex), ::core::mem::transmute(pnformatcount), ::core::mem::transmute(pppwszmimetype), ::core::mem::transmute(pnmimetypecount)).ok() } pub unsafe fn SendOpaqueCommand(&self, pcommand: &mut OPAQUECOMMAND) -> ::windows::core::Result<()> { @@ -2900,16 +2900,16 @@ impl IWMDMDevice2 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Media_Audio\"`, `\"Win32_Media_MediaFoundation\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Media_Audio", feature = "Win32_Media_MediaFoundation"))] - pub unsafe fn GetFormatSupport2(&self, dwflags: u32, ppaudioformatex: &mut *mut super::Audio::WAVEFORMATEX, pnaudioformatcount: &mut u32, ppvideoformatex: &mut *mut super::MediaFoundation::VIDEOINFOHEADER, pnvideoformatcount: &mut u32, ppfiletype: &mut *mut WMFILECAPABILITIES, pnfiletypecount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetFormatSupport2(&self, dwflags: u32, ppaudioformatex: *mut *mut super::Audio::WAVEFORMATEX, pnaudioformatcount: &mut u32, ppvideoformatex: *mut *mut super::MediaFoundation::VIDEOINFOHEADER, pnvideoformatcount: &mut u32, ppfiletype: *mut *mut WMFILECAPABILITIES, pnfiletypecount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetFormatSupport2)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(ppaudioformatex), ::core::mem::transmute(pnaudioformatcount), ::core::mem::transmute(ppvideoformatex), ::core::mem::transmute(pnvideoformatcount), ::core::mem::transmute(ppfiletype), ::core::mem::transmute(pnfiletypecount)).ok() } #[doc = "*Required features: `\"Win32_System_Ole\"`*"] #[cfg(feature = "Win32_System_Ole")] - pub unsafe fn GetSpecifyPropertyPages(&self, ppspecifyproppages: &mut ::core::option::Option, pppunknowns: &mut *mut ::core::option::Option<::windows::core::IUnknown>, pcunks: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetSpecifyPropertyPages(&self, ppspecifyproppages: &mut ::core::option::Option, pppunknowns: *mut *mut ::core::option::Option<::windows::core::IUnknown>, pcunks: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSpecifyPropertyPages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppspecifyproppages), ::core::mem::transmute(pppunknowns), ::core::mem::transmute(pcunks)).ok() } pub unsafe fn GetCanonicalName(&self, pwszpnpname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCanonicalName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszpnpname)), pwszpnpname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetCanonicalName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszpnpname.as_ptr()), pwszpnpname.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2982,10 +2982,10 @@ pub struct IWMDMDevice2_Vtbl { pub struct IWMDMDevice3(::windows::core::IUnknown); impl IWMDMDevice3 { pub unsafe fn GetName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetManufacturer(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetManufacturer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetManufacturer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetVersion(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -3015,7 +3015,7 @@ impl IWMDMDevice3 { } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[cfg(feature = "Win32_Media_Audio")] - pub unsafe fn GetFormatSupport(&self, ppformatex: &mut *mut super::Audio::WAVEFORMATEX, pnformatcount: &mut u32, pppwszmimetype: &mut *mut ::windows::core::PWSTR, pnmimetypecount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetFormatSupport(&self, ppformatex: *mut *mut super::Audio::WAVEFORMATEX, pnformatcount: &mut u32, pppwszmimetype: *mut *mut ::windows::core::PWSTR, pnmimetypecount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetFormatSupport)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppformatex), ::core::mem::transmute(pnformatcount), ::core::mem::transmute(pppwszmimetype), ::core::mem::transmute(pnmimetypecount)).ok() } pub unsafe fn SendOpaqueCommand(&self, pcommand: &mut OPAQUECOMMAND) -> ::windows::core::Result<()> { @@ -3030,16 +3030,16 @@ impl IWMDMDevice3 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_Media_Audio\"`, `\"Win32_Media_MediaFoundation\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_Media_Audio", feature = "Win32_Media_MediaFoundation"))] - pub unsafe fn GetFormatSupport2(&self, dwflags: u32, ppaudioformatex: &mut *mut super::Audio::WAVEFORMATEX, pnaudioformatcount: &mut u32, ppvideoformatex: &mut *mut super::MediaFoundation::VIDEOINFOHEADER, pnvideoformatcount: &mut u32, ppfiletype: &mut *mut WMFILECAPABILITIES, pnfiletypecount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetFormatSupport2(&self, dwflags: u32, ppaudioformatex: *mut *mut super::Audio::WAVEFORMATEX, pnaudioformatcount: &mut u32, ppvideoformatex: *mut *mut super::MediaFoundation::VIDEOINFOHEADER, pnvideoformatcount: &mut u32, ppfiletype: *mut *mut WMFILECAPABILITIES, pnfiletypecount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetFormatSupport2)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(ppaudioformatex), ::core::mem::transmute(pnaudioformatcount), ::core::mem::transmute(ppvideoformatex), ::core::mem::transmute(pnvideoformatcount), ::core::mem::transmute(ppfiletype), ::core::mem::transmute(pnfiletypecount)).ok() } #[doc = "*Required features: `\"Win32_System_Ole\"`*"] #[cfg(feature = "Win32_System_Ole")] - pub unsafe fn GetSpecifyPropertyPages(&self, ppspecifyproppages: &mut ::core::option::Option, pppunknowns: &mut *mut ::core::option::Option<::windows::core::IUnknown>, pcunks: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetSpecifyPropertyPages(&self, ppspecifyproppages: &mut ::core::option::Option, pppunknowns: *mut *mut ::core::option::Option<::windows::core::IUnknown>, pcunks: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetSpecifyPropertyPages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppspecifyproppages), ::core::mem::transmute(pppunknowns), ::core::mem::transmute(pcunks)).ok() } pub unsafe fn GetCanonicalName(&self, pwszpnpname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetCanonicalName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszpnpname)), pwszpnpname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetCanonicalName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszpnpname.as_ptr()), pwszpnpname.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -3064,8 +3064,8 @@ impl IWMDMDevice3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetFormatCapability)(::windows::core::Interface::as_raw(self), format, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn DeviceIoControl(&self, dwiocontrolcode: u32, lpinbuffer: &[u8], lpoutbuffer: &mut u8, pnoutbuffersize: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DeviceIoControl)(::windows::core::Interface::as_raw(self), dwiocontrolcode, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpinbuffer)), lpinbuffer.len() as _, ::core::mem::transmute(lpoutbuffer), ::core::mem::transmute(pnoutbuffersize)).ok() + pub unsafe fn DeviceIoControl(&self, dwiocontrolcode: u32, lpinbuffer: &[u8], lpoutbuffer: *mut u8, pnoutbuffersize: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).DeviceIoControl)(::windows::core::Interface::as_raw(self), dwiocontrolcode, ::core::mem::transmute(lpinbuffer.as_ptr()), lpinbuffer.len() as _, ::core::mem::transmute(lpoutbuffer), ::core::mem::transmute(pnoutbuffersize)).ok() } pub unsafe fn FindStorage<'a, P0>(&self, findscope: WMDM_FIND_SCOPE, pwszuniqueid: P0) -> ::windows::core::Result where @@ -3247,11 +3247,11 @@ pub struct IWMDMDeviceControl_Vtbl { #[repr(transparent)] pub struct IWMDMDeviceSession(::windows::core::IUnknown); impl IWMDMDeviceSession { - pub unsafe fn BeginSession(&self, r#type: WMDM_SESSION_TYPE, pctx: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).BeginSession)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pctx)), pctx.len() as _).ok() + pub unsafe fn BeginSession(&self, r#type: WMDM_SESSION_TYPE, pctx: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).BeginSession)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pctx.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pctx.as_deref().map_or(0, |slice| slice.len() as _)).ok() } - pub unsafe fn EndSession(&self, r#type: WMDM_SESSION_TYPE, pctx: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).EndSession)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pctx)), pctx.len() as _).ok() + pub unsafe fn EndSession(&self, r#type: WMDM_SESSION_TYPE, pctx: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).EndSession)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pctx.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pctx.as_deref().map_or(0, |slice| slice.len() as _)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3300,7 +3300,7 @@ pub struct IWMDMDeviceSession_Vtbl { #[repr(transparent)] pub struct IWMDMEnumDevice(::windows::core::IUnknown); impl IWMDMEnumDevice { - pub unsafe fn Next(&self, celt: u32, ppdevice: &mut ::core::option::Option, pceltfetched: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Next(&self, celt: u32, ppdevice: *mut ::core::option::Option, pceltfetched: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), celt, ::core::mem::transmute(ppdevice), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result { @@ -3363,7 +3363,7 @@ pub struct IWMDMEnumDevice_Vtbl { #[repr(transparent)] pub struct IWMDMEnumStorage(::windows::core::IUnknown); impl IWMDMEnumStorage { - pub unsafe fn Next(&self, celt: u32, ppstorage: &mut ::core::option::Option, pceltfetched: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Next(&self, celt: u32, ppstorage: *mut ::core::option::Option, pceltfetched: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), celt, ::core::mem::transmute(ppstorage), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result { @@ -3532,19 +3532,19 @@ pub struct IWMDMLogger_Vtbl { #[repr(transparent)] pub struct IWMDMMetaData(::windows::core::IUnknown); impl IWMDMMetaData { - pub unsafe fn AddItem<'a, P0>(&self, r#type: WMDM_TAG_DATATYPE, pwsztagname: P0, pvalue: &[u8]) -> ::windows::core::Result<()> + pub unsafe fn AddItem<'a, P0>(&self, r#type: WMDM_TAG_DATATYPE, pwsztagname: P0, pvalue: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).AddItem)(::windows::core::Interface::as_raw(self), r#type, pwsztagname.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).AddItem)(::windows::core::Interface::as_raw(self), r#type, pwsztagname.into(), ::core::mem::transmute(pvalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvalue.as_deref().map_or(0, |slice| slice.len() as _)).ok() } - pub unsafe fn QueryByName<'a, P0>(&self, pwsztagname: P0, ptype: &mut WMDM_TAG_DATATYPE, pvalue: &mut *mut u8, pcblength: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn QueryByName<'a, P0>(&self, pwsztagname: P0, ptype: &mut WMDM_TAG_DATATYPE, pvalue: *mut *mut u8, pcblength: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { (::windows::core::Interface::vtable(self).QueryByName)(::windows::core::Interface::as_raw(self), pwsztagname.into(), ::core::mem::transmute(ptype), ::core::mem::transmute(pvalue), ::core::mem::transmute(pcblength)).ok() } - pub unsafe fn QueryByIndex(&self, iindex: u32, ppwszname: &mut *mut u16, ptype: &mut WMDM_TAG_DATATYPE, ppvalue: &mut *mut u8, pcblength: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn QueryByIndex(&self, iindex: u32, ppwszname: &mut *mut u16, ptype: &mut WMDM_TAG_DATATYPE, ppvalue: *mut *mut u8, pcblength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).QueryByIndex)(::windows::core::Interface::as_raw(self), iindex, ::core::mem::transmute(ppwszname), ::core::mem::transmute(ptype), ::core::mem::transmute(ppvalue), ::core::mem::transmute(pcblength)).ok() } pub unsafe fn GetItemCount(&self) -> ::windows::core::Result { @@ -3737,10 +3737,10 @@ impl IWMDMOperation { (::windows::core::Interface::vtable(self).BeginWrite)(::windows::core::Interface::as_raw(self)).ok() } pub unsafe fn GetObjectName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetObjectName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetObjectName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn SetObjectName(&self, pwszname: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetObjectName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).SetObjectName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[cfg(feature = "Win32_Media_Audio")] @@ -3758,7 +3758,7 @@ impl IWMDMOperation { pub unsafe fn SetObjectTotalSize(&self, dwsize: u32, dwsizehigh: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetObjectTotalSize)(::windows::core::Interface::as_raw(self), dwsize, dwsizehigh).ok() } - pub unsafe fn TransferObjectData(&self, pdata: &mut u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn TransferObjectData(&self, pdata: *mut u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).TransferObjectData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), ::core::mem::transmute(pdwsize), ::core::mem::transmute(abmac)).ok() } pub unsafe fn End<'a, P0>(&self, phcompletioncode: &::windows::core::HRESULT, pnewobject: P0) -> ::windows::core::Result<()> @@ -3835,10 +3835,10 @@ impl IWMDMOperation2 { (::windows::core::Interface::vtable(self).base__.BeginWrite)(::windows::core::Interface::as_raw(self)).ok() } pub unsafe fn GetObjectName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetObjectName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetObjectName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn SetObjectName(&self, pwszname: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetObjectName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetObjectName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[cfg(feature = "Win32_Media_Audio")] @@ -3856,7 +3856,7 @@ impl IWMDMOperation2 { pub unsafe fn SetObjectTotalSize(&self, dwsize: u32, dwsizehigh: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SetObjectTotalSize)(::windows::core::Interface::as_raw(self), dwsize, dwsizehigh).ok() } - pub unsafe fn TransferObjectData(&self, pdata: &mut u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn TransferObjectData(&self, pdata: *mut u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.TransferObjectData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), ::core::mem::transmute(pdwsize), ::core::mem::transmute(abmac)).ok() } pub unsafe fn End<'a, P0>(&self, phcompletioncode: &::windows::core::HRESULT, pnewobject: P0) -> ::windows::core::Result<()> @@ -3950,10 +3950,10 @@ impl IWMDMOperation3 { (::windows::core::Interface::vtable(self).base__.BeginWrite)(::windows::core::Interface::as_raw(self)).ok() } pub unsafe fn GetObjectName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetObjectName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetObjectName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn SetObjectName(&self, pwszname: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetObjectName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetObjectName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } #[doc = "*Required features: `\"Win32_Media_Audio\"`*"] #[cfg(feature = "Win32_Media_Audio")] @@ -3971,7 +3971,7 @@ impl IWMDMOperation3 { pub unsafe fn SetObjectTotalSize(&self, dwsize: u32, dwsizehigh: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SetObjectTotalSize)(::windows::core::Interface::as_raw(self), dwsize, dwsizehigh).ok() } - pub unsafe fn TransferObjectData(&self, pdata: &mut u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn TransferObjectData(&self, pdata: *mut u8, pdwsize: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.TransferObjectData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), ::core::mem::transmute(pdwsize), ::core::mem::transmute(abmac)).ok() } pub unsafe fn End<'a, P0>(&self, phcompletioncode: &::windows::core::HRESULT, pnewobject: P0) -> ::windows::core::Result<()> @@ -3980,7 +3980,7 @@ impl IWMDMOperation3 { { (::windows::core::Interface::vtable(self).base__.End)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(phcompletioncode), pnewobject.into().abi()).ok() } - pub unsafe fn TransferObjectDataOnClearChannel(&self, pdata: &mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn TransferObjectDataOnClearChannel(&self, pdata: *mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).TransferObjectDataOnClearChannel)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), ::core::mem::transmute(pdwsize)).ok() } } @@ -4273,7 +4273,7 @@ pub struct IWMDMProgress3_Vtbl { #[repr(transparent)] pub struct IWMDMRevoked(::windows::core::IUnknown); impl IWMDMRevoked { - pub unsafe fn GetRevocationURL(&self, ppwszrevocationurl: &mut ::windows::core::PWSTR, pdwbufferlen: &mut u32, pdwrevokedbitflag: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetRevocationURL(&self, ppwszrevocationurl: *mut ::windows::core::PWSTR, pdwbufferlen: &mut u32, pdwrevokedbitflag: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetRevocationURL)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppwszrevocationurl), ::core::mem::transmute(pdwbufferlen), ::core::mem::transmute(pdwrevokedbitflag)).ok() } } @@ -4337,7 +4337,7 @@ impl IWMDMStorage { (::windows::core::Interface::vtable(self).GetAttributes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwattributes), ::core::mem::transmute(pformat)).ok() } pub unsafe fn GetName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetDate(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -4346,7 +4346,7 @@ impl IWMDMStorage { pub unsafe fn GetSize(&self, pdwsizelow: &mut u32, pdwsizehigh: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwsizelow), ::core::mem::transmute(pdwsizehigh)).ok() } - pub unsafe fn GetRights(&self, pprights: &mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetRights(&self, pprights: *mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetRights)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprights), ::core::mem::transmute(pnrightscount), ::core::mem::transmute(abmac)).ok() } pub unsafe fn EnumStorage(&self) -> ::windows::core::Result { @@ -4431,7 +4431,7 @@ impl IWMDMStorage2 { (::windows::core::Interface::vtable(self).base__.GetAttributes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwattributes), ::core::mem::transmute(pformat)).ok() } pub unsafe fn GetName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetDate(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -4440,7 +4440,7 @@ impl IWMDMStorage2 { pub unsafe fn GetSize(&self, pdwsizelow: &mut u32, pdwsizehigh: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwsizelow), ::core::mem::transmute(pdwsizehigh)).ok() } - pub unsafe fn GetRights(&self, pprights: &mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetRights(&self, pprights: *mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetRights)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprights), ::core::mem::transmute(pnrightscount), ::core::mem::transmute(abmac)).ok() } pub unsafe fn EnumStorage(&self) -> ::windows::core::Result { @@ -4551,7 +4551,7 @@ impl IWMDMStorage3 { (::windows::core::Interface::vtable(self).base__.base__.GetAttributes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwattributes), ::core::mem::transmute(pformat)).ok() } pub unsafe fn GetName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetDate(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -4560,7 +4560,7 @@ impl IWMDMStorage3 { pub unsafe fn GetSize(&self, pdwsizelow: &mut u32, pdwsizehigh: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwsizelow), ::core::mem::transmute(pdwsizehigh)).ok() } - pub unsafe fn GetRights(&self, pprights: &mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetRights(&self, pprights: *mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetRights)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprights), ::core::mem::transmute(pnrightscount), ::core::mem::transmute(abmac)).ok() } pub unsafe fn EnumStorage(&self) -> ::windows::core::Result { @@ -4601,8 +4601,8 @@ impl IWMDMStorage3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).CreateEmptyMetadataObject)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn SetEnumPreference(&self, pmode: &mut WMDM_STORAGE_ENUM_MODE, pviews: &[WMDMMetadataView]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetEnumPreference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pmode), pviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviews))).ok() + pub unsafe fn SetEnumPreference(&self, pmode: &mut WMDM_STORAGE_ENUM_MODE, pviews: ::core::option::Option<&[WMDMMetadataView]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetEnumPreference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pmode), pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -4698,7 +4698,7 @@ impl IWMDMStorage4 { (::windows::core::Interface::vtable(self).base__.base__.base__.GetAttributes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwattributes), ::core::mem::transmute(pformat)).ok() } pub unsafe fn GetName(&self, pwszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszname)), pwszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszname.as_ptr()), pwszname.len() as _).ok() } pub unsafe fn GetDate(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -4707,7 +4707,7 @@ impl IWMDMStorage4 { pub unsafe fn GetSize(&self, pdwsizelow: &mut u32, pdwsizehigh: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwsizelow), ::core::mem::transmute(pdwsizehigh)).ok() } - pub unsafe fn GetRights(&self, pprights: &mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetRights(&self, pprights: *mut *mut WMDMRIGHTS, pnrightscount: &mut u32, abmac: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetRights)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprights), ::core::mem::transmute(pnrightscount), ::core::mem::transmute(abmac)).ok() } pub unsafe fn EnumStorage(&self) -> ::windows::core::Result { @@ -4748,16 +4748,16 @@ impl IWMDMStorage4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.CreateEmptyMetadataObject)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn SetEnumPreference(&self, pmode: &mut WMDM_STORAGE_ENUM_MODE, pviews: &[WMDMMetadataView]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetEnumPreference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pmode), pviews.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pviews))).ok() + pub unsafe fn SetEnumPreference(&self, pmode: &mut WMDM_STORAGE_ENUM_MODE, pviews: ::core::option::Option<&[WMDMMetadataView]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetEnumPreference)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pmode), pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } - pub unsafe fn SetReferences(&self, ppiwmdmstorage: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetReferences)(::windows::core::Interface::as_raw(self), ppiwmdmstorage.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppiwmdmstorage))).ok() + pub unsafe fn SetReferences(&self, ppiwmdmstorage: ::core::option::Option<&[::core::option::Option]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetReferences)(::windows::core::Interface::as_raw(self), ppiwmdmstorage.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppiwmdmstorage.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } - pub unsafe fn GetReferences(&self, pdwrefs: &mut u32, pppiwmdmstorage: &mut *mut ::core::option::Option) -> ::windows::core::Result<()> { + pub unsafe fn GetReferences(&self, pdwrefs: &mut u32, pppiwmdmstorage: *mut *mut ::core::option::Option) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetReferences)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwrefs), ::core::mem::transmute(pppiwmdmstorage)).ok() } - pub unsafe fn GetRightsWithProgress<'a, P0>(&self, piprogresscallback: P0, pprights: &mut *mut WMDMRIGHTS, pnrightscount: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetRightsWithProgress<'a, P0>(&self, piprogresscallback: P0, pprights: *mut *mut WMDMRIGHTS, pnrightscount: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IWMDMProgress3>>, { @@ -4765,7 +4765,7 @@ impl IWMDMStorage4 { } pub unsafe fn GetSpecifiedMetadata(&self, ppwszpropnames: &[::windows::core::PWSTR]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetSpecifiedMetadata)(::windows::core::Interface::as_raw(self), ppwszpropnames.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppwszpropnames)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetSpecifiedMetadata)(::windows::core::Interface::as_raw(self), ppwszpropnames.len() as _, ::core::mem::transmute(ppwszpropnames.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn FindStorage<'a, P0>(&self, findscope: WMDM_FIND_SCOPE, pwszuniqueid: P0) -> ::windows::core::Result where diff --git a/crates/libs/windows/src/Windows/Win32/Media/DirectShow/impl.rs b/crates/libs/windows/src/Windows/Win32/Media/DirectShow/impl.rs index ea51c6c95e..ebb2fc55c5 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/DirectShow/impl.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/DirectShow/impl.rs @@ -6006,7 +6006,7 @@ pub trait IAsyncReader_Impl: Sized { fn Request(&self, psample: &::core::option::Option, dwuser: usize) -> ::windows::core::Result<()>; fn WaitForNext(&self, dwtimeout: u32, ppsample: *mut ::core::option::Option, pdwuser: *mut usize) -> ::windows::core::Result<()>; fn SyncReadAligned(&self, psample: &::core::option::Option) -> ::windows::core::Result<()>; - fn SyncRead(&self, llposition: i64, llength: i32) -> ::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<()>; @@ -6043,13 +6043,7 @@ impl IAsyncReader_Vtbl { unsafe extern "system" fn SyncRead, 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(); - match this.SyncRead(::core::mem::transmute_copy(&llposition), ::core::mem::transmute_copy(&llength)) { - ::core::result::Result::Ok(ok__) => { - ::core::ptr::write(pbuffer, ::core::mem::transmute(ok__)); - ::windows::core::HRESULT(0) - } - ::core::result::Result::Err(err) => err.into(), - } + this.SyncRead(::core::mem::transmute_copy(&llposition), ::core::mem::transmute_copy(&llength), ::core::mem::transmute_copy(&pbuffer)).into() } unsafe extern "system" fn Length, 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; @@ -31800,7 +31794,7 @@ impl IMediaSample_Vtbl { } #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))] pub trait IMediaSample2_Impl: Sized + IMediaSample_Impl { - fn GetProperties(&self, cbproperties: u32) -> ::windows::core::Result; + 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"))] @@ -31811,13 +31805,7 @@ impl IMediaSample2_Vtbl { unsafe extern "system" fn GetProperties, 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(); - match this.GetProperties(::core::mem::transmute_copy(&cbproperties)) { - ::core::result::Result::Ok(ok__) => { - ::core::ptr::write(pbproperties, ::core::mem::transmute(ok__)); - ::windows::core::HRESULT(0) - } - ::core::result::Result::Err(err) => err.into(), - } + this.GetProperties(::core::mem::transmute_copy(&cbproperties), ::core::mem::transmute_copy(&pbproperties)).into() } unsafe extern "system" fn SetProperties, 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; diff --git a/crates/libs/windows/src/Windows/Win32/Media/DirectShow/mod.rs b/crates/libs/windows/src/Windows/Win32/Media/DirectShow/mod.rs index cb73e936b2..28117db2c5 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/DirectShow/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/DirectShow/mod.rs @@ -310,7 +310,7 @@ pub unsafe fn AMGetErrorTextA(hr: ::windows::core::HRESULT, pbuffer: &mut [u8]) extern "system" { fn AMGetErrorTextA(hr: ::windows::core::HRESULT, pbuffer: ::windows::core::PSTR, maxlen: u32) -> u32; } - AMGetErrorTextA(hr, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuffer)), pbuffer.len() as _) + AMGetErrorTextA(hr, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _) } #[doc = "*Required features: `\"Win32_Media_DirectShow\"`*"] #[inline] @@ -319,7 +319,7 @@ pub unsafe fn AMGetErrorTextW(hr: ::windows::core::HRESULT, pbuffer: &mut [u16]) extern "system" { fn AMGetErrorTextW(hr: ::windows::core::HRESULT, pbuffer: ::windows::core::PWSTR, maxlen: u32) -> u32; } - AMGetErrorTextW(hr, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuffer)), pbuffer.len() as _) + AMGetErrorTextW(hr, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _) } #[doc = "*Required features: `\"Win32_Media_DirectShow\"`*"] pub const AMINTERLACE_1FieldPerSample: u32 = 2u32; @@ -15976,7 +15976,7 @@ impl IAMMediaTypeSample { (::windows::core::Interface::vtable(self).base__.CompletionStatus)(::windows::core::Interface::as_raw(self), dwflags, dwmilliseconds).ok() } pub unsafe fn SetPointer(&self, pbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPointer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuffer)), pbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).SetPointer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _).ok() } pub unsafe fn GetPointer(&self) -> ::windows::core::Result<*mut u8> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -18663,8 +18663,8 @@ impl IAMVfwCompressDialogs { pub unsafe fn GetState(&self, pstate: *mut ::core::ffi::c_void, pcbstate: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pstate), ::core::mem::transmute(pcbstate)).ok() } - pub unsafe fn SetState(&self, pstate: *const ::core::ffi::c_void, cbstate: i32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pstate), cbstate).ok() + pub unsafe fn SetState(&self, pstate: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pstate.as_ptr()), pstate.len() as _).ok() } pub unsafe fn SendDriverMessage(&self, umsg: i32, dw1: i32, dw2: i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SendDriverMessage)(::windows::core::Interface::as_raw(self), umsg, dw1, dw2).ok() @@ -18721,12 +18721,12 @@ pub struct IAMVfwCompressDialogs_Vtbl { #[repr(transparent)] pub struct IAMVideoAccelerator(::windows::core::IUnknown); impl IAMVideoAccelerator { - pub unsafe fn GetVideoAcceleratorGUIDs(&self, pdwnumguidssupported: &mut u32, pguidssupported: ::core::option::Option<&mut ::windows::core::GUID>) -> ::windows::core::Result<()> { + pub unsafe fn GetVideoAcceleratorGUIDs(&self, pdwnumguidssupported: &mut u32, pguidssupported: *mut ::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetVideoAcceleratorGUIDs)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwnumguidssupported), ::core::mem::transmute(pguidssupported)).ok() } #[doc = "*Required features: `\"Win32_Graphics_DirectDraw\"`*"] #[cfg(feature = "Win32_Graphics_DirectDraw")] - pub unsafe fn GetUncompFormatsSupported(&self, pguid: &::windows::core::GUID, pdwnumformatssupported: &mut u32, pformatssupported: ::core::option::Option<&mut super::super::Graphics::DirectDraw::DDPIXELFORMAT>) -> ::windows::core::Result<()> { + pub unsafe fn GetUncompFormatsSupported(&self, pguid: &::windows::core::GUID, pdwnumformatssupported: &mut u32, pformatssupported: *mut super::super::Graphics::DirectDraw::DDPIXELFORMAT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetUncompFormatsSupported)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pguid), ::core::mem::transmute(pdwnumformatssupported), ::core::mem::transmute(pformatssupported)).ok() } #[doc = "*Required features: `\"Win32_Graphics_DirectDraw\"`*"] @@ -18736,12 +18736,12 @@ impl IAMVideoAccelerator { } #[doc = "*Required features: `\"Win32_Graphics_DirectDraw\"`*"] #[cfg(feature = "Win32_Graphics_DirectDraw")] - pub unsafe fn GetCompBufferInfo(&self, pguid: &::windows::core::GUID, pamvauncompdatainfo: &AMVAUncompDataInfo, pdwnumtypescompbuffers: &mut u32, pamvacompbufferinfo: ::core::option::Option<&mut AMVACompBufferInfo>) -> ::windows::core::Result<()> { + pub unsafe fn GetCompBufferInfo(&self, pguid: &::windows::core::GUID, pamvauncompdatainfo: &AMVAUncompDataInfo, pdwnumtypescompbuffers: &mut u32, pamvacompbufferinfo: *mut AMVACompBufferInfo) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetCompBufferInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pguid), ::core::mem::transmute(pamvauncompdatainfo), ::core::mem::transmute(pdwnumtypescompbuffers), ::core::mem::transmute(pamvacompbufferinfo)).ok() } #[doc = "*Required features: `\"Win32_Graphics_DirectDraw\"`*"] #[cfg(feature = "Win32_Graphics_DirectDraw")] - pub unsafe fn GetInternalCompBufferInfo(&self, pdwnumtypescompbuffers: &mut u32, pamvacompbufferinfo: ::core::option::Option<&mut AMVACompBufferInfo>) -> ::windows::core::Result<()> { + pub unsafe fn GetInternalCompBufferInfo(&self, pdwnumtypescompbuffers: &mut u32, pamvacompbufferinfo: *mut AMVACompBufferInfo) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetInternalCompBufferInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwnumtypescompbuffers), ::core::mem::transmute(pamvacompbufferinfo)).ok() } pub unsafe fn BeginFrame(&self, amvabeginframeinfo: &AMVABeginFrameInfo) -> ::windows::core::Result<()> { @@ -18762,7 +18762,7 @@ impl IAMVideoAccelerator { (::windows::core::Interface::vtable(self).ReleaseBuffer)(::windows::core::Interface::as_raw(self), dwtypeindex, dwbufferindex).ok() } pub unsafe fn Execute(&self, dwfunction: u32, lpprivateinputdata: *const ::core::ffi::c_void, cbprivateinputdata: u32, lpprivateoutputdat: *const ::core::ffi::c_void, cbprivateoutputdata: u32, pamvabufferinfo: &[AMVABUFFERINFO]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Execute)(::windows::core::Interface::as_raw(self), dwfunction, ::core::mem::transmute(lpprivateinputdata), cbprivateinputdata, ::core::mem::transmute(lpprivateoutputdat), cbprivateoutputdata, pamvabufferinfo.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pamvabufferinfo))).ok() + (::windows::core::Interface::vtable(self).Execute)(::windows::core::Interface::as_raw(self), dwfunction, ::core::mem::transmute(lpprivateinputdata), cbprivateinputdata, ::core::mem::transmute(lpprivateoutputdat), cbprivateoutputdata, pamvabufferinfo.len() as _, ::core::mem::transmute(pamvabufferinfo.as_ptr())).ok() } pub unsafe fn QueryRenderStatus(&self, dwtypeindex: u32, dwbufferindex: u32, dwflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).QueryRenderStatus)(::windows::core::Interface::as_raw(self), dwtypeindex, dwbufferindex, dwflags).ok() @@ -22312,9 +22312,8 @@ impl IAsyncReader { { (::windows::core::Interface::vtable(self).SyncReadAligned)(::windows::core::Interface::as_raw(self), psample.into().abi()).ok() } - pub unsafe fn SyncRead(&self, llposition: i64, llength: i32) -> ::windows::core::Result { - let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).SyncRead)(::windows::core::Interface::as_raw(self), llposition, llength, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + pub unsafe fn SyncRead(&self, llposition: i64, pbuffer: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SyncRead)(::windows::core::Interface::as_raw(self), llposition, pbuffer.len() as _, ::core::mem::transmute(pbuffer.as_ptr())).ok() } pub unsafe fn Length(&self, ptotal: &mut i64, pavailable: &mut i64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Length)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptotal), ::core::mem::transmute(pavailable)).ok() @@ -23756,7 +23755,7 @@ impl IBDA_ConditionalAccess { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn get_SmartCardApplications(&self, pulcapplications: &mut u32, rgapplications: &mut [SmartCardApplication]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).get_SmartCardApplications)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulcapplications), rgapplications.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgapplications))).ok() + (::windows::core::Interface::vtable(self).get_SmartCardApplications)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulcapplications), rgapplications.len() as _, ::core::mem::transmute(rgapplications.as_ptr())).ok() } pub unsafe fn get_Entitlement(&self, usvirtualchannel: u16) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -23857,10 +23856,10 @@ impl IBDA_ConditionalAccessEx { P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CheckEntitlementToken)(::windows::core::Interface::as_raw(self), uldialogrequest, bstrlanguage.into().abi(), requesttype, pbentitlementtoken.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbentitlementtoken)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CheckEntitlementToken)(::windows::core::Interface::as_raw(self), uldialogrequest, bstrlanguage.into().abi(), requesttype, pbentitlementtoken.len() as _, ::core::mem::transmute(pbentitlementtoken.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetCaptureToken(&self, pbcapturetoken: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetCaptureToken)(::windows::core::Interface::as_raw(self), pbcapturetoken.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbcapturetoken))).ok() + (::windows::core::Interface::vtable(self).SetCaptureToken)(::windows::core::Interface::as_raw(self), pbcapturetoken.len() as _, ::core::mem::transmute(pbcapturetoken.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -24016,16 +24015,16 @@ impl IBDA_DRIWMDRMSession { (::windows::core::Interface::vtable(self).AcknowledgeLicense)(::windows::core::Interface::as_raw(self), hrlicenseack).ok() } pub unsafe fn ProcessLicenseChallenge(&self, pblicensemessage: &[u8], pdwcblicenseresponse: &mut u32, ppblicenseresponse: &mut *mut u8) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ProcessLicenseChallenge)(::windows::core::Interface::as_raw(self), pblicensemessage.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pblicensemessage)), ::core::mem::transmute(pdwcblicenseresponse), ::core::mem::transmute(ppblicenseresponse)).ok() + (::windows::core::Interface::vtable(self).ProcessLicenseChallenge)(::windows::core::Interface::as_raw(self), pblicensemessage.len() as _, ::core::mem::transmute(pblicensemessage.as_ptr()), ::core::mem::transmute(pdwcblicenseresponse), ::core::mem::transmute(ppblicenseresponse)).ok() } pub unsafe fn ProcessRegistrationChallenge(&self, pbregistrationmessage: &[u8], pdwcbregistrationresponse: &mut u32, ppbregistrationresponse: &mut *mut u8) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ProcessRegistrationChallenge)(::windows::core::Interface::as_raw(self), pbregistrationmessage.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbregistrationmessage)), ::core::mem::transmute(pdwcbregistrationresponse), ::core::mem::transmute(ppbregistrationresponse)).ok() + (::windows::core::Interface::vtable(self).ProcessRegistrationChallenge)(::windows::core::Interface::as_raw(self), pbregistrationmessage.len() as _, ::core::mem::transmute(pbregistrationmessage.as_ptr()), ::core::mem::transmute(pdwcbregistrationresponse), ::core::mem::transmute(ppbregistrationresponse)).ok() } pub unsafe fn SetRevInfo(&self, pbrevinfo: &[u8], pdwresponse: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetRevInfo)(::windows::core::Interface::as_raw(self), pbrevinfo.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbrevinfo)), ::core::mem::transmute(pdwresponse)).ok() + (::windows::core::Interface::vtable(self).SetRevInfo)(::windows::core::Interface::as_raw(self), pbrevinfo.len() as _, ::core::mem::transmute(pbrevinfo.as_ptr()), ::core::mem::transmute(pdwresponse)).ok() } pub unsafe fn SetCrl(&self, pbcrllen: &[u8], pdwresponse: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetCrl)(::windows::core::Interface::as_raw(self), pbcrllen.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbcrllen)), ::core::mem::transmute(pdwresponse)).ok() + (::windows::core::Interface::vtable(self).SetCrl)(::windows::core::Interface::as_raw(self), pbcrllen.len() as _, ::core::mem::transmute(pbcrllen.as_ptr()), ::core::mem::transmute(pdwresponse)).ok() } pub unsafe fn GetHMSAssociationData(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetHMSAssociationData)(::windows::core::Interface::as_raw(self)).ok() @@ -24771,9 +24770,9 @@ impl IBDA_DiseqCommand { (::windows::core::Interface::vtable(self).SetDiseqRepeats)(::windows::core::Interface::as_raw(self), ulrepeats).ok() } pub unsafe fn put_DiseqSendCommand(&self, ulrequestid: u32, pbcommand: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).put_DiseqSendCommand)(::windows::core::Interface::as_raw(self), ulrequestid, pbcommand.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbcommand))).ok() + (::windows::core::Interface::vtable(self).put_DiseqSendCommand)(::windows::core::Interface::as_raw(self), ulrequestid, pbcommand.len() as _, ::core::mem::transmute(pbcommand.as_ptr())).ok() } - pub unsafe fn get_DiseqResponse(&self, ulrequestid: u32, pulcbresponselen: &mut u32, pbresponse: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn get_DiseqResponse(&self, ulrequestid: u32, pulcbresponselen: &mut u32, pbresponse: *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).get_DiseqResponse)(::windows::core::Interface::as_raw(self), ulrequestid, ::core::mem::transmute(pulcbresponselen), ::core::mem::transmute(pbresponse)).ok() } } @@ -24978,9 +24977,9 @@ impl IBDA_EthernetFilter { (::windows::core::Interface::vtable(self).GetMulticastListSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulcbaddresses)).ok() } pub unsafe fn PutMulticastList(&self, paddresslist: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).PutMulticastList)(::windows::core::Interface::as_raw(self), paddresslist.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(paddresslist))).ok() + (::windows::core::Interface::vtable(self).PutMulticastList)(::windows::core::Interface::as_raw(self), paddresslist.len() as _, ::core::mem::transmute(paddresslist.as_ptr())).ok() } - pub unsafe fn GetMulticastList(&self, pulcbaddresses: &mut u32, paddresslist: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetMulticastList(&self, pulcbaddresses: &mut u32, paddresslist: *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetMulticastList)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulcbaddresses), ::core::mem::transmute(paddresslist)).ok() } pub unsafe fn PutMulticastMode(&self, ulmodemask: u32) -> ::windows::core::Result<()> { @@ -25440,7 +25439,7 @@ pub struct IBDA_IPSinkControl_Vtbl { #[repr(transparent)] pub struct IBDA_IPSinkInfo(::windows::core::IUnknown); impl IBDA_IPSinkInfo { - pub unsafe fn get_MulticastList(&self, pulcbaddresses: &mut u32, ppbaddresslist: &mut *mut u8) -> ::windows::core::Result<()> { + pub unsafe fn get_MulticastList(&self, pulcbaddresses: &mut u32, ppbaddresslist: *mut *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).get_MulticastList)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulcbaddresses), ::core::mem::transmute(ppbaddresslist)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -25513,9 +25512,9 @@ impl IBDA_IPV4Filter { (::windows::core::Interface::vtable(self).GetMulticastListSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulcbaddresses)).ok() } pub unsafe fn PutMulticastList(&self, paddresslist: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).PutMulticastList)(::windows::core::Interface::as_raw(self), paddresslist.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(paddresslist))).ok() + (::windows::core::Interface::vtable(self).PutMulticastList)(::windows::core::Interface::as_raw(self), paddresslist.len() as _, ::core::mem::transmute(paddresslist.as_ptr())).ok() } - pub unsafe fn GetMulticastList(&self, pulcbaddresses: &mut u32, paddresslist: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetMulticastList(&self, pulcbaddresses: &mut u32, paddresslist: *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetMulticastList)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulcbaddresses), ::core::mem::transmute(paddresslist)).ok() } pub unsafe fn PutMulticastMode(&self, ulmodemask: u32) -> ::windows::core::Result<()> { @@ -25579,9 +25578,9 @@ impl IBDA_IPV6Filter { (::windows::core::Interface::vtable(self).GetMulticastListSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulcbaddresses)).ok() } pub unsafe fn PutMulticastList(&self, paddresslist: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).PutMulticastList)(::windows::core::Interface::as_raw(self), paddresslist.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(paddresslist))).ok() + (::windows::core::Interface::vtable(self).PutMulticastList)(::windows::core::Interface::as_raw(self), paddresslist.len() as _, ::core::mem::transmute(paddresslist.as_ptr())).ok() } - pub unsafe fn GetMulticastList(&self, pulcbaddresses: &mut u32, paddresslist: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetMulticastList(&self, pulcbaddresses: &mut u32, paddresslist: *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetMulticastList)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulcbaddresses), ::core::mem::transmute(paddresslist)).ok() } pub unsafe fn PutMulticastMode(&self, ulmodemask: u32) -> ::windows::core::Result<()> { @@ -25642,7 +25641,7 @@ pub struct IBDA_IPV6Filter_Vtbl { pub struct IBDA_ISDBConditionalAccess(::windows::core::IUnknown); impl IBDA_ISDBConditionalAccess { pub unsafe fn SetIsdbCasRequest(&self, ulrequestid: u32, pbrequestbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetIsdbCasRequest)(::windows::core::Interface::as_raw(self), ulrequestid, pbrequestbuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbrequestbuffer))).ok() + (::windows::core::Interface::vtable(self).SetIsdbCasRequest)(::windows::core::Interface::as_raw(self), ulrequestid, pbrequestbuffer.len() as _, ::core::mem::transmute(pbrequestbuffer.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -25760,7 +25759,7 @@ pub struct IBDA_LNBInfo_Vtbl { pub struct IBDA_MUX(::windows::core::IUnknown); impl IBDA_MUX { pub unsafe fn SetPidList(&self, pbpidlistbuffer: &[BDA_MUX_PIDLISTITEM]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPidList)(::windows::core::Interface::as_raw(self), pbpidlistbuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpidlistbuffer))).ok() + (::windows::core::Interface::vtable(self).SetPidList)(::windows::core::Interface::as_raw(self), pbpidlistbuffer.len() as _, ::core::mem::transmute(pbpidlistbuffer.as_ptr())).ok() } pub unsafe fn GetPidList(&self, pulpidlistcount: &mut u32, pbpidlistbuffer: &mut BDA_MUX_PIDLISTITEM) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPidList)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulpidlistcount), ::core::mem::transmute(pbpidlistbuffer)).ok() @@ -26308,19 +26307,19 @@ pub struct IBDA_TIF_REGISTRATION_Vtbl { pub struct IBDA_Topology(::windows::core::IUnknown); impl IBDA_Topology { pub unsafe fn GetNodeTypes(&self, pulcnodetypes: &mut u32, rgulnodetypes: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNodeTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulcnodetypes), rgulnodetypes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgulnodetypes))).ok() + (::windows::core::Interface::vtable(self).GetNodeTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulcnodetypes), rgulnodetypes.len() as _, ::core::mem::transmute(rgulnodetypes.as_ptr())).ok() } pub unsafe fn GetNodeDescriptors(&self, ulcnodedescriptors: &mut u32, rgnodedescriptors: &mut [BDANODE_DESCRIPTOR]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNodeDescriptors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ulcnodedescriptors), rgnodedescriptors.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgnodedescriptors))).ok() + (::windows::core::Interface::vtable(self).GetNodeDescriptors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ulcnodedescriptors), rgnodedescriptors.len() as _, ::core::mem::transmute(rgnodedescriptors.as_ptr())).ok() } pub unsafe fn GetNodeInterfaces(&self, ulnodetype: u32, pulcinterfaces: &mut u32, rgguidinterfaces: &mut [::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNodeInterfaces)(::windows::core::Interface::as_raw(self), ulnodetype, ::core::mem::transmute(pulcinterfaces), rgguidinterfaces.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgguidinterfaces))).ok() + (::windows::core::Interface::vtable(self).GetNodeInterfaces)(::windows::core::Interface::as_raw(self), ulnodetype, ::core::mem::transmute(pulcinterfaces), rgguidinterfaces.len() as _, ::core::mem::transmute(rgguidinterfaces.as_ptr())).ok() } pub unsafe fn GetPinTypes(&self, pulcpintypes: &mut u32, rgulpintypes: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPinTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulcpintypes), rgulpintypes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgulpintypes))).ok() + (::windows::core::Interface::vtable(self).GetPinTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulcpintypes), rgulpintypes.len() as _, ::core::mem::transmute(rgulpintypes.as_ptr())).ok() } pub unsafe fn GetTemplateConnections(&self, pulcconnections: &mut u32, rgconnections: &mut [BDA_TEMPLATE_CONNECTION]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTemplateConnections)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulcconnections), rgconnections.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgconnections))).ok() + (::windows::core::Interface::vtable(self).GetTemplateConnections)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulcconnections), rgconnections.len() as _, ::core::mem::transmute(rgconnections.as_ptr())).ok() } pub unsafe fn CreatePin(&self, ulpintype: u32, pulpinid: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CreatePin)(::windows::core::Interface::as_raw(self), ulpintype, ::core::mem::transmute(pulpinid)).ok() @@ -26454,7 +26453,7 @@ impl IBDA_TransportStreamSelector { pub unsafe fn SetTSID(&self, ustsid: u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetTSID)(::windows::core::Interface::as_raw(self), ustsid).ok() } - pub unsafe fn GetTSInformation(&self, pultsinformationbufferlen: &mut u32, pbtsinformationbuffer: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetTSInformation(&self, pultsinformationbufferlen: &mut u32, pbtsinformationbuffer: *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetTSInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pultsinformationbufferlen), ::core::mem::transmute(pbtsinformationbuffer)).ok() } } @@ -26619,13 +26618,13 @@ impl IBDA_WMDRMSession { (::windows::core::Interface::vtable(self).GetStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(maxcapturetoken), ::core::mem::transmute(maxstreamingpid), ::core::mem::transmute(maxlicense), ::core::mem::transmute(minsecuritylevel), ::core::mem::transmute(revinfosequencenumber), ::core::mem::transmute(revinfoissuedtime), ::core::mem::transmute(revinfottl), ::core::mem::transmute(revlistversion), ::core::mem::transmute(ulstate)).ok() } pub unsafe fn SetRevInfo(&self, pbrevinfo: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetRevInfo)(::windows::core::Interface::as_raw(self), pbrevinfo.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbrevinfo))).ok() + (::windows::core::Interface::vtable(self).SetRevInfo)(::windows::core::Interface::as_raw(self), pbrevinfo.len() as _, ::core::mem::transmute(pbrevinfo.as_ptr())).ok() } pub unsafe fn SetCrl(&self, pbcrllen: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetCrl)(::windows::core::Interface::as_raw(self), pbcrllen.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbcrllen))).ok() + (::windows::core::Interface::vtable(self).SetCrl)(::windows::core::Interface::as_raw(self), pbcrllen.len() as _, ::core::mem::transmute(pbcrllen.as_ptr())).ok() } pub unsafe fn TransactMessage(&self, pbrequest: &[u8], pulcbresponse: &mut u32, pbresponse: &mut u8) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).TransactMessage)(::windows::core::Interface::as_raw(self), pbrequest.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbrequest)), ::core::mem::transmute(pulcbresponse), ::core::mem::transmute(pbresponse)).ok() + (::windows::core::Interface::vtable(self).TransactMessage)(::windows::core::Interface::as_raw(self), pbrequest.len() as _, ::core::mem::transmute(pbrequest.as_ptr()), ::core::mem::transmute(pulcbresponse), ::core::mem::transmute(pbresponse)).ok() } pub unsafe fn GetLicense(&self, uuidkey: &::windows::core::GUID, pulpackagelen: &mut u32, pbpackage: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetLicense)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(uuidkey), ::core::mem::transmute(pulpackagelen), ::core::mem::transmute(pbpackage)).ok() @@ -26634,7 +26633,7 @@ impl IBDA_WMDRMSession { (::windows::core::Interface::vtable(self).ReissueLicense)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(uuidkey)).ok() } pub unsafe fn RenewLicense(&self, pbinxmrlicense: &[u8], pbentitlementtoken: &[u8], puldescramblestatus: &mut u32, puloutxmrlicenselen: &mut u32, pboutxmrlicense: &mut u8) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RenewLicense)(::windows::core::Interface::as_raw(self), pbinxmrlicense.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbinxmrlicense)), pbentitlementtoken.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbentitlementtoken)), ::core::mem::transmute(puldescramblestatus), ::core::mem::transmute(puloutxmrlicenselen), ::core::mem::transmute(pboutxmrlicense)).ok() + (::windows::core::Interface::vtable(self).RenewLicense)(::windows::core::Interface::as_raw(self), pbinxmrlicense.len() as _, ::core::mem::transmute(pbinxmrlicense.as_ptr()), pbentitlementtoken.len() as _, ::core::mem::transmute(pbentitlementtoken.as_ptr()), ::core::mem::transmute(puldescramblestatus), ::core::mem::transmute(puloutxmrlicenselen), ::core::mem::transmute(pboutxmrlicense)).ok() } pub unsafe fn GetKeyInfo(&self, pulkeyinfolen: &mut u32, pbkeyinfo: &mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetKeyInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulkeyinfolen), ::core::mem::transmute(pbkeyinfo)).ok() @@ -26698,10 +26697,10 @@ impl IBDA_WMDRMTuner { where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { - (::windows::core::Interface::vtable(self).PurchaseEntitlement)(::windows::core::Interface::as_raw(self), uldialogrequest, bstrlanguage.into().abi(), pbpurchasetoken.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpurchasetoken)), ::core::mem::transmute(puldescramblestatus), ::core::mem::transmute(pulcapturetokenlen), ::core::mem::transmute(pbcapturetoken)).ok() + (::windows::core::Interface::vtable(self).PurchaseEntitlement)(::windows::core::Interface::as_raw(self), uldialogrequest, bstrlanguage.into().abi(), pbpurchasetoken.len() as _, ::core::mem::transmute(pbpurchasetoken.as_ptr()), ::core::mem::transmute(puldescramblestatus), ::core::mem::transmute(pulcapturetokenlen), ::core::mem::transmute(pbcapturetoken)).ok() } pub unsafe fn CancelCaptureToken(&self, pbcapturetoken: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CancelCaptureToken)(::windows::core::Interface::as_raw(self), pbcapturetoken.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbcapturetoken))).ok() + (::windows::core::Interface::vtable(self).CancelCaptureToken)(::windows::core::Interface::as_raw(self), pbcapturetoken.len() as _, ::core::mem::transmute(pbcapturetoken.as_ptr())).ok() } pub unsafe fn SetPidProtection(&self, ulpid: u32, uuidkey: &::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetPidProtection)(::windows::core::Interface::as_raw(self), ulpid, ::core::mem::transmute(uuidkey)).ok() @@ -28226,7 +28225,7 @@ impl ICaptionServiceDescriptor { (::windows::core::Interface::vtable(self).GetNumberOfServices)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetLanguageCode(&self, bindex: u8, langcode: &mut [u8; 3]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLanguageCode)(::windows::core::Interface::as_raw(self), bindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(langcode))).ok() + (::windows::core::Interface::vtable(self).GetLanguageCode)(::windows::core::Interface::as_raw(self), bindex, ::core::mem::transmute(langcode.as_ptr())).ok() } pub unsafe fn GetCaptionServiceNumber(&self, bindex: u8) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -36162,7 +36161,7 @@ impl IDvbComponentDescriptor { (::windows::core::Interface::vtable(self).GetComponentTag)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetLanguageCode(&self, pszcode: &mut [u8; 4]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLanguageCode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszcode))).ok() + (::windows::core::Interface::vtable(self).GetLanguageCode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszcode.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -36305,7 +36304,7 @@ impl IDvbContentIdentifierDescriptor { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetCountOfRecords)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetRecordCrid(&self, brecordindex: u8, pbtype: &mut u8, pblocation: &mut u8, pblength: &mut u8, ppbbytes: &mut *mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetRecordCrid(&self, brecordindex: u8, pbtype: &mut u8, pblocation: &mut u8, pblength: &mut u8, ppbbytes: *mut *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetRecordCrid)(::windows::core::Interface::as_raw(self), brecordindex, ::core::mem::transmute(pbtype), ::core::mem::transmute(pblocation), ::core::mem::transmute(pblength), ::core::mem::transmute(ppbbytes)).ok() } } @@ -36517,7 +36516,7 @@ impl IDvbDefaultAuthorityDescriptor { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetDefaultAuthority(&self, pblength: &mut u8, ppbbytes: &mut *mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetDefaultAuthority(&self, pblength: &mut u8, ppbbytes: *mut *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDefaultAuthority)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pblength), ::core::mem::transmute(ppbbytes)).ok() } } @@ -36585,7 +36584,7 @@ impl IDvbExtendedEventDescriptor { (::windows::core::Interface::vtable(self).GetLastDescriptorNumber)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetLanguageCode(&self, pszcode: &mut [u8; 4]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLanguageCode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszcode))).ok() + (::windows::core::Interface::vtable(self).GetLanguageCode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszcode.as_ptr())).ok() } pub unsafe fn GetCountOfRecords(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -36982,7 +36981,7 @@ impl IDvbLogicalChannel2Descriptor { (::windows::core::Interface::vtable(self).GetListNameW)(::windows::core::Interface::as_raw(self), blistindex, convmode, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetListCountryCode(&self, blistindex: u8, pszcode: &mut [u8; 4]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetListCountryCode)(::windows::core::Interface::as_raw(self), blistindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszcode))).ok() + (::windows::core::Interface::vtable(self).GetListCountryCode)(::windows::core::Interface::as_raw(self), blistindex, ::core::mem::transmute(pszcode.as_ptr())).ok() } pub unsafe fn GetListCountOfRecords(&self, bchannellistindex: u8) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -37409,7 +37408,7 @@ impl IDvbParentalRatingDescriptor { (::windows::core::Interface::vtable(self).GetCountOfRecords)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetRecordRating(&self, brecordindex: u8, pszcountrycode: &mut [u8; 4], pbval: &mut u8) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRecordRating)(::windows::core::Interface::as_raw(self), brecordindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszcountrycode)), ::core::mem::transmute(pbval)).ok() + (::windows::core::Interface::vtable(self).GetRecordRating)(::windows::core::Interface::as_raw(self), brecordindex, ::core::mem::transmute(pszcountrycode.as_ptr()), ::core::mem::transmute(pbval)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -37992,7 +37991,7 @@ impl IDvbShortEventDescriptor { (::windows::core::Interface::vtable(self).GetLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetLanguageCode(&self, pszcode: &mut [u8; 4]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLanguageCode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszcode))).ok() + (::windows::core::Interface::vtable(self).GetLanguageCode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszcode.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -39346,8 +39345,8 @@ impl IDvdInfo { pub unsafe fn GetCurrentVolumeInfo(&self, pulnumofvol: &mut u32, pulthisvolnum: &mut u32, pside: &mut DVD_DISC_SIDE, pulnumoftitles: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetCurrentVolumeInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulnumofvol), ::core::mem::transmute(pulthisvolnum), ::core::mem::transmute(pside), ::core::mem::transmute(pulnumoftitles)).ok() } - pub unsafe fn GetDVDTextInfo(&self, ptextmanager: &mut u8, ulbufsize: u32, pulactualsize: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDVDTextInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptextmanager), ulbufsize, ::core::mem::transmute(pulactualsize)).ok() + pub unsafe fn GetDVDTextInfo(&self, ptextmanager: &mut [u8], pulactualsize: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDVDTextInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptextmanager.as_ptr()), ptextmanager.len() as _, ::core::mem::transmute(pulactualsize)).ok() } pub unsafe fn GetPlayerParentalLevel(&self, pulparentallevel: &mut u32, pulcountrycode: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPlayerParentalLevel)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pulparentallevel), ::core::mem::transmute(pulcountrycode)).ok() @@ -39361,7 +39360,7 @@ impl IDvdInfo { (::windows::core::Interface::vtable(self).GetTitleParentalLevels)(::windows::core::Interface::as_raw(self), ultitle, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetRoot(&self, proot: &mut [u8], pulactualsize: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRoot)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(proot)), proot.len() as _, ::core::mem::transmute(pulactualsize)).ok() + (::windows::core::Interface::vtable(self).GetRoot)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(proot.as_ptr()), proot.len() as _, ::core::mem::transmute(pulactualsize)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -39540,7 +39539,7 @@ impl IDvdInfo2 { (::windows::core::Interface::vtable(self).GetTitleParentalLevels)(::windows::core::Interface::as_raw(self), ultitle, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetDVDDirectory(&self, pszwpath: &mut [u16], pulactualsize: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDVDDirectory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszwpath)), pszwpath.len() as _, ::core::mem::transmute(pulactualsize)).ok() + (::windows::core::Interface::vtable(self).GetDVDDirectory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszwpath.as_ptr()), pszwpath.len() as _, ::core::mem::transmute(pulactualsize)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -39943,7 +39942,7 @@ impl IESEventFactory { P2: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateESEvent)(::windows::core::Interface::as_raw(self), pserviceprovider.into().abi(), dweventid, ::core::mem::transmute(guideventtype), peventdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(peventdata)), bstrbaseurl.into().abi(), pinitcontext.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateESEvent)(::windows::core::Interface::as_raw(self), pserviceprovider.into().abi(), dweventid, ::core::mem::transmute(guideventtype), peventdata.len() as _, ::core::mem::transmute(peventdata.as_ptr()), bstrbaseurl.into().abi(), pinitcontext.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -41090,7 +41089,7 @@ impl IEncoderAPI { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetParameterValues(&self, api: &::windows::core::GUID, values: &mut *mut super::super::System::Com::VARIANT, valuescount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetParameterValues(&self, api: &::windows::core::GUID, values: *mut *mut super::super::System::Com::VARIANT, valuescount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetParameterValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(api), ::core::mem::transmute(values), ::core::mem::transmute(valuescount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] @@ -41180,7 +41179,7 @@ impl IEnumComponentTypes { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -41247,7 +41246,7 @@ impl IEnumComponents { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -41314,7 +41313,7 @@ impl IEnumFilters { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Next(&self, ppfilter: &mut [::core::option::Option], pcfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppfilter.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppfilter)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppfilter.len() as _, ::core::mem::transmute(ppfilter.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Skip(&self, cfilters: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), cfilters).ok() @@ -41510,7 +41509,7 @@ impl IEnumMediaTypes { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))] pub unsafe fn Next(&self, ppmediatypes: &mut [*mut super::MediaFoundation::AM_MEDIA_TYPE], pcfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppmediatypes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppmediatypes)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppmediatypes.len() as _, ::core::mem::transmute(ppmediatypes.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Skip(&self, cmediatypes: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), cmediatypes).ok() @@ -41575,7 +41574,7 @@ pub struct IEnumMediaTypes_Vtbl { pub struct IEnumPIDMap(::windows::core::IUnknown); impl IEnumPIDMap { pub unsafe fn Next(&self, ppidmap: &mut [PID_MAP], pcreceived: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppidmap.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppidmap)), ::core::mem::transmute(pcreceived)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppidmap.len() as _, ::core::mem::transmute(ppidmap.as_ptr()), ::core::mem::transmute(pcreceived)).ok() } pub unsafe fn Skip(&self, crecords: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), crecords).ok() @@ -41637,7 +41636,7 @@ pub struct IEnumPIDMap_Vtbl { pub struct IEnumPins(::windows::core::IUnknown); impl IEnumPins { pub unsafe fn Next(&self, pppins: &mut [::core::option::Option], pcfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pppins.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pppins)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pppins.len() as _, ::core::mem::transmute(pppins.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Skip(&self, cpins: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), cpins).ok() @@ -41699,7 +41698,7 @@ pub struct IEnumPins_Vtbl { pub struct IEnumRegFilters(::windows::core::IUnknown); impl IEnumRegFilters { pub unsafe fn Next(&self, apregfilter: &mut [*mut REGFILTER], pcfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), apregfilter.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(apregfilter)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), apregfilter.len() as _, ::core::mem::transmute(apregfilter.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Skip(&self, cfilters: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), cfilters).ok() @@ -41761,7 +41760,7 @@ pub struct IEnumRegFilters_Vtbl { pub struct IEnumStreamBufferRecordingAttrib(::windows::core::IUnknown); impl IEnumStreamBufferRecordingAttrib { pub unsafe fn Next(&self, pstreambufferattribute: &mut [STREAMBUFFER_ATTRIBUTE], pcreceived: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pstreambufferattribute.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pstreambufferattribute)), ::core::mem::transmute(pcreceived)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pstreambufferattribute.len() as _, ::core::mem::transmute(pstreambufferattribute.as_ptr()), ::core::mem::transmute(pcreceived)).ok() } pub unsafe fn Skip(&self, crecords: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), crecords).ok() @@ -41823,7 +41822,7 @@ pub struct IEnumStreamBufferRecordingAttrib_Vtbl { pub struct IEnumStreamIdMap(::windows::core::IUnknown); impl IEnumStreamIdMap { pub unsafe fn Next(&self, pstreamidmap: &mut [STREAM_ID_MAP], pcreceived: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pstreamidmap.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pstreamidmap)), ::core::mem::transmute(pcreceived)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pstreamidmap.len() as _, ::core::mem::transmute(pstreamidmap.as_ptr()), ::core::mem::transmute(pcreceived)).ok() } pub unsafe fn Skip(&self, crecords: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), crecords).ok() @@ -41954,7 +41953,7 @@ impl IEnumTuningSpaces { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -43470,7 +43469,7 @@ impl IFrequencyMap { (::windows::core::Interface::vtable(self).get_FrequencyMapping)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ulcount), ::core::mem::transmute(ppullist)).ok() } pub unsafe fn put_FrequencyMapping(&self, plist: &[u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).put_FrequencyMapping)(::windows::core::Interface::as_raw(self), plist.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plist))).ok() + (::windows::core::Interface::vtable(self).put_FrequencyMapping)(::windows::core::Interface::as_raw(self), plist.len() as _, ::core::mem::transmute(plist.as_ptr())).ok() } pub unsafe fn CountryCode(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -46020,10 +46019,10 @@ impl IIsdbAudioComponentDescriptor { (::windows::core::Interface::vtable(self).GetSamplingRate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetLanguageCode(&self, pszcode: &mut [u8; 4]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLanguageCode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszcode))).ok() + (::windows::core::Interface::vtable(self).GetLanguageCode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszcode.as_ptr())).ok() } pub unsafe fn GetLanguageCode2(&self, pszcode: &mut [u8; 4]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLanguageCode2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszcode))).ok() + (::windows::core::Interface::vtable(self).GetLanguageCode2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszcode.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -46480,7 +46479,7 @@ impl IIsdbDataContentDescriptor { (::windows::core::Interface::vtable(self).GetRecordComponentRef)(::windows::core::Interface::as_raw(self), brecordindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetLanguageCode(&self, pszcode: &mut [u8; 4]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLanguageCode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszcode))).ok() + (::windows::core::Interface::vtable(self).GetLanguageCode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszcode.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -46676,7 +46675,7 @@ impl IIsdbDownloadContentDescriptor { (::windows::core::Interface::vtable(self).GetRecordModuleInfo)(::windows::core::Interface::as_raw(self), wrecordindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut u8>(result__) } pub unsafe fn GetTextLanguageCode(&self, szcode: &mut [u8; 4]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTextLanguageCode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szcode))).ok() + (::windows::core::Interface::vtable(self).GetTextLanguageCode)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(szcode.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -47669,8 +47668,8 @@ impl IKsTopologyInfo { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).get_ConnectionInfo)(::windows::core::Interface::as_raw(self), dwindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn get_NodeName(&self, dwnodeid: u32, pwchnodename: ::windows::core::PWSTR, dwbufsize: u32, pdwnamelen: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).get_NodeName)(::windows::core::Interface::as_raw(self), dwnodeid, ::core::mem::transmute(pwchnodename), dwbufsize, ::core::mem::transmute(pdwnamelen)).ok() + pub unsafe fn get_NodeName(&self, dwnodeid: u32, pwchnodename: ::core::option::Option<&mut [u8]>, pdwnamelen: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).get_NodeName)(::windows::core::Interface::as_raw(self), dwnodeid, ::core::mem::transmute(pwchnodename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pwchnodename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdwnamelen)).ok() } pub unsafe fn NumNodes(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -48516,7 +48515,7 @@ impl IMPEG2StreamIdMap { (::windows::core::Interface::vtable(self).MapStreamId)(::windows::core::Interface::as_raw(self), ulstreamid, mediasamplecontent, ulsubstreamfiltervalue, idataoffset).ok() } pub unsafe fn UnmapStreamId(&self, pulstreamid: &[u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UnmapStreamId)(::windows::core::Interface::as_raw(self), pulstreamid.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pulstreamid))).ok() + (::windows::core::Interface::vtable(self).UnmapStreamId)(::windows::core::Interface::as_raw(self), pulstreamid.len() as _, ::core::mem::transmute(pulstreamid.as_ptr())).ok() } pub unsafe fn EnumStreamIdMap(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -62078,7 +62077,7 @@ impl IMSVidWebDVD2 { { (::windows::core::Interface::vtable(self).base__.SetDVDScreenInMouseCoordinates)(::windows::core::Interface::as_raw(self), prect.into().abi()).ok() } - pub unsafe fn get_Bookmark(&self, ppdata: &mut *mut u8, pdatalength: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn get_Bookmark(&self, ppdata: *mut *mut u8, pdatalength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).get_Bookmark)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppdata), ::core::mem::transmute(pdatalength)).ok() } pub unsafe fn put_Bookmark(&self, pdata: &u8, dwdatalength: u32) -> ::windows::core::Result<()> { @@ -64057,12 +64056,11 @@ impl IMediaSample2 { pub unsafe fn SetMediaTime(&self, ptimestart: ::core::option::Option<&i64>, ptimeend: ::core::option::Option<&i64>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SetMediaTime)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptimestart), ::core::mem::transmute(ptimeend)).ok() } - pub unsafe fn GetProperties(&self, cbproperties: u32) -> ::windows::core::Result { - let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetProperties)(::windows::core::Interface::as_raw(self), cbproperties, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + pub unsafe fn GetProperties(&self, pbproperties: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProperties)(::windows::core::Interface::as_raw(self), pbproperties.len() as _, ::core::mem::transmute(pbproperties.as_ptr())).ok() } - pub unsafe fn SetProperties(&self, cbproperties: u32, pbproperties: &u8) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetProperties)(::windows::core::Interface::as_raw(self), cbproperties, ::core::mem::transmute(pbproperties)).ok() + pub unsafe fn SetProperties(&self, pbproperties: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetProperties)(::windows::core::Interface::as_raw(self), pbproperties.len() as _, ::core::mem::transmute(pbproperties.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -64936,7 +64934,7 @@ impl IMemInputPin { } pub unsafe fn ReceiveMultiple(&self, psamples: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).ReceiveMultiple)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(psamples)), psamples.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).ReceiveMultiple)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psamples.as_ptr()), psamples.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn ReceiveCanBlock(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReceiveCanBlock)(::windows::core::Interface::as_raw(self)).ok() @@ -65922,13 +65920,13 @@ pub struct IOverlay(::windows::core::IUnknown); impl IOverlay { #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] - pub unsafe fn GetPalette(&self, pdwcolors: &mut u32, pppalette: &mut *mut super::super::Graphics::Gdi::PALETTEENTRY) -> ::windows::core::Result<()> { + pub unsafe fn GetPalette(&self, pdwcolors: &mut u32, pppalette: *mut *mut super::super::Graphics::Gdi::PALETTEENTRY) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPalette)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwcolors), ::core::mem::transmute(pppalette)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] pub unsafe fn SetPalette(&self, ppalette: &[super::super::Graphics::Gdi::PALETTEENTRY]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPalette)(::windows::core::Interface::as_raw(self), ppalette.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppalette))).ok() + (::windows::core::Interface::vtable(self).SetPalette)(::windows::core::Interface::as_raw(self), ppalette.len() as _, ::core::mem::transmute(ppalette.as_ptr())).ok() } pub unsafe fn GetDefaultColorKey(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -67329,7 +67327,7 @@ impl IPin { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).EnumMediaTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn QueryInternalConnections(&self, appin: ::core::option::Option<&mut ::core::option::Option>, npin: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn QueryInternalConnections(&self, appin: *mut ::core::option::Option, npin: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).QueryInternalConnections)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(appin), ::core::mem::transmute(npin)).ok() } pub unsafe fn EndOfStream(&self) -> ::windows::core::Result<()> { @@ -68199,7 +68197,7 @@ impl IResourceManager { P0: ::std::convert::Into<::windows::core::PCWSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).RegisterGroup)(::windows::core::Interface::as_raw(self), pname.into(), paltokens.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(paltokens)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).RegisterGroup)(::windows::core::Interface::as_raw(self), pname.into(), paltokens.len() as _, ::core::mem::transmute(paltokens.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn RequestResource<'a, P0, P1>(&self, idresource: i32, pfocusobject: P0, pconsumer: P1) -> ::windows::core::Result<()> where @@ -68364,7 +68362,7 @@ pub struct ISBE2Crossbar_Vtbl { pub struct ISBE2EnumStream(::windows::core::IUnknown); impl ISBE2EnumStream { pub unsafe fn Next(&self, pstreamdesc: &mut [SBE2_STREAM_DESC], pcreceived: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pstreamdesc.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pstreamdesc)), ::core::mem::transmute(pcreceived)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pstreamdesc.len() as _, ::core::mem::transmute(pstreamdesc.as_ptr()), ::core::mem::transmute(pcreceived)).ok() } pub unsafe fn Skip(&self, crecords: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), crecords).ok() @@ -69714,7 +69712,7 @@ impl IServiceLocationDescriptor { (::windows::core::Interface::vtable(self).GetElementPID)(::windows::core::Interface::as_raw(self), bindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetElementLanguageCode(&self, bindex: u8, langcode: &mut [u8; 3]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetElementLanguageCode)(::windows::core::Interface::as_raw(self), bindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(langcode))).ok() + (::windows::core::Interface::vtable(self).GetElementLanguageCode)(::windows::core::Interface::as_raw(self), bindex, ::core::mem::transmute(langcode.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -70663,19 +70661,19 @@ impl IStreamBufferRecordingAttribute { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetAttribute)(::windows::core::Interface::as_raw(self), ulreserved, pszattributename.into(), streambufferattributetype, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbattribute)), pbattribute.len() as _).ok() + (::windows::core::Interface::vtable(self).SetAttribute)(::windows::core::Interface::as_raw(self), ulreserved, pszattributename.into(), streambufferattributetype, ::core::mem::transmute(pbattribute.as_ptr()), pbattribute.len() as _).ok() } pub unsafe fn GetAttributeCount(&self, ulreserved: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetAttributeCount)(::windows::core::Interface::as_raw(self), ulreserved, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetAttributeByName<'a, P0>(&self, pszattributename: P0, pulreserved: &u32, pstreambufferattributetype: &mut STREAMBUFFER_ATTR_DATATYPE, pbattribute: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetAttributeByName<'a, P0>(&self, pszattributename: P0, pulreserved: &u32, pstreambufferattributetype: &mut STREAMBUFFER_ATTR_DATATYPE, pbattribute: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { (::windows::core::Interface::vtable(self).GetAttributeByName)(::windows::core::Interface::as_raw(self), pszattributename.into(), ::core::mem::transmute(pulreserved), ::core::mem::transmute(pstreambufferattributetype), ::core::mem::transmute(pbattribute), ::core::mem::transmute(pcblength)).ok() } - pub unsafe fn GetAttributeByIndex(&self, windex: u16, pulreserved: &u32, pszattributename: ::windows::core::PWSTR, pcchnamelength: &mut u16, pstreambufferattributetype: &mut STREAMBUFFER_ATTR_DATATYPE, pbattribute: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetAttributeByIndex(&self, windex: u16, pulreserved: &u32, pszattributename: ::windows::core::PWSTR, pcchnamelength: &mut u16, pstreambufferattributetype: &mut STREAMBUFFER_ATTR_DATATYPE, pbattribute: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetAttributeByIndex)(::windows::core::Interface::as_raw(self), windex, ::core::mem::transmute(pulreserved), ::core::mem::transmute(pszattributename), ::core::mem::transmute(pcchnamelength), ::core::mem::transmute(pstreambufferattributetype), ::core::mem::transmute(pbattribute), ::core::mem::transmute(pcblength)).ok() } pub unsafe fn EnumAttributes(&self) -> ::windows::core::Result { @@ -73815,7 +73813,7 @@ impl IVMRMonitorConfig9 { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] pub unsafe fn GetAvailableMonitors(&self, pinfo: &mut [VMR9MonitorInfo], pdwnumdevices: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetAvailableMonitors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pinfo)), pinfo.len() as _, ::core::mem::transmute(pdwnumdevices)).ok() + (::windows::core::Interface::vtable(self).GetAvailableMonitors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinfo.as_ptr()), pinfo.len() as _, ::core::mem::transmute(pdwnumdevices)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -74839,7 +74837,7 @@ pub struct IVPBaseConfig(::windows::core::IUnknown); impl IVPBaseConfig { #[doc = "*Required features: `\"Win32_Graphics_DirectDraw\"`*"] #[cfg(feature = "Win32_Graphics_DirectDraw")] - pub unsafe fn GetConnectInfo(&self, pdwnumconnectinfo: &mut u32, pddvpconnectinfo: ::core::option::Option<&mut super::super::Graphics::DirectDraw::DDVIDEOPORTCONNECT>) -> ::windows::core::Result<()> { + pub unsafe fn GetConnectInfo(&self, pdwnumconnectinfo: &mut u32, pddvpconnectinfo: *mut super::super::Graphics::DirectDraw::DDVIDEOPORTCONNECT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetConnectInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwnumconnectinfo), ::core::mem::transmute(pddvpconnectinfo)).ok() } pub unsafe fn SetConnectInfo(&self, dwchosenentry: u32) -> ::windows::core::Result<()> { @@ -74860,7 +74858,7 @@ impl IVPBaseConfig { } #[doc = "*Required features: `\"Win32_Graphics_DirectDraw\"`*"] #[cfg(feature = "Win32_Graphics_DirectDraw")] - pub unsafe fn GetVideoFormats(&self, pdwnumformats: &mut u32, pddpixelformats: ::core::option::Option<&mut super::super::Graphics::DirectDraw::DDPIXELFORMAT>) -> ::windows::core::Result<()> { + pub unsafe fn GetVideoFormats(&self, pdwnumformats: &mut u32, pddpixelformats: *mut super::super::Graphics::DirectDraw::DDPIXELFORMAT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetVideoFormats)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwnumformats), ::core::mem::transmute(pddpixelformats)).ok() } pub unsafe fn SetVideoFormat(&self, dwchosenentry: u32) -> ::windows::core::Result<()> { @@ -75011,7 +75009,7 @@ pub struct IVPConfig(::windows::core::IUnknown); impl IVPConfig { #[doc = "*Required features: `\"Win32_Graphics_DirectDraw\"`*"] #[cfg(feature = "Win32_Graphics_DirectDraw")] - pub unsafe fn GetConnectInfo(&self, pdwnumconnectinfo: &mut u32, pddvpconnectinfo: ::core::option::Option<&mut super::super::Graphics::DirectDraw::DDVIDEOPORTCONNECT>) -> ::windows::core::Result<()> { + pub unsafe fn GetConnectInfo(&self, pdwnumconnectinfo: &mut u32, pddvpconnectinfo: *mut super::super::Graphics::DirectDraw::DDVIDEOPORTCONNECT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetConnectInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwnumconnectinfo), ::core::mem::transmute(pddvpconnectinfo)).ok() } pub unsafe fn SetConnectInfo(&self, dwchosenentry: u32) -> ::windows::core::Result<()> { @@ -75032,7 +75030,7 @@ impl IVPConfig { } #[doc = "*Required features: `\"Win32_Graphics_DirectDraw\"`*"] #[cfg(feature = "Win32_Graphics_DirectDraw")] - pub unsafe fn GetVideoFormats(&self, pdwnumformats: &mut u32, pddpixelformats: ::core::option::Option<&mut super::super::Graphics::DirectDraw::DDPIXELFORMAT>) -> ::windows::core::Result<()> { + pub unsafe fn GetVideoFormats(&self, pdwnumformats: &mut u32, pddpixelformats: *mut super::super::Graphics::DirectDraw::DDPIXELFORMAT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetVideoFormats)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwnumformats), ::core::mem::transmute(pddpixelformats)).ok() } pub unsafe fn SetVideoFormat(&self, dwchosenentry: u32) -> ::windows::core::Result<()> { @@ -75358,7 +75356,7 @@ pub struct IVPVBIConfig(::windows::core::IUnknown); impl IVPVBIConfig { #[doc = "*Required features: `\"Win32_Graphics_DirectDraw\"`*"] #[cfg(feature = "Win32_Graphics_DirectDraw")] - pub unsafe fn GetConnectInfo(&self, pdwnumconnectinfo: &mut u32, pddvpconnectinfo: ::core::option::Option<&mut super::super::Graphics::DirectDraw::DDVIDEOPORTCONNECT>) -> ::windows::core::Result<()> { + pub unsafe fn GetConnectInfo(&self, pdwnumconnectinfo: &mut u32, pddvpconnectinfo: *mut super::super::Graphics::DirectDraw::DDVIDEOPORTCONNECT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetConnectInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwnumconnectinfo), ::core::mem::transmute(pddvpconnectinfo)).ok() } pub unsafe fn SetConnectInfo(&self, dwchosenentry: u32) -> ::windows::core::Result<()> { @@ -75379,7 +75377,7 @@ impl IVPVBIConfig { } #[doc = "*Required features: `\"Win32_Graphics_DirectDraw\"`*"] #[cfg(feature = "Win32_Graphics_DirectDraw")] - pub unsafe fn GetVideoFormats(&self, pdwnumformats: &mut u32, pddpixelformats: ::core::option::Option<&mut super::super::Graphics::DirectDraw::DDPIXELFORMAT>) -> ::windows::core::Result<()> { + pub unsafe fn GetVideoFormats(&self, pdwnumformats: &mut u32, pddpixelformats: *mut super::super::Graphics::DirectDraw::DDPIXELFORMAT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetVideoFormats)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwnumformats), ::core::mem::transmute(pddpixelformats)).ok() } pub unsafe fn SetVideoFormat(&self, dwchosenentry: u32) -> ::windows::core::Result<()> { @@ -75542,7 +75540,7 @@ impl IVideoEncoder { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetParameterValues(&self, api: &::windows::core::GUID, values: &mut *mut super::super::System::Com::VARIANT, valuescount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetParameterValues(&self, api: &::windows::core::GUID, values: *mut *mut super::super::System::Com::VARIANT, valuescount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetParameterValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(api), ::core::mem::transmute(values), ::core::mem::transmute(valuescount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] diff --git a/crates/libs/windows/src/Windows/Win32/Media/DxMediaObjects/mod.rs b/crates/libs/windows/src/Windows/Win32/Media/DxMediaObjects/mod.rs index c249fb46fc..f7ec72b987 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/DxMediaObjects/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/DxMediaObjects/mod.rs @@ -25,7 +25,7 @@ pub unsafe fn DMOGetName(clsiddmo: &::windows::core::GUID, szname: &mut [u16; 80 extern "system" { fn DMOGetName(clsiddmo: *const ::windows::core::GUID, szname: ::windows::core::PWSTR) -> ::windows::core::HRESULT; } - DMOGetName(::core::mem::transmute(clsiddmo), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szname))).ok() + DMOGetName(::core::mem::transmute(clsiddmo), ::core::mem::transmute(szname.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Media_DxMediaObjects\"`*"] #[inline] @@ -362,7 +362,7 @@ pub struct IDMOVideoOutputOptimizations_Vtbl { #[repr(transparent)] pub struct IEnumDMO(::windows::core::IUnknown); impl IEnumDMO { - pub unsafe fn Next(&self, citemstofetch: u32, pclsid: &mut ::windows::core::GUID, names: &mut ::windows::core::PWSTR, pcitemsfetched: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Next(&self, citemstofetch: u32, pclsid: *mut ::windows::core::GUID, names: *mut ::windows::core::PWSTR, pcitemsfetched: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(citemstofetch), ::core::mem::transmute(pclsid), ::core::mem::transmute(names), ::core::mem::transmute(pcitemsfetched)).ok() } pub unsafe fn Skip(&self, citemstoskip: u32) -> ::windows::core::Result<()> { @@ -563,7 +563,7 @@ impl IMediaObject { (::windows::core::Interface::vtable(self).ProcessInput)(::windows::core::Interface::as_raw(self), dwinputstreamindex, pbuffer.into().abi(), dwflags, rttimestamp, rttimelength).ok() } pub unsafe fn ProcessOutput(&self, dwflags: u32, poutputbuffers: &mut [DMO_OUTPUT_DATA_BUFFER], pdwstatus: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ProcessOutput)(::windows::core::Interface::as_raw(self), dwflags, poutputbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(poutputbuffers)), ::core::mem::transmute(pdwstatus)).ok() + (::windows::core::Interface::vtable(self).ProcessOutput)(::windows::core::Interface::as_raw(self), dwflags, poutputbuffers.len() as _, ::core::mem::transmute(poutputbuffers.as_ptr()), ::core::mem::transmute(pdwstatus)).ok() } pub unsafe fn Lock(&self, block: i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Lock)(::windows::core::Interface::as_raw(self), block).ok() @@ -652,8 +652,8 @@ pub struct IMediaObject_Vtbl { #[repr(transparent)] pub struct IMediaObjectInPlace(::windows::core::IUnknown); impl IMediaObjectInPlace { - pub unsafe fn Process(&self, ulsize: u32, pdata: &mut u8, reftimestart: i64, dwflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Process)(::windows::core::Interface::as_raw(self), ulsize, ::core::mem::transmute(pdata), reftimestart, dwflags).ok() + pub unsafe fn Process(&self, pdata: &mut [u8], reftimestart: i64, dwflags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Process)(::windows::core::Interface::as_raw(self), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr()), reftimestart, dwflags).ok() } pub unsafe fn Clone(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); diff --git a/crates/libs/windows/src/Windows/Win32/Media/KernelStreaming/mod.rs b/crates/libs/windows/src/Windows/Win32/Media/KernelStreaming/mod.rs index e1d967feca..7817ec0cb2 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/KernelStreaming/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/KernelStreaming/mod.rs @@ -1190,11 +1190,11 @@ pub struct IKsPin(pub u8); #[repr(transparent)] pub struct IKsPropertySet(::windows::core::IUnknown); impl IKsPropertySet { - pub unsafe fn Set(&self, propset: &::windows::core::GUID, id: u32, instancedata: *const ::core::ffi::c_void, instancelength: u32, propertydata: *const ::core::ffi::c_void, datalength: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Set)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(propset), id, ::core::mem::transmute(instancedata), instancelength, ::core::mem::transmute(propertydata), datalength).ok() + pub unsafe fn Set(&self, propset: &::windows::core::GUID, id: u32, instancedata: &[u8], propertydata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Set)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(propset), id, ::core::mem::transmute(instancedata.as_ptr()), instancedata.len() as _, ::core::mem::transmute(propertydata.as_ptr()), propertydata.len() as _).ok() } - pub unsafe fn Get(&self, propset: &::windows::core::GUID, id: u32, instancedata: *const ::core::ffi::c_void, instancelength: u32, propertydata: *mut ::core::ffi::c_void, datalength: u32, bytesreturned: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Get)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(propset), id, ::core::mem::transmute(instancedata), instancelength, ::core::mem::transmute(propertydata), datalength, ::core::mem::transmute(bytesreturned)).ok() + pub unsafe fn Get(&self, propset: &::windows::core::GUID, id: u32, instancedata: &[u8], propertydata: &mut [u8], bytesreturned: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Get)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(propset), id, ::core::mem::transmute(instancedata.as_ptr()), instancedata.len() as _, ::core::mem::transmute(propertydata.as_ptr()), propertydata.len() as _, ::core::mem::transmute(bytesreturned)).ok() } pub unsafe fn QuerySupported(&self, propset: &::windows::core::GUID, id: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); diff --git a/crates/libs/windows/src/Windows/Win32/Media/MediaFoundation/impl.rs b/crates/libs/windows/src/Windows/Win32/Media/MediaFoundation/impl.rs index 7af4acf7fd..7f5c99ec2f 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/MediaFoundation/impl.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/MediaFoundation/impl.rs @@ -11950,7 +11950,7 @@ impl IMFPresentationTimeSource_Vtbl { } } pub trait IMFProtectedEnvironmentAccess_Impl: Sized { - fn Call(&self, inputlength: u32, input: *const u8, outputlength: u32) -> ::windows::core::Result; + fn Call(&self, inputlength: u32, input: *const u8, outputlength: u32, output: *mut u8) -> ::windows::core::Result<()>; fn ReadGRL(&self, outputlength: *mut u32, output: *mut *mut u8) -> ::windows::core::Result<()>; } impl ::windows::core::RuntimeName for IMFProtectedEnvironmentAccess {} @@ -11959,13 +11959,7 @@ impl IMFProtectedEnvironmentAccess_Vtbl { unsafe extern "system" fn Call, Impl: IMFProtectedEnvironmentAccess_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, inputlength: u32, input: *const u8, outputlength: u32, output: *mut u8) -> ::windows::core::HRESULT { let this = (this as *const *const ()).offset(OFFSET) as *const Identity; let this = (*this).get_impl(); - match this.Call(::core::mem::transmute_copy(&inputlength), ::core::mem::transmute_copy(&input), ::core::mem::transmute_copy(&outputlength)) { - ::core::result::Result::Ok(ok__) => { - ::core::ptr::write(output, ::core::mem::transmute(ok__)); - ::windows::core::HRESULT(0) - } - ::core::result::Result::Err(err) => err.into(), - } + this.Call(::core::mem::transmute_copy(&inputlength), ::core::mem::transmute_copy(&input), ::core::mem::transmute_copy(&outputlength), ::core::mem::transmute_copy(&output)).into() } unsafe extern "system" fn ReadGRL, Impl: IMFProtectedEnvironmentAccess_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputlength: *mut u32, output: *mut *mut u8) -> ::windows::core::HRESULT { let this = (this as *const *const ()).offset(OFFSET) as *const Identity; diff --git a/crates/libs/windows/src/Windows/Win32/Media/MediaFoundation/mod.rs b/crates/libs/windows/src/Windows/Win32/Media/MediaFoundation/mod.rs index 1ab505bfcb..cd95176384 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/MediaFoundation/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/MediaFoundation/mod.rs @@ -14908,7 +14908,7 @@ impl ICodecAPI { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetParameterValues(&self, api: &::windows::core::GUID, values: &mut *mut super::super::System::Com::VARIANT, valuescount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetParameterValues(&self, api: &::windows::core::GUID, values: *mut *mut super::super::System::Com::VARIANT, valuescount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetParameterValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(api), ::core::mem::transmute(values), ::core::mem::transmute(valuescount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] @@ -14939,10 +14939,10 @@ impl ICodecAPI { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn SetValueWithNotify(&self, api: &::windows::core::GUID, value: &mut super::super::System::Com::VARIANT, changedparam: &mut *mut ::windows::core::GUID, changedparamcount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn SetValueWithNotify(&self, api: &::windows::core::GUID, value: &mut super::super::System::Com::VARIANT, changedparam: *mut *mut ::windows::core::GUID, changedparamcount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetValueWithNotify)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(api), ::core::mem::transmute(value), ::core::mem::transmute(changedparam), ::core::mem::transmute(changedparamcount)).ok() } - pub unsafe fn SetAllDefaultsWithNotify(&self, changedparam: &mut *mut ::windows::core::GUID, changedparamcount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn SetAllDefaultsWithNotify(&self, changedparam: *mut *mut ::windows::core::GUID, changedparamcount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetAllDefaultsWithNotify)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(changedparam), ::core::mem::transmute(changedparamcount)).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] @@ -14963,7 +14963,7 @@ impl ICodecAPI { } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn SetAllSettingsWithNotify<'a, P0>(&self, __midl__icodecapi0002: P0, changedparam: &mut *mut ::windows::core::GUID, changedparamcount: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn SetAllSettingsWithNotify<'a, P0>(&self, __midl__icodecapi0002: P0, changedparam: *mut *mut ::windows::core::GUID, changedparamcount: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::System::Com::IStream>>, { @@ -15065,8 +15065,8 @@ impl ID3D12VideoDecodeCommandList { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -15114,7 +15114,7 @@ impl ID3D12VideoDecodeCommandList { #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] pub unsafe fn ResourceBarrier(&self, pbarriers: &[super::super::Graphics::Direct3D12::D3D12_RESOURCE_BARRIER]) { - (::windows::core::Interface::vtable(self).ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbarriers))) + (::windows::core::Interface::vtable(self).ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D12"))] @@ -15157,11 +15157,11 @@ impl ID3D12VideoDecodeCommandList { { (::windows::core::Interface::vtable(self).SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into().abi(), alignedbufferoffset, operation) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).EndEvent)(::windows::core::Interface::as_raw(self)) @@ -15176,7 +15176,7 @@ impl ID3D12VideoDecodeCommandList { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: &super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<&super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE>) { + pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE) { (::windows::core::Interface::vtable(self).WriteBufferImmediate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(pparams), ::core::mem::transmute(pmodes)) } } @@ -15341,8 +15341,8 @@ impl ID3D12VideoDecodeCommandList1 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -15390,7 +15390,7 @@ impl ID3D12VideoDecodeCommandList1 { #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] pub unsafe fn ResourceBarrier(&self, pbarriers: &[super::super::Graphics::Direct3D12::D3D12_RESOURCE_BARRIER]) { - (::windows::core::Interface::vtable(self).base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbarriers))) + (::windows::core::Interface::vtable(self).base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D12"))] @@ -15433,11 +15433,11 @@ impl ID3D12VideoDecodeCommandList1 { { (::windows::core::Interface::vtable(self).base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into().abi(), alignedbufferoffset, operation) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).base__.EndEvent)(::windows::core::Interface::as_raw(self)) @@ -15452,7 +15452,7 @@ impl ID3D12VideoDecodeCommandList1 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: &super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<&super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE>) { + pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE) { (::windows::core::Interface::vtable(self).base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(pparams), ::core::mem::transmute(pmodes)) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -15606,8 +15606,8 @@ impl ID3D12VideoDecodeCommandList2 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -15655,7 +15655,7 @@ impl ID3D12VideoDecodeCommandList2 { #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] pub unsafe fn ResourceBarrier(&self, pbarriers: &[super::super::Graphics::Direct3D12::D3D12_RESOURCE_BARRIER]) { - (::windows::core::Interface::vtable(self).base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbarriers))) + (::windows::core::Interface::vtable(self).base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D12"))] @@ -15698,11 +15698,11 @@ impl ID3D12VideoDecodeCommandList2 { { (::windows::core::Interface::vtable(self).base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into().abi(), alignedbufferoffset, operation) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).base__.base__.EndEvent)(::windows::core::Interface::as_raw(self)) @@ -15717,7 +15717,7 @@ impl ID3D12VideoDecodeCommandList2 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: &super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<&super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE>) { + pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE) { (::windows::core::Interface::vtable(self).base__.base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(pparams), ::core::mem::transmute(pmodes)) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] @@ -15738,19 +15738,19 @@ impl ID3D12VideoDecodeCommandList2 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn InitializeExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pinitializationparameters: *const ::core::ffi::c_void, initializationparameterssizeinbytes: usize) + pub unsafe fn InitializeExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pinitializationparameters: &[u8]) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12VideoExtensionCommand>>, { - (::windows::core::Interface::vtable(self).InitializeExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pinitializationparameters), initializationparameterssizeinbytes) + (::windows::core::Interface::vtable(self).InitializeExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pinitializationparameters.as_ptr()), pinitializationparameters.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn ExecuteExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pexecutionparameters: *const ::core::ffi::c_void, executionparameterssizeinbytes: usize) + pub unsafe fn ExecuteExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pexecutionparameters: &[u8]) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12VideoExtensionCommand>>, { - (::windows::core::Interface::vtable(self).ExecuteExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pexecutionparameters), executionparameterssizeinbytes) + (::windows::core::Interface::vtable(self).ExecuteExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pexecutionparameters.as_ptr()), pexecutionparameters.len() as _) } } #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -15921,8 +15921,8 @@ impl ID3D12VideoDecoder { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -16075,8 +16075,8 @@ impl ID3D12VideoDecoder1 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -16253,8 +16253,8 @@ impl ID3D12VideoDecoderHeap { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -16412,8 +16412,8 @@ impl ID3D12VideoDecoderHeap1 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -16583,8 +16583,8 @@ pub struct ID3D12VideoDecoderHeap1_Vtbl { #[repr(transparent)] pub struct ID3D12VideoDevice(::windows::core::IUnknown); impl ID3D12VideoDevice { - pub unsafe fn CheckFeatureSupport(&self, featurevideo: D3D12_FEATURE_VIDEO, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CheckFeatureSupport)(::windows::core::Interface::as_raw(self), featurevideo, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, featurevideo: D3D12_FEATURE_VIDEO, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).CheckFeatureSupport)(::windows::core::Interface::as_raw(self), featurevideo, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn CreateVideoDecoder(&self, pdesc: &D3D12_VIDEO_DECODER_DESC) -> ::windows::core::Result where @@ -16609,7 +16609,7 @@ impl ID3D12VideoDevice { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).CreateVideoProcessor)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(poutputstreamdesc), pinputstreamdescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputstreamdescs)), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).CreateVideoProcessor)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(poutputstreamdesc), pinputstreamdescs.len() as _, ::core::mem::transmute(pinputstreamdescs.as_ptr()), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -16668,8 +16668,8 @@ pub struct ID3D12VideoDevice_Vtbl { #[repr(transparent)] pub struct ID3D12VideoDevice1(::windows::core::IUnknown); impl ID3D12VideoDevice1 { - pub unsafe fn CheckFeatureSupport(&self, featurevideo: D3D12_FEATURE_VIDEO, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), featurevideo, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, featurevideo: D3D12_FEATURE_VIDEO, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), featurevideo, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn CreateVideoDecoder(&self, pdesc: &D3D12_VIDEO_DECODER_DESC) -> ::windows::core::Result where @@ -16694,7 +16694,7 @@ impl ID3D12VideoDevice1 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.CreateVideoProcessor)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(poutputstreamdesc), pinputstreamdescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputstreamdescs)), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.CreateVideoProcessor)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(poutputstreamdesc), pinputstreamdescs.len() as _, ::core::mem::transmute(pinputstreamdescs.as_ptr()), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct3D12", feature = "Win32_Graphics_Dxgi_Common"))] @@ -16786,8 +16786,8 @@ pub struct ID3D12VideoDevice1_Vtbl { #[repr(transparent)] pub struct ID3D12VideoDevice2(::windows::core::IUnknown); impl ID3D12VideoDevice2 { - pub unsafe fn CheckFeatureSupport(&self, featurevideo: D3D12_FEATURE_VIDEO, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), featurevideo, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, featurevideo: D3D12_FEATURE_VIDEO, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), featurevideo, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn CreateVideoDecoder(&self, pdesc: &D3D12_VIDEO_DECODER_DESC) -> ::windows::core::Result where @@ -16812,7 +16812,7 @@ impl ID3D12VideoDevice2 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.CreateVideoProcessor)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(poutputstreamdesc), pinputstreamdescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputstreamdescs)), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateVideoProcessor)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(poutputstreamdesc), pinputstreamdescs.len() as _, ::core::mem::transmute(pinputstreamdescs.as_ptr()), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct3D12", feature = "Win32_Graphics_Dxgi_Common"))] @@ -16862,25 +16862,25 @@ impl ID3D12VideoDevice2 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).CreateVideoProcessor1)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(poutputstreamdesc), pinputstreamdescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputstreamdescs)), pprotectedresourcesession.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).CreateVideoProcessor1)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(poutputstreamdesc), pinputstreamdescs.len() as _, ::core::mem::transmute(pinputstreamdescs.as_ptr()), pprotectedresourcesession.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn CreateVideoExtensionCommand<'a, P0, T>(&self, pdesc: &D3D12_VIDEO_EXTENSION_COMMAND_DESC, pcreationparameters: *const ::core::ffi::c_void, creationparametersdatasizeinbytes: usize, pprotectedresourcesession: P0) -> ::windows::core::Result + pub unsafe fn CreateVideoExtensionCommand<'a, P0, T>(&self, pdesc: &D3D12_VIDEO_EXTENSION_COMMAND_DESC, pcreationparameters: &[u8], pprotectedresourcesession: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Graphics::Direct3D12::ID3D12ProtectedResourceSession>>, T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).CreateVideoExtensionCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(pcreationparameters), creationparametersdatasizeinbytes, pprotectedresourcesession.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).CreateVideoExtensionCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(pcreationparameters.as_ptr()), pcreationparameters.len() as _, pprotectedresourcesession.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn ExecuteExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pexecutionparameters: *const ::core::ffi::c_void, executionparameterssizeinbytes: usize, poutputdata: *mut ::core::ffi::c_void, outputdatasizeinbytes: usize) -> ::windows::core::Result<()> + pub unsafe fn ExecuteExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pexecutionparameters: &[u8], poutputdata: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12VideoExtensionCommand>>, { - (::windows::core::Interface::vtable(self).ExecuteExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pexecutionparameters), executionparameterssizeinbytes, ::core::mem::transmute(poutputdata), outputdatasizeinbytes).ok() + (::windows::core::Interface::vtable(self).ExecuteExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pexecutionparameters.as_ptr()), pexecutionparameters.len() as _, ::core::mem::transmute(poutputdata.as_ptr()), poutputdata.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -16979,8 +16979,8 @@ pub struct ID3D12VideoDevice2_Vtbl { #[repr(transparent)] pub struct ID3D12VideoDevice3(::windows::core::IUnknown); impl ID3D12VideoDevice3 { - pub unsafe fn CheckFeatureSupport(&self, featurevideo: D3D12_FEATURE_VIDEO, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), featurevideo, ::core::mem::transmute(pfeaturesupportdata), featuresupportdatasize).ok() + pub unsafe fn CheckFeatureSupport(&self, featurevideo: D3D12_FEATURE_VIDEO, pfeaturesupportdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), featurevideo, ::core::mem::transmute(pfeaturesupportdata.as_ptr()), pfeaturesupportdata.len() as _).ok() } pub unsafe fn CreateVideoDecoder(&self, pdesc: &D3D12_VIDEO_DECODER_DESC) -> ::windows::core::Result where @@ -17005,7 +17005,7 @@ impl ID3D12VideoDevice3 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateVideoProcessor)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(poutputstreamdesc), pinputstreamdescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputstreamdescs)), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateVideoProcessor)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(poutputstreamdesc), pinputstreamdescs.len() as _, ::core::mem::transmute(pinputstreamdescs.as_ptr()), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Graphics_Direct3D12", feature = "Win32_Graphics_Dxgi_Common"))] @@ -17055,25 +17055,25 @@ impl ID3D12VideoDevice3 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.CreateVideoProcessor1)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(poutputstreamdesc), pinputstreamdescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputstreamdescs)), pprotectedresourcesession.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.CreateVideoProcessor1)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(poutputstreamdesc), pinputstreamdescs.len() as _, ::core::mem::transmute(pinputstreamdescs.as_ptr()), pprotectedresourcesession.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn CreateVideoExtensionCommand<'a, P0, T>(&self, pdesc: &D3D12_VIDEO_EXTENSION_COMMAND_DESC, pcreationparameters: *const ::core::ffi::c_void, creationparametersdatasizeinbytes: usize, pprotectedresourcesession: P0) -> ::windows::core::Result + pub unsafe fn CreateVideoExtensionCommand<'a, P0, T>(&self, pdesc: &D3D12_VIDEO_EXTENSION_COMMAND_DESC, pcreationparameters: &[u8], pprotectedresourcesession: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Graphics::Direct3D12::ID3D12ProtectedResourceSession>>, T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.CreateVideoExtensionCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(pcreationparameters), creationparametersdatasizeinbytes, pprotectedresourcesession.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.CreateVideoExtensionCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc), ::core::mem::transmute(pcreationparameters.as_ptr()), pcreationparameters.len() as _, pprotectedresourcesession.into().abi(), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn ExecuteExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pexecutionparameters: *const ::core::ffi::c_void, executionparameterssizeinbytes: usize, poutputdata: *mut ::core::ffi::c_void, outputdatasizeinbytes: usize) -> ::windows::core::Result<()> + pub unsafe fn ExecuteExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pexecutionparameters: &[u8], poutputdata: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12VideoExtensionCommand>>, { - (::windows::core::Interface::vtable(self).base__.ExecuteExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pexecutionparameters), executionparameterssizeinbytes, ::core::mem::transmute(poutputdata), outputdatasizeinbytes).ok() + (::windows::core::Interface::vtable(self).base__.ExecuteExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pexecutionparameters.as_ptr()), pexecutionparameters.len() as _, ::core::mem::transmute(poutputdata.as_ptr()), poutputdata.len() as _).ok() } #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] @@ -17197,8 +17197,8 @@ impl ID3D12VideoEncodeCommandList { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -17246,7 +17246,7 @@ impl ID3D12VideoEncodeCommandList { #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] pub unsafe fn ResourceBarrier(&self, pbarriers: &[super::super::Graphics::Direct3D12::D3D12_RESOURCE_BARRIER]) { - (::windows::core::Interface::vtable(self).ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbarriers))) + (::windows::core::Interface::vtable(self).ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D12"))] @@ -17289,11 +17289,11 @@ impl ID3D12VideoEncodeCommandList { { (::windows::core::Interface::vtable(self).SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into().abi(), alignedbufferoffset, operation) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).EndEvent)(::windows::core::Interface::as_raw(self)) @@ -17313,7 +17313,7 @@ impl ID3D12VideoEncodeCommandList { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: &super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<&super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE>) { + pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE) { (::windows::core::Interface::vtable(self).WriteBufferImmediate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(pparams), ::core::mem::transmute(pmodes)) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] @@ -17494,8 +17494,8 @@ impl ID3D12VideoEncodeCommandList1 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -17543,7 +17543,7 @@ impl ID3D12VideoEncodeCommandList1 { #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] pub unsafe fn ResourceBarrier(&self, pbarriers: &[super::super::Graphics::Direct3D12::D3D12_RESOURCE_BARRIER]) { - (::windows::core::Interface::vtable(self).base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbarriers))) + (::windows::core::Interface::vtable(self).base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D12"))] @@ -17586,11 +17586,11 @@ impl ID3D12VideoEncodeCommandList1 { { (::windows::core::Interface::vtable(self).base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into().abi(), alignedbufferoffset, operation) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).base__.EndEvent)(::windows::core::Interface::as_raw(self)) @@ -17610,7 +17610,7 @@ impl ID3D12VideoEncodeCommandList1 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: &super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<&super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE>) { + pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE) { (::windows::core::Interface::vtable(self).base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(pparams), ::core::mem::transmute(pmodes)) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] @@ -17623,19 +17623,19 @@ impl ID3D12VideoEncodeCommandList1 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn InitializeExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pinitializationparameters: *const ::core::ffi::c_void, initializationparameterssizeinbytes: usize) + pub unsafe fn InitializeExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pinitializationparameters: &[u8]) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12VideoExtensionCommand>>, { - (::windows::core::Interface::vtable(self).InitializeExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pinitializationparameters), initializationparameterssizeinbytes) + (::windows::core::Interface::vtable(self).InitializeExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pinitializationparameters.as_ptr()), pinitializationparameters.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn ExecuteExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pexecutionparameters: *const ::core::ffi::c_void, executionparameterssizeinbytes: usize) + pub unsafe fn ExecuteExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pexecutionparameters: &[u8]) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12VideoExtensionCommand>>, { - (::windows::core::Interface::vtable(self).ExecuteExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pexecutionparameters), executionparameterssizeinbytes) + (::windows::core::Interface::vtable(self).ExecuteExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pexecutionparameters.as_ptr()), pexecutionparameters.len() as _) } } #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -17784,8 +17784,8 @@ impl ID3D12VideoEncodeCommandList2 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -17833,7 +17833,7 @@ impl ID3D12VideoEncodeCommandList2 { #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] pub unsafe fn ResourceBarrier(&self, pbarriers: &[super::super::Graphics::Direct3D12::D3D12_RESOURCE_BARRIER]) { - (::windows::core::Interface::vtable(self).base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbarriers))) + (::windows::core::Interface::vtable(self).base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D12"))] @@ -17876,11 +17876,11 @@ impl ID3D12VideoEncodeCommandList2 { { (::windows::core::Interface::vtable(self).base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into().abi(), alignedbufferoffset, operation) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).base__.base__.EndEvent)(::windows::core::Interface::as_raw(self)) @@ -17900,7 +17900,7 @@ impl ID3D12VideoEncodeCommandList2 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: &super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<&super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE>) { + pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE) { (::windows::core::Interface::vtable(self).base__.base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(pparams), ::core::mem::transmute(pmodes)) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] @@ -17913,19 +17913,19 @@ impl ID3D12VideoEncodeCommandList2 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn InitializeExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pinitializationparameters: *const ::core::ffi::c_void, initializationparameterssizeinbytes: usize) + pub unsafe fn InitializeExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pinitializationparameters: &[u8]) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12VideoExtensionCommand>>, { - (::windows::core::Interface::vtable(self).base__.InitializeExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pinitializationparameters), initializationparameterssizeinbytes) + (::windows::core::Interface::vtable(self).base__.InitializeExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pinitializationparameters.as_ptr()), pinitializationparameters.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn ExecuteExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pexecutionparameters: *const ::core::ffi::c_void, executionparameterssizeinbytes: usize) + pub unsafe fn ExecuteExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pexecutionparameters: &[u8]) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12VideoExtensionCommand>>, { - (::windows::core::Interface::vtable(self).base__.ExecuteExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pexecutionparameters), executionparameterssizeinbytes) + (::windows::core::Interface::vtable(self).base__.ExecuteExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pexecutionparameters.as_ptr()), pexecutionparameters.len() as _) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D12", feature = "Win32_Graphics_Dxgi_Common"))] @@ -18106,8 +18106,8 @@ impl ID3D12VideoEncoder { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -18287,8 +18287,8 @@ impl ID3D12VideoEncoderHeap { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -18333,7 +18333,7 @@ impl ID3D12VideoEncoderHeap { (::windows::core::Interface::vtable(self).GetResolutionListCount)(::windows::core::Interface::as_raw(self)) } pub unsafe fn GetResolutionList(&self, presolutionlist: &mut [D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetResolutionList)(::windows::core::Interface::as_raw(self), presolutionlist.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(presolutionlist))).ok() + (::windows::core::Interface::vtable(self).GetResolutionList)(::windows::core::Interface::as_raw(self), presolutionlist.len() as _, ::core::mem::transmute(presolutionlist.as_ptr())).ok() } } #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -18463,8 +18463,8 @@ impl ID3D12VideoExtensionCommand { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -18624,8 +18624,8 @@ impl ID3D12VideoMotionEstimator { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -18790,8 +18790,8 @@ impl ID3D12VideoMotionVectorHeap { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -18956,8 +18956,8 @@ impl ID3D12VideoProcessCommandList { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -19005,7 +19005,7 @@ impl ID3D12VideoProcessCommandList { #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] pub unsafe fn ResourceBarrier(&self, pbarriers: &[super::super::Graphics::Direct3D12::D3D12_RESOURCE_BARRIER]) { - (::windows::core::Interface::vtable(self).ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbarriers))) + (::windows::core::Interface::vtable(self).ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D12"))] @@ -19048,11 +19048,11 @@ impl ID3D12VideoProcessCommandList { { (::windows::core::Interface::vtable(self).SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into().abi(), alignedbufferoffset, operation) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).EndEvent)(::windows::core::Interface::as_raw(self)) @@ -19063,11 +19063,11 @@ impl ID3D12VideoProcessCommandList { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12VideoProcessor>>, { - (::windows::core::Interface::vtable(self).ProcessFrames)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(poutputarguments), pinputarguments.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputarguments))) + (::windows::core::Interface::vtable(self).ProcessFrames)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(poutputarguments), pinputarguments.len() as _, ::core::mem::transmute(pinputarguments.as_ptr())) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: &super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<&super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE>) { + pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE) { (::windows::core::Interface::vtable(self).WriteBufferImmediate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(pparams), ::core::mem::transmute(pmodes)) } } @@ -19232,8 +19232,8 @@ impl ID3D12VideoProcessCommandList1 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -19281,7 +19281,7 @@ impl ID3D12VideoProcessCommandList1 { #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] pub unsafe fn ResourceBarrier(&self, pbarriers: &[super::super::Graphics::Direct3D12::D3D12_RESOURCE_BARRIER]) { - (::windows::core::Interface::vtable(self).base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbarriers))) + (::windows::core::Interface::vtable(self).base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D12"))] @@ -19324,11 +19324,11 @@ impl ID3D12VideoProcessCommandList1 { { (::windows::core::Interface::vtable(self).base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into().abi(), alignedbufferoffset, operation) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).base__.EndEvent)(::windows::core::Interface::as_raw(self)) @@ -19339,11 +19339,11 @@ impl ID3D12VideoProcessCommandList1 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.ProcessFrames)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(poutputarguments), pinputarguments.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputarguments))) + (::windows::core::Interface::vtable(self).base__.ProcessFrames)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(poutputarguments), pinputarguments.len() as _, ::core::mem::transmute(pinputarguments.as_ptr())) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: &super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<&super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE>) { + pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE) { (::windows::core::Interface::vtable(self).base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(pparams), ::core::mem::transmute(pmodes)) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D12\"`*"] @@ -19352,7 +19352,7 @@ impl ID3D12VideoProcessCommandList1 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12VideoProcessor>>, { - (::windows::core::Interface::vtable(self).ProcessFrames1)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(poutputarguments), pinputarguments.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputarguments))) + (::windows::core::Interface::vtable(self).ProcessFrames1)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(poutputarguments), pinputarguments.len() as _, ::core::mem::transmute(pinputarguments.as_ptr())) } } #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -19497,8 +19497,8 @@ impl ID3D12VideoProcessCommandList2 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -19546,7 +19546,7 @@ impl ID3D12VideoProcessCommandList2 { #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] pub unsafe fn ResourceBarrier(&self, pbarriers: &[super::super::Graphics::Direct3D12::D3D12_RESOURCE_BARRIER]) { - (::windows::core::Interface::vtable(self).base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbarriers))) + (::windows::core::Interface::vtable(self).base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr())) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D12"))] @@ -19589,11 +19589,11 @@ impl ID3D12VideoProcessCommandList2 { { (::windows::core::Interface::vtable(self).base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into().abi(), alignedbufferoffset, operation) } - pub unsafe fn SetMarker(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } - pub unsafe fn BeginEvent(&self, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32) { - (::windows::core::Interface::vtable(self).base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata), size) + pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdata.as_deref().map_or(0, |slice| slice.len() as _)) } pub unsafe fn EndEvent(&self) { (::windows::core::Interface::vtable(self).base__.base__.EndEvent)(::windows::core::Interface::as_raw(self)) @@ -19604,11 +19604,11 @@ impl ID3D12VideoProcessCommandList2 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.base__.ProcessFrames)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(poutputarguments), pinputarguments.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputarguments))) + (::windows::core::Interface::vtable(self).base__.base__.ProcessFrames)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(poutputarguments), pinputarguments.len() as _, ::core::mem::transmute(pinputarguments.as_ptr())) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: &super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<&super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE>) { + pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: *const super::super::Graphics::Direct3D12::D3D12_WRITEBUFFERIMMEDIATE_MODE) { (::windows::core::Interface::vtable(self).base__.base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(pparams), ::core::mem::transmute(pmodes)) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D12\"`*"] @@ -19617,7 +19617,7 @@ impl ID3D12VideoProcessCommandList2 { where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12VideoProcessor>>, { - (::windows::core::Interface::vtable(self).base__.ProcessFrames1)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(poutputarguments), pinputarguments.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputarguments))) + (::windows::core::Interface::vtable(self).base__.ProcessFrames1)(::windows::core::Interface::as_raw(self), pvideoprocessor.into().abi(), ::core::mem::transmute(poutputarguments), pinputarguments.len() as _, ::core::mem::transmute(pinputarguments.as_ptr())) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -19629,19 +19629,19 @@ impl ID3D12VideoProcessCommandList2 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn InitializeExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pinitializationparameters: *const ::core::ffi::c_void, initializationparameterssizeinbytes: usize) + pub unsafe fn InitializeExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pinitializationparameters: &[u8]) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12VideoExtensionCommand>>, { - (::windows::core::Interface::vtable(self).InitializeExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pinitializationparameters), initializationparameterssizeinbytes) + (::windows::core::Interface::vtable(self).InitializeExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pinitializationparameters.as_ptr()), pinitializationparameters.len() as _) } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn ExecuteExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pexecutionparameters: *const ::core::ffi::c_void, executionparameterssizeinbytes: usize) + pub unsafe fn ExecuteExtensionCommand<'a, P0>(&self, pextensioncommand: P0, pexecutionparameters: &[u8]) where P0: ::std::convert::Into<::windows::core::InParam<'a, ID3D12VideoExtensionCommand>>, { - (::windows::core::Interface::vtable(self).ExecuteExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pexecutionparameters), executionparameterssizeinbytes) + (::windows::core::Interface::vtable(self).ExecuteExtensionCommand)(::windows::core::Interface::as_raw(self), pextensioncommand.into().abi(), ::core::mem::transmute(pexecutionparameters.as_ptr()), pexecutionparameters.len() as _) } } #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -19812,8 +19812,8 @@ impl ID3D12VideoProcessor { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -19848,7 +19848,7 @@ impl ID3D12VideoProcessor { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] pub unsafe fn GetInputStreamDescs(&self, pinputstreamdescs: &mut [D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetInputStreamDescs)(::windows::core::Interface::as_raw(self), pinputstreamdescs.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pinputstreamdescs))).ok() + (::windows::core::Interface::vtable(self).GetInputStreamDescs)(::windows::core::Interface::as_raw(self), pinputstreamdescs.len() as _, ::core::mem::transmute(pinputstreamdescs.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] @@ -19988,8 +19988,8 @@ impl ID3D12VideoProcessor1 { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] - pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetPrivateData(&self, guid: &::windows::core::GUID, pdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), pdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D12")] @@ -20024,7 +20024,7 @@ impl ID3D12VideoProcessor1 { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] pub unsafe fn GetInputStreamDescs(&self, pinputstreamdescs: &mut [D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetInputStreamDescs)(::windows::core::Interface::as_raw(self), pinputstreamdescs.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pinputstreamdescs))).ok() + (::windows::core::Interface::vtable(self).base__.GetInputStreamDescs)(::windows::core::Interface::as_raw(self), pinputstreamdescs.len() as _, ::core::mem::transmute(pinputstreamdescs.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))] @@ -20173,7 +20173,7 @@ impl IDXVAHD_Device { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] pub unsafe fn CreateVideoSurface(&self, width: u32, height: u32, format: super::super::Graphics::Direct3D9::D3DFORMAT, pool: super::super::Graphics::Direct3D9::D3DPOOL, usage: u32, r#type: DXVAHD_SURFACE_TYPE, ppsurfaces: &mut [::core::option::Option], psharedhandle: ::core::option::Option<&mut super::super::Foundation::HANDLE>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CreateVideoSurface)(::windows::core::Interface::as_raw(self), width, height, format, pool, usage, r#type, ppsurfaces.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppsurfaces)), ::core::mem::transmute(psharedhandle)).ok() + (::windows::core::Interface::vtable(self).CreateVideoSurface)(::windows::core::Interface::as_raw(self), width, height, format, pool, usage, r#type, ppsurfaces.len() as _, ::core::mem::transmute(ppsurfaces.as_ptr()), ::core::mem::transmute(psharedhandle)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D9\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D9")] @@ -20184,20 +20184,20 @@ impl IDXVAHD_Device { #[doc = "*Required features: `\"Win32_Graphics_Direct3D9\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D9")] pub unsafe fn GetVideoProcessorOutputFormats(&self, pformats: &mut [super::super::Graphics::Direct3D9::D3DFORMAT]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetVideoProcessorOutputFormats)(::windows::core::Interface::as_raw(self), pformats.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pformats))).ok() + (::windows::core::Interface::vtable(self).GetVideoProcessorOutputFormats)(::windows::core::Interface::as_raw(self), pformats.len() as _, ::core::mem::transmute(pformats.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D9\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D9")] pub unsafe fn GetVideoProcessorInputFormats(&self, pformats: &mut [super::super::Graphics::Direct3D9::D3DFORMAT]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetVideoProcessorInputFormats)(::windows::core::Interface::as_raw(self), pformats.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pformats))).ok() + (::windows::core::Interface::vtable(self).GetVideoProcessorInputFormats)(::windows::core::Interface::as_raw(self), pformats.len() as _, ::core::mem::transmute(pformats.as_ptr())).ok() } pub unsafe fn GetVideoProcessorCaps(&self, pcaps: &mut [DXVAHD_VPCAPS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetVideoProcessorCaps)(::windows::core::Interface::as_raw(self), pcaps.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pcaps))).ok() + (::windows::core::Interface::vtable(self).GetVideoProcessorCaps)(::windows::core::Interface::as_raw(self), pcaps.len() as _, ::core::mem::transmute(pcaps.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetVideoProcessorCustomRates(&self, pvpguid: &::windows::core::GUID, prates: &mut [DXVAHD_CUSTOM_RATE_DATA]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetVideoProcessorCustomRates)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvpguid), prates.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prates))).ok() + (::windows::core::Interface::vtable(self).GetVideoProcessorCustomRates)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvpguid), prates.len() as _, ::core::mem::transmute(prates.as_ptr())).ok() } pub unsafe fn GetVideoProcessorFilterRange(&self, filter: DXVAHD_FILTER) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -20275,17 +20275,17 @@ pub struct IDXVAHD_Device_Vtbl { #[repr(transparent)] pub struct IDXVAHD_VideoProcessor(::windows::core::IUnknown); impl IDXVAHD_VideoProcessor { - pub unsafe fn SetVideoProcessBltState(&self, state: DXVAHD_BLT_STATE, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetVideoProcessBltState)(::windows::core::Interface::as_raw(self), state, datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetVideoProcessBltState(&self, state: DXVAHD_BLT_STATE, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetVideoProcessBltState)(::windows::core::Interface::as_raw(self), state, pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } - pub unsafe fn GetVideoProcessBltState(&self, state: DXVAHD_BLT_STATE, datasize: u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetVideoProcessBltState)(::windows::core::Interface::as_raw(self), state, datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn GetVideoProcessBltState(&self, state: DXVAHD_BLT_STATE, pdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetVideoProcessBltState)(::windows::core::Interface::as_raw(self), state, pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } - pub unsafe fn SetVideoProcessStreamState(&self, streamnumber: u32, state: DXVAHD_STREAM_STATE, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetVideoProcessStreamState)(::windows::core::Interface::as_raw(self), streamnumber, state, datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn SetVideoProcessStreamState(&self, streamnumber: u32, state: DXVAHD_STREAM_STATE, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetVideoProcessStreamState)(::windows::core::Interface::as_raw(self), streamnumber, state, pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } - pub unsafe fn GetVideoProcessStreamState(&self, streamnumber: u32, state: DXVAHD_STREAM_STATE, datasize: u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetVideoProcessStreamState)(::windows::core::Interface::as_raw(self), streamnumber, state, datasize, ::core::mem::transmute(pdata)).ok() + pub unsafe fn GetVideoProcessStreamState(&self, streamnumber: u32, state: DXVAHD_STREAM_STATE, pdata: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetVideoProcessStreamState)(::windows::core::Interface::as_raw(self), streamnumber, state, pdata.len() as _, ::core::mem::transmute(pdata.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))] @@ -20293,7 +20293,7 @@ impl IDXVAHD_VideoProcessor { where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Graphics::Direct3D9::IDirect3DSurface9>>, { - (::windows::core::Interface::vtable(self).VideoProcessBltHD)(::windows::core::Interface::as_raw(self), poutputsurface.into().abi(), outputframe, pstreams.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pstreams))).ok() + (::windows::core::Interface::vtable(self).VideoProcessBltHD)(::windows::core::Interface::as_raw(self), poutputsurface.into().abi(), outputframe, pstreams.len() as _, ::core::mem::transmute(pstreams.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -20835,7 +20835,7 @@ impl IDirectXVideoDecoder { } #[doc = "*Required features: `\"Win32_Graphics_Direct3D9\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D9")] - pub unsafe fn GetCreationParameters(&self, pdeviceguid: ::core::option::Option<&mut ::windows::core::GUID>, pvideodesc: ::core::option::Option<&mut DXVA2_VideoDesc>, pconfig: ::core::option::Option<&mut DXVA2_ConfigPictureDecode>, pdecoderrendertargets: &mut *mut ::core::option::Option, pnumsurfaces: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetCreationParameters(&self, pdeviceguid: ::core::option::Option<&mut ::windows::core::GUID>, pvideodesc: ::core::option::Option<&mut DXVA2_VideoDesc>, pconfig: ::core::option::Option<&mut DXVA2_ConfigPictureDecode>, pdecoderrendertargets: *mut *mut ::core::option::Option, pnumsurfaces: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetCreationParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdeviceguid), ::core::mem::transmute(pvideodesc), ::core::mem::transmute(pconfig), ::core::mem::transmute(pdecoderrendertargets), ::core::mem::transmute(pnumsurfaces)).ok() } pub unsafe fn GetBuffer(&self, buffertype: DXVA2_BufferfType, ppbuffer: *mut *mut ::core::ffi::c_void, pbuffersize: &mut u32) -> ::windows::core::Result<()> { @@ -20943,7 +20943,7 @@ impl IDirectXVideoDecoderService { #[cfg(feature = "Win32_Graphics_Direct3D9")] pub unsafe fn CreateVideoDecoder(&self, guid: &::windows::core::GUID, pvideodesc: &DXVA2_VideoDesc, pconfig: &DXVA2_ConfigPictureDecode, ppdecoderrendertargets: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateVideoDecoder)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pvideodesc), ::core::mem::transmute(pconfig), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppdecoderrendertargets)), ppdecoderrendertargets.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateVideoDecoder)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guid), ::core::mem::transmute(pvideodesc), ::core::mem::transmute(pconfig), ::core::mem::transmute(ppdecoderrendertargets.as_ptr()), ppdecoderrendertargets.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -21101,7 +21101,7 @@ impl IDirectXVideoProcessor { where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Graphics::Direct3D9::IDirect3DSurface9>>, { - (::windows::core::Interface::vtable(self).VideoProcessBlt)(::windows::core::Interface::as_raw(self), prendertarget.into().abi(), ::core::mem::transmute(pbltparams), ::core::mem::transmute(::windows::core::as_ptr_or_null(psamples)), psamples.len() as _, ::core::mem::transmute(phandlecomplete)).ok() + (::windows::core::Interface::vtable(self).VideoProcessBlt)(::windows::core::Interface::as_raw(self), prendertarget.into().abi(), ::core::mem::transmute(pbltparams), ::core::mem::transmute(psamples.as_ptr()), psamples.len() as _, ::core::mem::transmute(phandlecomplete)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -21752,11 +21752,11 @@ impl IMF2DBuffer { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetContiguousLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ContiguousCopyTo(&self, pbdestbuffer: &mut u8, cbdestbuffer: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ContiguousCopyTo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbdestbuffer), cbdestbuffer).ok() + pub unsafe fn ContiguousCopyTo(&self, pbdestbuffer: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ContiguousCopyTo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbdestbuffer.as_ptr()), pbdestbuffer.len() as _).ok() } - pub unsafe fn ContiguousCopyFrom(&self, pbsrcbuffer: &u8, cbsrcbuffer: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ContiguousCopyFrom)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbsrcbuffer), cbsrcbuffer).ok() + pub unsafe fn ContiguousCopyFrom(&self, pbsrcbuffer: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ContiguousCopyFrom)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbsrcbuffer.as_ptr()), pbsrcbuffer.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -21832,11 +21832,11 @@ impl IMF2DBuffer2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetContiguousLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ContiguousCopyTo(&self, pbdestbuffer: &mut u8, cbdestbuffer: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.ContiguousCopyTo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbdestbuffer), cbdestbuffer).ok() + pub unsafe fn ContiguousCopyTo(&self, pbdestbuffer: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.ContiguousCopyTo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbdestbuffer.as_ptr()), pbdestbuffer.len() as _).ok() } - pub unsafe fn ContiguousCopyFrom(&self, pbsrcbuffer: &u8, cbsrcbuffer: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.ContiguousCopyFrom)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbsrcbuffer), cbsrcbuffer).ok() + pub unsafe fn ContiguousCopyFrom(&self, pbsrcbuffer: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.ContiguousCopyFrom)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbsrcbuffer.as_ptr()), pbsrcbuffer.len() as _).ok() } pub unsafe fn Lock2DSize(&self, lockflags: MF2DBuffer_LockFlags, ppbscanline0: &mut *mut u8, plpitch: &mut i32, ppbbufferstart: &mut *mut u8, pcbbufferlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Lock2DSize)(::windows::core::Interface::as_raw(self), lockflags, ::core::mem::transmute(ppbscanline0), ::core::mem::transmute(plpitch), ::core::mem::transmute(ppbbufferstart), ::core::mem::transmute(pcbbufferlength)).ok() @@ -22360,7 +22360,7 @@ impl IMFASFProfile { (::windows::core::Interface::vtable(self).base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -22370,9 +22370,9 @@ impl IMFASFProfile { (::windows::core::Interface::vtable(self).base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -22412,7 +22412,7 @@ impl IMFASFProfile { (::windows::core::Interface::vtable(self).base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -22720,7 +22720,7 @@ impl IMFASFStreamConfig { (::windows::core::Interface::vtable(self).base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -22730,9 +22730,9 @@ impl IMFASFStreamConfig { (::windows::core::Interface::vtable(self).base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -22772,7 +22772,7 @@ impl IMFASFStreamConfig { (::windows::core::Interface::vtable(self).base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -22829,7 +22829,7 @@ impl IMFASFStreamConfig { (::windows::core::Interface::vtable(self).GetPayloadExtension)(::windows::core::Interface::as_raw(self), wpayloadextensionnumber, ::core::mem::transmute(pguidextensionsystemid), ::core::mem::transmute(pcbextensiondatasize), ::core::mem::transmute(pbextensionsysteminfo), ::core::mem::transmute(pcbextensionsysteminfo)).ok() } pub unsafe fn AddPayloadExtension(&self, guidextensionsystemid: ::windows::core::GUID, cbextensiondatasize: u16, pbextensionsysteminfo: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddPayloadExtension)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidextensionsystemid), cbextensiondatasize, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbextensionsysteminfo)), pbextensionsysteminfo.len() as _).ok() + (::windows::core::Interface::vtable(self).AddPayloadExtension)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidextensionsystemid), cbextensiondatasize, ::core::mem::transmute(pbextensionsysteminfo.as_ptr()), pbextensionsysteminfo.len() as _).ok() } pub unsafe fn RemoveAllPayloadExtensions(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).RemoveAllPayloadExtensions)(::windows::core::Interface::as_raw(self)).ok() @@ -23131,7 +23131,7 @@ impl IMFActivate { (::windows::core::Interface::vtable(self).base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -23141,9 +23141,9 @@ impl IMFActivate { (::windows::core::Interface::vtable(self).base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -23183,7 +23183,7 @@ impl IMFActivate { (::windows::core::Interface::vtable(self).base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -23533,7 +23533,7 @@ impl IMFAttributes { (::windows::core::Interface::vtable(self).GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -23543,9 +23543,9 @@ impl IMFAttributes { (::windows::core::Interface::vtable(self).GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -23585,7 +23585,7 @@ impl IMFAttributes { (::windows::core::Interface::vtable(self).SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -23749,7 +23749,7 @@ impl IMFAudioMediaType { (::windows::core::Interface::vtable(self).base__.base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -23759,9 +23759,9 @@ impl IMFAudioMediaType { (::windows::core::Interface::vtable(self).base__.base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -23801,7 +23801,7 @@ impl IMFAudioMediaType { (::windows::core::Interface::vtable(self).base__.base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -24027,10 +24027,10 @@ impl IMFAudioStreamVolume { (::windows::core::Interface::vtable(self).GetChannelVolume)(::windows::core::Interface::as_raw(self), dwindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetAllVolumes(&self, pfvolumes: &[f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetAllVolumes)(::windows::core::Interface::as_raw(self), pfvolumes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfvolumes))).ok() + (::windows::core::Interface::vtable(self).SetAllVolumes)(::windows::core::Interface::as_raw(self), pfvolumes.len() as _, ::core::mem::transmute(pfvolumes.as_ptr())).ok() } pub unsafe fn GetAllVolumes(&self, pfvolumes: &mut [f32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetAllVolumes)(::windows::core::Interface::as_raw(self), pfvolumes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pfvolumes))).ok() + (::windows::core::Interface::vtable(self).GetAllVolumes)(::windows::core::Interface::as_raw(self), pfvolumes.len() as _, ::core::mem::transmute(pfvolumes.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -24160,14 +24160,14 @@ impl IMFByteStream { (::windows::core::Interface::vtable(self).IsEndOfStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Read(&self, pb: &mut [u8], pcbread: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pb)), pb.len() as _, ::core::mem::transmute(pcbread)).ok() + (::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pb.as_ptr()), pb.len() as _, ::core::mem::transmute(pcbread)).ok() } - pub unsafe fn BeginRead<'a, P0, P1>(&self, pb: &mut u8, cb: u32, pcallback: P0, punkstate: P1) -> ::windows::core::Result<()> + pub unsafe fn BeginRead<'a, P0, P1>(&self, pb: &mut [u8], pcallback: P0, punkstate: P1) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMFAsyncCallback>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).BeginRead)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pb), cb, pcallback.into().abi(), punkstate.into().abi()).ok() + (::windows::core::Interface::vtable(self).BeginRead)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pb.as_ptr()), pb.len() as _, pcallback.into().abi(), punkstate.into().abi()).ok() } pub unsafe fn EndRead<'a, P0>(&self, presult: P0) -> ::windows::core::Result where @@ -24178,14 +24178,14 @@ impl IMFByteStream { } pub unsafe fn Write(&self, pb: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pb)), pb.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pb.as_ptr()), pb.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn BeginWrite<'a, P0, P1>(&self, pb: &u8, cb: u32, pcallback: P0, punkstate: P1) -> ::windows::core::Result<()> + pub unsafe fn BeginWrite<'a, P0, P1>(&self, pb: &[u8], pcallback: P0, punkstate: P1) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMFAsyncCallback>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).BeginWrite)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pb), cb, pcallback.into().abi(), punkstate.into().abi()).ok() + (::windows::core::Interface::vtable(self).BeginWrite)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pb.as_ptr()), pb.len() as _, pcallback.into().abi(), punkstate.into().abi()).ok() } pub unsafe fn EndWrite<'a, P0>(&self, presult: P0) -> ::windows::core::Result where @@ -24384,7 +24384,7 @@ impl IMFByteStreamCacheControl2 { pub unsafe fn StopBackgroundTransfer(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.StopBackgroundTransfer)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn GetByteRanges(&self, pcranges: &mut u32, ppranges: &mut *mut MF_BYTE_STREAM_CACHE_RANGE) -> ::windows::core::Result<()> { + pub unsafe fn GetByteRanges(&self, pcranges: &mut u32, ppranges: *mut *mut MF_BYTE_STREAM_CACHE_RANGE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetByteRanges)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcranges), ::core::mem::transmute(ppranges)).ok() } pub unsafe fn SetCacheLimit(&self, qwbytes: u64) -> ::windows::core::Result<()> { @@ -26275,13 +26275,13 @@ impl IMFContentDecryptionModule { (::windows::core::Interface::vtable(self).CreateSession)(::windows::core::Interface::as_raw(self), sessiontype, callbacks.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetServerCertificate(&self, certificate: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetServerCertificate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(certificate)), certificate.len() as _).ok() + (::windows::core::Interface::vtable(self).SetServerCertificate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(certificate.as_ptr()), certificate.len() as _).ok() } pub unsafe fn CreateTrustedInput(&self, contentinitdata: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateTrustedInput)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(contentinitdata)), contentinitdata.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateTrustedInput)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(contentinitdata.as_ptr()), contentinitdata.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetProtectionSystemIds(&self, systemids: &mut *mut ::windows::core::GUID, count: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetProtectionSystemIds(&self, systemids: *mut *mut ::windows::core::GUID, count: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetProtectionSystemIds)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(systemids), ::core::mem::transmute(count)).ok() } } @@ -26425,7 +26425,7 @@ impl IMFContentDecryptionModuleFactory { P0: ::std::convert::Into<::windows::core::PCWSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateContentDecryptionModuleAccess)(::windows::core::Interface::as_raw(self), keysystem.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(configurations)), configurations.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateContentDecryptionModuleAccess)(::windows::core::Interface::as_raw(self), keysystem.into(), ::core::mem::transmute(configurations.as_ptr()), configurations.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -26488,7 +26488,7 @@ impl IMFContentDecryptionModuleSession { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetExpiration)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetKeyStatuses(&self, keystatuses: &mut *mut MFMediaKeyStatus, numkeystatuses: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetKeyStatuses(&self, keystatuses: *mut *mut MFMediaKeyStatus, numkeystatuses: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetKeyStatuses)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(keystatuses), ::core::mem::transmute(numkeystatuses)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -26504,10 +26504,10 @@ impl IMFContentDecryptionModuleSession { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GenerateRequest)(::windows::core::Interface::as_raw(self), initdatatype.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(initdata)), initdata.len() as _).ok() + (::windows::core::Interface::vtable(self).GenerateRequest)(::windows::core::Interface::as_raw(self), initdatatype.into(), ::core::mem::transmute(initdata.as_ptr()), initdata.len() as _).ok() } pub unsafe fn Update(&self, response: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Update)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(response)), response.len() as _).ok() + (::windows::core::Interface::vtable(self).Update)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(response.as_ptr()), response.len() as _).ok() } pub unsafe fn Close(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Close)(::windows::core::Interface::as_raw(self)).ok() @@ -26575,7 +26575,7 @@ impl IMFContentDecryptionModuleSessionCallbacks { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).KeyMessage)(::windows::core::Interface::as_raw(self), messagetype, ::core::mem::transmute(::windows::core::as_ptr_or_null(message)), message.len() as _, destinationurl.into()).ok() + (::windows::core::Interface::vtable(self).KeyMessage)(::windows::core::Interface::as_raw(self), messagetype, ::core::mem::transmute(message.as_ptr()), message.len() as _, destinationurl.into()).ok() } pub unsafe fn KeyStatusChanged(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).KeyStatusChanged)(::windows::core::Interface::as_raw(self)).ok() @@ -26627,9 +26627,9 @@ pub struct IMFContentDecryptionModuleSessionCallbacks_Vtbl { #[repr(transparent)] pub struct IMFContentDecryptorContext(::windows::core::IUnknown); impl IMFContentDecryptorContext { - pub unsafe fn InitializeHardwareKey(&self, inputprivatedata: &[u8]) -> ::windows::core::Result { + pub unsafe fn InitializeHardwareKey(&self, inputprivatedata: ::core::option::Option<&[u8]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).InitializeHardwareKey)(::windows::core::Interface::as_raw(self), inputprivatedata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(inputprivatedata)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).InitializeHardwareKey)(::windows::core::Interface::as_raw(self), inputprivatedata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(inputprivatedata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -26681,10 +26681,10 @@ impl IMFContentEnabler { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetEnableType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } - pub unsafe fn GetEnableURL(&self, ppwszurl: &mut ::windows::core::PWSTR, pcchurl: &mut u32, ptruststatus: &mut MF_URL_TRUST_STATUS) -> ::windows::core::Result<()> { + pub unsafe fn GetEnableURL(&self, ppwszurl: *mut ::windows::core::PWSTR, pcchurl: &mut u32, ptruststatus: &mut MF_URL_TRUST_STATUS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetEnableURL)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppwszurl), ::core::mem::transmute(pcchurl), ::core::mem::transmute(ptruststatus)).ok() } - pub unsafe fn GetEnableData(&self, ppbdata: &mut *mut u8, pcbdata: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetEnableData(&self, ppbdata: *mut *mut u8, pcbdata: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetEnableData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppbdata), ::core::mem::transmute(pcbdata)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -26757,8 +26757,8 @@ pub struct IMFContentEnabler_Vtbl { #[repr(transparent)] pub struct IMFContentProtectionDevice(::windows::core::IUnknown); impl IMFContentProtectionDevice { - pub unsafe fn InvokeFunction(&self, functionid: u32, inputbufferbytecount: u32, inputbuffer: &u8, outputbufferbytecount: &mut u32, outputbuffer: &mut u8) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).InvokeFunction)(::windows::core::Interface::as_raw(self), functionid, inputbufferbytecount, ::core::mem::transmute(inputbuffer), ::core::mem::transmute(outputbufferbytecount), ::core::mem::transmute(outputbuffer)).ok() + pub unsafe fn InvokeFunction(&self, functionid: u32, inputbuffer: &[u8], outputbufferbytecount: &mut u32, outputbuffer: *mut u8) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).InvokeFunction)(::windows::core::Interface::as_raw(self), functionid, inputbuffer.len() as _, ::core::mem::transmute(inputbuffer.as_ptr()), ::core::mem::transmute(outputbufferbytecount), ::core::mem::transmute(outputbuffer)).ok() } pub unsafe fn GetPrivateDataByteCount(&self, privateinputbytecount: &mut u32, privateoutputbytecount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPrivateDataByteCount)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(privateinputbytecount), ::core::mem::transmute(privateoutputbytecount)).ok() @@ -27086,10 +27086,10 @@ pub struct IMFDRMNetHelper(::windows::core::IUnknown); impl IMFDRMNetHelper { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn ProcessLicenseRequest(&self, plicenserequest: &[u8], pplicenseresponse: &mut *mut u8, pcblicenseresponse: &mut u32, pbstrkid: &mut super::super::Foundation::BSTR) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ProcessLicenseRequest)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(plicenserequest)), plicenserequest.len() as _, ::core::mem::transmute(pplicenseresponse), ::core::mem::transmute(pcblicenseresponse), ::core::mem::transmute(pbstrkid)).ok() + pub unsafe fn ProcessLicenseRequest(&self, plicenserequest: &[u8], pplicenseresponse: *mut *mut u8, pcblicenseresponse: &mut u32, pbstrkid: &mut super::super::Foundation::BSTR) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ProcessLicenseRequest)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plicenserequest.as_ptr()), plicenserequest.len() as _, ::core::mem::transmute(pplicenseresponse), ::core::mem::transmute(pcblicenseresponse), ::core::mem::transmute(pbstrkid)).ok() } - pub unsafe fn GetChainedLicenseResponse(&self, pplicenseresponse: &mut *mut u8, pcblicenseresponse: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetChainedLicenseResponse(&self, pplicenseresponse: *mut *mut u8, pcblicenseresponse: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetChainedLicenseResponse)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pplicenseresponse), ::core::mem::transmute(pcblicenseresponse)).ok() } } @@ -27816,14 +27816,14 @@ pub struct IMFExtendedCameraIntrinsicModel_Vtbl { #[repr(transparent)] pub struct IMFExtendedCameraIntrinsics(::windows::core::IUnknown); impl IMFExtendedCameraIntrinsics { - pub unsafe fn InitializeFromBuffer(&self, pbbuffer: &u8, dwbuffersize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).InitializeFromBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbbuffer), dwbuffersize).ok() + pub unsafe fn InitializeFromBuffer(&self, pbbuffer: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).InitializeFromBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbbuffer.as_ptr()), pbbuffer.len() as _).ok() } pub unsafe fn GetBufferSize(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetBufferSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn SerializeToBuffer(&self, pbbuffer: &mut u8, pdwbuffersize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn SerializeToBuffer(&self, pbbuffer: *mut u8, pdwbuffersize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SerializeToBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbbuffer), ::core::mem::transmute(pdwbuffersize)).ok() } pub unsafe fn GetIntrinsicModelCount(&self) -> ::windows::core::Result { @@ -28341,12 +28341,12 @@ impl IMFHttpDownloadRequest { { (::windows::core::Interface::vtable(self).AddHeader)(::windows::core::Interface::as_raw(self), szheader.into()).ok() } - pub unsafe fn BeginSendRequest<'a, P0, P1>(&self, pbpayload: &[u8], pcallback: P0, punkstate: P1) -> ::windows::core::Result<()> + pub unsafe fn BeginSendRequest<'a, P0, P1>(&self, pbpayload: ::core::option::Option<&[u8]>, pcallback: P0, punkstate: P1) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMFAsyncCallback>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).BeginSendRequest)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpayload)), pbpayload.len() as _, pcallback.into().abi(), punkstate.into().abi()).ok() + (::windows::core::Interface::vtable(self).BeginSendRequest)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbpayload.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbpayload.as_deref().map_or(0, |slice| slice.len() as _), pcallback.into().abi(), punkstate.into().abi()).ok() } pub unsafe fn EndSendRequest<'a, P0>(&self, presult: P0) -> ::windows::core::Result<()> where @@ -28372,7 +28372,7 @@ impl IMFHttpDownloadRequest { P0: ::std::convert::Into<::windows::core::InParam<'a, IMFAsyncCallback>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).BeginReadPayload)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pb)), pb.len() as _, pcallback.into().abi(), punkstate.into().abi()).ok() + (::windows::core::Interface::vtable(self).BeginReadPayload)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pb.as_ptr()), pb.len() as _, pcallback.into().abi(), punkstate.into().abi()).ok() } pub unsafe fn EndReadPayload<'a, P0>(&self, presult: P0, pqwoffset: &mut u64, pcbread: &mut u32) -> ::windows::core::Result<()> where @@ -28810,7 +28810,7 @@ pub struct IMFInputTrustAuthority_Vtbl { pub struct IMFLocalMFTRegistration(::windows::core::IUnknown); impl IMFLocalMFTRegistration { pub unsafe fn RegisterMFTs(&self, pmfts: &[MFT_REGISTRATION_INFO]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RegisterMFTs)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pmfts)), pmfts.len() as _).ok() + (::windows::core::Interface::vtable(self).RegisterMFTs)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pmfts.as_ptr()), pmfts.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -28858,7 +28858,7 @@ pub struct IMFLocalMFTRegistration_Vtbl { #[repr(transparent)] pub struct IMFMediaBuffer(::windows::core::IUnknown); impl IMFMediaBuffer { - pub unsafe fn Lock(&self, ppbbuffer: &mut *mut u8, pcbmaxlength: ::core::option::Option<&mut u32>, pcbcurrentlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn Lock(&self, ppbbuffer: *mut *mut u8, pcbmaxlength: ::core::option::Option<&mut u32>, pcbcurrentlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Lock)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppbbuffer), ::core::mem::transmute(pcbmaxlength), ::core::mem::transmute(pcbcurrentlength)).ok() } pub unsafe fn Unlock(&self) -> ::windows::core::Result<()> { @@ -29428,7 +29428,7 @@ impl IMFMediaEngineClassFactory3 { P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateMediaKeySystemAccess)(::windows::core::Interface::as_raw(self), keysystem.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppsupportedconfigurationsarray)), ppsupportedconfigurationsarray.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateMediaKeySystemAccess)(::windows::core::Interface::as_raw(self), keysystem.into().abi(), ::core::mem::transmute(ppsupportedconfigurationsarray.as_ptr()), ppsupportedconfigurationsarray.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -29701,11 +29701,11 @@ pub struct IMFMediaEngineEMENotify(::windows::core::IUnknown); impl IMFMediaEngineEMENotify { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn Encrypted<'a, P0>(&self, pbinitdata: ::core::option::Option<&u8>, cb: u32, bstrinitdatatype: P0) + pub unsafe fn Encrypted<'a, P0>(&self, pbinitdata: ::core::option::Option<&[u8]>, bstrinitdatatype: P0) where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { - (::windows::core::Interface::vtable(self).Encrypted)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbinitdata), cb, bstrinitdatatype.into().abi()) + (::windows::core::Interface::vtable(self).Encrypted)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbinitdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbinitdata.as_deref().map_or(0, |slice| slice.len() as _), bstrinitdatatype.into().abi()) } pub unsafe fn WaitingForKey(&self) { (::windows::core::Interface::vtable(self).WaitingForKey)(::windows::core::Interface::as_raw(self)) @@ -30380,8 +30380,8 @@ pub struct IMFMediaEngineExtension_Vtbl { #[repr(transparent)] pub struct IMFMediaEngineNeedKeyNotify(::windows::core::IUnknown); impl IMFMediaEngineNeedKeyNotify { - pub unsafe fn NeedKey(&self, initdata: ::core::option::Option<&u8>, cb: u32) { - (::windows::core::Interface::vtable(self).NeedKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(initdata), cb) + pub unsafe fn NeedKey(&self, initdata: ::core::option::Option<&[u8]>) { + (::windows::core::Interface::vtable(self).NeedKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(initdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), initdata.as_deref().map_or(0, |slice| slice.len() as _)) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -30565,8 +30565,8 @@ impl IMFMediaEngineProtectedContent { { (::windows::core::Interface::vtable(self).SetContentProtectionManager)(::windows::core::Interface::as_raw(self), pcpm.into().abi()).ok() } - pub unsafe fn SetApplicationCertificate(&self, pbblob: &u8, cbblob: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetApplicationCertificate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbblob), cbblob).ok() + pub unsafe fn SetApplicationCertificate(&self, pbblob: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetApplicationCertificate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbblob.as_ptr()), pbblob.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -31130,7 +31130,7 @@ impl IMFMediaEvent { (::windows::core::Interface::vtable(self).base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -31140,9 +31140,9 @@ impl IMFMediaEvent { (::windows::core::Interface::vtable(self).base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -31182,7 +31182,7 @@ impl IMFMediaEvent { (::windows::core::Interface::vtable(self).base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -31479,8 +31479,8 @@ impl IMFMediaKeySession { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).SessionId)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn Update(&self, key: &u8, cb: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Update)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(key), cb).ok() + pub unsafe fn Update(&self, key: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Update)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(key.as_ptr()), key.len() as _).ok() } pub unsafe fn Close(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Close)(::windows::core::Interface::as_raw(self)).ok() @@ -31556,8 +31556,8 @@ impl IMFMediaKeySession2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.SessionId)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn Update(&self, key: &u8, cb: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.Update)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(key), cb).ok() + pub unsafe fn Update(&self, key: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.Update)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(key.as_ptr()), key.len() as _).ok() } pub unsafe fn Close(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.Close)(::windows::core::Interface::as_raw(self)).ok() @@ -31576,11 +31576,11 @@ impl IMFMediaKeySession2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GenerateRequest<'a, P0>(&self, initdatatype: P0, pbinitdata: &u8, cb: u32) -> ::windows::core::Result<()> + pub unsafe fn GenerateRequest<'a, P0>(&self, initdatatype: P0, pbinitdata: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { - (::windows::core::Interface::vtable(self).GenerateRequest)(::windows::core::Interface::as_raw(self), initdatatype.into().abi(), ::core::mem::transmute(pbinitdata), cb).ok() + (::windows::core::Interface::vtable(self).GenerateRequest)(::windows::core::Interface::as_raw(self), initdatatype.into().abi(), ::core::mem::transmute(pbinitdata.as_ptr()), pbinitdata.len() as _).ok() } pub unsafe fn Expiration(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -31666,11 +31666,11 @@ pub struct IMFMediaKeySessionNotify(::windows::core::IUnknown); impl IMFMediaKeySessionNotify { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn KeyMessage<'a, P0>(&self, destinationurl: P0, message: &u8, cb: u32) + pub unsafe fn KeyMessage<'a, P0>(&self, destinationurl: P0, message: &[u8]) where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { - (::windows::core::Interface::vtable(self).KeyMessage)(::windows::core::Interface::as_raw(self), destinationurl.into().abi(), ::core::mem::transmute(message), cb) + (::windows::core::Interface::vtable(self).KeyMessage)(::windows::core::Interface::as_raw(self), destinationurl.into().abi(), ::core::mem::transmute(message.as_ptr()), message.len() as _) } pub unsafe fn KeyAdded(&self) { (::windows::core::Interface::vtable(self).KeyAdded)(::windows::core::Interface::as_raw(self)) @@ -31731,11 +31731,11 @@ pub struct IMFMediaKeySessionNotify2(::windows::core::IUnknown); impl IMFMediaKeySessionNotify2 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn KeyMessage<'a, P0>(&self, destinationurl: P0, message: &u8, cb: u32) + pub unsafe fn KeyMessage<'a, P0>(&self, destinationurl: P0, message: &[u8]) where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { - (::windows::core::Interface::vtable(self).base__.KeyMessage)(::windows::core::Interface::as_raw(self), destinationurl.into().abi(), ::core::mem::transmute(message), cb) + (::windows::core::Interface::vtable(self).base__.KeyMessage)(::windows::core::Interface::as_raw(self), destinationurl.into().abi(), ::core::mem::transmute(message.as_ptr()), message.len() as _) } pub unsafe fn KeyAdded(&self) { (::windows::core::Interface::vtable(self).base__.KeyAdded)(::windows::core::Interface::as_raw(self)) @@ -31745,11 +31745,11 @@ impl IMFMediaKeySessionNotify2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn KeyMessage2<'a, P0>(&self, emessagetype: MF_MEDIAKEYSESSION_MESSAGETYPE, destinationurl: P0, pbmessage: &u8, cbmessage: u32) + pub unsafe fn KeyMessage2<'a, P0>(&self, emessagetype: MF_MEDIAKEYSESSION_MESSAGETYPE, destinationurl: P0, pbmessage: &[u8]) where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { - (::windows::core::Interface::vtable(self).KeyMessage2)(::windows::core::Interface::as_raw(self), emessagetype, destinationurl.into().abi(), ::core::mem::transmute(pbmessage), cbmessage) + (::windows::core::Interface::vtable(self).KeyMessage2)(::windows::core::Interface::as_raw(self), emessagetype, destinationurl.into().abi(), ::core::mem::transmute(pbmessage.as_ptr()), pbmessage.len() as _) } pub unsafe fn KeyStatusChange(&self) { (::windows::core::Interface::vtable(self).KeyStatusChange)(::windows::core::Interface::as_raw(self)) @@ -31899,13 +31899,13 @@ pub struct IMFMediaKeys(::windows::core::IUnknown); impl IMFMediaKeys { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn CreateSession<'a, P0, P1>(&self, mimetype: P0, initdata: ::core::option::Option<&u8>, cb: u32, customdata: ::core::option::Option<&u8>, cbcustomdata: u32, notify: P1) -> ::windows::core::Result + pub unsafe fn CreateSession<'a, P0, P1>(&self, mimetype: P0, initdata: ::core::option::Option<&[u8]>, customdata: ::core::option::Option<&[u8]>, notify: P1) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IMFMediaKeySessionNotify>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateSession)(::windows::core::Interface::as_raw(self), mimetype.into().abi(), ::core::mem::transmute(initdata), cb, ::core::mem::transmute(customdata), cbcustomdata, notify.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateSession)(::windows::core::Interface::as_raw(self), mimetype.into().abi(), ::core::mem::transmute(initdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), initdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(customdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), customdata.as_deref().map_or(0, |slice| slice.len() as _), notify.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -31977,13 +31977,13 @@ pub struct IMFMediaKeys2(::windows::core::IUnknown); impl IMFMediaKeys2 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn CreateSession<'a, P0, P1>(&self, mimetype: P0, initdata: ::core::option::Option<&u8>, cb: u32, customdata: ::core::option::Option<&u8>, cbcustomdata: u32, notify: P1) -> ::windows::core::Result + pub unsafe fn CreateSession<'a, P0, P1>(&self, mimetype: P0, initdata: ::core::option::Option<&[u8]>, customdata: ::core::option::Option<&[u8]>, notify: P1) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IMFMediaKeySessionNotify>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateSession)(::windows::core::Interface::as_raw(self), mimetype.into().abi(), ::core::mem::transmute(initdata), cb, ::core::mem::transmute(customdata), cbcustomdata, notify.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateSession)(::windows::core::Interface::as_raw(self), mimetype.into().abi(), ::core::mem::transmute(initdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), initdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(customdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), customdata.as_deref().map_or(0, |slice| slice.len() as _), notify.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -32005,8 +32005,8 @@ impl IMFMediaKeys2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).CreateSession2)(::windows::core::Interface::as_raw(self), esessiontype, pmfmediakeysessionnotify2.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn SetServerCertificate(&self, pbservercertificate: ::core::option::Option<&u8>, cb: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetServerCertificate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbservercertificate), cb).ok() + pub unsafe fn SetServerCertificate(&self, pbservercertificate: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetServerCertificate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbservercertificate.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbservercertificate.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn GetDOMException(&self, systemcode: ::windows::core::HRESULT) -> ::windows::core::Result<::windows::core::HRESULT> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -33789,7 +33789,7 @@ impl IMFMediaType { (::windows::core::Interface::vtable(self).base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -33799,9 +33799,9 @@ impl IMFMediaType { (::windows::core::Interface::vtable(self).base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -33841,7 +33841,7 @@ impl IMFMediaType { (::windows::core::Interface::vtable(self).base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -34392,23 +34392,23 @@ pub struct IMFNetCredential(::windows::core::IUnknown); impl IMFNetCredential { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetUser<'a, P0>(&self, pbdata: &u8, cbdata: u32, fdataisencrypted: P0) -> ::windows::core::Result<()> + pub unsafe fn SetUser<'a, P0>(&self, pbdata: &[u8], fdataisencrypted: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).SetUser)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbdata), cbdata, fdataisencrypted.into()).ok() + (::windows::core::Interface::vtable(self).SetUser)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbdata.as_ptr()), pbdata.len() as _, fdataisencrypted.into()).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetPassword<'a, P0>(&self, pbdata: &u8, cbdata: u32, fdataisencrypted: P0) -> ::windows::core::Result<()> + pub unsafe fn SetPassword<'a, P0>(&self, pbdata: &[u8], fdataisencrypted: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).SetPassword)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbdata), cbdata, fdataisencrypted.into()).ok() + (::windows::core::Interface::vtable(self).SetPassword)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbdata.as_ptr()), pbdata.len() as _, fdataisencrypted.into()).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetUser<'a, P0>(&self, pbdata: ::core::option::Option<&mut u8>, pcbdata: &mut u32, fencryptdata: P0) -> ::windows::core::Result<()> + pub unsafe fn GetUser<'a, P0>(&self, pbdata: *mut u8, pcbdata: &mut u32, fencryptdata: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -34416,7 +34416,7 @@ impl IMFNetCredential { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetPassword<'a, P0>(&self, pbdata: ::core::option::Option<&mut u8>, pcbdata: &mut u32, fencryptdata: P0) -> ::windows::core::Result<()> + pub unsafe fn GetPassword<'a, P0>(&self, pbdata: *mut u8, pcbdata: &mut u32, fencryptdata: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -35062,7 +35062,7 @@ impl IMFOutputPolicy { (::windows::core::Interface::vtable(self).base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -35072,9 +35072,9 @@ impl IMFOutputPolicy { (::windows::core::Interface::vtable(self).base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -35114,7 +35114,7 @@ impl IMFOutputPolicy { (::windows::core::Interface::vtable(self).base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -35263,7 +35263,7 @@ impl IMFOutputSchema { (::windows::core::Interface::vtable(self).base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -35273,9 +35273,9 @@ impl IMFOutputSchema { (::windows::core::Interface::vtable(self).base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -35315,7 +35315,7 @@ impl IMFOutputSchema { (::windows::core::Interface::vtable(self).base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -35423,8 +35423,8 @@ impl IMFOutputTrustAuthority { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetAction)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn SetPolicy(&self, pppolicy: &[::core::option::Option], ppbticket: ::core::option::Option<&mut *mut u8>, pcbticket: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPolicy)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pppolicy)), pppolicy.len() as _, ::core::mem::transmute(ppbticket), ::core::mem::transmute(pcbticket)).ok() + pub unsafe fn SetPolicy(&self, pppolicy: ::core::option::Option<&[::core::option::Option]>, ppbticket: ::core::option::Option<&mut *mut u8>, pcbticket: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetPolicy)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppolicy.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pppolicy.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppbticket), ::core::mem::transmute(pcbticket)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -36655,7 +36655,7 @@ impl IMFPresentationDescriptor { (::windows::core::Interface::vtable(self).base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -36665,9 +36665,9 @@ impl IMFPresentationDescriptor { (::windows::core::Interface::vtable(self).base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -36707,7 +36707,7 @@ impl IMFPresentationDescriptor { (::windows::core::Interface::vtable(self).base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -36907,9 +36907,8 @@ pub struct IMFPresentationTimeSource_Vtbl { #[repr(transparent)] pub struct IMFProtectedEnvironmentAccess(::windows::core::IUnknown); impl IMFProtectedEnvironmentAccess { - pub unsafe fn Call(&self, inputlength: u32, input: &u8, outputlength: u32) -> ::windows::core::Result { - let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).Call)(::windows::core::Interface::as_raw(self), inputlength, ::core::mem::transmute(input), outputlength, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + pub unsafe fn Call(&self, input: &[u8], output: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Call)(::windows::core::Interface::as_raw(self), input.len() as _, ::core::mem::transmute(input.as_ptr()), output.len() as _, ::core::mem::transmute(output.as_ptr())).ok() } pub unsafe fn ReadGRL(&self, outputlength: &mut u32, output: &mut *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReadGRL)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(outputlength), ::core::mem::transmute(output)).ok() @@ -37986,12 +37985,12 @@ impl IMFSSLCertificateManager { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OnServerCertificate<'a, P0>(&self, pszurl: P0, pbdata: &u8, cbdata: u32) -> ::windows::core::Result + pub unsafe fn OnServerCertificate<'a, P0>(&self, pszurl: P0, pbdata: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).OnServerCertificate)(::windows::core::Interface::as_raw(self), pszurl.into(), ::core::mem::transmute(pbdata), cbdata, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).OnServerCertificate)(::windows::core::Interface::as_raw(self), pszurl.into(), ::core::mem::transmute(pbdata.as_ptr()), pbdata.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -38094,7 +38093,7 @@ impl IMFSample { (::windows::core::Interface::vtable(self).base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -38104,9 +38103,9 @@ impl IMFSample { (::windows::core::Interface::vtable(self).base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -38146,7 +38145,7 @@ impl IMFSample { (::windows::core::Interface::vtable(self).base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -38381,8 +38380,8 @@ impl IMFSampleGrabberSinkCallback { { (::windows::core::Interface::vtable(self).OnSetPresentationClock)(::windows::core::Interface::as_raw(self), ppresentationclock.into().abi()).ok() } - pub unsafe fn OnProcessSample(&self, guidmajormediatype: &::windows::core::GUID, dwsampleflags: u32, llsampletime: i64, llsampleduration: i64, psamplebuffer: &u8, dwsamplesize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OnProcessSample)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidmajormediatype), dwsampleflags, llsampletime, llsampleduration, ::core::mem::transmute(psamplebuffer), dwsamplesize).ok() + pub unsafe fn OnProcessSample(&self, guidmajormediatype: &::windows::core::GUID, dwsampleflags: u32, llsampletime: i64, llsampleduration: i64, psamplebuffer: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OnProcessSample)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidmajormediatype), dwsampleflags, llsampletime, llsampleduration, ::core::mem::transmute(psamplebuffer.as_ptr()), psamplebuffer.len() as _).ok() } pub unsafe fn OnShutdown(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OnShutdown)(::windows::core::Interface::as_raw(self)).ok() @@ -38471,17 +38470,17 @@ impl IMFSampleGrabberSinkCallback2 { { (::windows::core::Interface::vtable(self).base__.OnSetPresentationClock)(::windows::core::Interface::as_raw(self), ppresentationclock.into().abi()).ok() } - pub unsafe fn OnProcessSample(&self, guidmajormediatype: &::windows::core::GUID, dwsampleflags: u32, llsampletime: i64, llsampleduration: i64, psamplebuffer: &u8, dwsamplesize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.OnProcessSample)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidmajormediatype), dwsampleflags, llsampletime, llsampleduration, ::core::mem::transmute(psamplebuffer), dwsamplesize).ok() + pub unsafe fn OnProcessSample(&self, guidmajormediatype: &::windows::core::GUID, dwsampleflags: u32, llsampletime: i64, llsampleduration: i64, psamplebuffer: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.OnProcessSample)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidmajormediatype), dwsampleflags, llsampletime, llsampleduration, ::core::mem::transmute(psamplebuffer.as_ptr()), psamplebuffer.len() as _).ok() } pub unsafe fn OnShutdown(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.OnShutdown)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn OnProcessSampleEx<'a, P0>(&self, guidmajormediatype: &::windows::core::GUID, dwsampleflags: u32, llsampletime: i64, llsampleduration: i64, psamplebuffer: &u8, dwsamplesize: u32, pattributes: P0) -> ::windows::core::Result<()> + pub unsafe fn OnProcessSampleEx<'a, P0>(&self, guidmajormediatype: &::windows::core::GUID, dwsampleflags: u32, llsampletime: i64, llsampleduration: i64, psamplebuffer: &[u8], pattributes: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMFAttributes>>, { - (::windows::core::Interface::vtable(self).OnProcessSampleEx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidmajormediatype), dwsampleflags, llsampletime, llsampleduration, ::core::mem::transmute(psamplebuffer), dwsamplesize, pattributes.into().abi()).ok() + (::windows::core::Interface::vtable(self).OnProcessSampleEx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidmajormediatype), dwsampleflags, llsampletime, llsampleduration, ::core::mem::transmute(psamplebuffer.as_ptr()), psamplebuffer.len() as _, pattributes.into().abi()).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -38888,8 +38887,8 @@ impl IMFSecureChannel { pub unsafe fn GetCertificate(&self, ppcert: &mut *mut u8, pcbcert: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetCertificate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppcert), ::core::mem::transmute(pcbcert)).ok() } - pub unsafe fn SetupSession(&self, pbencryptedsessionkey: &u8, cbsessionkey: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetupSession)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbencryptedsessionkey), cbsessionkey).ok() + pub unsafe fn SetupSession(&self, pbencryptedsessionkey: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetupSession)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbencryptedsessionkey.as_ptr()), pbencryptedsessionkey.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -39161,10 +39160,10 @@ pub struct IMFSensorActivityMonitor_Vtbl { pub struct IMFSensorActivityReport(::windows::core::IUnknown); impl IMFSensorActivityReport { pub unsafe fn GetFriendlyName(&self, friendlyname: &mut [u16], pcchwritten: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFriendlyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(friendlyname)), friendlyname.len() as _, ::core::mem::transmute(pcchwritten)).ok() + (::windows::core::Interface::vtable(self).GetFriendlyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(friendlyname.as_ptr()), friendlyname.len() as _, ::core::mem::transmute(pcchwritten)).ok() } pub unsafe fn GetSymbolicLink(&self, symboliclink: &mut [u16], pcchwritten: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolicLink)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(symboliclink)), symboliclink.len() as _, ::core::mem::transmute(pcchwritten)).ok() + (::windows::core::Interface::vtable(self).GetSymbolicLink)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(symboliclink.as_ptr()), symboliclink.len() as _, ::core::mem::transmute(pcchwritten)).ok() } pub unsafe fn GetProcessCount(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -39236,7 +39235,7 @@ impl IMFSensorDevice { (::windows::core::Interface::vtable(self).GetFlags)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetSymbolicLink(&self, symboliclink: &mut [u16], pcchwritten: &mut i32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolicLink)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(symboliclink)), symboliclink.len() as _, ::core::mem::transmute(pcchwritten)).ok() + (::windows::core::Interface::vtable(self).GetSymbolicLink)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(symboliclink.as_ptr()), symboliclink.len() as _, ::core::mem::transmute(pcchwritten)).ok() } pub unsafe fn GetDeviceAttributes(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -39312,7 +39311,7 @@ pub struct IMFSensorDevice_Vtbl { pub struct IMFSensorGroup(::windows::core::IUnknown); impl IMFSensorGroup { pub unsafe fn GetSymbolicLink(&self, symboliclink: &mut [u16], pcchwritten: &mut i32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolicLink)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(symboliclink)), symboliclink.len() as _, ::core::mem::transmute(pcchwritten)).ok() + (::windows::core::Interface::vtable(self).GetSymbolicLink)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(symboliclink.as_ptr()), symboliclink.len() as _, ::core::mem::transmute(pcchwritten)).ok() } pub unsafe fn GetFlags(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -39665,7 +39664,7 @@ impl IMFSensorStream { (::windows::core::Interface::vtable(self).base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -39675,9 +39674,9 @@ impl IMFSensorStream { (::windows::core::Interface::vtable(self).base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -39717,7 +39716,7 @@ impl IMFSensorStream { (::windows::core::Interface::vtable(self).base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -40630,8 +40629,8 @@ impl IMFSourceBuffer { pub unsafe fn SetAppendWindowEnd(&self, time: f64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetAppendWindowEnd)(::windows::core::Interface::as_raw(self), time).ok() } - pub unsafe fn Append(&self, pdata: &u8, len: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Append)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata), len).ok() + pub unsafe fn Append(&self, pdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Append)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _).ok() } pub unsafe fn AppendByteStream<'a, P0>(&self, pstream: P0, pmaxlen: ::core::option::Option<&u64>) -> ::windows::core::Result<()> where @@ -41444,7 +41443,7 @@ pub struct IMFSourceResolver_Vtbl { #[repr(transparent)] pub struct IMFSpatialAudioObjectBuffer(::windows::core::IUnknown); impl IMFSpatialAudioObjectBuffer { - pub unsafe fn Lock(&self, ppbbuffer: &mut *mut u8, pcbmaxlength: ::core::option::Option<&mut u32>, pcbcurrentlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn Lock(&self, ppbbuffer: *mut *mut u8, pcbmaxlength: ::core::option::Option<&mut u32>, pcbcurrentlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.Lock)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppbbuffer), ::core::mem::transmute(pcbmaxlength), ::core::mem::transmute(pcbcurrentlength)).ok() } pub unsafe fn Unlock(&self) -> ::windows::core::Result<()> { @@ -41604,7 +41603,7 @@ impl IMFSpatialAudioSample { (::windows::core::Interface::vtable(self).base__.base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -41614,9 +41613,9 @@ impl IMFSpatialAudioSample { (::windows::core::Interface::vtable(self).base__.base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -41656,7 +41655,7 @@ impl IMFSpatialAudioSample { (::windows::core::Interface::vtable(self).base__.base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -41877,7 +41876,7 @@ impl IMFStreamDescriptor { (::windows::core::Interface::vtable(self).base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -41887,9 +41886,9 @@ impl IMFStreamDescriptor { (::windows::core::Interface::vtable(self).base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -41929,7 +41928,7 @@ impl IMFStreamDescriptor { (::windows::core::Interface::vtable(self).base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -42206,8 +42205,8 @@ impl IMFSystemId { pub unsafe fn GetData(&self, size: &mut u32, data: &mut *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(size), ::core::mem::transmute(data)).ok() } - pub unsafe fn Setup(&self, stage: u32, cbin: u32, pbin: &u8, pcbout: &mut u32, ppbout: &mut *mut u8) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Setup)(::windows::core::Interface::as_raw(self), stage, cbin, ::core::mem::transmute(pbin), ::core::mem::transmute(pcbout), ::core::mem::transmute(ppbout)).ok() + pub unsafe fn Setup(&self, stage: u32, pbin: &[u8], pcbout: &mut u32, ppbout: &mut *mut u8) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Setup)(::windows::core::Interface::as_raw(self), stage, pbin.len() as _, ::core::mem::transmute(pbin.as_ptr()), ::core::mem::transmute(pcbout), ::core::mem::transmute(ppbout)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -42733,9 +42732,9 @@ impl IMFTimedTextCueList { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).AddTextCue)(::windows::core::Interface::as_raw(self), start, duration, text.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn AddDataCue(&self, start: f64, duration: f64, data: &u8, datasize: u32) -> ::windows::core::Result { + pub unsafe fn AddDataCue(&self, start: f64, duration: f64, data: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).AddDataCue)(::windows::core::Interface::as_raw(self), start, duration, ::core::mem::transmute(data), datasize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).AddDataCue)(::windows::core::Interface::as_raw(self), start, duration, ::core::mem::transmute(data.as_ptr()), data.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn RemoveCue<'a, P0>(&self, cue: P0) -> ::windows::core::Result<()> where @@ -43643,7 +43642,7 @@ impl IMFTopology { (::windows::core::Interface::vtable(self).base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -43653,9 +43652,9 @@ impl IMFTopology { (::windows::core::Interface::vtable(self).base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -43695,7 +43694,7 @@ impl IMFTopology { (::windows::core::Interface::vtable(self).base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -43884,7 +43883,7 @@ impl IMFTopologyNode { (::windows::core::Interface::vtable(self).base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -43894,9 +43893,9 @@ impl IMFTopologyNode { (::windows::core::Interface::vtable(self).base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -43936,7 +43935,7 @@ impl IMFTopologyNode { (::windows::core::Interface::vtable(self).base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -44112,7 +44111,7 @@ pub struct IMFTopologyNode_Vtbl { pub struct IMFTopologyNodeAttributeEditor(::windows::core::IUnknown); impl IMFTopologyNodeAttributeEditor { pub unsafe fn UpdateNodeAttributes(&self, topoid: u64, pupdates: &[MFTOPONODE_ATTRIBUTE_UPDATE]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UpdateNodeAttributes)(::windows::core::Interface::as_raw(self), topoid, pupdates.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pupdates))).ok() + (::windows::core::Interface::vtable(self).UpdateNodeAttributes)(::windows::core::Interface::as_raw(self), topoid, pupdates.len() as _, ::core::mem::transmute(pupdates.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -44477,7 +44476,7 @@ impl IMFTransform { (::windows::core::Interface::vtable(self).GetStreamCount)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcinputstreams), ::core::mem::transmute(pcoutputstreams)).ok() } pub unsafe fn GetStreamIDs(&self, pdwinputids: &mut [u32], pdwoutputids: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStreamIDs)(::windows::core::Interface::as_raw(self), pdwinputids.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pdwinputids)), pdwoutputids.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pdwoutputids))).ok() + (::windows::core::Interface::vtable(self).GetStreamIDs)(::windows::core::Interface::as_raw(self), pdwinputids.len() as _, ::core::mem::transmute(pdwinputids.as_ptr()), pdwoutputids.len() as _, ::core::mem::transmute(pdwoutputids.as_ptr())).ok() } pub unsafe fn GetInputStreamInfo(&self, dwinputstreamid: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -44560,7 +44559,7 @@ impl IMFTransform { (::windows::core::Interface::vtable(self).ProcessInput)(::windows::core::Interface::as_raw(self), dwinputstreamid, psample.into().abi(), dwflags).ok() } pub unsafe fn ProcessOutput(&self, dwflags: u32, poutputsamples: &mut [MFT_OUTPUT_DATA_BUFFER], pdwstatus: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ProcessOutput)(::windows::core::Interface::as_raw(self), dwflags, poutputsamples.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(poutputsamples)), ::core::mem::transmute(pdwstatus)).ok() + (::windows::core::Interface::vtable(self).ProcessOutput)(::windows::core::Interface::as_raw(self), dwflags, poutputsamples.len() as _, ::core::mem::transmute(poutputsamples.as_ptr()), ::core::mem::transmute(pdwstatus)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -44928,7 +44927,7 @@ impl IMFVideoDisplayControl { } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] - pub unsafe fn GetCurrentImage(&self, pbih: &mut super::super::Graphics::Gdi::BITMAPINFOHEADER, pdib: &mut *mut u8, pcbdib: &mut u32, ptimestamp: &mut i64) -> ::windows::core::Result<()> { + pub unsafe fn GetCurrentImage(&self, pbih: &mut super::super::Graphics::Gdi::BITMAPINFOHEADER, pdib: *mut *mut u8, pcbdib: &mut u32, ptimestamp: &mut i64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetCurrentImage)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbih), ::core::mem::transmute(pdib), ::core::mem::transmute(pcbdib), ::core::mem::transmute(ptimestamp)).ok() } pub unsafe fn SetBorderColor(&self, clr: u32) -> ::windows::core::Result<()> { @@ -45092,7 +45091,7 @@ impl IMFVideoMediaType { (::windows::core::Interface::vtable(self).base__.base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -45102,9 +45101,9 @@ impl IMFVideoMediaType { (::windows::core::Interface::vtable(self).base__.base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -45144,7 +45143,7 @@ impl IMFVideoMediaType { (::windows::core::Interface::vtable(self).base__.base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -45640,7 +45639,7 @@ pub struct IMFVideoPresenter_Vtbl { #[repr(transparent)] pub struct IMFVideoProcessor(::windows::core::IUnknown); impl IMFVideoProcessor { - pub unsafe fn GetAvailableVideoProcessorModes(&self, lpdwnumprocessingmodes: &mut u32, ppvideoprocessingmodes: &mut *mut ::windows::core::GUID) -> ::windows::core::Result<()> { + pub unsafe fn GetAvailableVideoProcessorModes(&self, lpdwnumprocessingmodes: &mut u32, ppvideoprocessingmodes: *mut *mut ::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetAvailableVideoProcessorModes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpdwnumprocessingmodes), ::core::mem::transmute(ppvideoprocessingmodes)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D9\"`*"] @@ -46557,7 +46556,7 @@ impl IMFVirtualCamera { (::windows::core::Interface::vtable(self).base__.GetStringLength)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, guidkey: &::windows::core::GUID, pwszvalue: &mut [u16], pcchlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszvalue)), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() + (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pwszvalue.as_ptr()), pwszvalue.len() as _, ::core::mem::transmute(pcchlength)).ok() } pub unsafe fn GetAllocatedString(&self, guidkey: &::windows::core::GUID, ppwszvalue: &mut ::windows::core::PWSTR, pcchlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppwszvalue), ::core::mem::transmute(pcchlength)).ok() @@ -46567,9 +46566,9 @@ impl IMFVirtualCamera { (::windows::core::Interface::vtable(self).base__.GetBlobSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &mut [u8], pcbblobsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuf)), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() + (::windows::core::Interface::vtable(self).base__.GetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _, ::core::mem::transmute(pcbblobsize)).ok() } - pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: &mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllocatedBlob(&self, guidkey: &::windows::core::GUID, ppbuf: *mut *mut u8, pcbsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAllocatedBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(ppbuf), ::core::mem::transmute(pcbsize)).ok() } pub unsafe fn GetUnknown(&self, guidkey: &::windows::core::GUID) -> ::windows::core::Result @@ -46609,7 +46608,7 @@ impl IMFVirtualCamera { (::windows::core::Interface::vtable(self).base__.SetString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), wszvalue.into()).ok() } pub unsafe fn SetBlob(&self, guidkey: &::windows::core::GUID, pbuf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuf)), pbuf.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetBlob)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } pub unsafe fn SetUnknown<'a, P0>(&self, guidkey: &::windows::core::GUID, punknown: P0) -> ::windows::core::Result<()> where @@ -46646,15 +46645,15 @@ impl IMFVirtualCamera { } #[doc = "*Required features: `\"Win32_Devices_Properties\"`*"] #[cfg(feature = "Win32_Devices_Properties")] - pub unsafe fn AddProperty(&self, pkey: &super::super::Devices::Properties::DEVPROPKEY, r#type: u32, pbdata: &u8, cbdata: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddProperty)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pkey), r#type, ::core::mem::transmute(pbdata), cbdata).ok() + pub unsafe fn AddProperty(&self, pkey: &super::super::Devices::Properties::DEVPROPKEY, r#type: u32, pbdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).AddProperty)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pkey), r#type, ::core::mem::transmute(pbdata.as_ptr()), pbdata.len() as _).ok() } - pub unsafe fn AddRegistryEntry<'a, P0, P1>(&self, entryname: P0, subkeypath: P1, dwregtype: u32, pbdata: &u8, cbdata: u32) -> ::windows::core::Result<()> + pub unsafe fn AddRegistryEntry<'a, P0, P1>(&self, entryname: P0, subkeypath: P1, dwregtype: u32, pbdata: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).AddRegistryEntry)(::windows::core::Interface::as_raw(self), entryname.into(), subkeypath.into(), dwregtype, ::core::mem::transmute(pbdata), cbdata).ok() + (::windows::core::Interface::vtable(self).AddRegistryEntry)(::windows::core::Interface::as_raw(self), entryname.into(), subkeypath.into(), dwregtype, ::core::mem::transmute(pbdata.as_ptr()), pbdata.len() as _).ok() } pub unsafe fn Start<'a, P0>(&self, pcallback: P0) -> ::windows::core::Result<()> where @@ -46672,8 +46671,8 @@ impl IMFVirtualCamera { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetMediaSource)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn SendCameraProperty(&self, propertyset: &::windows::core::GUID, propertyid: u32, propertyflags: u32, propertypayload: *mut ::core::ffi::c_void, propertypayloadlength: u32, data: *mut ::core::ffi::c_void, datalength: u32, datawritten: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SendCameraProperty)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(propertyset), propertyid, propertyflags, ::core::mem::transmute(propertypayload), propertypayloadlength, ::core::mem::transmute(data), datalength, ::core::mem::transmute(datawritten)).ok() + pub unsafe fn SendCameraProperty(&self, propertyset: &::windows::core::GUID, propertyid: u32, propertyflags: u32, propertypayload: ::core::option::Option<&mut [u8]>, data: ::core::option::Option<&mut [u8]>, datawritten: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SendCameraProperty)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(propertyset), propertyid, propertyflags, ::core::mem::transmute(propertypayload.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertypayload.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), data.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(datawritten)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -47062,8 +47061,8 @@ impl IOPMVideoOutput { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).COPPCompatibleGetInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pparameters), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn Configure(&self, pparameters: &OPM_CONFIGURE_PARAMETERS, uladditionalparameterssize: u32, pbadditionalparameters: ::core::option::Option<&u8>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Configure)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pparameters), uladditionalparameterssize, ::core::mem::transmute(pbadditionalparameters)).ok() + pub unsafe fn Configure(&self, pparameters: &OPM_CONFIGURE_PARAMETERS, pbadditionalparameters: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Configure)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pparameters), pbadditionalparameters.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbadditionalparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -47706,8 +47705,8 @@ pub struct ITocParser_Vtbl { #[repr(transparent)] pub struct IValidateBinding(::windows::core::IUnknown); impl IValidateBinding { - pub unsafe fn GetIdentifier(&self, guidlicensorid: ::windows::core::GUID, pbephemeron: &[u8], ppbblobvalidationid: &mut *mut u8, pcbblobsize: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIdentifier)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidlicensorid), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbephemeron)), pbephemeron.len() as _, ::core::mem::transmute(ppbblobvalidationid), ::core::mem::transmute(pcbblobsize)).ok() + pub unsafe fn GetIdentifier(&self, guidlicensorid: ::windows::core::GUID, pbephemeron: &[u8], ppbblobvalidationid: *mut *mut u8, pcbblobsize: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetIdentifier)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidlicensorid), ::core::mem::transmute(pbephemeron.as_ptr()), pbephemeron.len() as _, ::core::mem::transmute(ppbblobvalidationid), ::core::mem::transmute(pcbblobsize)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -47989,13 +47988,13 @@ pub struct IWMCodecStrings(::windows::core::IUnknown); impl IWMCodecStrings { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Media_DxMediaObjects\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_DxMediaObjects"))] - pub unsafe fn GetName(&self, pmt: &mut super::DxMediaObjects::DMO_MEDIA_TYPE, szname: &mut [u16], pcchlength: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pmt), szname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szname)), ::core::mem::transmute(pcchlength)).ok() + pub unsafe fn GetName(&self, pmt: &mut super::DxMediaObjects::DMO_MEDIA_TYPE, szname: ::core::option::Option<&mut [u16]>, pcchlength: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pmt), szname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(szname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcchlength)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Media_DxMediaObjects\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_DxMediaObjects"))] - pub unsafe fn GetDescription(&self, pmt: &mut super::DxMediaObjects::DMO_MEDIA_TYPE, szdescription: &mut [u16], pcchlength: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDescription)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pmt), szdescription.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szdescription)), ::core::mem::transmute(pcchlength)).ok() + pub unsafe fn GetDescription(&self, pmt: &mut super::DxMediaObjects::DMO_MEDIA_TYPE, szdescription: ::core::option::Option<&mut [u16]>, pcchlength: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDescription)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pmt), szdescription.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(szdescription.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcchlength)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -49830,12 +49829,12 @@ pub const MFCONTENTPROTECTIONDEVICE_REALTIMECLIENT_DATA_FUNCTIONID: u32 = 671088 #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] #[inline] -pub unsafe fn MFCalculateBitmapImageSize(pbmih: &super::super::Graphics::Gdi::BITMAPINFOHEADER, cbbufsize: u32, pcbimagesize: &mut u32, pbknown: ::core::option::Option<&mut super::super::Foundation::BOOL>) -> ::windows::core::Result<()> { +pub unsafe fn MFCalculateBitmapImageSize(pbmih: &[u8], pcbimagesize: &mut u32, pbknown: ::core::option::Option<&mut super::super::Foundation::BOOL>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MFCalculateBitmapImageSize(pbmih: *const super::super::Graphics::Gdi::BITMAPINFOHEADER, cbbufsize: u32, pcbimagesize: *mut u32, pbknown: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT; } - MFCalculateBitmapImageSize(::core::mem::transmute(pbmih), cbbufsize, ::core::mem::transmute(pcbimagesize), ::core::mem::transmute(pbknown)).ok() + MFCalculateBitmapImageSize(::core::mem::transmute(pbmih.as_ptr()), pbmih.len() as _, ::core::mem::transmute(pcbimagesize), ::core::mem::transmute(pbknown)).ok() } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] @@ -50207,7 +50206,7 @@ pub unsafe fn MFConvertColorInfoToDXVA(pdwtodxva: &mut u32, pfromformat: &MFVIDE } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] -pub unsafe fn MFConvertFromFP16Array(pdest: &mut f32, psrc: &u16, dwcount: u32) -> ::windows::core::Result<()> { +pub unsafe fn MFConvertFromFP16Array(pdest: *mut f32, psrc: *const u16, dwcount: u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MFConvertFromFP16Array(pdest: *mut f32, psrc: *const u16, dwcount: u32) -> ::windows::core::HRESULT; @@ -50216,7 +50215,7 @@ pub unsafe fn MFConvertFromFP16Array(pdest: &mut f32, psrc: &u16, dwcount: u32) } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] -pub unsafe fn MFConvertToFP16Array(pdest: &mut u16, psrc: &f32, dwcount: u32) -> ::windows::core::Result<()> { +pub unsafe fn MFConvertToFP16Array(pdest: *mut u16, psrc: *const f32, dwcount: u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MFConvertToFP16Array(pdest: *mut u16, psrc: *const f32, dwcount: u32) -> ::windows::core::HRESULT; @@ -51049,13 +51048,13 @@ pub unsafe fn MFCreatePresentationClock() -> ::windows::core::Result]) -> ::windows::core::Result { +pub unsafe fn MFCreatePresentationDescriptor(apstreamdescriptors: ::core::option::Option<&[::core::option::Option]>) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MFCreatePresentationDescriptor(cstreamdescriptors: u32, apstreamdescriptors: *const *mut ::core::ffi::c_void, pppresentationdescriptor: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - MFCreatePresentationDescriptor(apstreamdescriptors.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(apstreamdescriptors)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + MFCreatePresentationDescriptor(apstreamdescriptors.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(apstreamdescriptors.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] @@ -51361,7 +51360,7 @@ pub unsafe fn MFCreateStreamDescriptor(dwstreamidentifier: u32, apmediatypes: &[ fn MFCreateStreamDescriptor(dwstreamidentifier: u32, cmediatypes: u32, apmediatypes: *const *mut ::core::ffi::c_void, ppdescriptor: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - MFCreateStreamDescriptor(dwstreamidentifier, apmediatypes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(apmediatypes)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + MFCreateStreamDescriptor(dwstreamidentifier, apmediatypes.len() as _, ::core::mem::transmute(apmediatypes.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`, `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -51534,13 +51533,13 @@ pub unsafe fn MFCreateVideoMediaTypeFromBitMapInfoHeader(pbmihbitmapinfoheader: #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn MFCreateVideoMediaTypeFromBitMapInfoHeaderEx(pbmihbitmapinfoheader: &super::super::Graphics::Gdi::BITMAPINFOHEADER, cbbitmapinfoheader: u32, dwpixelaspectratiox: u32, dwpixelaspectratioy: u32, interlacemode: MFVideoInterlaceMode, videoflags: u64, dwframespersecondnumerator: u32, dwframesperseconddenominator: u32, dwmaxbitrate: u32) -> ::windows::core::Result { +pub unsafe fn MFCreateVideoMediaTypeFromBitMapInfoHeaderEx(pbmihbitmapinfoheader: &[u8], dwpixelaspectratiox: u32, dwpixelaspectratioy: u32, interlacemode: MFVideoInterlaceMode, videoflags: u64, dwframespersecondnumerator: u32, dwframesperseconddenominator: u32, dwmaxbitrate: u32) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MFCreateVideoMediaTypeFromBitMapInfoHeaderEx(pbmihbitmapinfoheader: *const super::super::Graphics::Gdi::BITMAPINFOHEADER, cbbitmapinfoheader: u32, dwpixelaspectratiox: u32, dwpixelaspectratioy: u32, interlacemode: MFVideoInterlaceMode, videoflags: u64, dwframespersecondnumerator: u32, dwframesperseconddenominator: u32, dwmaxbitrate: u32, ppivideomediatype: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - MFCreateVideoMediaTypeFromBitMapInfoHeaderEx(::core::mem::transmute(pbmihbitmapinfoheader), cbbitmapinfoheader, dwpixelaspectratiox, dwpixelaspectratioy, interlacemode, videoflags, dwframespersecondnumerator, dwframesperseconddenominator, dwmaxbitrate, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + MFCreateVideoMediaTypeFromBitMapInfoHeaderEx(::core::mem::transmute(pbmihbitmapinfoheader.as_ptr()), pbmihbitmapinfoheader.len() as _, dwpixelaspectratiox, dwpixelaspectratioy, interlacemode, videoflags, dwframespersecondnumerator, dwframesperseconddenominator, dwmaxbitrate, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] @@ -51645,7 +51644,7 @@ where } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] -pub unsafe fn MFCreateVirtualCamera<'a, P0, P1>(r#type: MFVirtualCameraType, lifetime: MFVirtualCameraLifetime, access: MFVirtualCameraAccess, friendlyname: P0, sourceid: P1, categories: &[::windows::core::GUID]) -> ::windows::core::Result +pub unsafe fn MFCreateVirtualCamera<'a, P0, P1>(r#type: MFVirtualCameraType, lifetime: MFVirtualCameraLifetime, access: MFVirtualCameraAccess, friendlyname: P0, sourceid: P1, categories: ::core::option::Option<&[::windows::core::GUID]>) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -51655,7 +51654,7 @@ where fn MFCreateVirtualCamera(r#type: MFVirtualCameraType, lifetime: MFVirtualCameraLifetime, access: MFVirtualCameraAccess, friendlyname: ::windows::core::PCWSTR, sourceid: ::windows::core::PCWSTR, categories: *const ::windows::core::GUID, categorycount: u32, virtualcamera: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - MFCreateVirtualCamera(r#type, lifetime, access, friendlyname.into(), sourceid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(categories)), categories.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + MFCreateVirtualCamera(r#type, lifetime, access, friendlyname.into(), sourceid.into(), ::core::mem::transmute(categories.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), categories.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] @@ -51776,7 +51775,7 @@ pub unsafe fn MFDeserializePresentationDescriptor(pbdata: &[u8]) -> ::windows::c fn MFDeserializePresentationDescriptor(cbdata: u32, pbdata: *const u8, pppd: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - MFDeserializePresentationDescriptor(pbdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbdata)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + MFDeserializePresentationDescriptor(pbdata.len() as _, ::core::mem::transmute(pbdata.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub const MFENABLETYPE_MF_RebootRequired: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6d4d3d4b_0ece_4652_8b3a_f2d24260d887); pub const MFENABLETYPE_MF_UpdateRevocationInformation: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe558b0b5_b3c4_44a0_924c_50d178932385); @@ -51950,7 +51949,7 @@ impl ::core::fmt::Debug for MFFrameSourceTypes { } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] -pub unsafe fn MFGetAttributesAsBlob<'a, P0>(pattributes: P0, pbuf: &mut u8, cbbufsize: u32) -> ::windows::core::Result<()> +pub unsafe fn MFGetAttributesAsBlob<'a, P0>(pattributes: P0, pbuf: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMFAttributes>>, { @@ -51958,7 +51957,7 @@ where extern "system" { fn MFGetAttributesAsBlob(pattributes: *mut ::core::ffi::c_void, pbuf: *mut u8, cbbufsize: u32) -> ::windows::core::HRESULT; } - MFGetAttributesAsBlob(pattributes.into().abi(), ::core::mem::transmute(pbuf), cbbufsize).ok() + MFGetAttributesAsBlob(pattributes.into().abi(), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] @@ -51985,17 +51984,17 @@ pub unsafe fn MFGetContentProtectionSystemCLSID(guidprotectionsystemid: &::windo } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] -pub unsafe fn MFGetLocalId(verifier: &u8, size: u32) -> ::windows::core::Result<::windows::core::PWSTR> { +pub unsafe fn MFGetLocalId(verifier: &[u8]) -> ::windows::core::Result<::windows::core::PWSTR> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MFGetLocalId(verifier: *const u8, size: u32, id: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - MFGetLocalId(::core::mem::transmute(verifier), size, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) + MFGetLocalId(::core::mem::transmute(verifier.as_ptr()), verifier.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] -pub unsafe fn MFGetMFTMerit<'a, P0>(pmft: P0, cbverifier: u32, verifier: &u8) -> ::windows::core::Result +pub unsafe fn MFGetMFTMerit<'a, P0>(pmft: P0, verifier: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { @@ -52004,7 +52003,7 @@ where fn MFGetMFTMerit(pmft: *mut ::core::ffi::c_void, cbverifier: u32, verifier: *const u8, merit: *mut u32) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - MFGetMFTMerit(pmft.into().abi(), cbverifier, ::core::mem::transmute(verifier), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + MFGetMFTMerit(pmft.into().abi(), verifier.len() as _, ::core::mem::transmute(verifier.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] @@ -52260,7 +52259,7 @@ where } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] -pub unsafe fn MFInitAttributesFromBlob<'a, P0>(pattributes: P0, pbuf: &u8, cbbufsize: u32) -> ::windows::core::Result<()> +pub unsafe fn MFInitAttributesFromBlob<'a, P0>(pattributes: P0, pbuf: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMFAttributes>>, { @@ -52268,7 +52267,7 @@ where extern "system" { fn MFInitAttributesFromBlob(pattributes: *mut ::core::ffi::c_void, pbuf: *const u8, cbbufsize: u32) -> ::windows::core::HRESULT; } - MFInitAttributesFromBlob(pattributes.into().abi(), ::core::mem::transmute(pbuf), cbbufsize).ok() + MFInitAttributesFromBlob(pattributes.into().abi(), ::core::mem::transmute(pbuf.as_ptr()), pbuf.len() as _).ok() } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -52286,7 +52285,7 @@ where #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn MFInitMediaTypeFromMFVideoFormat<'a, P0>(pmftype: P0, pmfvf: &MFVIDEOFORMAT, cbbufsize: u32) -> ::windows::core::Result<()> +pub unsafe fn MFInitMediaTypeFromMFVideoFormat<'a, P0>(pmftype: P0, pmfvf: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMFMediaType>>, { @@ -52294,12 +52293,12 @@ where extern "system" { fn MFInitMediaTypeFromMFVideoFormat(pmftype: *mut ::core::ffi::c_void, pmfvf: *const MFVIDEOFORMAT, cbbufsize: u32) -> ::windows::core::HRESULT; } - MFInitMediaTypeFromMFVideoFormat(pmftype.into().abi(), ::core::mem::transmute(pmfvf), cbbufsize).ok() + MFInitMediaTypeFromMFVideoFormat(pmftype.into().abi(), ::core::mem::transmute(pmfvf.as_ptr()), pmfvf.len() as _).ok() } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] #[inline] -pub unsafe fn MFInitMediaTypeFromMPEG1VideoInfo<'a, P0>(pmftype: P0, pmp1vi: &MPEG1VIDEOINFO, cbbufsize: u32, psubtype: ::core::option::Option<&::windows::core::GUID>) -> ::windows::core::Result<()> +pub unsafe fn MFInitMediaTypeFromMPEG1VideoInfo<'a, P0>(pmftype: P0, pmp1vi: &[u8], psubtype: ::core::option::Option<&::windows::core::GUID>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMFMediaType>>, { @@ -52307,12 +52306,12 @@ where extern "system" { fn MFInitMediaTypeFromMPEG1VideoInfo(pmftype: *mut ::core::ffi::c_void, pmp1vi: *const MPEG1VIDEOINFO, cbbufsize: u32, psubtype: *const ::windows::core::GUID) -> ::windows::core::HRESULT; } - MFInitMediaTypeFromMPEG1VideoInfo(pmftype.into().abi(), ::core::mem::transmute(pmp1vi), cbbufsize, ::core::mem::transmute(psubtype)).ok() + MFInitMediaTypeFromMPEG1VideoInfo(pmftype.into().abi(), ::core::mem::transmute(pmp1vi.as_ptr()), pmp1vi.len() as _, ::core::mem::transmute(psubtype)).ok() } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] #[inline] -pub unsafe fn MFInitMediaTypeFromMPEG2VideoInfo<'a, P0>(pmftype: P0, pmp2vi: &MPEG2VIDEOINFO, cbbufsize: u32, psubtype: ::core::option::Option<&::windows::core::GUID>) -> ::windows::core::Result<()> +pub unsafe fn MFInitMediaTypeFromMPEG2VideoInfo<'a, P0>(pmftype: P0, pmp2vi: &[u8], psubtype: ::core::option::Option<&::windows::core::GUID>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMFMediaType>>, { @@ -52320,12 +52319,12 @@ where extern "system" { fn MFInitMediaTypeFromMPEG2VideoInfo(pmftype: *mut ::core::ffi::c_void, pmp2vi: *const MPEG2VIDEOINFO, cbbufsize: u32, psubtype: *const ::windows::core::GUID) -> ::windows::core::HRESULT; } - MFInitMediaTypeFromMPEG2VideoInfo(pmftype.into().abi(), ::core::mem::transmute(pmp2vi), cbbufsize, ::core::mem::transmute(psubtype)).ok() + MFInitMediaTypeFromMPEG2VideoInfo(pmftype.into().abi(), ::core::mem::transmute(pmp2vi.as_ptr()), pmp2vi.len() as _, ::core::mem::transmute(psubtype)).ok() } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] #[inline] -pub unsafe fn MFInitMediaTypeFromVideoInfoHeader<'a, P0>(pmftype: P0, pvih: &VIDEOINFOHEADER, cbbufsize: u32, psubtype: ::core::option::Option<&::windows::core::GUID>) -> ::windows::core::Result<()> +pub unsafe fn MFInitMediaTypeFromVideoInfoHeader<'a, P0>(pmftype: P0, pvih: &[u8], psubtype: ::core::option::Option<&::windows::core::GUID>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMFMediaType>>, { @@ -52333,12 +52332,12 @@ where extern "system" { fn MFInitMediaTypeFromVideoInfoHeader(pmftype: *mut ::core::ffi::c_void, pvih: *const VIDEOINFOHEADER, cbbufsize: u32, psubtype: *const ::windows::core::GUID) -> ::windows::core::HRESULT; } - MFInitMediaTypeFromVideoInfoHeader(pmftype.into().abi(), ::core::mem::transmute(pvih), cbbufsize, ::core::mem::transmute(psubtype)).ok() + MFInitMediaTypeFromVideoInfoHeader(pmftype.into().abi(), ::core::mem::transmute(pvih.as_ptr()), pvih.len() as _, ::core::mem::transmute(psubtype)).ok() } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] #[inline] -pub unsafe fn MFInitMediaTypeFromVideoInfoHeader2<'a, P0>(pmftype: P0, pvih2: &VIDEOINFOHEADER2, cbbufsize: u32, psubtype: ::core::option::Option<&::windows::core::GUID>) -> ::windows::core::Result<()> +pub unsafe fn MFInitMediaTypeFromVideoInfoHeader2<'a, P0>(pmftype: P0, pvih2: &[u8], psubtype: ::core::option::Option<&::windows::core::GUID>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMFMediaType>>, { @@ -52346,12 +52345,12 @@ where extern "system" { fn MFInitMediaTypeFromVideoInfoHeader2(pmftype: *mut ::core::ffi::c_void, pvih2: *const VIDEOINFOHEADER2, cbbufsize: u32, psubtype: *const ::windows::core::GUID) -> ::windows::core::HRESULT; } - MFInitMediaTypeFromVideoInfoHeader2(pmftype.into().abi(), ::core::mem::transmute(pvih2), cbbufsize, ::core::mem::transmute(psubtype)).ok() + MFInitMediaTypeFromVideoInfoHeader2(pmftype.into().abi(), ::core::mem::transmute(pvih2.as_ptr()), pvih2.len() as _, ::core::mem::transmute(psubtype)).ok() } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`, `\"Win32_Media_Audio\"`*"] #[cfg(feature = "Win32_Media_Audio")] #[inline] -pub unsafe fn MFInitMediaTypeFromWaveFormatEx<'a, P0>(pmftype: P0, pwaveformat: &super::Audio::WAVEFORMATEX, cbbufsize: u32) -> ::windows::core::Result<()> +pub unsafe fn MFInitMediaTypeFromWaveFormatEx<'a, P0>(pmftype: P0, pwaveformat: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMFMediaType>>, { @@ -52359,7 +52358,7 @@ where extern "system" { fn MFInitMediaTypeFromWaveFormatEx(pmftype: *mut ::core::ffi::c_void, pwaveformat: *const super::Audio::WAVEFORMATEX, cbbufsize: u32) -> ::windows::core::HRESULT; } - MFInitMediaTypeFromWaveFormatEx(pmftype.into().abi(), ::core::mem::transmute(pwaveformat), cbbufsize).ok() + MFInitMediaTypeFromWaveFormatEx(pmftype.into().abi(), ::core::mem::transmute(pwaveformat.as_ptr()), pwaveformat.len() as _).ok() } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -54687,7 +54686,7 @@ where } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] -pub unsafe fn MFSerializePresentationDescriptor<'a, P0>(ppd: P0, pcbdata: &mut u32, ppbdata: &mut *mut u8) -> ::windows::core::Result<()> +pub unsafe fn MFSerializePresentationDescriptor<'a, P0>(ppd: P0, pcbdata: &mut u32, ppbdata: *mut *mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMFPresentationDescriptor>>, { @@ -54728,7 +54727,7 @@ where extern "system" { fn MFSplitSample(psample: *mut ::core::ffi::c_void, poutputsamples: *mut *mut ::core::ffi::c_void, dwoutputsamplemaxcount: u32, pdwoutputsamplecount: *mut u32) -> ::windows::core::HRESULT; } - MFSplitSample(psample.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(poutputsamples)), poutputsamples.len() as _, ::core::mem::transmute(pdwoutputsamplecount)).ok() + MFSplitSample(psample.into().abi(), ::core::mem::transmute(poutputsamples.as_ptr()), poutputsamples.len() as _, ::core::mem::transmute(pdwoutputsamplecount)).ok() } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[repr(transparent)] @@ -54978,7 +54977,7 @@ impl ::core::default::Default for MFTOPONODE_ATTRIBUTE_UPDATE_0 { } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] -pub unsafe fn MFTRegister<'a, P0, P1>(clsidmft: ::windows::core::GUID, guidcategory: ::windows::core::GUID, pszname: P0, flags: u32, pinputtypes: &[MFT_REGISTER_TYPE_INFO], poutputtypes: &[MFT_REGISTER_TYPE_INFO], pattributes: P1) -> ::windows::core::Result<()> +pub unsafe fn MFTRegister<'a, P0, P1>(clsidmft: ::windows::core::GUID, guidcategory: ::windows::core::GUID, pszname: P0, flags: u32, pinputtypes: ::core::option::Option<&[MFT_REGISTER_TYPE_INFO]>, poutputtypes: ::core::option::Option<&[MFT_REGISTER_TYPE_INFO]>, pattributes: P1) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::InParam<'a, IMFAttributes>>, @@ -54987,12 +54986,12 @@ where extern "system" { fn MFTRegister(clsidmft: ::windows::core::GUID, guidcategory: ::windows::core::GUID, pszname: ::windows::core::PCWSTR, flags: u32, cinputtypes: u32, pinputtypes: *const MFT_REGISTER_TYPE_INFO, coutputtypes: u32, poutputtypes: *const MFT_REGISTER_TYPE_INFO, pattributes: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - MFTRegister(::core::mem::transmute(clsidmft), ::core::mem::transmute(guidcategory), pszname.into(), flags, pinputtypes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputtypes)), poutputtypes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(poutputtypes)), pattributes.into().abi()).ok() + MFTRegister(::core::mem::transmute(clsidmft), ::core::mem::transmute(guidcategory), pszname.into(), flags, pinputtypes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pinputtypes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), poutputtypes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(poutputtypes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pattributes.into().abi()).ok() } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`, `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] #[inline] -pub unsafe fn MFTRegisterLocal<'a, P0, P1>(pclassfactory: P0, guidcategory: &::windows::core::GUID, pszname: P1, flags: u32, pinputtypes: &[MFT_REGISTER_TYPE_INFO], poutputtypes: &[MFT_REGISTER_TYPE_INFO]) -> ::windows::core::Result<()> +pub unsafe fn MFTRegisterLocal<'a, P0, P1>(pclassfactory: P0, guidcategory: &::windows::core::GUID, pszname: P1, flags: u32, pinputtypes: ::core::option::Option<&[MFT_REGISTER_TYPE_INFO]>, poutputtypes: ::core::option::Option<&[MFT_REGISTER_TYPE_INFO]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::System::Com::IClassFactory>>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -55001,11 +55000,11 @@ where extern "system" { fn MFTRegisterLocal(pclassfactory: *mut ::core::ffi::c_void, guidcategory: *const ::windows::core::GUID, pszname: ::windows::core::PCWSTR, flags: u32, cinputtypes: u32, pinputtypes: *const MFT_REGISTER_TYPE_INFO, coutputtypes: u32, poutputtypes: *const MFT_REGISTER_TYPE_INFO) -> ::windows::core::HRESULT; } - MFTRegisterLocal(pclassfactory.into().abi(), ::core::mem::transmute(guidcategory), pszname.into(), flags, pinputtypes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputtypes)), poutputtypes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(poutputtypes))).ok() + MFTRegisterLocal(pclassfactory.into().abi(), ::core::mem::transmute(guidcategory), pszname.into(), flags, pinputtypes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pinputtypes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), poutputtypes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(poutputtypes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] -pub unsafe fn MFTRegisterLocalByCLSID<'a, P0>(clisdmft: &::windows::core::GUID, guidcategory: &::windows::core::GUID, pszname: P0, flags: u32, pinputtypes: &[MFT_REGISTER_TYPE_INFO], poutputtypes: &[MFT_REGISTER_TYPE_INFO]) -> ::windows::core::Result<()> +pub unsafe fn MFTRegisterLocalByCLSID<'a, P0>(clisdmft: &::windows::core::GUID, guidcategory: &::windows::core::GUID, pszname: P0, flags: u32, pinputtypes: ::core::option::Option<&[MFT_REGISTER_TYPE_INFO]>, poutputtypes: ::core::option::Option<&[MFT_REGISTER_TYPE_INFO]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -55013,7 +55012,7 @@ where extern "system" { fn MFTRegisterLocalByCLSID(clisdmft: *const ::windows::core::GUID, guidcategory: *const ::windows::core::GUID, pszname: ::windows::core::PCWSTR, flags: u32, cinputtypes: u32, pinputtypes: *const MFT_REGISTER_TYPE_INFO, coutputtypes: u32, poutputtypes: *const MFT_REGISTER_TYPE_INFO) -> ::windows::core::HRESULT; } - MFTRegisterLocalByCLSID(::core::mem::transmute(clisdmft), ::core::mem::transmute(guidcategory), pszname.into(), flags, pinputtypes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputtypes)), poutputtypes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(poutputtypes))).ok() + MFTRegisterLocalByCLSID(::core::mem::transmute(clisdmft), ::core::mem::transmute(guidcategory), pszname.into(), flags, pinputtypes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pinputtypes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), poutputtypes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(poutputtypes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] @@ -55656,12 +55655,12 @@ impl ::core::fmt::Debug for MFVP_MESSAGE_TYPE { } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[inline] -pub unsafe fn MFValidateMediaTypeSize(formattype: ::windows::core::GUID, pblock: ::core::option::Option<&u8>, cbsize: u32) -> ::windows::core::Result<()> { +pub unsafe fn MFValidateMediaTypeSize(formattype: ::windows::core::GUID, pblock: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MFValidateMediaTypeSize(formattype: ::windows::core::GUID, pblock: *const u8, cbsize: u32) -> ::windows::core::HRESULT; } - MFValidateMediaTypeSize(::core::mem::transmute(formattype), ::core::mem::transmute(pblock), cbsize).ok() + MFValidateMediaTypeSize(::core::mem::transmute(formattype), ::core::mem::transmute(pblock.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pblock.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_Media_MediaFoundation\"`*"] #[repr(transparent)] diff --git a/crates/libs/windows/src/Windows/Win32/Media/MediaPlayer/mod.rs b/crates/libs/windows/src/Windows/Win32/Media/MediaPlayer/mod.rs index a24cdcbab8..b51db6b52c 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/MediaPlayer/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/MediaPlayer/mod.rs @@ -4687,12 +4687,12 @@ impl IWMPContentPartner { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetCommands<'a, P0, P1>(&self, location: P0, plocationcontext: &super::super::System::Com::VARIANT, itemlocation: P1, prgitemids: &[u32], pcitemids: &mut u32, pprgitems: &mut *mut WMPContextMenuInfo) -> ::windows::core::Result<()> + pub unsafe fn GetCommands<'a, P0, P1>(&self, location: P0, plocationcontext: &super::super::System::Com::VARIANT, itemlocation: P1, prgitemids: &[u32], pcitemids: &mut u32, pprgitems: *mut *mut WMPContextMenuInfo) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, P1: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { - (::windows::core::Interface::vtable(self).GetCommands)(::windows::core::Interface::as_raw(self), location.into().abi(), ::core::mem::transmute(plocationcontext), itemlocation.into().abi(), prgitemids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prgitemids)), ::core::mem::transmute(pcitemids), ::core::mem::transmute(pprgitems)).ok() + (::windows::core::Interface::vtable(self).GetCommands)(::windows::core::Interface::as_raw(self), location.into().abi(), ::core::mem::transmute(plocationcontext), itemlocation.into().abi(), prgitemids.len() as _, ::core::mem::transmute(prgitemids.as_ptr()), ::core::mem::transmute(pcitemids), ::core::mem::transmute(pprgitems)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -4701,7 +4701,7 @@ impl IWMPContentPartner { P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, P1: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { - (::windows::core::Interface::vtable(self).InvokeCommand)(::windows::core::Interface::as_raw(self), dwcommandid, location.into().abi(), ::core::mem::transmute(plocationcontext), itemlocation.into().abi(), rgitemids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgitemids))).ok() + (::windows::core::Interface::vtable(self).InvokeCommand)(::windows::core::Interface::as_raw(self), dwcommandid, location.into().abi(), ::core::mem::transmute(plocationcontext), itemlocation.into().abi(), rgitemids.len() as _, ::core::mem::transmute(rgitemids.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4988,7 +4988,7 @@ impl IWMPContentPartnerCallback { (::windows::core::Interface::vtable(self).ChangeView)(::windows::core::Interface::as_raw(self), bstrtype.into().abi(), bstrid.into().abi(), bstrfilter.into().abi()).ok() } pub unsafe fn AddListContents(&self, dwlistcookie: u32, prgitems: &[u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddListContents)(::windows::core::Interface::as_raw(self), dwlistcookie, prgitems.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prgitems))).ok() + (::windows::core::Interface::vtable(self).AddListContents)(::windows::core::Interface::as_raw(self), dwlistcookie, prgitems.len() as _, ::core::mem::transmute(prgitems.as_ptr())).ok() } pub unsafe fn ListContentsComplete(&self, dwlistcookie: u32, hrsuccess: ::windows::core::HRESULT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ListContentsComplete)(::windows::core::Interface::as_raw(self), dwlistcookie, hrsuccess).ok() @@ -5003,7 +5003,7 @@ impl IWMPContentPartnerCallback { { (::windows::core::Interface::vtable(self).SendMessageComplete)(::windows::core::Interface::as_raw(self), bstrmsg.into().abi(), bstrparam.into().abi(), bstrresult.into().abi()).ok() } - pub unsafe fn GetContentIDsInLibrary(&self, pccontentids: &mut u32, pprgids: &mut *mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetContentIDsInLibrary(&self, pccontentids: &mut u32, pprgids: *mut *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetContentIDsInLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pccontentids), ::core::mem::transmute(pprgids)).ok() } pub unsafe fn RefreshLicenseComplete(&self, dwcookie: u32, contentid: u32, hrrefresh: ::windows::core::HRESULT) -> ::windows::core::Result<()> { diff --git a/crates/libs/windows/src/Windows/Win32/Media/Multimedia/mod.rs b/crates/libs/windows/src/Windows/Win32/Media/Multimedia/mod.rs index 14c7384b6a..d683b935fd 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/Multimedia/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/Multimedia/mod.rs @@ -237,7 +237,7 @@ where extern "system" { fn AVIBuildFilterA(lpszfilter: ::windows::core::PSTR, cbfilter: i32, fsaving: super::super::Foundation::BOOL) -> ::windows::core::HRESULT; } - AVIBuildFilterA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszfilter)), lpszfilter.len() as _, fsaving.into()).ok() + AVIBuildFilterA(::core::mem::transmute(lpszfilter.as_ptr()), lpszfilter.len() as _, fsaving.into()).ok() } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -250,7 +250,7 @@ where extern "system" { fn AVIBuildFilterW(lpszfilter: ::windows::core::PWSTR, cbfilter: i32, fsaving: super::super::Foundation::BOOL) -> ::windows::core::HRESULT; } - AVIBuildFilterW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszfilter)), lpszfilter.len() as _, fsaving.into()).ok() + AVIBuildFilterW(::core::mem::transmute(lpszfilter.as_ptr()), lpszfilter.len() as _, fsaving.into()).ok() } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] pub const AVICOMPRESSF_DATARATE: u32 = 2u32; @@ -525,7 +525,7 @@ where #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AVIFileInfoA<'a, P0>(pfile: P0, pfi: &mut AVIFILEINFOA, lsize: i32) -> ::windows::core::Result<()> +pub unsafe fn AVIFileInfoA<'a, P0>(pfile: P0, pfi: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IAVIFile>>, { @@ -533,11 +533,11 @@ where extern "system" { fn AVIFileInfoA(pfile: *mut ::core::ffi::c_void, pfi: *mut AVIFILEINFOA, lsize: i32) -> ::windows::core::HRESULT; } - AVIFileInfoA(pfile.into().abi(), ::core::mem::transmute(pfi), lsize).ok() + AVIFileInfoA(pfile.into().abi(), ::core::mem::transmute(pfi.as_ptr()), pfi.len() as _).ok() } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] -pub unsafe fn AVIFileInfoW<'a, P0>(pfile: P0, pfi: &mut AVIFILEINFOW, lsize: i32) -> ::windows::core::Result<()> +pub unsafe fn AVIFileInfoW<'a, P0>(pfile: P0, pfi: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IAVIFile>>, { @@ -545,7 +545,7 @@ where extern "system" { fn AVIFileInfoW(pfile: *mut ::core::ffi::c_void, pfi: *mut AVIFILEINFOW, lsize: i32) -> ::windows::core::HRESULT; } - AVIFileInfoW(pfile.into().abi(), ::core::mem::transmute(pfi), lsize).ok() + AVIFileInfoW(pfile.into().abi(), ::core::mem::transmute(pfi.as_ptr()), pfi.len() as _).ok() } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] @@ -606,7 +606,7 @@ where } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] -pub unsafe fn AVIFileWriteData<'a, P0>(pfile: P0, ckid: u32, lpdata: *const ::core::ffi::c_void, cbdata: i32) -> ::windows::core::Result<()> +pub unsafe fn AVIFileWriteData<'a, P0>(pfile: P0, ckid: u32, lpdata: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IAVIFile>>, { @@ -614,7 +614,7 @@ where extern "system" { fn AVIFileWriteData(pfile: *mut ::core::ffi::c_void, ckid: u32, lpdata: *const ::core::ffi::c_void, cbdata: i32) -> ::windows::core::HRESULT; } - AVIFileWriteData(pfile.into().abi(), ckid, ::core::mem::transmute(lpdata), cbdata).ok() + AVIFileWriteData(pfile.into().abi(), ckid, ::core::mem::transmute(lpdata.as_ptr()), lpdata.len() as _).ok() } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] pub const AVIGETFRAMEF_BESTDISPLAYFMT: u32 = 1u32; @@ -651,7 +651,7 @@ pub unsafe fn AVIMakeFileFromStreams(ppfile: &mut ::core::option::Option ::windows::core::HRESULT; } - AVIMakeFileFromStreams(::core::mem::transmute(ppfile), papstreams.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(papstreams))).ok() + AVIMakeFileFromStreams(::core::mem::transmute(ppfile), papstreams.len() as _, ::core::mem::transmute(papstreams.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -853,7 +853,7 @@ where #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AVISaveOptions<'a, P0>(hwnd: P0, uiflags: u32, nstreams: i32, ppavi: &::core::option::Option, plpoptions: &mut *mut AVICOMPRESSOPTIONS) -> isize +pub unsafe fn AVISaveOptions<'a, P0>(hwnd: P0, uiflags: u32, nstreams: i32, ppavi: *const ::core::option::Option, plpoptions: *mut *mut AVICOMPRESSOPTIONS) -> isize where P0: ::std::convert::Into, { @@ -870,12 +870,12 @@ pub unsafe fn AVISaveOptionsFree(plpoptions: &[*const AVICOMPRESSOPTIONS]) -> :: extern "system" { fn AVISaveOptionsFree(nstreams: i32, plpoptions: *const *const AVICOMPRESSOPTIONS) -> ::windows::core::HRESULT; } - AVISaveOptionsFree(plpoptions.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plpoptions))).ok() + AVISaveOptionsFree(plpoptions.len() as _, ::core::mem::transmute(plpoptions.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AVISaveVA<'a, P0>(szfile: P0, pclsidhandler: ::core::option::Option<&::windows::core::GUID>, lpfncallback: AVISAVECALLBACK, nstreams: i32, ppavi: &::core::option::Option, plpoptions: &*const AVICOMPRESSOPTIONS) -> ::windows::core::Result<()> +pub unsafe fn AVISaveVA<'a, P0>(szfile: P0, pclsidhandler: ::core::option::Option<&::windows::core::GUID>, lpfncallback: AVISAVECALLBACK, nstreams: i32, ppavi: *const ::core::option::Option, plpoptions: *const *const AVICOMPRESSOPTIONS) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -888,7 +888,7 @@ where #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AVISaveVW<'a, P0>(szfile: P0, pclsidhandler: ::core::option::Option<&::windows::core::GUID>, lpfncallback: AVISAVECALLBACK, nstreams: i32, ppavi: &::core::option::Option, plpoptions: &*const AVICOMPRESSOPTIONS) -> ::windows::core::Result<()> +pub unsafe fn AVISaveVW<'a, P0>(szfile: P0, pclsidhandler: ::core::option::Option<&::windows::core::GUID>, lpfncallback: AVISAVECALLBACK, nstreams: i32, ppavi: *const ::core::option::Option, plpoptions: *const *const AVICOMPRESSOPTIONS) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1009,7 +1009,7 @@ where #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AVIStreamInfoA<'a, P0>(pavi: P0, psi: &mut AVISTREAMINFOA, lsize: i32) -> ::windows::core::Result<()> +pub unsafe fn AVIStreamInfoA<'a, P0>(pavi: P0, psi: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IAVIStream>>, { @@ -1017,12 +1017,12 @@ where extern "system" { fn AVIStreamInfoA(pavi: *mut ::core::ffi::c_void, psi: *mut AVISTREAMINFOA, lsize: i32) -> ::windows::core::HRESULT; } - AVIStreamInfoA(pavi.into().abi(), ::core::mem::transmute(psi), lsize).ok() + AVIStreamInfoA(pavi.into().abi(), ::core::mem::transmute(psi.as_ptr()), psi.len() as _).ok() } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AVIStreamInfoW<'a, P0>(pavi: P0, psi: &mut AVISTREAMINFOW, lsize: i32) -> ::windows::core::Result<()> +pub unsafe fn AVIStreamInfoW<'a, P0>(pavi: P0, psi: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IAVIStream>>, { @@ -1030,7 +1030,7 @@ where extern "system" { fn AVIStreamInfoW(pavi: *mut ::core::ffi::c_void, psi: *mut AVISTREAMINFOW, lsize: i32) -> ::windows::core::HRESULT; } - AVIStreamInfoW(pavi.into().abi(), ::core::mem::transmute(psi), lsize).ok() + AVIStreamInfoW(pavi.into().abi(), ::core::mem::transmute(psi.as_ptr()), psi.len() as _).ok() } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] @@ -1070,7 +1070,7 @@ where } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] -pub unsafe fn AVIStreamRead<'a, P0>(pavi: P0, lstart: i32, lsamples: i32, lpbuffer: *mut ::core::ffi::c_void, cbbuffer: i32, plbytes: ::core::option::Option<&mut i32>, plsamples: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> +pub unsafe fn AVIStreamRead<'a, P0>(pavi: P0, lstart: i32, lsamples: i32, lpbuffer: ::core::option::Option<&mut [u8]>, plbytes: ::core::option::Option<&mut i32>, plsamples: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IAVIStream>>, { @@ -1078,7 +1078,7 @@ where extern "system" { fn AVIStreamRead(pavi: *mut ::core::ffi::c_void, lstart: i32, lsamples: i32, lpbuffer: *mut ::core::ffi::c_void, cbbuffer: i32, plbytes: *mut i32, plsamples: *mut i32) -> ::windows::core::HRESULT; } - AVIStreamRead(pavi.into().abi(), lstart, lsamples, ::core::mem::transmute(lpbuffer), cbbuffer, ::core::mem::transmute(plbytes), ::core::mem::transmute(plsamples)).ok() + AVIStreamRead(pavi.into().abi(), lstart, lsamples, ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(plbytes), ::core::mem::transmute(plsamples)).ok() } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] @@ -1130,7 +1130,7 @@ where } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] -pub unsafe fn AVIStreamSetFormat<'a, P0>(pavi: P0, lpos: i32, lpformat: *const ::core::ffi::c_void, cbformat: i32) -> ::windows::core::Result<()> +pub unsafe fn AVIStreamSetFormat<'a, P0>(pavi: P0, lpos: i32, lpformat: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IAVIStream>>, { @@ -1138,7 +1138,7 @@ where extern "system" { fn AVIStreamSetFormat(pavi: *mut ::core::ffi::c_void, lpos: i32, lpformat: *const ::core::ffi::c_void, cbformat: i32) -> ::windows::core::HRESULT; } - AVIStreamSetFormat(pavi.into().abi(), lpos, ::core::mem::transmute(lpformat), cbformat).ok() + AVIStreamSetFormat(pavi.into().abi(), lpos, ::core::mem::transmute(lpformat.as_ptr()), lpformat.len() as _).ok() } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] @@ -1166,7 +1166,7 @@ where } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] -pub unsafe fn AVIStreamWrite<'a, P0>(pavi: P0, lstart: i32, lsamples: i32, lpbuffer: *const ::core::ffi::c_void, cbbuffer: i32, dwflags: u32, plsampwritten: ::core::option::Option<&mut i32>, plbyteswritten: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> +pub unsafe fn AVIStreamWrite<'a, P0>(pavi: P0, lstart: i32, lsamples: i32, lpbuffer: &[u8], dwflags: u32, plsampwritten: ::core::option::Option<&mut i32>, plbyteswritten: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IAVIStream>>, { @@ -1174,11 +1174,11 @@ where extern "system" { fn AVIStreamWrite(pavi: *mut ::core::ffi::c_void, lstart: i32, lsamples: i32, lpbuffer: *const ::core::ffi::c_void, cbbuffer: i32, dwflags: u32, plsampwritten: *mut i32, plbyteswritten: *mut i32) -> ::windows::core::HRESULT; } - AVIStreamWrite(pavi.into().abi(), lstart, lsamples, ::core::mem::transmute(lpbuffer), cbbuffer, dwflags, ::core::mem::transmute(plsampwritten), ::core::mem::transmute(plbyteswritten)).ok() + AVIStreamWrite(pavi.into().abi(), lstart, lsamples, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, dwflags, ::core::mem::transmute(plsampwritten), ::core::mem::transmute(plbyteswritten)).ok() } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] -pub unsafe fn AVIStreamWriteData<'a, P0>(pavi: P0, fcc: u32, lp: *const ::core::ffi::c_void, cb: i32) -> ::windows::core::Result<()> +pub unsafe fn AVIStreamWriteData<'a, P0>(pavi: P0, fcc: u32, lp: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IAVIStream>>, { @@ -1186,7 +1186,7 @@ where extern "system" { fn AVIStreamWriteData(pavi: *mut ::core::ffi::c_void, fcc: u32, lp: *const ::core::ffi::c_void, cb: i32) -> ::windows::core::HRESULT; } - AVIStreamWriteData(pavi.into().abi(), fcc, ::core::mem::transmute(lp), cb).ok() + AVIStreamWriteData(pavi.into().abi(), fcc, ::core::mem::transmute(lp.as_ptr()), lp.len() as _).ok() } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] pub const AVSTREAMMASTER_AUDIO: u32 = 0u32; @@ -2471,7 +2471,7 @@ pub unsafe fn DrawDibChangePalette(hdd: isize, istart: i32, lppe: &[super::super extern "system" { fn DrawDibChangePalette(hdd: isize, istart: i32, ilen: i32, lppe: *const super::super::Graphics::Gdi::PALETTEENTRY) -> super::super::Foundation::BOOL; } - DrawDibChangePalette(hdd, istart, lppe.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lppe))) + DrawDibChangePalette(hdd, istart, lppe.len() as _, ::core::mem::transmute(lppe.as_ptr())) } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2746,7 +2746,7 @@ where #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EditStreamSetInfoA<'a, P0>(pavi: P0, lpinfo: &AVISTREAMINFOA, cbinfo: i32) -> ::windows::core::Result<()> +pub unsafe fn EditStreamSetInfoA<'a, P0>(pavi: P0, lpinfo: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IAVIStream>>, { @@ -2754,12 +2754,12 @@ where extern "system" { fn EditStreamSetInfoA(pavi: *mut ::core::ffi::c_void, lpinfo: *const AVISTREAMINFOA, cbinfo: i32) -> ::windows::core::HRESULT; } - EditStreamSetInfoA(pavi.into().abi(), ::core::mem::transmute(lpinfo), cbinfo).ok() + EditStreamSetInfoA(pavi.into().abi(), ::core::mem::transmute(lpinfo.as_ptr()), lpinfo.len() as _).ok() } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EditStreamSetInfoW<'a, P0>(pavi: P0, lpinfo: &AVISTREAMINFOW, cbinfo: i32) -> ::windows::core::Result<()> +pub unsafe fn EditStreamSetInfoW<'a, P0>(pavi: P0, lpinfo: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IAVIStream>>, { @@ -2767,7 +2767,7 @@ where extern "system" { fn EditStreamSetInfoW(pavi: *mut ::core::ffi::c_void, lpinfo: *const AVISTREAMINFOW, cbinfo: i32) -> ::windows::core::HRESULT; } - EditStreamSetInfoW(pavi.into().abi(), ::core::mem::transmute(lpinfo), cbinfo).ok() + EditStreamSetInfoW(pavi.into().abi(), ::core::mem::transmute(lpinfo.as_ptr()), lpinfo.len() as _).ok() } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] @@ -3163,8 +3163,8 @@ impl IAVIEditStream { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetInfo(&self, lpinfo: &AVISTREAMINFOW, cbinfo: i32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpinfo), cbinfo).ok() + pub unsafe fn SetInfo(&self, lpinfo: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpinfo.as_ptr()), lpinfo.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3219,8 +3219,8 @@ pub struct IAVIEditStream_Vtbl { #[repr(transparent)] pub struct IAVIFile(::windows::core::IUnknown); impl IAVIFile { - pub unsafe fn Info(&self, pfi: &mut AVIFILEINFOW, lsize: i32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Info)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfi), lsize).ok() + pub unsafe fn Info(&self, pfi: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Info)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfi.as_ptr()), pfi.len() as _).ok() } pub unsafe fn GetStream(&self, ppstream: &mut ::core::option::Option, fcctype: u32, lparam: i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppstream), fcctype, lparam).ok() @@ -3230,8 +3230,8 @@ impl IAVIFile { pub unsafe fn CreateStream(&self, ppstream: &mut ::core::option::Option, psi: &AVISTREAMINFOW) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CreateStream)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppstream), ::core::mem::transmute(psi)).ok() } - pub unsafe fn WriteData(&self, ckid: u32, lpdata: *const ::core::ffi::c_void, cbdata: i32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteData)(::windows::core::Interface::as_raw(self), ckid, ::core::mem::transmute(lpdata), cbdata).ok() + pub unsafe fn WriteData(&self, ckid: u32, lpdata: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).WriteData)(::windows::core::Interface::as_raw(self), ckid, ::core::mem::transmute(lpdata.as_ptr()), lpdata.len() as _).ok() } pub unsafe fn ReadData(&self, ckid: u32, lpdata: *mut ::core::ffi::c_void, lpcbdata: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReadData)(::windows::core::Interface::as_raw(self), ckid, ::core::mem::transmute(lpdata), ::core::mem::transmute(lpcbdata)).ok() @@ -3446,8 +3446,8 @@ impl IAVIStream { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn Info(&self, psi: &mut AVISTREAMINFOW, lsize: i32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Info)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psi), lsize).ok() + pub unsafe fn Info(&self, psi: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Info)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psi.as_ptr()), psi.len() as _).ok() } pub unsafe fn FindSample(&self, lpos: i32, lflags: i32) -> i32 { (::windows::core::Interface::vtable(self).FindSample)(::windows::core::Interface::as_raw(self), lpos, lflags) @@ -3455,14 +3455,14 @@ impl IAVIStream { pub unsafe fn ReadFormat(&self, lpos: i32, lpformat: *mut ::core::ffi::c_void, lpcbformat: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReadFormat)(::windows::core::Interface::as_raw(self), lpos, ::core::mem::transmute(lpformat), ::core::mem::transmute(lpcbformat)).ok() } - pub unsafe fn SetFormat(&self, lpos: i32, lpformat: *const ::core::ffi::c_void, cbformat: i32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetFormat)(::windows::core::Interface::as_raw(self), lpos, ::core::mem::transmute(lpformat), cbformat).ok() + pub unsafe fn SetFormat(&self, lpos: i32, lpformat: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetFormat)(::windows::core::Interface::as_raw(self), lpos, ::core::mem::transmute(lpformat.as_ptr()), lpformat.len() as _).ok() } - pub unsafe fn Read(&self, lstart: i32, lsamples: i32, lpbuffer: *mut ::core::ffi::c_void, cbbuffer: i32, plbytes: ::core::option::Option<&mut i32>, plsamples: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), lstart, lsamples, ::core::mem::transmute(lpbuffer), cbbuffer, ::core::mem::transmute(plbytes), ::core::mem::transmute(plsamples)).ok() + pub unsafe fn Read(&self, lstart: i32, lsamples: i32, lpbuffer: ::core::option::Option<&mut [u8]>, plbytes: ::core::option::Option<&mut i32>, plsamples: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), lstart, lsamples, ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(plbytes), ::core::mem::transmute(plsamples)).ok() } - pub unsafe fn Write(&self, lstart: i32, lsamples: i32, lpbuffer: *const ::core::ffi::c_void, cbbuffer: i32, dwflags: u32, plsampwritten: ::core::option::Option<&mut i32>, plbyteswritten: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Write)(::windows::core::Interface::as_raw(self), lstart, lsamples, ::core::mem::transmute(lpbuffer), cbbuffer, dwflags, ::core::mem::transmute(plsampwritten), ::core::mem::transmute(plbyteswritten)).ok() + pub unsafe fn Write(&self, lstart: i32, lsamples: i32, lpbuffer: &[u8], dwflags: u32, plsampwritten: ::core::option::Option<&mut i32>, plbyteswritten: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Write)(::windows::core::Interface::as_raw(self), lstart, lsamples, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, dwflags, ::core::mem::transmute(plsampwritten), ::core::mem::transmute(plbyteswritten)).ok() } pub unsafe fn Delete(&self, lstart: i32, lsamples: i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Delete)(::windows::core::Interface::as_raw(self), lstart, lsamples).ok() @@ -3470,13 +3470,13 @@ impl IAVIStream { pub unsafe fn ReadData(&self, fcc: u32, lp: *mut ::core::ffi::c_void, lpcb: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReadData)(::windows::core::Interface::as_raw(self), fcc, ::core::mem::transmute(lp), ::core::mem::transmute(lpcb)).ok() } - pub unsafe fn WriteData(&self, fcc: u32, lp: *const ::core::ffi::c_void, cb: i32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteData)(::windows::core::Interface::as_raw(self), fcc, ::core::mem::transmute(lp), cb).ok() + pub unsafe fn WriteData(&self, fcc: u32, lp: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).WriteData)(::windows::core::Interface::as_raw(self), fcc, ::core::mem::transmute(lp.as_ptr()), lp.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetInfo(&self, lpinfo: &AVISTREAMINFOW, cbinfo: i32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpinfo), cbinfo).ok() + pub unsafe fn SetInfo(&self, lpinfo: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpinfo.as_ptr()), lpinfo.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -4041,7 +4041,7 @@ where } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] -pub unsafe fn ICDraw<'a, P0>(hic: P0, dwflags: u32, lpformat: *const ::core::ffi::c_void, lpdata: *const ::core::ffi::c_void, cbdata: u32, ltime: i32) -> u32 +pub unsafe fn ICDraw<'a, P0>(hic: P0, dwflags: u32, lpformat: *const ::core::ffi::c_void, lpdata: ::core::option::Option<&[u8]>, ltime: i32) -> u32 where P0: ::std::convert::Into, { @@ -4049,7 +4049,7 @@ where extern "system" { fn ICDraw(hic: HIC, dwflags: u32, lpformat: *const ::core::ffi::c_void, lpdata: *const ::core::ffi::c_void, cbdata: u32, ltime: i32) -> u32; } - ICDraw(hic.into(), dwflags, ::core::mem::transmute(lpformat), ::core::mem::transmute(lpdata), cbdata, ltime) + ICDraw(hic.into(), dwflags, ::core::mem::transmute(lpformat), ::core::mem::transmute(lpdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdata.as_deref().map_or(0, |slice| slice.len() as _), ltime) } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -4121,7 +4121,7 @@ where #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ICGetInfo<'a, P0>(hic: P0, picinfo: &mut ICINFO, cb: u32) -> super::super::Foundation::LRESULT +pub unsafe fn ICGetInfo<'a, P0>(hic: P0, picinfo: &mut [u8]) -> super::super::Foundation::LRESULT where P0: ::std::convert::Into, { @@ -4129,7 +4129,7 @@ where extern "system" { fn ICGetInfo(hic: HIC, picinfo: *mut ICINFO, cb: u32) -> super::super::Foundation::LRESULT; } - ICGetInfo(hic.into(), ::core::mem::transmute(picinfo), cb) + ICGetInfo(hic.into(), ::core::mem::transmute(picinfo.as_ptr()), picinfo.len() as _) } #[repr(C)] #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] @@ -17030,7 +17030,7 @@ pub unsafe fn capGetDriverDescriptionA(wdriverindex: u32, lpszname: &mut [u8], l extern "system" { fn capGetDriverDescriptionA(wdriverindex: u32, lpszname: ::windows::core::PSTR, cbname: i32, lpszver: ::windows::core::PSTR, cbver: i32) -> super::super::Foundation::BOOL; } - capGetDriverDescriptionA(wdriverindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszname)), lpszname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszver)), lpszver.len() as _) + capGetDriverDescriptionA(wdriverindex, ::core::mem::transmute(lpszname.as_ptr()), lpszname.len() as _, ::core::mem::transmute(lpszver.as_ptr()), lpszver.len() as _) } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -17040,26 +17040,26 @@ pub unsafe fn capGetDriverDescriptionW(wdriverindex: u32, lpszname: &mut [u16], extern "system" { fn capGetDriverDescriptionW(wdriverindex: u32, lpszname: ::windows::core::PWSTR, cbname: i32, lpszver: ::windows::core::PWSTR, cbver: i32) -> super::super::Foundation::BOOL; } - capGetDriverDescriptionW(wdriverindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszname)), lpszname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszver)), lpszver.len() as _) + capGetDriverDescriptionW(wdriverindex, ::core::mem::transmute(lpszname.as_ptr()), lpszname.len() as _, ::core::mem::transmute(lpszver.as_ptr()), lpszver.len() as _) } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn joyGetDevCapsA(ujoyid: usize, pjc: &mut JOYCAPSA, cbjc: u32) -> u32 { +pub unsafe fn joyGetDevCapsA(ujoyid: usize, pjc: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn joyGetDevCapsA(ujoyid: usize, pjc: *mut JOYCAPSA, cbjc: u32) -> u32; } - joyGetDevCapsA(ujoyid, ::core::mem::transmute(pjc), cbjc) + joyGetDevCapsA(ujoyid, ::core::mem::transmute(pjc.as_ptr()), pjc.len() as _) } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] -pub unsafe fn joyGetDevCapsW(ujoyid: usize, pjc: &mut JOYCAPSW, cbjc: u32) -> u32 { +pub unsafe fn joyGetDevCapsW(ujoyid: usize, pjc: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn joyGetDevCapsW(ujoyid: usize, pjc: *mut JOYCAPSW, cbjc: u32) -> u32; } - joyGetDevCapsW(ujoyid, ::core::mem::transmute(pjc), cbjc) + joyGetDevCapsW(ujoyid, ::core::mem::transmute(pjc.as_ptr()), pjc.len() as _) } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] @@ -17235,7 +17235,7 @@ pub unsafe fn mciGetErrorStringA(mcierr: u32, psztext: &mut [u8]) -> super::supe extern "system" { fn mciGetErrorStringA(mcierr: u32, psztext: ::windows::core::PSTR, cchtext: u32) -> super::super::Foundation::BOOL; } - mciGetErrorStringA(mcierr, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psztext)), psztext.len() as _) + mciGetErrorStringA(mcierr, ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _) } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -17245,7 +17245,7 @@ pub unsafe fn mciGetErrorStringW(mcierr: u32, psztext: &mut [u16]) -> super::sup extern "system" { fn mciGetErrorStringW(mcierr: u32, psztext: ::windows::core::PWSTR, cchtext: u32) -> super::super::Foundation::BOOL; } - mciGetErrorStringW(mcierr, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psztext)), psztext.len() as _) + mciGetErrorStringW(mcierr, ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _) } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] @@ -17291,7 +17291,7 @@ pub unsafe fn mciSendCommandW(mciid: u32, umsg: u32, dwparam1: usize, dwparam2: #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn mciSendStringA<'a, P0, P1>(lpstrcommand: P0, lpstrreturnstring: &mut [u8], hwndcallback: P1) -> u32 +pub unsafe fn mciSendStringA<'a, P0, P1>(lpstrcommand: P0, lpstrreturnstring: ::core::option::Option<&mut [u8]>, hwndcallback: P1) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into, @@ -17300,12 +17300,12 @@ where extern "system" { fn mciSendStringA(lpstrcommand: ::windows::core::PCSTR, lpstrreturnstring: ::windows::core::PSTR, ureturnlength: u32, hwndcallback: super::super::Foundation::HWND) -> u32; } - mciSendStringA(lpstrcommand.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstrreturnstring)), lpstrreturnstring.len() as _, hwndcallback.into()) + mciSendStringA(lpstrcommand.into(), ::core::mem::transmute(lpstrreturnstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpstrreturnstring.as_deref().map_or(0, |slice| slice.len() as _), hwndcallback.into()) } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn mciSendStringW<'a, P0, P1>(lpstrcommand: P0, lpstrreturnstring: &mut [u16], hwndcallback: P1) -> u32 +pub unsafe fn mciSendStringW<'a, P0, P1>(lpstrcommand: P0, lpstrreturnstring: ::core::option::Option<&mut [u16]>, hwndcallback: P1) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into, @@ -17314,7 +17314,7 @@ where extern "system" { fn mciSendStringW(lpstrcommand: ::windows::core::PCWSTR, lpstrreturnstring: ::windows::core::PWSTR, ureturnlength: u32, hwndcallback: super::super::Foundation::HWND) -> u32; } - mciSendStringW(lpstrcommand.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstrreturnstring)), lpstrreturnstring.len() as _, hwndcallback.into()) + mciSendStringW(lpstrcommand.into(), ::core::mem::transmute(lpstrreturnstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpstrreturnstring.as_deref().map_or(0, |slice| slice.len() as _), hwndcallback.into()) } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -17505,26 +17505,26 @@ pub unsafe fn mmioInstallIOProcW(fccioproc: u32, pioproc: LPMMIOPROC, dwflags: u #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn mmioOpenA(pszfilename: &mut [u8; 128], pmmioinfo: ::core::option::Option<&mut MMIOINFO>, fdwopen: u32) -> HMMIO { +pub unsafe fn mmioOpenA(pszfilename: ::core::option::Option<&mut [u8; 128]>, pmmioinfo: ::core::option::Option<&mut MMIOINFO>, fdwopen: u32) -> HMMIO { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn mmioOpenA(pszfilename: ::windows::core::PSTR, pmmioinfo: *mut MMIOINFO, fdwopen: u32) -> HMMIO; } - mmioOpenA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszfilename)), ::core::mem::transmute(pmmioinfo), fdwopen) + mmioOpenA(::core::mem::transmute(pszfilename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pmmioinfo), fdwopen) } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn mmioOpenW(pszfilename: &mut [u16; 128], pmmioinfo: ::core::option::Option<&mut MMIOINFO>, fdwopen: u32) -> HMMIO { +pub unsafe fn mmioOpenW(pszfilename: ::core::option::Option<&mut [u16; 128]>, pmmioinfo: ::core::option::Option<&mut MMIOINFO>, fdwopen: u32) -> HMMIO { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn mmioOpenW(pszfilename: ::windows::core::PWSTR, pmmioinfo: *mut MMIOINFO, fdwopen: u32) -> HMMIO; } - mmioOpenW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszfilename)), ::core::mem::transmute(pmmioinfo), fdwopen) + mmioOpenW(::core::mem::transmute(pszfilename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pmmioinfo), fdwopen) } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] -pub unsafe fn mmioRead<'a, P0>(hmmio: P0, pch: &mut i8, cch: i32) -> i32 +pub unsafe fn mmioRead<'a, P0>(hmmio: P0, pch: &mut [u8]) -> i32 where P0: ::std::convert::Into, { @@ -17532,7 +17532,7 @@ where extern "system" { fn mmioRead(hmmio: HMMIO, pch: *mut i8, cch: i32) -> i32; } - mmioRead(hmmio.into(), ::core::mem::transmute(pch), cch) + mmioRead(hmmio.into(), ::core::mem::transmute(pch.as_ptr()), pch.len() as _) } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -17591,7 +17591,7 @@ where } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] -pub unsafe fn mmioSetBuffer<'a, P0>(hmmio: P0, pchbuffer: &mut [u8], fubuffer: u32) -> u32 +pub unsafe fn mmioSetBuffer<'a, P0>(hmmio: P0, pchbuffer: ::core::option::Option<&mut [u8]>, fubuffer: u32) -> u32 where P0: ::std::convert::Into, { @@ -17599,7 +17599,7 @@ where extern "system" { fn mmioSetBuffer(hmmio: HMMIO, pchbuffer: ::windows::core::PSTR, cchbuffer: i32, fubuffer: u32) -> u32; } - mmioSetBuffer(hmmio.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pchbuffer)), pchbuffer.len() as _, fubuffer) + mmioSetBuffer(hmmio.into(), ::core::mem::transmute(pchbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pchbuffer.as_deref().map_or(0, |slice| slice.len() as _), fubuffer) } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -17640,16 +17640,15 @@ where } #[doc = "*Required features: `\"Win32_Media_Multimedia\"`*"] #[inline] -pub unsafe fn mmioWrite<'a, P0, P1>(hmmio: P0, pch: P1, cch: i32) -> i32 +pub unsafe fn mmioWrite<'a, P0>(hmmio: P0, pch: &[u8]) -> i32 where P0: ::std::convert::Into, - P1: ::std::convert::Into<::windows::core::PCSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn mmioWrite(hmmio: HMMIO, pch: ::windows::core::PCSTR, cch: i32) -> i32; } - mmioWrite(hmmio.into(), pch.into(), cch) + mmioWrite(hmmio.into(), ::core::mem::transmute(pch.as_ptr()), pch.len() as _) } #[repr(C)] #[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`*"] 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 0333d00198..e26257e1a3 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/Speech/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/Speech/mod.rs @@ -1915,13 +1915,13 @@ pub struct ISpAudio(::windows::core::IUnknown); impl ISpAudio { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Read(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread)) + pub unsafe fn Read(&self, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Write(&self, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbwritten)) + pub unsafe fn Write(&self, pv: &[u8], pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbwritten)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -3049,13 +3049,13 @@ pub struct ISpMMSysAudio(::windows::core::IUnknown); impl ISpMMSysAudio { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Read(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread)) + pub unsafe fn Read(&self, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Write(&self, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbwritten)) + pub unsafe fn Write(&self, pv: &[u8], pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbwritten)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -4409,10 +4409,10 @@ impl ISpPhoneticAlphabetConverter { (::windows::core::Interface::vtable(self).SetLangId)(::windows::core::Interface::as_raw(self), langid).ok() } pub unsafe fn SAPI2UPS(&self, pszsapiid: &u16, pszupsid: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SAPI2UPS)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszsapiid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszupsid)), pszupsid.len() as _).ok() + (::windows::core::Interface::vtable(self).SAPI2UPS)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszsapiid), ::core::mem::transmute(pszupsid.as_ptr()), pszupsid.len() as _).ok() } pub unsafe fn UPS2SAPI(&self, pszupsid: &u16, pszsapiid: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UPS2SAPI)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszupsid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszsapiid)), pszsapiid.len() as _).ok() + (::windows::core::Interface::vtable(self).UPS2SAPI)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszupsid), ::core::mem::transmute(pszsapiid.as_ptr()), pszsapiid.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5282,8 +5282,8 @@ impl ISpRecoGrammar { pub unsafe fn SetDictationState(&self, newstate: SPRULESTATE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetDictationState)(::windows::core::Interface::as_raw(self), newstate).ok() } - pub unsafe fn SetWordSequenceData(&self, ptext: &[u16], pinfo: &SPTEXTSELECTIONINFO) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetWordSequenceData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ptext)), ptext.len() as _, ::core::mem::transmute(pinfo)).ok() + pub unsafe fn SetWordSequenceData(&self, ptext: ::core::option::Option<&[u16]>, pinfo: &SPTEXTSELECTIONINFO) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetWordSequenceData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ptext.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pinfo)).ok() } pub unsafe fn SetTextSelection(&self, pinfo: &SPTEXTSELECTIONINFO) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetTextSelection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinfo)).ok() @@ -5528,7 +5528,7 @@ impl ISpRecoResult { (::windows::core::Interface::vtable(self).GetResultTimes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptimes)).ok() } pub unsafe fn GetAlternates(&self, ulstartelement: u32, celements: u32, ppphrases: &mut [::core::option::Option], pcphrasesreturned: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetAlternates)(::windows::core::Interface::as_raw(self), ulstartelement, celements, ppphrases.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppphrases)), ::core::mem::transmute(pcphrasesreturned)).ok() + (::windows::core::Interface::vtable(self).GetAlternates)(::windows::core::Interface::as_raw(self), ulstartelement, celements, ppphrases.len() as _, ::core::mem::transmute(ppphrases.as_ptr()), ::core::mem::transmute(pcphrasesreturned)).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -5654,7 +5654,7 @@ impl ISpRecoResult2 { (::windows::core::Interface::vtable(self).base__.GetResultTimes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptimes)).ok() } pub unsafe fn GetAlternates(&self, ulstartelement: u32, celements: u32, ppphrases: &mut [::core::option::Option], pcphrasesreturned: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetAlternates)(::windows::core::Interface::as_raw(self), ulstartelement, celements, ppphrases.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppphrases)), ::core::mem::transmute(pcphrasesreturned)).ok() + (::windows::core::Interface::vtable(self).base__.GetAlternates)(::windows::core::Interface::as_raw(self), ulstartelement, celements, ppphrases.len() as _, ::core::mem::transmute(ppphrases.as_ptr()), ::core::mem::transmute(pcphrasesreturned)).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -6436,13 +6436,13 @@ pub struct ISpStream(::windows::core::IUnknown); impl ISpStream { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Read(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread)) + pub unsafe fn Read(&self, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Write(&self, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbwritten)) + pub unsafe fn Write(&self, pv: &[u8], pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbwritten)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -6650,13 +6650,13 @@ pub struct ISpStreamFormat(::windows::core::IUnknown); impl ISpStreamFormat { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Read(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread)) + pub unsafe fn Read(&self, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Write(&self, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbwritten)) + pub unsafe fn Write(&self, pv: &[u8], pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbwritten)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -6812,13 +6812,13 @@ pub struct ISpStreamFormatConverter(::windows::core::IUnknown); impl ISpStreamFormatConverter { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Read(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread)) + pub unsafe fn Read(&self, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Write(&self, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbwritten)) + pub unsafe fn Write(&self, pv: &[u8], pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbwritten)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -7406,7 +7406,7 @@ impl ISpXMLRecoResult { (::windows::core::Interface::vtable(self).base__.GetResultTimes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptimes)).ok() } pub unsafe fn GetAlternates(&self, ulstartelement: u32, celements: u32, ppphrases: &mut [::core::option::Option], pcphrasesreturned: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetAlternates)(::windows::core::Interface::as_raw(self), ulstartelement, celements, ppphrases.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppphrases)), ::core::mem::transmute(pcphrasesreturned)).ok() + (::windows::core::Interface::vtable(self).base__.GetAlternates)(::windows::core::Interface::as_raw(self), ulstartelement, celements, ppphrases.len() as _, ::core::mem::transmute(ppphrases.as_ptr()), ::core::mem::transmute(pcphrasesreturned)).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] diff --git a/crates/libs/windows/src/Windows/Win32/Media/WindowsMediaFormat/mod.rs b/crates/libs/windows/src/Windows/Win32/Media/WindowsMediaFormat/mod.rs index c001842cda..2c41db6bdb 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/WindowsMediaFormat/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/WindowsMediaFormat/mod.rs @@ -977,10 +977,10 @@ impl IWMBackupRestoreProps { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetPropCount)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetPropByIndex(&self, windex: u16, pwszname: ::windows::core::PWSTR, pcchnamelen: &mut u16, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetPropByIndex(&self, windex: u16, pwszname: ::windows::core::PWSTR, pcchnamelen: &mut u16, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPropByIndex)(::windows::core::Interface::as_raw(self), windex, ::core::mem::transmute(pwszname), ::core::mem::transmute(pcchnamelen), ::core::mem::transmute(ptype), ::core::mem::transmute(pvalue), ::core::mem::transmute(pcblength)).ok() } - pub unsafe fn GetPropByName<'a, P0>(&self, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetPropByName<'a, P0>(&self, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -990,7 +990,7 @@ impl IWMBackupRestoreProps { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetProp)(::windows::core::Interface::as_raw(self), pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).SetProp)(::windows::core::Interface::as_raw(self), pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } pub unsafe fn RemoveProp<'a, P0>(&self, pcwszname: P0) -> ::windows::core::Result<()> where @@ -1052,7 +1052,7 @@ pub struct IWMBackupRestoreProps_Vtbl { #[repr(transparent)] pub struct IWMBandwidthSharing(::windows::core::IUnknown); impl IWMBandwidthSharing { - pub unsafe fn GetStreams(&self, pwstreamnumarray: &mut u16, pcstreams: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetStreams(&self, pwstreamnumarray: *mut u16, pcstreams: &mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetStreams)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwstreamnumarray), ::core::mem::transmute(pcstreams)).ok() } pub unsafe fn AddStream(&self, wstreamnum: u16) -> ::windows::core::Result<()> { @@ -1423,13 +1423,13 @@ impl IWMCodecInfo3 { pub unsafe fn GetCodecFormatDesc(&self, guidtype: &::windows::core::GUID, dwcodecindex: u32, dwformatindex: u32, ppistreamconfig: &mut ::core::option::Option, wszdesc: ::windows::core::PWSTR, pcchdesc: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetCodecFormatDesc)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidtype), dwcodecindex, dwformatindex, ::core::mem::transmute(ppistreamconfig), ::core::mem::transmute(wszdesc), ::core::mem::transmute(pcchdesc)).ok() } - pub unsafe fn GetCodecFormatProp<'a, P0>(&self, guidtype: &::windows::core::GUID, dwcodecindex: u32, dwformatindex: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetCodecFormatProp<'a, P0>(&self, guidtype: &::windows::core::GUID, dwcodecindex: u32, dwformatindex: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { (::windows::core::Interface::vtable(self).GetCodecFormatProp)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidtype), dwcodecindex, dwformatindex, pszname.into(), ::core::mem::transmute(ptype), ::core::mem::transmute(pvalue), ::core::mem::transmute(pdwsize)).ok() } - pub unsafe fn GetCodecProp<'a, P0>(&self, guidtype: &::windows::core::GUID, dwcodecindex: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetCodecProp<'a, P0>(&self, guidtype: &::windows::core::GUID, dwcodecindex: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1439,9 +1439,9 @@ impl IWMCodecInfo3 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetCodecEnumerationSetting)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidtype), dwcodecindex, pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).SetCodecEnumerationSetting)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidtype), dwcodecindex, pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } - pub unsafe fn GetCodecEnumerationSetting<'a, P0>(&self, guidtype: &::windows::core::GUID, dwcodecindex: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetCodecEnumerationSetting<'a, P0>(&self, guidtype: &::windows::core::GUID, dwcodecindex: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1531,7 +1531,7 @@ impl IWMCredentialCallback { P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).AcquireCredentials)(::windows::core::Interface::as_raw(self), pwszrealm.into(), pwszsite.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszuser)), pwszuser.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszpassword)), pwszpassword.len() as _, hrstatus, ::core::mem::transmute(pdwflags)).ok() + (::windows::core::Interface::vtable(self).AcquireCredentials)(::windows::core::Interface::as_raw(self), pwszrealm.into(), pwszsite.into(), ::core::mem::transmute(pwszuser.as_ptr()), pwszuser.len() as _, ::core::mem::transmute(pwszpassword.as_ptr()), pwszpassword.len() as _, hrstatus, ::core::mem::transmute(pdwflags)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1579,7 +1579,7 @@ pub struct IWMCredentialCallback_Vtbl { #[repr(transparent)] pub struct IWMDRMEditor(::windows::core::IUnknown); impl IWMDRMEditor { - pub unsafe fn GetDRMProperty<'a, P0>(&self, pwstrname: P0, pdwtype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetDRMProperty<'a, P0>(&self, pwstrname: P0, pdwtype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1632,12 +1632,12 @@ pub struct IWMDRMEditor_Vtbl { pub struct IWMDRMMessageParser(::windows::core::IUnknown); impl IWMDRMMessageParser { pub unsafe fn ParseRegistrationReqMsg(&self, pbregistrationreqmsg: &[u8], ppdevicecert: &mut ::core::option::Option, pdeviceserialnumber: &mut DRM_VAL16) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ParseRegistrationReqMsg)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbregistrationreqmsg)), pbregistrationreqmsg.len() as _, ::core::mem::transmute(ppdevicecert), ::core::mem::transmute(pdeviceserialnumber)).ok() + (::windows::core::Interface::vtable(self).ParseRegistrationReqMsg)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbregistrationreqmsg.as_ptr()), pbregistrationreqmsg.len() as _, ::core::mem::transmute(ppdevicecert), ::core::mem::transmute(pdeviceserialnumber)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ParseLicenseRequestMsg(&self, pblicenserequestmsg: &[u8], ppdevicecert: &mut ::core::option::Option, pdeviceserialnumber: &mut DRM_VAL16, pbstraction: &mut super::super::Foundation::BSTR) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ParseLicenseRequestMsg)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pblicenserequestmsg)), pblicenserequestmsg.len() as _, ::core::mem::transmute(ppdevicecert), ::core::mem::transmute(pdeviceserialnumber), ::core::mem::transmute(pbstraction)).ok() + (::windows::core::Interface::vtable(self).ParseLicenseRequestMsg)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pblicenserequestmsg.as_ptr()), pblicenserequestmsg.len() as _, ::core::mem::transmute(ppdevicecert), ::core::mem::transmute(pdeviceserialnumber), ::core::mem::transmute(pbstraction)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1711,9 +1711,9 @@ impl IWMDRMReader { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetDRMProperty)(::windows::core::Interface::as_raw(self), pwstrname.into(), dwtype, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).SetDRMProperty)(::windows::core::Interface::as_raw(self), pwstrname.into(), dwtype, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } - pub unsafe fn GetDRMProperty<'a, P0>(&self, pwstrname: P0, pdwtype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetDRMProperty<'a, P0>(&self, pwstrname: P0, pdwtype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1794,9 +1794,9 @@ impl IWMDRMReader2 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.SetDRMProperty)(::windows::core::Interface::as_raw(self), pwstrname.into(), dwtype, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetDRMProperty)(::windows::core::Interface::as_raw(self), pwstrname.into(), dwtype, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } - pub unsafe fn GetDRMProperty<'a, P0>(&self, pwstrname: P0, pdwtype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetDRMProperty<'a, P0>(&self, pwstrname: P0, pdwtype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1810,10 +1810,10 @@ impl IWMDRMReader2 { { (::windows::core::Interface::vtable(self).SetEvaluateOutputLevelLicenses)(::windows::core::Interface::as_raw(self), fevaluate.into()).ok() } - pub unsafe fn GetPlayOutputLevels(&self, pplayopl: &mut DRM_PLAY_OPL, pcblength: &mut u32, pdwminappcompliancelevel: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetPlayOutputLevels(&self, pplayopl: *mut DRM_PLAY_OPL, pcblength: &mut u32, pdwminappcompliancelevel: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPlayOutputLevels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pplayopl), ::core::mem::transmute(pcblength), ::core::mem::transmute(pdwminappcompliancelevel)).ok() } - pub unsafe fn GetCopyOutputLevels(&self, pcopyopl: &mut DRM_COPY_OPL, pcblength: &mut u32, pdwminappcompliancelevel: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetCopyOutputLevels(&self, pcopyopl: *mut DRM_COPY_OPL, pcblength: &mut u32, pdwminappcompliancelevel: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetCopyOutputLevels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcopyopl), ::core::mem::transmute(pcblength), ::core::mem::transmute(pdwminappcompliancelevel)).ok() } pub unsafe fn TryNextLicense(&self) -> ::windows::core::Result<()> { @@ -1908,9 +1908,9 @@ impl IWMDRMReader3 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.SetDRMProperty)(::windows::core::Interface::as_raw(self), pwstrname.into(), dwtype, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.SetDRMProperty)(::windows::core::Interface::as_raw(self), pwstrname.into(), dwtype, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } - pub unsafe fn GetDRMProperty<'a, P0>(&self, pwstrname: P0, pdwtype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetDRMProperty<'a, P0>(&self, pwstrname: P0, pdwtype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1924,10 +1924,10 @@ impl IWMDRMReader3 { { (::windows::core::Interface::vtable(self).base__.SetEvaluateOutputLevelLicenses)(::windows::core::Interface::as_raw(self), fevaluate.into()).ok() } - pub unsafe fn GetPlayOutputLevels(&self, pplayopl: &mut DRM_PLAY_OPL, pcblength: &mut u32, pdwminappcompliancelevel: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetPlayOutputLevels(&self, pplayopl: *mut DRM_PLAY_OPL, pcblength: &mut u32, pdwminappcompliancelevel: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPlayOutputLevels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pplayopl), ::core::mem::transmute(pcblength), ::core::mem::transmute(pdwminappcompliancelevel)).ok() } - pub unsafe fn GetCopyOutputLevels(&self, pcopyopl: &mut DRM_COPY_OPL, pcblength: &mut u32, pdwminappcompliancelevel: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetCopyOutputLevels(&self, pcopyopl: *mut DRM_COPY_OPL, pcblength: &mut u32, pdwminappcompliancelevel: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetCopyOutputLevels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcopyopl), ::core::mem::transmute(pcblength), ::core::mem::transmute(pdwminappcompliancelevel)).ok() } pub unsafe fn TryNextLicense(&self) -> ::windows::core::Result<()> { @@ -2257,7 +2257,7 @@ impl IWMDRMWriter { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetDRMAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).SetDRMAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2321,7 +2321,7 @@ impl IWMDRMWriter2 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.SetDRMAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetDRMAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2408,7 +2408,7 @@ impl IWMDRMWriter3 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.SetDRMAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.SetDRMAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2499,10 +2499,10 @@ pub struct IWMDeviceRegistration(::windows::core::IUnknown); impl IWMDeviceRegistration { pub unsafe fn RegisterDevice(&self, dwregistertype: u32, pbcertificate: &[u8], serialnumber: DRM_VAL16) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).RegisterDevice)(::windows::core::Interface::as_raw(self), dwregistertype, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbcertificate)), pbcertificate.len() as _, ::core::mem::transmute(serialnumber), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).RegisterDevice)(::windows::core::Interface::as_raw(self), dwregistertype, ::core::mem::transmute(pbcertificate.as_ptr()), pbcertificate.len() as _, ::core::mem::transmute(serialnumber), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn UnregisterDevice(&self, dwregistertype: u32, pbcertificate: &[u8], serialnumber: DRM_VAL16) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UnregisterDevice)(::windows::core::Interface::as_raw(self), dwregistertype, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbcertificate)), pbcertificate.len() as _, ::core::mem::transmute(serialnumber)).ok() + (::windows::core::Interface::vtable(self).UnregisterDevice)(::windows::core::Interface::as_raw(self), dwregistertype, ::core::mem::transmute(pbcertificate.as_ptr()), pbcertificate.len() as _, ::core::mem::transmute(serialnumber)).ok() } pub unsafe fn GetRegistrationStats(&self, dwregistertype: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2518,7 +2518,7 @@ impl IWMDeviceRegistration { } pub unsafe fn GetRegisteredDeviceByID(&self, dwregistertype: u32, pbcertificate: &[u8], serialnumber: DRM_VAL16) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetRegisteredDeviceByID)(::windows::core::Interface::as_raw(self), dwregistertype, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbcertificate)), pbcertificate.len() as _, ::core::mem::transmute(serialnumber), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetRegisteredDeviceByID)(::windows::core::Interface::as_raw(self), dwregistertype, ::core::mem::transmute(pbcertificate.as_ptr()), pbcertificate.len() as _, ::core::mem::transmute(serialnumber), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2625,10 +2625,10 @@ impl IWMHeaderInfo { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetAttributeCount)(::windows::core::Interface::as_raw(self), wstreamnum, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetAttributeByIndex(&self, windex: u16, pwstreamnum: &mut u16, pwszname: ::windows::core::PWSTR, pcchnamelen: &mut u16, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetAttributeByIndex(&self, windex: u16, pwstreamnum: &mut u16, pwszname: ::windows::core::PWSTR, pcchnamelen: &mut u16, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetAttributeByIndex)(::windows::core::Interface::as_raw(self), windex, ::core::mem::transmute(pwstreamnum), ::core::mem::transmute(pwszname), ::core::mem::transmute(pcchnamelen), ::core::mem::transmute(ptype), ::core::mem::transmute(pvalue), ::core::mem::transmute(pcblength)).ok() } - pub unsafe fn GetAttributeByName<'a, P0>(&self, pwstreamnum: &mut u16, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetAttributeByName<'a, P0>(&self, pwstreamnum: &mut u16, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2638,7 +2638,7 @@ impl IWMHeaderInfo { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).SetAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } pub unsafe fn GetMarkerCount(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2734,10 +2734,10 @@ impl IWMHeaderInfo2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetAttributeCount)(::windows::core::Interface::as_raw(self), wstreamnum, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetAttributeByIndex(&self, windex: u16, pwstreamnum: &mut u16, pwszname: ::windows::core::PWSTR, pcchnamelen: &mut u16, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetAttributeByIndex(&self, windex: u16, pwstreamnum: &mut u16, pwszname: ::windows::core::PWSTR, pcchnamelen: &mut u16, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetAttributeByIndex)(::windows::core::Interface::as_raw(self), windex, ::core::mem::transmute(pwstreamnum), ::core::mem::transmute(pwszname), ::core::mem::transmute(pcchnamelen), ::core::mem::transmute(ptype), ::core::mem::transmute(pvalue), ::core::mem::transmute(pcblength)).ok() } - pub unsafe fn GetAttributeByName<'a, P0>(&self, pwstreamnum: &mut u16, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetAttributeByName<'a, P0>(&self, pwstreamnum: &mut u16, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2747,7 +2747,7 @@ impl IWMHeaderInfo2 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.SetAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } pub unsafe fn GetMarkerCount(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2786,7 +2786,7 @@ impl IWMHeaderInfo2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetCodecInfoCount)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetCodecInfo(&self, windex: u32, pcchname: &mut u16, pwszname: ::windows::core::PWSTR, pcchdescription: &mut u16, pwszdescription: ::windows::core::PWSTR, pcodectype: &mut WMT_CODEC_INFO_TYPE, pcbcodecinfo: &mut u16, pbcodecinfo: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetCodecInfo(&self, windex: u32, pcchname: &mut u16, pwszname: ::windows::core::PWSTR, pcchdescription: &mut u16, pwszdescription: ::windows::core::PWSTR, pcodectype: &mut WMT_CODEC_INFO_TYPE, pcbcodecinfo: &mut u16, pbcodecinfo: *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetCodecInfo)(::windows::core::Interface::as_raw(self), windex, ::core::mem::transmute(pcchname), ::core::mem::transmute(pwszname), ::core::mem::transmute(pcchdescription), ::core::mem::transmute(pwszdescription), ::core::mem::transmute(pcodectype), ::core::mem::transmute(pcbcodecinfo), ::core::mem::transmute(pbcodecinfo)).ok() } } @@ -2855,10 +2855,10 @@ impl IWMHeaderInfo3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.GetAttributeCount)(::windows::core::Interface::as_raw(self), wstreamnum, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetAttributeByIndex(&self, windex: u16, pwstreamnum: &mut u16, pwszname: ::windows::core::PWSTR, pcchnamelen: &mut u16, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetAttributeByIndex(&self, windex: u16, pwstreamnum: &mut u16, pwszname: ::windows::core::PWSTR, pcchnamelen: &mut u16, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetAttributeByIndex)(::windows::core::Interface::as_raw(self), windex, ::core::mem::transmute(pwstreamnum), ::core::mem::transmute(pwszname), ::core::mem::transmute(pcchnamelen), ::core::mem::transmute(ptype), ::core::mem::transmute(pvalue), ::core::mem::transmute(pcblength)).ok() } - pub unsafe fn GetAttributeByName<'a, P0>(&self, pwstreamnum: &mut u16, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetAttributeByName<'a, P0>(&self, pwstreamnum: &mut u16, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2868,7 +2868,7 @@ impl IWMHeaderInfo3 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.SetAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.SetAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } pub unsafe fn GetMarkerCount(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2907,30 +2907,30 @@ impl IWMHeaderInfo3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetCodecInfoCount)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetCodecInfo(&self, windex: u32, pcchname: &mut u16, pwszname: ::windows::core::PWSTR, pcchdescription: &mut u16, pwszdescription: ::windows::core::PWSTR, pcodectype: &mut WMT_CODEC_INFO_TYPE, pcbcodecinfo: &mut u16, pbcodecinfo: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetCodecInfo(&self, windex: u32, pcchname: &mut u16, pwszname: ::windows::core::PWSTR, pcchdescription: &mut u16, pwszdescription: ::windows::core::PWSTR, pcodectype: &mut WMT_CODEC_INFO_TYPE, pcbcodecinfo: &mut u16, pbcodecinfo: *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetCodecInfo)(::windows::core::Interface::as_raw(self), windex, ::core::mem::transmute(pcchname), ::core::mem::transmute(pwszname), ::core::mem::transmute(pcchdescription), ::core::mem::transmute(pwszdescription), ::core::mem::transmute(pcodectype), ::core::mem::transmute(pcbcodecinfo), ::core::mem::transmute(pbcodecinfo)).ok() } pub unsafe fn GetAttributeCountEx(&self, wstreamnum: u16) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetAttributeCountEx)(::windows::core::Interface::as_raw(self), wstreamnum, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetAttributeIndices<'a, P0>(&self, wstreamnum: u16, pwszname: P0, pwlangindex: &u16, pwindices: &mut u16, pwcount: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetAttributeIndices<'a, P0>(&self, wstreamnum: u16, pwszname: P0, pwlangindex: &u16, pwindices: *mut u16, pwcount: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { (::windows::core::Interface::vtable(self).GetAttributeIndices)(::windows::core::Interface::as_raw(self), wstreamnum, pwszname.into(), ::core::mem::transmute(pwlangindex), ::core::mem::transmute(pwindices), ::core::mem::transmute(pwcount)).ok() } - pub unsafe fn GetAttributeByIndexEx(&self, wstreamnum: u16, windex: u16, pwszname: ::windows::core::PWSTR, pwnamelen: &mut u16, ptype: &mut WMT_ATTR_DATATYPE, pwlangindex: &mut u16, pvalue: &mut u8, pdwdatalength: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAttributeByIndexEx(&self, wstreamnum: u16, windex: u16, pwszname: ::windows::core::PWSTR, pwnamelen: &mut u16, ptype: &mut WMT_ATTR_DATATYPE, pwlangindex: &mut u16, pvalue: *mut u8, pdwdatalength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetAttributeByIndexEx)(::windows::core::Interface::as_raw(self), wstreamnum, windex, ::core::mem::transmute(pwszname), ::core::mem::transmute(pwnamelen), ::core::mem::transmute(ptype), ::core::mem::transmute(pwlangindex), ::core::mem::transmute(pvalue), ::core::mem::transmute(pdwdatalength)).ok() } pub unsafe fn ModifyAttribute(&self, wstreamnum: u16, windex: u16, r#type: WMT_ATTR_DATATYPE, wlangindex: u16, pvalue: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ModifyAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, windex, r#type, wlangindex, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).ModifyAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, windex, r#type, wlangindex, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } pub unsafe fn AddAttribute<'a, P0>(&self, wstreamnum: u16, pszname: P0, pwindex: &mut u16, r#type: WMT_ATTR_DATATYPE, wlangindex: u16, pvalue: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).AddAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, pszname.into(), ::core::mem::transmute(pwindex), r#type, wlangindex, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).AddAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, pszname.into(), ::core::mem::transmute(pwindex), r#type, wlangindex, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } pub unsafe fn DeleteAttribute(&self, wstreamnum: u16, windex: u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DeleteAttribute)(::windows::core::Interface::as_raw(self), wstreamnum, windex).ok() @@ -2940,7 +2940,7 @@ impl IWMHeaderInfo3 { P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).AddCodecInfo)(::windows::core::Interface::as_raw(self), pwszname.into(), pwszdescription.into(), codectype, pbcodecinfo.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbcodecinfo))).ok() + (::windows::core::Interface::vtable(self).AddCodecInfo)(::windows::core::Interface::as_raw(self), pwszname.into(), pwszdescription.into(), codectype, pbcodecinfo.len() as _, ::core::mem::transmute(pbcodecinfo.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3024,7 +3024,7 @@ pub struct IWMHeaderInfo3_Vtbl { #[repr(transparent)] pub struct IWMIStreamProps(::windows::core::IUnknown); impl IWMIStreamProps { - pub unsafe fn GetProperty<'a, P0>(&self, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetProperty<'a, P0>(&self, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -3080,7 +3080,7 @@ impl IWMImageInfo { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetImageCount)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetImage(&self, windex: u32, pcchmimetype: &mut u16, pwszmimetype: ::windows::core::PWSTR, pcchdescription: &mut u16, pwszdescription: ::windows::core::PWSTR, pimagetype: &mut u16, pcbimagedata: &mut u32, pbimagedata: &mut u8) -> ::windows::core::Result<()> { + pub unsafe fn GetImage(&self, windex: u32, pcchmimetype: &mut u16, pwszmimetype: ::windows::core::PWSTR, pcchdescription: &mut u16, pwszdescription: ::windows::core::PWSTR, pimagetype: &mut u16, pcbimagedata: &mut u32, pbimagedata: *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetImage)(::windows::core::Interface::as_raw(self), windex, ::core::mem::transmute(pcchmimetype), ::core::mem::transmute(pwszmimetype), ::core::mem::transmute(pcchdescription), ::core::mem::transmute(pwszdescription), ::core::mem::transmute(pimagetype), ::core::mem::transmute(pcbimagedata), ::core::mem::transmute(pbimagedata)).ok() } } @@ -3777,7 +3777,7 @@ pub struct IWMMetadataEditor2_Vtbl { #[repr(transparent)] pub struct IWMMutualExclusion(::windows::core::IUnknown); impl IWMMutualExclusion { - pub unsafe fn GetStreams(&self, pwstreamnumarray: &mut u16, pcstreams: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetStreams(&self, pwstreamnumarray: *mut u16, pcstreams: &mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetStreams)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwstreamnumarray), ::core::mem::transmute(pcstreams)).ok() } pub unsafe fn AddStream(&self, wstreamnum: u16) -> ::windows::core::Result<()> { @@ -3855,7 +3855,7 @@ pub struct IWMMutualExclusion_Vtbl { #[repr(transparent)] pub struct IWMMutualExclusion2(::windows::core::IUnknown); impl IWMMutualExclusion2 { - pub unsafe fn GetStreams(&self, pwstreamnumarray: &mut u16, pcstreams: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetStreams(&self, pwstreamnumarray: *mut u16, pcstreams: &mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetStreams)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwstreamnumarray), ::core::mem::transmute(pcstreams)).ok() } pub unsafe fn AddStream(&self, wstreamnum: u16) -> ::windows::core::Result<()> { @@ -3899,7 +3899,7 @@ impl IWMMutualExclusion2 { { (::windows::core::Interface::vtable(self).SetRecordName)(::windows::core::Interface::as_raw(self), wrecordnumber, pwszrecordname.into()).ok() } - pub unsafe fn GetStreamsForRecord(&self, wrecordnumber: u16, pwstreamnumarray: &mut u16, pcstreams: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetStreamsForRecord(&self, wrecordnumber: u16, pwstreamnumarray: *mut u16, pcstreams: &mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetStreamsForRecord)(::windows::core::Interface::as_raw(self), wrecordnumber, ::core::mem::transmute(pwstreamnumarray), ::core::mem::transmute(pcstreams)).ok() } pub unsafe fn AddStreamForRecord(&self, wrecordnumber: u16, wstreamnumber: u16) -> ::windows::core::Result<()> { @@ -5059,7 +5059,7 @@ impl IWMPropertyVault { pub unsafe fn GetPropertyCount(&self, pdwcount: &u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPropertyCount)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwcount)).ok() } - pub unsafe fn GetPropertyByName<'a, P0>(&self, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetPropertyByName<'a, P0>(&self, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -5071,7 +5071,7 @@ impl IWMPropertyVault { { (::windows::core::Interface::vtable(self).SetProperty)(::windows::core::Interface::as_raw(self), pszname.into(), ptype, ::core::mem::transmute(pvalue), dwsize).ok() } - pub unsafe fn GetPropertyByIndex(&self, dwindex: u32, pszname: ::windows::core::PWSTR, pdwnamelen: &mut u32, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetPropertyByIndex(&self, dwindex: u32, pszname: ::windows::core::PWSTR, pdwnamelen: &mut u32, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pdwsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPropertyByIndex)(::windows::core::Interface::as_raw(self), dwindex, ::core::mem::transmute(pszname), ::core::mem::transmute(pdwnamelen), ::core::mem::transmute(ptype), ::core::mem::transmute(pvalue), ::core::mem::transmute(pdwsize)).ok() } pub unsafe fn CopyPropertiesFrom<'a, P0>(&self, piwmpropertyvault: P0) -> ::windows::core::Result<()> @@ -5138,7 +5138,7 @@ impl IWMProximityDetection { where P0: ::std::convert::Into<::windows::core::InParam<'a, IWMStatusCallback>>, { - (::windows::core::Interface::vtable(self).StartDetection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbregistrationmsg)), pbregistrationmsg.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pblocaladdress)), pblocaladdress.len() as _, dwextraportsallowed, ::core::mem::transmute(ppregistrationresponsemsg), pcallback.into().abi(), ::core::mem::transmute(pvcontext)).ok() + (::windows::core::Interface::vtable(self).StartDetection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbregistrationmsg.as_ptr()), pbregistrationmsg.len() as _, ::core::mem::transmute(pblocaladdress.as_ptr()), pblocaladdress.len() as _, dwextraportsallowed, ::core::mem::transmute(ppregistrationresponsemsg), pcallback.into().abi(), ::core::mem::transmute(pvcontext)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -5703,7 +5703,7 @@ impl IWMReaderAdvanced2 { pub unsafe fn StartAtMarker(&self, wmarkerindex: u16, cnsduration: u64, frate: f32, pvcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).StartAtMarker)(::windows::core::Interface::as_raw(self), wmarkerindex, cnsduration, frate, ::core::mem::transmute(pvcontext)).ok() } - pub unsafe fn GetOutputSetting<'a, P0>(&self, dwoutputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetOutputSetting<'a, P0>(&self, dwoutputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -5713,7 +5713,7 @@ impl IWMReaderAdvanced2 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetOutputSetting)(::windows::core::Interface::as_raw(self), dwoutputnum, pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).SetOutputSetting)(::windows::core::Interface::as_raw(self), dwoutputnum, pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } pub unsafe fn Preroll(&self, cnsstart: u64, cnsduration: u64, frate: f32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Preroll)(::windows::core::Interface::as_raw(self), cnsstart, cnsduration, frate).ok() @@ -5970,7 +5970,7 @@ impl IWMReaderAdvanced3 { pub unsafe fn StartAtMarker(&self, wmarkerindex: u16, cnsduration: u64, frate: f32, pvcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.StartAtMarker)(::windows::core::Interface::as_raw(self), wmarkerindex, cnsduration, frate, ::core::mem::transmute(pvcontext)).ok() } - pub unsafe fn GetOutputSetting<'a, P0>(&self, dwoutputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetOutputSetting<'a, P0>(&self, dwoutputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -5980,7 +5980,7 @@ impl IWMReaderAdvanced3 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.SetOutputSetting)(::windows::core::Interface::as_raw(self), dwoutputnum, pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetOutputSetting)(::windows::core::Interface::as_raw(self), dwoutputnum, pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } pub unsafe fn Preroll(&self, cnsstart: u64, cnsduration: u64, frate: f32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.Preroll)(::windows::core::Interface::as_raw(self), cnsstart, cnsduration, frate).ok() @@ -6236,7 +6236,7 @@ impl IWMReaderAdvanced4 { pub unsafe fn StartAtMarker(&self, wmarkerindex: u16, cnsduration: u64, frate: f32, pvcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.StartAtMarker)(::windows::core::Interface::as_raw(self), wmarkerindex, cnsduration, frate, ::core::mem::transmute(pvcontext)).ok() } - pub unsafe fn GetOutputSetting<'a, P0>(&self, dwoutputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetOutputSetting<'a, P0>(&self, dwoutputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -6246,7 +6246,7 @@ impl IWMReaderAdvanced4 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.SetOutputSetting)(::windows::core::Interface::as_raw(self), dwoutputnum, pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.SetOutputSetting)(::windows::core::Interface::as_raw(self), dwoutputnum, pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } pub unsafe fn Preroll(&self, cnsstart: u64, cnsduration: u64, frate: f32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.Preroll)(::windows::core::Interface::as_raw(self), cnsstart, cnsduration, frate).ok() @@ -6570,7 +6570,7 @@ impl IWMReaderAdvanced5 { pub unsafe fn StartAtMarker(&self, wmarkerindex: u16, cnsduration: u64, frate: f32, pvcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.StartAtMarker)(::windows::core::Interface::as_raw(self), wmarkerindex, cnsduration, frate, ::core::mem::transmute(pvcontext)).ok() } - pub unsafe fn GetOutputSetting<'a, P0>(&self, dwoutputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetOutputSetting<'a, P0>(&self, dwoutputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -6580,7 +6580,7 @@ impl IWMReaderAdvanced5 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.SetOutputSetting)(::windows::core::Interface::as_raw(self), dwoutputnum, pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.SetOutputSetting)(::windows::core::Interface::as_raw(self), dwoutputnum, pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } pub unsafe fn Preroll(&self, cnsstart: u64, cnsduration: u64, frate: f32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.Preroll)(::windows::core::Interface::as_raw(self), cnsstart, cnsduration, frate).ok() @@ -6911,7 +6911,7 @@ impl IWMReaderAdvanced6 { pub unsafe fn StartAtMarker(&self, wmarkerindex: u16, cnsduration: u64, frate: f32, pvcontext: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.StartAtMarker)(::windows::core::Interface::as_raw(self), wmarkerindex, cnsduration, frate, ::core::mem::transmute(pvcontext)).ok() } - pub unsafe fn GetOutputSetting<'a, P0>(&self, dwoutputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetOutputSetting<'a, P0>(&self, dwoutputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -6921,7 +6921,7 @@ impl IWMReaderAdvanced6 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetOutputSetting)(::windows::core::Interface::as_raw(self), dwoutputnum, pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetOutputSetting)(::windows::core::Interface::as_raw(self), dwoutputnum, pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } pub unsafe fn Preroll(&self, cnsstart: u64, cnsduration: u64, frate: f32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.Preroll)(::windows::core::Interface::as_raw(self), cnsstart, cnsduration, frate).ok() @@ -7004,8 +7004,8 @@ impl IWMReaderAdvanced6 { { (::windows::core::Interface::vtable(self).base__.SetPlayerHook)(::windows::core::Interface::as_raw(self), dwoutputnum, phook.into().abi()).ok() } - pub unsafe fn SetProtectStreamSamples(&self, pbcertificate: &[u8], dwcertificatetype: u32, dwflags: u32, pbinitializationvector: &mut u8, pcbinitializationvector: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetProtectStreamSamples)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbcertificate)), pbcertificate.len() as _, dwcertificatetype, dwflags, ::core::mem::transmute(pbinitializationvector), ::core::mem::transmute(pcbinitializationvector)).ok() + pub unsafe fn SetProtectStreamSamples(&self, pbcertificate: &[u8], dwcertificatetype: u32, dwflags: u32, pbinitializationvector: *mut u8, pcbinitializationvector: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetProtectStreamSamples)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbcertificate.as_ptr()), pbcertificate.len() as _, dwcertificatetype, dwflags, ::core::mem::transmute(pbinitializationvector), ::core::mem::transmute(pcbinitializationvector)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -7335,11 +7335,11 @@ impl IWMReaderNetworkConfig { pub unsafe fn SetBufferingTime(&self, cnsbufferingtime: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetBufferingTime)(::windows::core::Interface::as_raw(self), cnsbufferingtime).ok() } - pub unsafe fn GetUDPPortRanges(&self, prangearray: &mut WM_PORT_NUMBER_RANGE, pcranges: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetUDPPortRanges(&self, prangearray: *mut WM_PORT_NUMBER_RANGE, pcranges: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetUDPPortRanges)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prangearray), ::core::mem::transmute(pcranges)).ok() } pub unsafe fn SetUDPPortRanges(&self, prangearray: &[WM_PORT_NUMBER_RANGE]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetUDPPortRanges)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(prangearray)), prangearray.len() as _).ok() + (::windows::core::Interface::vtable(self).SetUDPPortRanges)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prangearray.as_ptr()), prangearray.len() as _).ok() } pub unsafe fn GetProxySettings<'a, P0>(&self, pwszprotocol: P0) -> ::windows::core::Result where @@ -7635,11 +7635,11 @@ impl IWMReaderNetworkConfig2 { pub unsafe fn SetBufferingTime(&self, cnsbufferingtime: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SetBufferingTime)(::windows::core::Interface::as_raw(self), cnsbufferingtime).ok() } - pub unsafe fn GetUDPPortRanges(&self, prangearray: &mut WM_PORT_NUMBER_RANGE, pcranges: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetUDPPortRanges(&self, prangearray: *mut WM_PORT_NUMBER_RANGE, pcranges: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetUDPPortRanges)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prangearray), ::core::mem::transmute(pcranges)).ok() } pub unsafe fn SetUDPPortRanges(&self, prangearray: &[WM_PORT_NUMBER_RANGE]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetUDPPortRanges)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(prangearray)), prangearray.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetUDPPortRanges)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prangearray.as_ptr()), prangearray.len() as _).ok() } pub unsafe fn GetProxySettings<'a, P0>(&self, pwszprotocol: P0) -> ::windows::core::Result where @@ -9240,13 +9240,13 @@ impl IWMStreamConfig2 { (::windows::core::Interface::vtable(self).SetTransportType)(::windows::core::Interface::as_raw(self), ntransporttype).ok() } pub unsafe fn AddDataUnitExtension(&self, guidextensionsystemid: ::windows::core::GUID, cbextensiondatasize: u16, pbextensionsysteminfo: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddDataUnitExtension)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidextensionsystemid), cbextensiondatasize, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbextensionsysteminfo)), pbextensionsysteminfo.len() as _).ok() + (::windows::core::Interface::vtable(self).AddDataUnitExtension)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidextensionsystemid), cbextensiondatasize, ::core::mem::transmute(pbextensionsysteminfo.as_ptr()), pbextensionsysteminfo.len() as _).ok() } pub unsafe fn GetDataUnitExtensionCount(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetDataUnitExtensionCount)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetDataUnitExtension(&self, wdataunitextensionnumber: u16, pguidextensionsystemid: &mut ::windows::core::GUID, pcbextensiondatasize: &mut u16, pbextensionsysteminfo: &mut u8, pcbextensionsysteminfo: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetDataUnitExtension(&self, wdataunitextensionnumber: u16, pguidextensionsystemid: &mut ::windows::core::GUID, pcbextensiondatasize: &mut u16, pbextensionsysteminfo: *mut u8, pcbextensionsysteminfo: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDataUnitExtension)(::windows::core::Interface::as_raw(self), wdataunitextensionnumber, ::core::mem::transmute(pguidextensionsystemid), ::core::mem::transmute(pcbextensiondatasize), ::core::mem::transmute(pbextensionsysteminfo), ::core::mem::transmute(pcbextensionsysteminfo)).ok() } pub unsafe fn RemoveAllDataUnitExtensions(&self) -> ::windows::core::Result<()> { @@ -9369,13 +9369,13 @@ impl IWMStreamConfig3 { (::windows::core::Interface::vtable(self).base__.SetTransportType)(::windows::core::Interface::as_raw(self), ntransporttype).ok() } pub unsafe fn AddDataUnitExtension(&self, guidextensionsystemid: ::windows::core::GUID, cbextensiondatasize: u16, pbextensionsysteminfo: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.AddDataUnitExtension)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidextensionsystemid), cbextensiondatasize, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbextensionsysteminfo)), pbextensionsysteminfo.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.AddDataUnitExtension)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidextensionsystemid), cbextensiondatasize, ::core::mem::transmute(pbextensionsysteminfo.as_ptr()), pbextensionsysteminfo.len() as _).ok() } pub unsafe fn GetDataUnitExtensionCount(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetDataUnitExtensionCount)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetDataUnitExtension(&self, wdataunitextensionnumber: u16, pguidextensionsystemid: &mut ::windows::core::GUID, pcbextensiondatasize: &mut u16, pbextensionsysteminfo: &mut u8, pcbextensionsysteminfo: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetDataUnitExtension(&self, wdataunitextensionnumber: u16, pguidextensionsystemid: &mut ::windows::core::GUID, pcbextensiondatasize: &mut u16, pbextensionsysteminfo: *mut u8, pcbextensionsysteminfo: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetDataUnitExtension)(::windows::core::Interface::as_raw(self), wdataunitextensionnumber, ::core::mem::transmute(pguidextensionsystemid), ::core::mem::transmute(pcbextensiondatasize), ::core::mem::transmute(pbextensionsysteminfo), ::core::mem::transmute(pcbextensionsysteminfo)).ok() } pub unsafe fn RemoveAllDataUnitExtensions(&self) -> ::windows::core::Result<()> { @@ -9467,7 +9467,7 @@ pub struct IWMStreamConfig3_Vtbl { #[repr(transparent)] pub struct IWMStreamList(::windows::core::IUnknown); impl IWMStreamList { - pub unsafe fn GetStreams(&self, pwstreamnumarray: &mut u16, pcstreams: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetStreams(&self, pwstreamnumarray: *mut u16, pcstreams: &mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetStreams)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwstreamnumarray), ::core::mem::transmute(pcstreams)).ok() } pub unsafe fn AddStream(&self, wstreamnum: u16) -> ::windows::core::Result<()> { @@ -9526,7 +9526,7 @@ pub struct IWMStreamPrioritization(::windows::core::IUnknown); impl IWMStreamPrioritization { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetPriorityRecords(&self, precordarray: &mut WM_STREAM_PRIORITY_RECORD, pcrecords: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn GetPriorityRecords(&self, precordarray: *mut WM_STREAM_PRIORITY_RECORD, pcrecords: &mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPriorityRecords)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(precordarray), ::core::mem::transmute(pcrecords)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -9626,7 +9626,7 @@ impl IWMSyncReader { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetReadStreamSamples)(::windows::core::Interface::as_raw(self), wstreamnum, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetOutputSetting<'a, P0>(&self, dwoutputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetOutputSetting<'a, P0>(&self, dwoutputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -9636,7 +9636,7 @@ impl IWMSyncReader { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetOutputSetting)(::windows::core::Interface::as_raw(self), dwoutputnum, pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).SetOutputSetting)(::windows::core::Interface::as_raw(self), dwoutputnum, pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } pub unsafe fn GetOutputCount(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -9798,7 +9798,7 @@ impl IWMSyncReader2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetReadStreamSamples)(::windows::core::Interface::as_raw(self), wstreamnum, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetOutputSetting<'a, P0>(&self, dwoutputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetOutputSetting<'a, P0>(&self, dwoutputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -9808,7 +9808,7 @@ impl IWMSyncReader2 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.SetOutputSetting)(::windows::core::Interface::as_raw(self), dwoutputnum, pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetOutputSetting)(::windows::core::Interface::as_raw(self), dwoutputnum, pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } pub unsafe fn GetOutputCount(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -10382,7 +10382,7 @@ impl IWMWriterAdvanced2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetSyncTolerance)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetInputSetting<'a, P0>(&self, dwinputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetInputSetting<'a, P0>(&self, dwinputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -10392,7 +10392,7 @@ impl IWMWriterAdvanced2 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetInputSetting)(::windows::core::Interface::as_raw(self), dwinputnum, pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).SetInputSetting)(::windows::core::Interface::as_raw(self), dwinputnum, pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -10511,7 +10511,7 @@ impl IWMWriterAdvanced3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.GetSyncTolerance)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetInputSetting<'a, P0>(&self, dwinputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: &mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetInputSetting<'a, P0>(&self, dwinputnum: u32, pszname: P0, ptype: &mut WMT_ATTR_DATATYPE, pvalue: *mut u8, pcblength: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -10521,7 +10521,7 @@ impl IWMWriterAdvanced3 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.SetInputSetting)(::windows::core::Interface::as_raw(self), dwinputnum, pszname.into(), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvalue)), pvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetInputSetting)(::windows::core::Interface::as_raw(self), dwinputnum, pszname.into(), r#type, ::core::mem::transmute(pvalue.as_ptr()), pvalue.len() as _).ok() } pub unsafe fn GetStatisticsEx(&self, wstreamnum: u16) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); diff --git a/crates/libs/windows/src/Windows/Win32/Media/mod.rs b/crates/libs/windows/src/Windows/Win32/Media/mod.rs index c26236ec16..3ec0677666 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/mod.rs @@ -793,21 +793,21 @@ pub unsafe fn timeEndPeriod(uperiod: u32) -> u32 { } #[doc = "*Required features: `\"Win32_Media\"`*"] #[inline] -pub unsafe fn timeGetDevCaps(ptc: &mut TIMECAPS, cbtc: u32) -> u32 { +pub unsafe fn timeGetDevCaps(ptc: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn timeGetDevCaps(ptc: *mut TIMECAPS, cbtc: u32) -> u32; } - timeGetDevCaps(::core::mem::transmute(ptc), cbtc) + timeGetDevCaps(::core::mem::transmute(ptc.as_ptr()), ptc.len() as _) } #[doc = "*Required features: `\"Win32_Media\"`*"] #[inline] -pub unsafe fn timeGetSystemTime(pmmt: &mut MMTIME, cbmmt: u32) -> u32 { +pub unsafe fn timeGetSystemTime(pmmt: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn timeGetSystemTime(pmmt: *mut MMTIME, cbmmt: u32) -> u32; } - timeGetSystemTime(::core::mem::transmute(pmmt), cbmmt) + timeGetSystemTime(::core::mem::transmute(pmmt.as_ptr()), pmmt.len() as _) } #[doc = "*Required features: `\"Win32_Media\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/Dhcp/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/Dhcp/mod.rs index b9d4e709a4..93243893ca 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/Dhcp/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/Dhcp/mod.rs @@ -7102,7 +7102,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_Dhcp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn DhcpHlprAddV4PolicyCondition<'a, P0>(policy: &mut DHCP_POLICY, parentexpr: u32, r#type: DHCP_POL_ATTR_TYPE, optionid: u32, suboptionid: u32, vendorname: P0, operator: DHCP_POL_COMPARATOR, value: &u8, valuelength: u32, conditionindex: &mut u32) -> u32 +pub unsafe fn DhcpHlprAddV4PolicyCondition<'a, P0>(policy: &mut DHCP_POLICY, parentexpr: u32, r#type: DHCP_POL_ATTR_TYPE, optionid: u32, suboptionid: u32, vendorname: P0, operator: DHCP_POL_COMPARATOR, value: &[u8], conditionindex: &mut u32) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -7110,7 +7110,7 @@ where extern "system" { fn DhcpHlprAddV4PolicyCondition(policy: *mut DHCP_POLICY, parentexpr: u32, r#type: DHCP_POL_ATTR_TYPE, optionid: u32, suboptionid: u32, vendorname: ::windows::core::PCWSTR, operator: DHCP_POL_COMPARATOR, value: *const u8, valuelength: u32, conditionindex: *mut u32) -> u32; } - DhcpHlprAddV4PolicyCondition(::core::mem::transmute(policy), parentexpr, r#type, optionid, suboptionid, vendorname.into(), operator, ::core::mem::transmute(value), valuelength, ::core::mem::transmute(conditionindex)) + DhcpHlprAddV4PolicyCondition(::core::mem::transmute(policy), parentexpr, r#type, optionid, suboptionid, vendorname.into(), operator, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(conditionindex)) } #[doc = "*Required features: `\"Win32_NetworkManagement_Dhcp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7460,7 +7460,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_Dhcp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn DhcpRequestParams<'a, P0, P1>(flags: u32, reserved: *mut ::core::ffi::c_void, adaptername: P0, classid: &mut DHCPCAPI_CLASSID, sendparams: DHCPCAPI_PARAMS_ARRAY, recdparams: DHCPCAPI_PARAMS_ARRAY, buffer: &mut u8, psize: &mut u32, requestidstr: P1) -> u32 +pub unsafe fn DhcpRequestParams<'a, P0, P1>(flags: u32, reserved: *mut ::core::ffi::c_void, adaptername: P0, classid: &mut DHCPCAPI_CLASSID, sendparams: DHCPCAPI_PARAMS_ARRAY, recdparams: DHCPCAPI_PARAMS_ARRAY, buffer: *mut u8, psize: &mut u32, requestidstr: P1) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -7602,7 +7602,7 @@ where extern "system" { fn DhcpServerQueryDnsRegCredentials(serveripaddress: ::windows::core::PCWSTR, unamesize: u32, uname: ::windows::core::PWSTR, domainsize: u32, domain: ::windows::core::PWSTR) -> u32; } - DhcpServerQueryDnsRegCredentials(serveripaddress.into(), uname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(uname)), domain.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(domain))) + DhcpServerQueryDnsRegCredentials(serveripaddress.into(), uname.len() as _, ::core::mem::transmute(uname.as_ptr()), domain.len() as _, ::core::mem::transmute(domain.as_ptr())) } #[doc = "*Required features: `\"Win32_NetworkManagement_Dhcp\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/Dns/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/Dns/mod.rs index c56606f802..164409930e 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/Dns/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/Dns/mod.rs @@ -4195,7 +4195,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_Dns\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn DnsConnectionGetProxyInfoForHostUrl<'a, P0>(pwszhosturl: P0, pselectioncontext: &[u8], dwexplicitinterfaceindex: u32, pproxyinfoex: &mut DNS_CONNECTION_PROXY_INFO_EX) -> u32 +pub unsafe fn DnsConnectionGetProxyInfoForHostUrl<'a, P0>(pwszhosturl: P0, pselectioncontext: ::core::option::Option<&[u8]>, dwexplicitinterfaceindex: u32, pproxyinfoex: &mut DNS_CONNECTION_PROXY_INFO_EX) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -4203,7 +4203,7 @@ where extern "system" { fn DnsConnectionGetProxyInfoForHostUrl(pwszhosturl: ::windows::core::PCWSTR, pselectioncontext: *const u8, dwselectioncontextlength: u32, dwexplicitinterfaceindex: u32, pproxyinfoex: *mut DNS_CONNECTION_PROXY_INFO_EX) -> u32; } - DnsConnectionGetProxyInfoForHostUrl(pwszhosturl.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pselectioncontext)), pselectioncontext.len() as _, dwexplicitinterfaceindex, ::core::mem::transmute(pproxyinfoex)) + DnsConnectionGetProxyInfoForHostUrl(pwszhosturl.into(), ::core::mem::transmute(pselectioncontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pselectioncontext.as_deref().map_or(0, |slice| slice.len() as _), dwexplicitinterfaceindex, ::core::mem::transmute(pproxyinfoex)) } #[doc = "*Required features: `\"Win32_NetworkManagement_Dns\"`*"] #[inline] @@ -4600,7 +4600,7 @@ pub unsafe fn DnsServiceBrowseCancel(pcancelhandle: &DNS_SERVICE_CANCEL) -> i32 } #[doc = "*Required features: `\"Win32_NetworkManagement_Dns\"`*"] #[inline] -pub unsafe fn DnsServiceConstructInstance<'a, P0, P1>(pservicename: P0, phostname: P1, pip4: ::core::option::Option<&u32>, pip6: ::core::option::Option<&IP6_ADDRESS>, wport: u16, wpriority: u16, wweight: u16, dwpropertiescount: u32, keys: &::windows::core::PWSTR, values: &::windows::core::PWSTR) -> *mut DNS_SERVICE_INSTANCE +pub unsafe fn DnsServiceConstructInstance<'a, P0, P1>(pservicename: P0, phostname: P1, pip4: ::core::option::Option<&u32>, pip6: ::core::option::Option<&IP6_ADDRESS>, wport: u16, wpriority: u16, wweight: u16, dwpropertiescount: u32, keys: *const ::windows::core::PWSTR, values: *const ::windows::core::PWSTR) -> *mut DNS_SERVICE_INSTANCE where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -4684,7 +4684,7 @@ pub unsafe fn DnsSetApplicationSettings(pservers: &[DNS_CUSTOM_SERVER], psetting extern "system" { fn DnsSetApplicationSettings(cservers: u32, pservers: *const DNS_CUSTOM_SERVER, psettings: *const DNS_APPLICATION_SETTINGS) -> u32; } - DnsSetApplicationSettings(pservers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pservers)), ::core::mem::transmute(psettings)) + DnsSetApplicationSettings(pservers.len() as _, ::core::mem::transmute(pservers.as_ptr()), ::core::mem::transmute(psettings)) } #[doc = "*Required features: `\"Win32_NetworkManagement_Dns\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/IpHelper/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/IpHelper/mod.rs index 6a67116613..0d4b62dfab 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/IpHelper/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/IpHelper/mod.rs @@ -109,7 +109,7 @@ pub unsafe fn ConvertInterfaceLuidToAlias(interfaceluid: &super::Ndis::NET_LUID_ extern "system" { fn ConvertInterfaceLuidToAlias(interfaceluid: *const super::Ndis::NET_LUID_LH, interfacealias: ::windows::core::PWSTR, length: usize) -> super::super::Foundation::NTSTATUS; } - ConvertInterfaceLuidToAlias(::core::mem::transmute(interfaceluid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(interfacealias)), interfacealias.len() as _).ok() + ConvertInterfaceLuidToAlias(::core::mem::transmute(interfaceluid), ::core::mem::transmute(interfacealias.as_ptr()), interfacealias.len() as _).ok() } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] @@ -139,7 +139,7 @@ pub unsafe fn ConvertInterfaceLuidToNameA(interfaceluid: &super::Ndis::NET_LUID_ extern "system" { fn ConvertInterfaceLuidToNameA(interfaceluid: *const super::Ndis::NET_LUID_LH, interfacename: ::windows::core::PSTR, length: usize) -> super::super::Foundation::NTSTATUS; } - ConvertInterfaceLuidToNameA(::core::mem::transmute(interfaceluid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(interfacename)), interfacename.len() as _).ok() + ConvertInterfaceLuidToNameA(::core::mem::transmute(interfaceluid), ::core::mem::transmute(interfacename.as_ptr()), interfacename.len() as _).ok() } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] @@ -149,7 +149,7 @@ pub unsafe fn ConvertInterfaceLuidToNameW(interfaceluid: &super::Ndis::NET_LUID_ extern "system" { fn ConvertInterfaceLuidToNameW(interfaceluid: *const super::Ndis::NET_LUID_LH, interfacename: ::windows::core::PWSTR, length: usize) -> super::super::Foundation::NTSTATUS; } - ConvertInterfaceLuidToNameW(::core::mem::transmute(interfaceluid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(interfacename)), interfacename.len() as _).ok() + ConvertInterfaceLuidToNameW(::core::mem::transmute(interfaceluid), ::core::mem::transmute(interfacename.as_ptr()), interfacename.len() as _).ok() } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis"))] @@ -1025,7 +1025,7 @@ pub unsafe fn GetAdapterOrderMap() -> *mut IP_ADAPTER_ORDER_MAP { #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] #[inline] -pub unsafe fn GetAdaptersAddresses(family: super::super::Networking::WinSock::ADDRESS_FAMILY, flags: GET_ADAPTERS_ADDRESSES_FLAGS, reserved: *mut ::core::ffi::c_void, adapteraddresses: ::core::option::Option<&mut IP_ADAPTER_ADDRESSES_LH>, sizepointer: &mut u32) -> u32 { +pub unsafe fn GetAdaptersAddresses(family: super::super::Networking::WinSock::ADDRESS_FAMILY, flags: GET_ADAPTERS_ADDRESSES_FLAGS, reserved: *mut ::core::ffi::c_void, adapteraddresses: *mut IP_ADAPTER_ADDRESSES_LH, sizepointer: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetAdaptersAddresses(family: super::super::Networking::WinSock::ADDRESS_FAMILY, flags: GET_ADAPTERS_ADDRESSES_FLAGS, reserved: *mut ::core::ffi::c_void, adapteraddresses: *mut IP_ADAPTER_ADDRESSES_LH, sizepointer: *mut u32) -> u32; @@ -1035,7 +1035,7 @@ pub unsafe fn GetAdaptersAddresses(family: super::super::Networking::WinSock::AD #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetAdaptersInfo(adapterinfo: ::core::option::Option<&mut IP_ADAPTER_INFO>, sizepointer: &mut u32) -> u32 { +pub unsafe fn GetAdaptersInfo(adapterinfo: *mut IP_ADAPTER_INFO, sizepointer: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetAdaptersInfo(adapterinfo: *mut IP_ADAPTER_INFO, sizepointer: *mut u32) -> u32; @@ -1233,7 +1233,7 @@ pub unsafe fn GetIfStackTable(table: &mut *mut MIB_IFSTACK_TABLE) -> ::windows:: #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetIfTable<'a, P0>(piftable: ::core::option::Option<&mut MIB_IFTABLE>, pdwsize: &mut u32, border: P0) -> u32 +pub unsafe fn GetIfTable<'a, P0>(piftable: *mut MIB_IFTABLE, pdwsize: &mut u32, border: P0) -> u32 where P0: ::std::convert::Into, { @@ -1285,7 +1285,7 @@ pub unsafe fn GetInterfaceDnsSettings(interface: ::windows::core::GUID, settings } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`*"] #[inline] -pub unsafe fn GetInterfaceInfo(piftable: ::core::option::Option<&mut IP_INTERFACE_INFO>, dwoutbuflen: &mut u32) -> u32 { +pub unsafe fn GetInterfaceInfo(piftable: *mut IP_INTERFACE_INFO, dwoutbuflen: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetInterfaceInfo(piftable: *mut IP_INTERFACE_INFO, dwoutbuflen: *mut u32) -> u32; @@ -1315,7 +1315,7 @@ pub unsafe fn GetInvertedIfStackTable(table: &mut *mut MIB_INVERTEDIFSTACK_TABLE #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetIpAddrTable<'a, P0>(pipaddrtable: ::core::option::Option<&mut MIB_IPADDRTABLE>, pdwsize: &mut u32, border: P0) -> u32 +pub unsafe fn GetIpAddrTable<'a, P0>(pipaddrtable: *mut MIB_IPADDRTABLE, pdwsize: &mut u32, border: P0) -> u32 where P0: ::std::convert::Into, { @@ -1347,7 +1347,7 @@ pub unsafe fn GetIpForwardEntry2(row: &mut MIB_IPFORWARD_ROW2) -> ::windows::cor #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] #[inline] -pub unsafe fn GetIpForwardTable<'a, P0>(pipforwardtable: ::core::option::Option<&mut MIB_IPFORWARDTABLE>, pdwsize: &mut u32, border: P0) -> u32 +pub unsafe fn GetIpForwardTable<'a, P0>(pipforwardtable: *mut MIB_IPFORWARDTABLE, pdwsize: &mut u32, border: P0) -> u32 where P0: ::std::convert::Into, { @@ -1400,7 +1400,7 @@ pub unsafe fn GetIpNetEntry2(row: &mut MIB_IPNET_ROW2) -> ::windows::core::Resul #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetIpNetTable<'a, P0>(ipnettable: ::core::option::Option<&mut MIB_IPNETTABLE>, sizepointer: &mut u32, order: P0) -> u32 +pub unsafe fn GetIpNetTable<'a, P0>(ipnettable: *mut MIB_IPNETTABLE, sizepointer: &mut u32, order: P0) -> u32 where P0: ::std::convert::Into, { @@ -1530,12 +1530,12 @@ pub unsafe fn GetNetworkInformation(networkguid: &::windows::core::GUID, compart extern "system" { fn GetNetworkInformation(networkguid: *const ::windows::core::GUID, compartmentid: *mut u32, siteid: *mut u32, networkname: ::windows::core::PWSTR, length: u32) -> super::super::Foundation::NTSTATUS; } - GetNetworkInformation(::core::mem::transmute(networkguid), ::core::mem::transmute(compartmentid), ::core::mem::transmute(siteid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(networkname)), networkname.len() as _).ok() + GetNetworkInformation(::core::mem::transmute(networkguid), ::core::mem::transmute(compartmentid), ::core::mem::transmute(siteid), ::core::mem::transmute(networkname.as_ptr()), networkname.len() as _).ok() } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetNetworkParams(pfixedinfo: ::core::option::Option<&mut FIXED_INFO_W2KSP1>, poutbuflen: &mut u32) -> super::super::Foundation::WIN32_ERROR { +pub unsafe fn GetNetworkParams(pfixedinfo: *mut FIXED_INFO_W2KSP1, poutbuflen: &mut u32) -> super::super::Foundation::WIN32_ERROR { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetNetworkParams(pfixedinfo: *mut FIXED_INFO_W2KSP1, poutbuflen: *mut u32) -> super::super::Foundation::WIN32_ERROR; @@ -1599,7 +1599,7 @@ pub unsafe fn GetOwnerModuleFromUdpEntry(pudpentry: &MIB_UDPROW_OWNER_MODULE, cl #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPerAdapterInfo(ifindex: u32, pperadapterinfo: ::core::option::Option<&mut IP_PER_ADAPTER_INFO_W2KSP1>, poutbuflen: &mut u32) -> u32 { +pub unsafe fn GetPerAdapterInfo(ifindex: u32, pperadapterinfo: *mut IP_PER_ADAPTER_INFO_W2KSP1, poutbuflen: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetPerAdapterInfo(ifindex: u32, pperadapterinfo: *mut IP_PER_ADAPTER_INFO_W2KSP1, poutbuflen: *mut u32) -> u32; @@ -1609,21 +1609,45 @@ pub unsafe fn GetPerAdapterInfo(ifindex: u32, pperadapterinfo: ::core::option::O #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Networking_WinSock\"`*"] #[cfg(feature = "Win32_Networking_WinSock")] #[inline] -pub unsafe fn GetPerTcp6ConnectionEStats(row: &MIB_TCP6ROW, estatstype: TCP_ESTATS_TYPE, rw: ::core::option::Option<&mut u8>, rwversion: u32, rwsize: u32, ros: ::core::option::Option<&mut u8>, rosversion: u32, rossize: u32, rod: ::core::option::Option<&mut u8>, rodversion: u32, rodsize: u32) -> u32 { +pub unsafe fn GetPerTcp6ConnectionEStats(row: &MIB_TCP6ROW, estatstype: TCP_ESTATS_TYPE, rw: ::core::option::Option<&mut [u8]>, rwversion: u32, ros: ::core::option::Option<&mut [u8]>, rosversion: u32, rod: ::core::option::Option<&mut [u8]>, rodversion: u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetPerTcp6ConnectionEStats(row: *const MIB_TCP6ROW, estatstype: TCP_ESTATS_TYPE, rw: *mut u8, rwversion: u32, rwsize: u32, ros: *mut u8, rosversion: u32, rossize: u32, rod: *mut u8, rodversion: u32, rodsize: u32) -> u32; } - GetPerTcp6ConnectionEStats(::core::mem::transmute(row), estatstype, ::core::mem::transmute(rw), rwversion, rwsize, ::core::mem::transmute(ros), rosversion, rossize, ::core::mem::transmute(rod), rodversion, rodsize) + GetPerTcp6ConnectionEStats( + ::core::mem::transmute(row), + estatstype, + ::core::mem::transmute(rw.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + rwversion, + rw.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(ros.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + rosversion, + ros.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(rod.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + rodversion, + rod.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`*"] #[inline] -pub unsafe fn GetPerTcpConnectionEStats(row: &MIB_TCPROW_LH, estatstype: TCP_ESTATS_TYPE, rw: ::core::option::Option<&mut u8>, rwversion: u32, rwsize: u32, ros: ::core::option::Option<&mut u8>, rosversion: u32, rossize: u32, rod: ::core::option::Option<&mut u8>, rodversion: u32, rodsize: u32) -> u32 { +pub unsafe fn GetPerTcpConnectionEStats(row: &MIB_TCPROW_LH, estatstype: TCP_ESTATS_TYPE, rw: ::core::option::Option<&mut [u8]>, rwversion: u32, ros: ::core::option::Option<&mut [u8]>, rosversion: u32, rod: ::core::option::Option<&mut [u8]>, rodversion: u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetPerTcpConnectionEStats(row: *const MIB_TCPROW_LH, estatstype: TCP_ESTATS_TYPE, rw: *mut u8, rwversion: u32, rwsize: u32, ros: *mut u8, rosversion: u32, rossize: u32, rod: *mut u8, rodversion: u32, rodsize: u32) -> u32; } - GetPerTcpConnectionEStats(::core::mem::transmute(row), estatstype, ::core::mem::transmute(rw), rwversion, rwsize, ::core::mem::transmute(ros), rosversion, rossize, ::core::mem::transmute(rod), rodversion, rodsize) + GetPerTcpConnectionEStats( + ::core::mem::transmute(row), + estatstype, + ::core::mem::transmute(rw.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + rwversion, + rw.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(ros.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + rosversion, + ros.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(rod.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + rodversion, + rod.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1647,7 +1671,7 @@ pub unsafe fn GetSessionCompartmentId(sessionid: u32) -> u32 { #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] #[inline] -pub unsafe fn GetTcp6Table<'a, P0>(tcptable: &mut MIB_TCP6TABLE, sizepointer: &mut u32, order: P0) -> u32 +pub unsafe fn GetTcp6Table<'a, P0>(tcptable: *mut MIB_TCP6TABLE, sizepointer: &mut u32, order: P0) -> u32 where P0: ::std::convert::Into, { @@ -1660,7 +1684,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] #[inline] -pub unsafe fn GetTcp6Table2<'a, P0>(tcptable: &mut MIB_TCP6TABLE2, sizepointer: &mut u32, order: P0) -> u32 +pub unsafe fn GetTcp6Table2<'a, P0>(tcptable: *mut MIB_TCP6TABLE2, sizepointer: &mut u32, order: P0) -> u32 where P0: ::std::convert::Into, { @@ -1702,7 +1726,7 @@ pub unsafe fn GetTcpStatisticsEx2(statistics: &mut MIB_TCPSTATS2, family: super: #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetTcpTable<'a, P0>(tcptable: ::core::option::Option<&mut MIB_TCPTABLE>, sizepointer: &mut u32, order: P0) -> u32 +pub unsafe fn GetTcpTable<'a, P0>(tcptable: *mut MIB_TCPTABLE, sizepointer: &mut u32, order: P0) -> u32 where P0: ::std::convert::Into, { @@ -1715,7 +1739,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetTcpTable2<'a, P0>(tcptable: ::core::option::Option<&mut MIB_TCPTABLE2>, sizepointer: &mut u32, order: P0) -> u32 +pub unsafe fn GetTcpTable2<'a, P0>(tcptable: *mut MIB_TCPTABLE2, sizepointer: &mut u32, order: P0) -> u32 where P0: ::std::convert::Into, { @@ -1738,7 +1762,7 @@ pub unsafe fn GetTeredoPort(port: &mut u16) -> ::windows::core::Result<()> { #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] #[inline] -pub unsafe fn GetUdp6Table<'a, P0>(udp6table: ::core::option::Option<&mut MIB_UDP6TABLE>, sizepointer: &mut u32, order: P0) -> u32 +pub unsafe fn GetUdp6Table<'a, P0>(udp6table: *mut MIB_UDP6TABLE, sizepointer: &mut u32, order: P0) -> u32 where P0: ::std::convert::Into, { @@ -1780,7 +1804,7 @@ pub unsafe fn GetUdpStatisticsEx2(statistics: &mut MIB_UDPSTATS2, family: super: #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetUdpTable<'a, P0>(udptable: ::core::option::Option<&mut MIB_UDPTABLE>, sizepointer: &mut u32, order: P0) -> u32 +pub unsafe fn GetUdpTable<'a, P0>(udptable: *mut MIB_UDPTABLE, sizepointer: &mut u32, order: P0) -> u32 where P0: ::std::convert::Into, { @@ -1792,7 +1816,7 @@ where } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`*"] #[inline] -pub unsafe fn GetUniDirectionalAdapterInfo(pipifinfo: ::core::option::Option<&mut IP_UNIDIRECTIONAL_ADAPTER_ADDRESS>, dwoutbuflen: &mut u32) -> u32 { +pub unsafe fn GetUniDirectionalAdapterInfo(pipifinfo: *mut IP_UNIDIRECTIONAL_ADAPTER_ADDRESS, dwoutbuflen: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetUniDirectionalAdapterInfo(pipifinfo: *mut IP_UNIDIRECTIONAL_ADAPTER_ADDRESS, dwoutbuflen: *mut u32) -> u32; @@ -4489,17 +4513,17 @@ pub unsafe fn Icmp6CreateFile() -> ::windows::core::Result { } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`*"] #[inline] -pub unsafe fn Icmp6ParseReplies(replybuffer: *mut ::core::ffi::c_void, replysize: u32) -> u32 { +pub unsafe fn Icmp6ParseReplies(replybuffer: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn Icmp6ParseReplies(replybuffer: *mut ::core::ffi::c_void, replysize: u32) -> u32; } - Icmp6ParseReplies(::core::mem::transmute(replybuffer), replysize) + Icmp6ParseReplies(::core::mem::transmute(replybuffer.as_ptr()), replybuffer.len() as _) } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`, `\"Win32_System_WindowsProgramming\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock", feature = "Win32_System_WindowsProgramming"))] #[inline] -pub unsafe fn Icmp6SendEcho2<'a, P0, P1>(icmphandle: P0, event: P1, apcroutine: super::super::System::WindowsProgramming::PIO_APC_ROUTINE, apccontext: *const ::core::ffi::c_void, sourceaddress: &super::super::Networking::WinSock::SOCKADDR_IN6, destinationaddress: &super::super::Networking::WinSock::SOCKADDR_IN6, requestdata: *const ::core::ffi::c_void, requestsize: u16, requestoptions: ::core::option::Option<&ip_option_information>, replybuffer: *mut ::core::ffi::c_void, replysize: u32, timeout: u32) -> u32 +pub unsafe fn Icmp6SendEcho2<'a, P0, P1>(icmphandle: P0, event: P1, apcroutine: super::super::System::WindowsProgramming::PIO_APC_ROUTINE, apccontext: *const ::core::ffi::c_void, sourceaddress: &super::super::Networking::WinSock::SOCKADDR_IN6, destinationaddress: &super::super::Networking::WinSock::SOCKADDR_IN6, requestdata: &[u8], requestoptions: ::core::option::Option<&ip_option_information>, replybuffer: &mut [u8], timeout: u32) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -4508,7 +4532,7 @@ where extern "system" { fn Icmp6SendEcho2(icmphandle: IcmpHandle, event: super::super::Foundation::HANDLE, apcroutine: *mut ::core::ffi::c_void, apccontext: *const ::core::ffi::c_void, sourceaddress: *const super::super::Networking::WinSock::SOCKADDR_IN6, destinationaddress: *const super::super::Networking::WinSock::SOCKADDR_IN6, requestdata: *const ::core::ffi::c_void, requestsize: u16, requestoptions: *const ip_option_information, replybuffer: *mut ::core::ffi::c_void, replysize: u32, timeout: u32) -> u32; } - Icmp6SendEcho2(icmphandle.into(), event.into(), ::core::mem::transmute(apcroutine), ::core::mem::transmute(apccontext), ::core::mem::transmute(sourceaddress), ::core::mem::transmute(destinationaddress), ::core::mem::transmute(requestdata), requestsize, ::core::mem::transmute(requestoptions), ::core::mem::transmute(replybuffer), replysize, timeout) + Icmp6SendEcho2(icmphandle.into(), event.into(), ::core::mem::transmute(apcroutine), ::core::mem::transmute(apccontext), ::core::mem::transmute(sourceaddress), ::core::mem::transmute(destinationaddress), ::core::mem::transmute(requestdata.as_ptr()), requestdata.len() as _, ::core::mem::transmute(requestoptions), ::core::mem::transmute(replybuffer.as_ptr()), replybuffer.len() as _, timeout) } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4567,16 +4591,16 @@ unsafe impl ::windows::core::Abi for IcmpHandle { } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`*"] #[inline] -pub unsafe fn IcmpParseReplies(replybuffer: *mut ::core::ffi::c_void, replysize: u32) -> u32 { +pub unsafe fn IcmpParseReplies(replybuffer: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn IcmpParseReplies(replybuffer: *mut ::core::ffi::c_void, replysize: u32) -> u32; } - IcmpParseReplies(::core::mem::transmute(replybuffer), replysize) + IcmpParseReplies(::core::mem::transmute(replybuffer.as_ptr()), replybuffer.len() as _) } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`*"] #[inline] -pub unsafe fn IcmpSendEcho<'a, P0>(icmphandle: P0, destinationaddress: u32, requestdata: *const ::core::ffi::c_void, requestsize: u16, requestoptions: ::core::option::Option<&ip_option_information>, replybuffer: *mut ::core::ffi::c_void, replysize: u32, timeout: u32) -> u32 +pub unsafe fn IcmpSendEcho<'a, P0>(icmphandle: P0, destinationaddress: u32, requestdata: &[u8], requestoptions: ::core::option::Option<&ip_option_information>, replybuffer: &mut [u8], timeout: u32) -> u32 where P0: ::std::convert::Into, { @@ -4584,12 +4608,12 @@ where extern "system" { fn IcmpSendEcho(icmphandle: IcmpHandle, destinationaddress: u32, requestdata: *const ::core::ffi::c_void, requestsize: u16, requestoptions: *const ip_option_information, replybuffer: *mut ::core::ffi::c_void, replysize: u32, timeout: u32) -> u32; } - IcmpSendEcho(icmphandle.into(), destinationaddress, ::core::mem::transmute(requestdata), requestsize, ::core::mem::transmute(requestoptions), ::core::mem::transmute(replybuffer), replysize, timeout) + IcmpSendEcho(icmphandle.into(), destinationaddress, ::core::mem::transmute(requestdata.as_ptr()), requestdata.len() as _, ::core::mem::transmute(requestoptions), ::core::mem::transmute(replybuffer.as_ptr()), replybuffer.len() as _, timeout) } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] #[inline] -pub unsafe fn IcmpSendEcho2<'a, P0, P1>(icmphandle: P0, event: P1, apcroutine: super::super::System::WindowsProgramming::PIO_APC_ROUTINE, apccontext: *const ::core::ffi::c_void, destinationaddress: u32, requestdata: *const ::core::ffi::c_void, requestsize: u16, requestoptions: ::core::option::Option<&ip_option_information>, replybuffer: *mut ::core::ffi::c_void, replysize: u32, timeout: u32) -> u32 +pub unsafe fn IcmpSendEcho2<'a, P0, P1>(icmphandle: P0, event: P1, apcroutine: super::super::System::WindowsProgramming::PIO_APC_ROUTINE, apccontext: *const ::core::ffi::c_void, destinationaddress: u32, requestdata: &[u8], requestoptions: ::core::option::Option<&ip_option_information>, replybuffer: &mut [u8], timeout: u32) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -4598,12 +4622,12 @@ where extern "system" { fn IcmpSendEcho2(icmphandle: IcmpHandle, event: super::super::Foundation::HANDLE, apcroutine: *mut ::core::ffi::c_void, apccontext: *const ::core::ffi::c_void, destinationaddress: u32, requestdata: *const ::core::ffi::c_void, requestsize: u16, requestoptions: *const ip_option_information, replybuffer: *mut ::core::ffi::c_void, replysize: u32, timeout: u32) -> u32; } - IcmpSendEcho2(icmphandle.into(), event.into(), ::core::mem::transmute(apcroutine), ::core::mem::transmute(apccontext), destinationaddress, ::core::mem::transmute(requestdata), requestsize, ::core::mem::transmute(requestoptions), ::core::mem::transmute(replybuffer), replysize, timeout) + IcmpSendEcho2(icmphandle.into(), event.into(), ::core::mem::transmute(apcroutine), ::core::mem::transmute(apccontext), destinationaddress, ::core::mem::transmute(requestdata.as_ptr()), requestdata.len() as _, ::core::mem::transmute(requestoptions), ::core::mem::transmute(replybuffer.as_ptr()), replybuffer.len() as _, timeout) } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`, `\"Win32_System_WindowsProgramming\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_WindowsProgramming"))] #[inline] -pub unsafe fn IcmpSendEcho2Ex<'a, P0, P1>(icmphandle: P0, event: P1, apcroutine: super::super::System::WindowsProgramming::PIO_APC_ROUTINE, apccontext: *const ::core::ffi::c_void, sourceaddress: u32, destinationaddress: u32, requestdata: *const ::core::ffi::c_void, requestsize: u16, requestoptions: ::core::option::Option<&ip_option_information>, replybuffer: *mut ::core::ffi::c_void, replysize: u32, timeout: u32) -> u32 +pub unsafe fn IcmpSendEcho2Ex<'a, P0, P1>(icmphandle: P0, event: P1, apcroutine: super::super::System::WindowsProgramming::PIO_APC_ROUTINE, apccontext: *const ::core::ffi::c_void, sourceaddress: u32, destinationaddress: u32, requestdata: &[u8], requestoptions: ::core::option::Option<&ip_option_information>, replybuffer: &mut [u8], timeout: u32) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -4612,7 +4636,7 @@ where extern "system" { fn IcmpSendEcho2Ex(icmphandle: IcmpHandle, event: super::super::Foundation::HANDLE, apcroutine: *mut ::core::ffi::c_void, apccontext: *const ::core::ffi::c_void, sourceaddress: u32, destinationaddress: u32, requestdata: *const ::core::ffi::c_void, requestsize: u16, requestoptions: *const ip_option_information, replybuffer: *mut ::core::ffi::c_void, replysize: u32, timeout: u32) -> u32; } - IcmpSendEcho2Ex(icmphandle.into(), event.into(), ::core::mem::transmute(apcroutine), ::core::mem::transmute(apccontext), sourceaddress, destinationaddress, ::core::mem::transmute(requestdata), requestsize, ::core::mem::transmute(requestoptions), ::core::mem::transmute(replybuffer), replysize, timeout) + IcmpSendEcho2Ex(icmphandle.into(), event.into(), ::core::mem::transmute(apcroutine), ::core::mem::transmute(apccontext), sourceaddress, destinationaddress, ::core::mem::transmute(requestdata.as_ptr()), requestdata.len() as _, ::core::mem::transmute(requestoptions), ::core::mem::transmute(replybuffer.as_ptr()), replybuffer.len() as _, timeout) } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`, `\"Win32_NetworkManagement_Ndis\"`, `\"Win32_Networking_WinSock\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_NetworkManagement_Ndis", feature = "Win32_Networking_WinSock"))] @@ -10262,21 +10286,21 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Networking_WinSock\"`*"] #[cfg(feature = "Win32_Networking_WinSock")] #[inline] -pub unsafe fn SetPerTcp6ConnectionEStats(row: &MIB_TCP6ROW, estatstype: TCP_ESTATS_TYPE, rw: &u8, rwversion: u32, rwsize: u32, offset: u32) -> u32 { +pub unsafe fn SetPerTcp6ConnectionEStats(row: &MIB_TCP6ROW, estatstype: TCP_ESTATS_TYPE, rw: &[u8], rwversion: u32, offset: u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetPerTcp6ConnectionEStats(row: *const MIB_TCP6ROW, estatstype: TCP_ESTATS_TYPE, rw: *const u8, rwversion: u32, rwsize: u32, offset: u32) -> u32; } - SetPerTcp6ConnectionEStats(::core::mem::transmute(row), estatstype, ::core::mem::transmute(rw), rwversion, rwsize, offset) + SetPerTcp6ConnectionEStats(::core::mem::transmute(row), estatstype, ::core::mem::transmute(rw.as_ptr()), rwversion, rw.len() as _, offset) } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`*"] #[inline] -pub unsafe fn SetPerTcpConnectionEStats(row: &MIB_TCPROW_LH, estatstype: TCP_ESTATS_TYPE, rw: &u8, rwversion: u32, rwsize: u32, offset: u32) -> u32 { +pub unsafe fn SetPerTcpConnectionEStats(row: &MIB_TCPROW_LH, estatstype: TCP_ESTATS_TYPE, rw: &[u8], rwversion: u32, offset: u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetPerTcpConnectionEStats(row: *const MIB_TCPROW_LH, estatstype: TCP_ESTATS_TYPE, rw: *const u8, rwversion: u32, rwsize: u32, offset: u32) -> u32; } - SetPerTcpConnectionEStats(::core::mem::transmute(row), estatstype, ::core::mem::transmute(rw), rwversion, rwsize, offset) + SetPerTcpConnectionEStats(::core::mem::transmute(row), estatstype, ::core::mem::transmute(rw.as_ptr()), rwversion, rw.len() as _, offset) } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -11606,7 +11630,7 @@ pub unsafe fn if_indextoname(interfaceindex: u32, interfacename: &mut [u8; 256]) extern "system" { fn if_indextoname(interfaceindex: u32, interfacename: ::windows::core::PSTR) -> ::windows::core::PSTR; } - if_indextoname(interfaceindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(interfacename))) + if_indextoname(interfaceindex, ::core::mem::transmute(interfacename.as_ptr())) } #[doc = "*Required features: `\"Win32_NetworkManagement_IpHelper\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/NetManagement/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/NetManagement/mod.rs index 60dc4e8ae2..b5c84fe9be 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/NetManagement/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/NetManagement/mod.rs @@ -3009,7 +3009,7 @@ where extern "system" { fn GetNetScheduleAccountInformation(pwszservername: ::windows::core::PCWSTR, ccaccount: u32, wszaccount: ::windows::core::PWSTR) -> ::windows::core::HRESULT; } - GetNetScheduleAccountInformation(pwszservername.into(), wszaccount.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wszaccount))).ok() + GetNetScheduleAccountInformation(pwszservername.into(), wszaccount.len() as _, ::core::mem::transmute(wszaccount.as_ptr())).ok() } #[repr(C)] #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`*"] @@ -3083,7 +3083,7 @@ impl ::core::default::Default for HLOG { pub struct IEnumNetCfgBindingInterface(::windows::core::IUnknown); impl IEnumNetCfgBindingInterface { pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -3145,7 +3145,7 @@ pub struct IEnumNetCfgBindingInterface_Vtbl { pub struct IEnumNetCfgBindingPath(::windows::core::IUnknown); impl IEnumNetCfgBindingPath { pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -3207,7 +3207,7 @@ pub struct IEnumNetCfgBindingPath_Vtbl { pub struct IEnumNetCfgComponent(::windows::core::IUnknown); impl IEnumNetCfgComponent { pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -4385,7 +4385,7 @@ pub struct INetCfgComponentSysPrep_Vtbl { #[repr(transparent)] pub struct INetCfgComponentUpperEdge(::windows::core::IUnknown); impl INetCfgComponentUpperEdge { - pub unsafe fn GetInterfaceIdsForAdapter<'a, P0>(&self, padapter: P0, pdwnuminterfaces: &mut u32, ppguidinterfaceids: ::core::option::Option<&mut *mut ::windows::core::GUID>) -> ::windows::core::Result<()> + pub unsafe fn GetInterfaceIdsForAdapter<'a, P0>(&self, padapter: P0, pdwnuminterfaces: &mut u32, ppguidinterfaceids: *mut *mut ::windows::core::GUID) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, INetCfgComponent>>, { @@ -4401,7 +4401,7 @@ impl INetCfgComponentUpperEdge { where P0: ::std::convert::Into<::windows::core::InParam<'a, INetCfgComponent>>, { - (::windows::core::Interface::vtable(self).RemoveInterfacesFromAdapter)(::windows::core::Interface::as_raw(self), padapter.into().abi(), pguidinterfaceids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pguidinterfaceids))).ok() + (::windows::core::Interface::vtable(self).RemoveInterfacesFromAdapter)(::windows::core::Interface::as_raw(self), padapter.into().abi(), pguidinterfaceids.len() as _, ::core::mem::transmute(pguidinterfaceids.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -4513,12 +4513,12 @@ pub struct INetCfgLock_Vtbl { #[repr(transparent)] pub struct INetCfgPnpReconfigCallback(::windows::core::IUnknown); impl INetCfgPnpReconfigCallback { - pub unsafe fn SendPnpReconfig<'a, P0, P1>(&self, layer: NCPNP_RECONFIG_LAYER, pszwupper: P0, pszwlower: P1, pvdata: *const ::core::ffi::c_void, dwsizeofdata: u32) -> ::windows::core::Result<()> + pub unsafe fn SendPnpReconfig<'a, P0, P1>(&self, layer: NCPNP_RECONFIG_LAYER, pszwupper: P0, pszwlower: P1, pvdata: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SendPnpReconfig)(::windows::core::Interface::as_raw(self), layer, pszwupper.into(), pszwlower.into(), ::core::mem::transmute(pvdata), dwsizeofdata).ok() + (::windows::core::Interface::vtable(self).SendPnpReconfig)(::windows::core::Interface::as_raw(self), layer, pszwupper.into(), pszwlower.into(), ::core::mem::transmute(pvdata.as_ptr()), pvdata.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -5238,7 +5238,7 @@ pub unsafe fn LogErrorA(dwmessageid: u32, plpwssubstrings: &[::windows::core::PS extern "system" { fn LogErrorA(dwmessageid: u32, cnumberofsubstrings: u32, plpwssubstrings: *const ::windows::core::PSTR, dwerrorcode: u32); } - LogErrorA(dwmessageid, plpwssubstrings.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plpwssubstrings)), dwerrorcode) + LogErrorA(dwmessageid, plpwssubstrings.len() as _, ::core::mem::transmute(plpwssubstrings.as_ptr()), dwerrorcode) } #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`*"] #[inline] @@ -5247,7 +5247,7 @@ pub unsafe fn LogErrorW(dwmessageid: u32, plpwssubstrings: &[::windows::core::PW extern "system" { fn LogErrorW(dwmessageid: u32, cnumberofsubstrings: u32, plpwssubstrings: *const ::windows::core::PWSTR, dwerrorcode: u32); } - LogErrorW(dwmessageid, plpwssubstrings.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plpwssubstrings)), dwerrorcode) + LogErrorW(dwmessageid, plpwssubstrings.len() as _, ::core::mem::transmute(plpwssubstrings.as_ptr()), dwerrorcode) } #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`*"] #[inline] @@ -5256,7 +5256,7 @@ pub unsafe fn LogEventA(weventtype: u32, dwmessageid: u32, plpwssubstrings: &[:: extern "system" { fn LogEventA(weventtype: u32, dwmessageid: u32, cnumberofsubstrings: u32, plpwssubstrings: *const ::windows::core::PSTR); } - LogEventA(weventtype, dwmessageid, plpwssubstrings.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plpwssubstrings))) + LogEventA(weventtype, dwmessageid, plpwssubstrings.len() as _, ::core::mem::transmute(plpwssubstrings.as_ptr())) } #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`*"] #[inline] @@ -5265,7 +5265,7 @@ pub unsafe fn LogEventW(weventtype: u32, dwmessageid: u32, plpwssubstrings: &[:: extern "system" { fn LogEventW(weventtype: u32, dwmessageid: u32, cnumberofsubstrings: u32, plpwssubstrings: *const ::windows::core::PWSTR); } - LogEventW(weventtype, dwmessageid, plpwssubstrings.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plpwssubstrings))) + LogEventW(weventtype, dwmessageid, plpwssubstrings.len() as _, ::core::mem::transmute(plpwssubstrings.as_ptr())) } #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`*"] pub const MACHINE_UNJOINED: i32 = -1073727507i32; @@ -9268,7 +9268,7 @@ where } #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`*"] #[inline] -pub unsafe fn NetRequestOfflineDomainJoin<'a, P0>(pprovisionbindata: &u8, cbprovisionbindatasize: u32, dwoptions: NET_REQUEST_PROVISION_OPTIONS, lpwindowspath: P0) -> u32 +pub unsafe fn NetRequestOfflineDomainJoin<'a, P0>(pprovisionbindata: &[u8], dwoptions: NET_REQUEST_PROVISION_OPTIONS, lpwindowspath: P0) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -9276,11 +9276,11 @@ where extern "system" { fn NetRequestOfflineDomainJoin(pprovisionbindata: *const u8, cbprovisionbindatasize: u32, dwoptions: NET_REQUEST_PROVISION_OPTIONS, lpwindowspath: ::windows::core::PCWSTR) -> u32; } - NetRequestOfflineDomainJoin(::core::mem::transmute(pprovisionbindata), cbprovisionbindatasize, dwoptions, lpwindowspath.into()) + NetRequestOfflineDomainJoin(::core::mem::transmute(pprovisionbindata.as_ptr()), pprovisionbindata.len() as _, dwoptions, lpwindowspath.into()) } #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`*"] #[inline] -pub unsafe fn NetRequestProvisioningPackageInstall<'a, P0>(ppackagebindata: &u8, dwpackagebindatasize: u32, dwprovisionoptions: NET_REQUEST_PROVISION_OPTIONS, lpwindowspath: P0, pvreserved: *mut ::core::ffi::c_void) -> u32 +pub unsafe fn NetRequestProvisioningPackageInstall<'a, P0>(ppackagebindata: &[u8], dwprovisionoptions: NET_REQUEST_PROVISION_OPTIONS, lpwindowspath: P0, pvreserved: *mut ::core::ffi::c_void) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -9288,7 +9288,7 @@ where extern "system" { fn NetRequestProvisioningPackageInstall(ppackagebindata: *const u8, dwpackagebindatasize: u32, dwprovisionoptions: NET_REQUEST_PROVISION_OPTIONS, lpwindowspath: ::windows::core::PCWSTR, pvreserved: *mut ::core::ffi::c_void) -> u32; } - NetRequestProvisioningPackageInstall(::core::mem::transmute(ppackagebindata), dwpackagebindatasize, dwprovisionoptions, lpwindowspath.into(), ::core::mem::transmute(pvreserved)) + NetRequestProvisioningPackageInstall(::core::mem::transmute(ppackagebindata.as_ptr()), ppackagebindata.len() as _, dwprovisionoptions, lpwindowspath.into(), ::core::mem::transmute(pvreserved)) } #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`*"] #[inline] @@ -9511,7 +9511,7 @@ where extern "system" { fn NetServiceInstall(servername: ::windows::core::PCWSTR, service: ::windows::core::PCWSTR, argc: u32, argv: *const ::windows::core::PWSTR, bufptr: *mut *mut u8) -> u32; } - NetServiceInstall(servername.into(), service.into(), argv.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(argv)), ::core::mem::transmute(bufptr)) + NetServiceInstall(servername.into(), service.into(), argv.len() as _, ::core::mem::transmute(argv.as_ptr()), ::core::mem::transmute(bufptr)) } #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`*"] #[inline] @@ -10718,7 +10718,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RouterLogEventA<'a, P0>(hloghandle: P0, dweventtype: u32, dwmessageid: u32, plpszsubstringarray: &[::windows::core::PSTR], dwerrorcode: u32) +pub unsafe fn RouterLogEventA<'a, P0>(hloghandle: P0, dweventtype: u32, dwmessageid: u32, plpszsubstringarray: ::core::option::Option<&[::windows::core::PSTR]>, dwerrorcode: u32) where P0: ::std::convert::Into, { @@ -10726,12 +10726,12 @@ where extern "system" { fn RouterLogEventA(hloghandle: super::super::Foundation::HANDLE, dweventtype: u32, dwmessageid: u32, dwsubstringcount: u32, plpszsubstringarray: *const ::windows::core::PSTR, dwerrorcode: u32); } - RouterLogEventA(hloghandle.into(), dweventtype, dwmessageid, plpszsubstringarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plpszsubstringarray)), dwerrorcode) + RouterLogEventA(hloghandle.into(), dweventtype, dwmessageid, plpszsubstringarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(plpszsubstringarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dwerrorcode) } #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RouterLogEventDataA<'a, P0>(hloghandle: P0, dweventtype: u32, dwmessageid: u32, plpszsubstringarray: &[::windows::core::PSTR], dwdatabytes: u32, lpdatabytes: &mut u8) +pub unsafe fn RouterLogEventDataA<'a, P0>(hloghandle: P0, dweventtype: u32, dwmessageid: u32, plpszsubstringarray: ::core::option::Option<&[::windows::core::PSTR]>, dwdatabytes: u32, lpdatabytes: &mut u8) where P0: ::std::convert::Into, { @@ -10739,12 +10739,12 @@ where extern "system" { fn RouterLogEventDataA(hloghandle: super::super::Foundation::HANDLE, dweventtype: u32, dwmessageid: u32, dwsubstringcount: u32, plpszsubstringarray: *const ::windows::core::PSTR, dwdatabytes: u32, lpdatabytes: *mut u8); } - RouterLogEventDataA(hloghandle.into(), dweventtype, dwmessageid, plpszsubstringarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plpszsubstringarray)), dwdatabytes, ::core::mem::transmute(lpdatabytes)) + RouterLogEventDataA(hloghandle.into(), dweventtype, dwmessageid, plpszsubstringarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(plpszsubstringarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dwdatabytes, ::core::mem::transmute(lpdatabytes)) } #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RouterLogEventDataW<'a, P0>(hloghandle: P0, dweventtype: u32, dwmessageid: u32, plpszsubstringarray: &[::windows::core::PWSTR], dwdatabytes: u32, lpdatabytes: &mut u8) +pub unsafe fn RouterLogEventDataW<'a, P0>(hloghandle: P0, dweventtype: u32, dwmessageid: u32, plpszsubstringarray: ::core::option::Option<&[::windows::core::PWSTR]>, dwdatabytes: u32, lpdatabytes: &mut u8) where P0: ::std::convert::Into, { @@ -10752,7 +10752,7 @@ where extern "system" { fn RouterLogEventDataW(hloghandle: super::super::Foundation::HANDLE, dweventtype: u32, dwmessageid: u32, dwsubstringcount: u32, plpszsubstringarray: *const ::windows::core::PWSTR, dwdatabytes: u32, lpdatabytes: *mut u8); } - RouterLogEventDataW(hloghandle.into(), dweventtype, dwmessageid, plpszsubstringarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plpszsubstringarray)), dwdatabytes, ::core::mem::transmute(lpdatabytes)) + RouterLogEventDataW(hloghandle.into(), dweventtype, dwmessageid, plpszsubstringarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(plpszsubstringarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dwdatabytes, ::core::mem::transmute(lpdatabytes)) } #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10793,7 +10793,7 @@ where extern "system" { fn RouterLogEventStringA(hloghandle: super::super::Foundation::HANDLE, dweventtype: u32, dwmessageid: u32, dwsubstringcount: u32, plpszsubstringarray: *const ::windows::core::PSTR, dwerrorcode: u32, dwerrorindex: u32); } - RouterLogEventStringA(hloghandle.into(), dweventtype, dwmessageid, plpszsubstringarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plpszsubstringarray)), dwerrorcode, dwerrorindex) + RouterLogEventStringA(hloghandle.into(), dweventtype, dwmessageid, plpszsubstringarray.len() as _, ::core::mem::transmute(plpszsubstringarray.as_ptr()), dwerrorcode, dwerrorindex) } #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10806,7 +10806,7 @@ where extern "system" { fn RouterLogEventStringW(hloghandle: super::super::Foundation::HANDLE, dweventtype: u32, dwmessageid: u32, dwsubstringcount: u32, plpszsubstringarray: *const ::windows::core::PWSTR, dwerrorcode: u32, dwerrorindex: u32); } - RouterLogEventStringW(hloghandle.into(), dweventtype, dwmessageid, plpszsubstringarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plpszsubstringarray)), dwerrorcode, dwerrorindex) + RouterLogEventStringW(hloghandle.into(), dweventtype, dwmessageid, plpszsubstringarray.len() as _, ::core::mem::transmute(plpszsubstringarray.as_ptr()), dwerrorcode, dwerrorindex) } #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10839,7 +10839,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RouterLogEventW<'a, P0>(hloghandle: P0, dweventtype: u32, dwmessageid: u32, plpszsubstringarray: &[::windows::core::PWSTR], dwerrorcode: u32) +pub unsafe fn RouterLogEventW<'a, P0>(hloghandle: P0, dweventtype: u32, dwmessageid: u32, plpszsubstringarray: ::core::option::Option<&[::windows::core::PWSTR]>, dwerrorcode: u32) where P0: ::std::convert::Into, { @@ -10847,7 +10847,7 @@ where extern "system" { fn RouterLogEventW(hloghandle: super::super::Foundation::HANDLE, dweventtype: u32, dwmessageid: u32, dwsubstringcount: u32, plpszsubstringarray: *const ::windows::core::PWSTR, dwerrorcode: u32); } - RouterLogEventW(hloghandle.into(), dweventtype, dwmessageid, plpszsubstringarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plpszsubstringarray)), dwerrorcode) + RouterLogEventW(hloghandle.into(), dweventtype, dwmessageid, plpszsubstringarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(plpszsubstringarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dwerrorcode) } #[doc = "*Required features: `\"Win32_NetworkManagement_NetManagement\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/NetShell/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/NetShell/mod.rs index 62155e4e99..f0c57599cf 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/NetShell/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/NetShell/mod.rs @@ -537,7 +537,7 @@ pub type PNS_OSVERSIONCHECK = ::core::option::Option(hmodule: P0, ppwcarguments: &mut [::windows::core::PWSTR], dwcurrentindex: u32, ptttags: &mut [TAG_TYPE], dwminargs: u32, dwmaxargs: u32, pdwtagtype: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn PreprocessCommand<'a, P0>(hmodule: P0, ppwcarguments: &mut [::windows::core::PWSTR], dwcurrentindex: u32, ptttags: ::core::option::Option<&mut [TAG_TYPE]>, dwminargs: u32, dwmaxargs: u32, pdwtagtype: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into, { @@ -545,7 +545,7 @@ where extern "system" { fn PreprocessCommand(hmodule: super::super::Foundation::HANDLE, ppwcarguments: *mut ::windows::core::PWSTR, dwcurrentindex: u32, dwargcount: u32, ptttags: *mut TAG_TYPE, dwtagcount: u32, dwminargs: u32, dwmaxargs: u32, pdwtagtype: *mut u32) -> u32; } - PreprocessCommand(hmodule.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppwcarguments)), dwcurrentindex, ppwcarguments.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ptttags)), ptttags.len() as _, dwminargs, dwmaxargs, ::core::mem::transmute(pdwtagtype)) + PreprocessCommand(hmodule.into(), ::core::mem::transmute(ppwcarguments.as_ptr()), dwcurrentindex, ppwcarguments.len() as _, ::core::mem::transmute(ptttags.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ptttags.as_deref().map_or(0, |slice| slice.len() as _), dwminargs, dwmaxargs, ::core::mem::transmute(pdwtagtype)) } #[doc = "*Required features: `\"Win32_NetworkManagement_NetShell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/NetworkDiagnosticsFramework/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/NetworkDiagnosticsFramework/mod.rs index c78a4bdb4b..f80f6ec9bb 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/NetworkDiagnosticsFramework/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/NetworkDiagnosticsFramework/mod.rs @@ -356,8 +356,8 @@ pub struct INetDiagExtensibleHelper(::windows::core::IUnknown); impl INetDiagExtensibleHelper { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn ResolveAttributes(&self, rgkeyattributes: &[HELPER_ATTRIBUTE], pcelt: &mut u32, prgmatchvalues: &mut *mut HELPER_ATTRIBUTE) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ResolveAttributes)(::windows::core::Interface::as_raw(self), rgkeyattributes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgkeyattributes)), ::core::mem::transmute(pcelt), ::core::mem::transmute(prgmatchvalues)).ok() + pub unsafe fn ResolveAttributes(&self, rgkeyattributes: &[HELPER_ATTRIBUTE], pcelt: &mut u32, prgmatchvalues: *mut *mut HELPER_ATTRIBUTE) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ResolveAttributes)(::windows::core::Interface::as_raw(self), rgkeyattributes.len() as _, ::core::mem::transmute(rgkeyattributes.as_ptr()), ::core::mem::transmute(pcelt), ::core::mem::transmute(prgmatchvalues)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -411,7 +411,7 @@ impl INetDiagHelper { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn Initialize(&self, rgattributes: &[HELPER_ATTRIBUTE]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Initialize)(::windows::core::Interface::as_raw(self), rgattributes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgattributes))).ok() + (::windows::core::Interface::vtable(self).Initialize)(::windows::core::Interface::as_raw(self), rgattributes.len() as _, ::core::mem::transmute(rgattributes.as_ptr())).ok() } pub unsafe fn GetDiagnosticsInfo(&self) -> ::windows::core::Result<*mut DiagnosticsInfo> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -419,7 +419,7 @@ impl INetDiagHelper { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetKeyAttributes(&self, pcelt: &mut u32, pprgattributes: &mut *mut HELPER_ATTRIBUTE) -> ::windows::core::Result<()> { + pub unsafe fn GetKeyAttributes(&self, pcelt: &mut u32, pprgattributes: *mut *mut HELPER_ATTRIBUTE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetKeyAttributes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcelt), ::core::mem::transmute(pprgattributes)).ok() } pub unsafe fn LowHealth<'a, P0>(&self, pwszinstancedescription: P0, ppwszdescription: &mut ::windows::core::PWSTR, pdeferredtime: &mut i32, pstatus: &mut DIAGNOSIS_STATUS) -> ::windows::core::Result<()> @@ -436,22 +436,22 @@ impl INetDiagHelper { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLowerHypotheses(&self, pcelt: &mut u32, pprghypotheses: &mut *mut HYPOTHESIS) -> ::windows::core::Result<()> { + pub unsafe fn GetLowerHypotheses(&self, pcelt: &mut u32, pprghypotheses: *mut *mut HYPOTHESIS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetLowerHypotheses)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcelt), ::core::mem::transmute(pprghypotheses)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetDownStreamHypotheses(&self, pcelt: &mut u32, pprghypotheses: &mut *mut HYPOTHESIS) -> ::windows::core::Result<()> { + pub unsafe fn GetDownStreamHypotheses(&self, pcelt: &mut u32, pprghypotheses: *mut *mut HYPOTHESIS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDownStreamHypotheses)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcelt), ::core::mem::transmute(pprghypotheses)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetHigherHypotheses(&self, pcelt: &mut u32, pprghypotheses: &mut *mut HYPOTHESIS) -> ::windows::core::Result<()> { + pub unsafe fn GetHigherHypotheses(&self, pcelt: &mut u32, pprghypotheses: *mut *mut HYPOTHESIS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetHigherHypotheses)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcelt), ::core::mem::transmute(pprghypotheses)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetUpStreamHypotheses(&self, pcelt: &mut u32, pprghypotheses: &mut *mut HYPOTHESIS) -> ::windows::core::Result<()> { + pub unsafe fn GetUpStreamHypotheses(&self, pcelt: &mut u32, pprghypotheses: *mut *mut HYPOTHESIS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetUpStreamHypotheses)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcelt), ::core::mem::transmute(pprghypotheses)).ok() } pub unsafe fn Repair(&self, pinfo: &RepairInfo, pdeferredtime: &mut i32, pstatus: &mut REPAIR_STATUS) -> ::windows::core::Result<()> { @@ -460,7 +460,7 @@ impl INetDiagHelper { pub unsafe fn Validate(&self, problem: PROBLEM_TYPE, pdeferredtime: &mut i32, pstatus: &mut REPAIR_STATUS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Validate)(::windows::core::Interface::as_raw(self), problem, ::core::mem::transmute(pdeferredtime), ::core::mem::transmute(pstatus)).ok() } - pub unsafe fn GetRepairInfo(&self, problem: PROBLEM_TYPE, pcelt: &mut u32, ppinfo: &mut *mut RepairInfo) -> ::windows::core::Result<()> { + pub unsafe fn GetRepairInfo(&self, problem: PROBLEM_TYPE, pcelt: &mut u32, ppinfo: *mut *mut RepairInfo) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetRepairInfo)(::windows::core::Interface::as_raw(self), problem, ::core::mem::transmute(pcelt), ::core::mem::transmute(ppinfo)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -482,7 +482,7 @@ impl INetDiagHelper { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetAttributes(&self, pcelt: &mut u32, pprgattributes: &mut *mut HELPER_ATTRIBUTE) -> ::windows::core::Result<()> { + pub unsafe fn GetAttributes(&self, pcelt: &mut u32, pprgattributes: *mut *mut HELPER_ATTRIBUTE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetAttributes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcelt), ::core::mem::transmute(pprgattributes)).ok() } pub unsafe fn Cancel(&self) -> ::windows::core::Result<()> { @@ -587,7 +587,7 @@ impl INetDiagHelperEx { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ReconfirmLowHealth(&self, presults: &[HypothesisResult], ppwszupdateddescription: &mut ::windows::core::PWSTR, pupdatedstatus: &mut DIAGNOSIS_STATUS) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReconfirmLowHealth)(::windows::core::Interface::as_raw(self), presults.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(presults)), ::core::mem::transmute(ppwszupdateddescription), ::core::mem::transmute(pupdatedstatus)).ok() + (::windows::core::Interface::vtable(self).ReconfirmLowHealth)(::windows::core::Interface::as_raw(self), presults.len() as _, ::core::mem::transmute(presults.as_ptr()), ::core::mem::transmute(ppwszupdateddescription), ::core::mem::transmute(pupdatedstatus)).ok() } pub unsafe fn SetUtilities<'a, P0>(&self, putilities: P0) -> ::windows::core::Result<()> where @@ -649,7 +649,7 @@ pub struct INetDiagHelperEx_Vtbl { #[repr(transparent)] pub struct INetDiagHelperInfo(::windows::core::IUnknown); impl INetDiagHelperInfo { - pub unsafe fn GetAttributeInfo(&self, pcelt: &mut u32, pprgattributeinfos: &mut *mut HelperAttributeInfo) -> ::windows::core::Result<()> { + pub unsafe fn GetAttributeInfo(&self, pcelt: &mut u32, pprgattributeinfos: *mut *mut HelperAttributeInfo) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetAttributeInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcelt), ::core::mem::transmute(pprgattributeinfos)).ok() } } @@ -879,7 +879,7 @@ where extern "system" { fn NdfCreateIncident(helperclassname: ::windows::core::PCWSTR, celt: u32, attributes: *const HELPER_ATTRIBUTE, handle: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - NdfCreateIncident(helperclassname.into(), attributes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(attributes)), ::core::mem::transmute(handle)).ok() + NdfCreateIncident(helperclassname.into(), attributes.len() as _, ::core::mem::transmute(attributes.as_ptr()), ::core::mem::transmute(handle)).ok() } #[doc = "*Required features: `\"Win32_NetworkManagement_NetworkDiagnosticsFramework\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/P2P/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/P2P/mod.rs index b8011c03df..45f95261ef 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/P2P/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/P2P/mod.rs @@ -4774,7 +4774,7 @@ where extern "system" { fn PeerCollabRegisterEvent(hevent: super::super::Foundation::HANDLE, ceventregistration: u32, peventregistrations: *const PEER_COLLAB_EVENT_REGISTRATION, phpeerevent: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - PeerCollabRegisterEvent(hevent.into(), peventregistrations.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(peventregistrations)), ::core::mem::transmute(phpeerevent)).ok() + PeerCollabRegisterEvent(hevent.into(), peventregistrations.len() as _, ::core::mem::transmute(peventregistrations.as_ptr()), ::core::mem::transmute(phpeerevent)).ok() } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`*"] #[inline] @@ -4911,32 +4911,32 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn PeerDistClientAddContentInformation(hpeerdist: isize, hcontenthandle: isize, cbnumberofbytes: u32, pbuffer: &u8, lpoverlapped: &super::super::System::IO::OVERLAPPED) -> u32 { +pub unsafe fn PeerDistClientAddContentInformation(hpeerdist: isize, hcontenthandle: isize, pbuffer: &[u8], lpoverlapped: &super::super::System::IO::OVERLAPPED) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PeerDistClientAddContentInformation(hpeerdist: isize, hcontenthandle: isize, cbnumberofbytes: u32, pbuffer: *const u8, lpoverlapped: *const super::super::System::IO::OVERLAPPED) -> u32; } - PeerDistClientAddContentInformation(hpeerdist, hcontenthandle, cbnumberofbytes, ::core::mem::transmute(pbuffer), ::core::mem::transmute(lpoverlapped)) + PeerDistClientAddContentInformation(hpeerdist, hcontenthandle, pbuffer.len() as _, ::core::mem::transmute(pbuffer.as_ptr()), ::core::mem::transmute(lpoverlapped)) } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn PeerDistClientAddData(hpeerdist: isize, hcontenthandle: isize, cbnumberofbytes: u32, pbuffer: &u8, lpoverlapped: &super::super::System::IO::OVERLAPPED) -> u32 { +pub unsafe fn PeerDistClientAddData(hpeerdist: isize, hcontenthandle: isize, pbuffer: &[u8], lpoverlapped: &super::super::System::IO::OVERLAPPED) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PeerDistClientAddData(hpeerdist: isize, hcontenthandle: isize, cbnumberofbytes: u32, pbuffer: *const u8, lpoverlapped: *const super::super::System::IO::OVERLAPPED) -> u32; } - PeerDistClientAddData(hpeerdist, hcontenthandle, cbnumberofbytes, ::core::mem::transmute(pbuffer), ::core::mem::transmute(lpoverlapped)) + PeerDistClientAddData(hpeerdist, hcontenthandle, pbuffer.len() as _, ::core::mem::transmute(pbuffer.as_ptr()), ::core::mem::transmute(lpoverlapped)) } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn PeerDistClientBlockRead(hpeerdist: isize, hcontenthandle: isize, cbmaxnumberofbytes: u32, pbuffer: ::core::option::Option<&mut u8>, dwtimeoutinmilliseconds: u32, lpoverlapped: &super::super::System::IO::OVERLAPPED) -> u32 { +pub unsafe fn PeerDistClientBlockRead(hpeerdist: isize, hcontenthandle: isize, pbuffer: ::core::option::Option<&mut [u8]>, dwtimeoutinmilliseconds: u32, lpoverlapped: &super::super::System::IO::OVERLAPPED) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PeerDistClientBlockRead(hpeerdist: isize, hcontenthandle: isize, cbmaxnumberofbytes: u32, pbuffer: *mut u8, dwtimeoutinmilliseconds: u32, lpoverlapped: *const super::super::System::IO::OVERLAPPED) -> u32; } - PeerDistClientBlockRead(hpeerdist, hcontenthandle, cbmaxnumberofbytes, ::core::mem::transmute(pbuffer), dwtimeoutinmilliseconds, ::core::mem::transmute(lpoverlapped)) + PeerDistClientBlockRead(hpeerdist, hcontenthandle, pbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dwtimeoutinmilliseconds, ::core::mem::transmute(lpoverlapped)) } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] @@ -4982,12 +4982,12 @@ where } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`*"] #[inline] -pub unsafe fn PeerDistClientGetInformationByHandle(hpeerdist: isize, hcontenthandle: isize, peerdistclientinfoclass: PEERDIST_CLIENT_INFO_BY_HANDLE_CLASS, dwbuffersize: u32, lpinformation: *mut ::core::ffi::c_void) -> u32 { +pub unsafe fn PeerDistClientGetInformationByHandle(hpeerdist: isize, hcontenthandle: isize, peerdistclientinfoclass: PEERDIST_CLIENT_INFO_BY_HANDLE_CLASS, lpinformation: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PeerDistClientGetInformationByHandle(hpeerdist: isize, hcontenthandle: isize, peerdistclientinfoclass: PEERDIST_CLIENT_INFO_BY_HANDLE_CLASS, dwbuffersize: u32, lpinformation: *mut ::core::ffi::c_void) -> u32; } - PeerDistClientGetInformationByHandle(hpeerdist, hcontenthandle, peerdistclientinfoclass, dwbuffersize, ::core::mem::transmute(lpinformation)) + PeerDistClientGetInformationByHandle(hpeerdist, hcontenthandle, peerdistclientinfoclass, lpinformation.len() as _, ::core::mem::transmute(lpinformation.as_ptr())) } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5005,12 +5005,12 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn PeerDistClientStreamRead(hpeerdist: isize, hcontenthandle: isize, cbmaxnumberofbytes: u32, pbuffer: ::core::option::Option<&mut u8>, dwtimeoutinmilliseconds: u32, lpoverlapped: &super::super::System::IO::OVERLAPPED) -> u32 { +pub unsafe fn PeerDistClientStreamRead(hpeerdist: isize, hcontenthandle: isize, pbuffer: ::core::option::Option<&mut [u8]>, dwtimeoutinmilliseconds: u32, lpoverlapped: &super::super::System::IO::OVERLAPPED) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PeerDistClientStreamRead(hpeerdist: isize, hcontenthandle: isize, cbmaxnumberofbytes: u32, pbuffer: *mut u8, dwtimeoutinmilliseconds: u32, lpoverlapped: *const super::super::System::IO::OVERLAPPED) -> u32; } - PeerDistClientStreamRead(hpeerdist, hcontenthandle, cbmaxnumberofbytes, ::core::mem::transmute(pbuffer), dwtimeoutinmilliseconds, ::core::mem::transmute(lpoverlapped)) + PeerDistClientStreamRead(hpeerdist, hcontenthandle, pbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dwtimeoutinmilliseconds, ::core::mem::transmute(lpoverlapped)) } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] @@ -5072,12 +5072,12 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn PeerDistServerCancelAsyncOperation(hpeerdist: isize, cbcontentidentifier: u32, pcontentidentifier: &u8, poverlapped: &super::super::System::IO::OVERLAPPED) -> u32 { +pub unsafe fn PeerDistServerCancelAsyncOperation(hpeerdist: isize, pcontentidentifier: &[u8], poverlapped: &super::super::System::IO::OVERLAPPED) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PeerDistServerCancelAsyncOperation(hpeerdist: isize, cbcontentidentifier: u32, pcontentidentifier: *const u8, poverlapped: *const super::super::System::IO::OVERLAPPED) -> u32; } - PeerDistServerCancelAsyncOperation(hpeerdist, cbcontentidentifier, ::core::mem::transmute(pcontentidentifier), ::core::mem::transmute(poverlapped)) + PeerDistServerCancelAsyncOperation(hpeerdist, pcontentidentifier.len() as _, ::core::mem::transmute(pcontentidentifier.as_ptr()), ::core::mem::transmute(poverlapped)) } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`*"] #[inline] @@ -5100,7 +5100,7 @@ pub unsafe fn PeerDistServerCloseStreamHandle(hpeerdist: isize, hstream: isize) #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PeerDistServerOpenContentInformation<'a, P0>(hpeerdist: isize, cbcontentidentifier: u32, pcontentidentifier: &u8, ullcontentoffset: u64, cbcontentlength: u64, hcompletionport: P0, ulcompletionkey: usize, phcontentinfo: &mut isize) -> u32 +pub unsafe fn PeerDistServerOpenContentInformation<'a, P0>(hpeerdist: isize, pcontentidentifier: &[u8], ullcontentoffset: u64, cbcontentlength: u64, hcompletionport: P0, ulcompletionkey: usize, phcontentinfo: &mut isize) -> u32 where P0: ::std::convert::Into, { @@ -5108,12 +5108,12 @@ where extern "system" { fn PeerDistServerOpenContentInformation(hpeerdist: isize, cbcontentidentifier: u32, pcontentidentifier: *const u8, ullcontentoffset: u64, cbcontentlength: u64, hcompletionport: super::super::Foundation::HANDLE, ulcompletionkey: usize, phcontentinfo: *mut isize) -> u32; } - PeerDistServerOpenContentInformation(hpeerdist, cbcontentidentifier, ::core::mem::transmute(pcontentidentifier), ullcontentoffset, cbcontentlength, hcompletionport.into(), ulcompletionkey, ::core::mem::transmute(phcontentinfo)) + PeerDistServerOpenContentInformation(hpeerdist, pcontentidentifier.len() as _, ::core::mem::transmute(pcontentidentifier.as_ptr()), ullcontentoffset, cbcontentlength, hcompletionport.into(), ulcompletionkey, ::core::mem::transmute(phcontentinfo)) } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PeerDistServerOpenContentInformationEx<'a, P0>(hpeerdist: isize, cbcontentidentifier: u32, pcontentidentifier: &u8, ullcontentoffset: u64, cbcontentlength: u64, pretrievaloptions: &PEERDIST_RETRIEVAL_OPTIONS, hcompletionport: P0, ulcompletionkey: usize, phcontentinfo: &mut isize) -> u32 +pub unsafe fn PeerDistServerOpenContentInformationEx<'a, P0>(hpeerdist: isize, pcontentidentifier: &[u8], ullcontentoffset: u64, cbcontentlength: u64, pretrievaloptions: &PEERDIST_RETRIEVAL_OPTIONS, hcompletionport: P0, ulcompletionkey: usize, phcontentinfo: &mut isize) -> u32 where P0: ::std::convert::Into, { @@ -5121,17 +5121,17 @@ where extern "system" { fn PeerDistServerOpenContentInformationEx(hpeerdist: isize, cbcontentidentifier: u32, pcontentidentifier: *const u8, ullcontentoffset: u64, cbcontentlength: u64, pretrievaloptions: *const PEERDIST_RETRIEVAL_OPTIONS, hcompletionport: super::super::Foundation::HANDLE, ulcompletionkey: usize, phcontentinfo: *mut isize) -> u32; } - PeerDistServerOpenContentInformationEx(hpeerdist, cbcontentidentifier, ::core::mem::transmute(pcontentidentifier), ullcontentoffset, cbcontentlength, ::core::mem::transmute(pretrievaloptions), hcompletionport.into(), ulcompletionkey, ::core::mem::transmute(phcontentinfo)) + PeerDistServerOpenContentInformationEx(hpeerdist, pcontentidentifier.len() as _, ::core::mem::transmute(pcontentidentifier.as_ptr()), ullcontentoffset, cbcontentlength, ::core::mem::transmute(pretrievaloptions), hcompletionport.into(), ulcompletionkey, ::core::mem::transmute(phcontentinfo)) } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn PeerDistServerPublishAddToStream(hpeerdist: isize, hstream: isize, cbnumberofbytes: u32, pbuffer: &u8, lpoverlapped: &super::super::System::IO::OVERLAPPED) -> u32 { +pub unsafe fn PeerDistServerPublishAddToStream(hpeerdist: isize, hstream: isize, pbuffer: &[u8], lpoverlapped: &super::super::System::IO::OVERLAPPED) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PeerDistServerPublishAddToStream(hpeerdist: isize, hstream: isize, cbnumberofbytes: u32, pbuffer: *const u8, lpoverlapped: *const super::super::System::IO::OVERLAPPED) -> u32; } - PeerDistServerPublishAddToStream(hpeerdist, hstream, cbnumberofbytes, ::core::mem::transmute(pbuffer), ::core::mem::transmute(lpoverlapped)) + PeerDistServerPublishAddToStream(hpeerdist, hstream, pbuffer.len() as _, ::core::mem::transmute(pbuffer.as_ptr()), ::core::mem::transmute(lpoverlapped)) } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] @@ -5146,7 +5146,7 @@ pub unsafe fn PeerDistServerPublishCompleteStream(hpeerdist: isize, hstream: isi #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PeerDistServerPublishStream<'a, P0>(hpeerdist: isize, cbcontentidentifier: u32, pcontentidentifier: &u8, cbcontentlength: u64, ppublishoptions: ::core::option::Option<&PEERDIST_PUBLICATION_OPTIONS>, hcompletionport: P0, ulcompletionkey: usize, phstream: &mut isize) -> u32 +pub unsafe fn PeerDistServerPublishStream<'a, P0>(hpeerdist: isize, pcontentidentifier: &[u8], cbcontentlength: u64, ppublishoptions: ::core::option::Option<&PEERDIST_PUBLICATION_OPTIONS>, hcompletionport: P0, ulcompletionkey: usize, phstream: &mut isize) -> u32 where P0: ::std::convert::Into, { @@ -5154,26 +5154,26 @@ where extern "system" { fn PeerDistServerPublishStream(hpeerdist: isize, cbcontentidentifier: u32, pcontentidentifier: *const u8, cbcontentlength: u64, ppublishoptions: *const PEERDIST_PUBLICATION_OPTIONS, hcompletionport: super::super::Foundation::HANDLE, ulcompletionkey: usize, phstream: *mut isize) -> u32; } - PeerDistServerPublishStream(hpeerdist, cbcontentidentifier, ::core::mem::transmute(pcontentidentifier), cbcontentlength, ::core::mem::transmute(ppublishoptions), hcompletionport.into(), ulcompletionkey, ::core::mem::transmute(phstream)) + PeerDistServerPublishStream(hpeerdist, pcontentidentifier.len() as _, ::core::mem::transmute(pcontentidentifier.as_ptr()), cbcontentlength, ::core::mem::transmute(ppublishoptions), hcompletionport.into(), ulcompletionkey, ::core::mem::transmute(phstream)) } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn PeerDistServerRetrieveContentInformation(hpeerdist: isize, hcontentinfo: isize, cbmaxnumberofbytes: u32, pbuffer: &mut u8, lpoverlapped: &super::super::System::IO::OVERLAPPED) -> u32 { +pub unsafe fn PeerDistServerRetrieveContentInformation(hpeerdist: isize, hcontentinfo: isize, pbuffer: &mut [u8], lpoverlapped: &super::super::System::IO::OVERLAPPED) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PeerDistServerRetrieveContentInformation(hpeerdist: isize, hcontentinfo: isize, cbmaxnumberofbytes: u32, pbuffer: *mut u8, lpoverlapped: *const super::super::System::IO::OVERLAPPED) -> u32; } - PeerDistServerRetrieveContentInformation(hpeerdist, hcontentinfo, cbmaxnumberofbytes, ::core::mem::transmute(pbuffer), ::core::mem::transmute(lpoverlapped)) + PeerDistServerRetrieveContentInformation(hpeerdist, hcontentinfo, pbuffer.len() as _, ::core::mem::transmute(pbuffer.as_ptr()), ::core::mem::transmute(lpoverlapped)) } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`*"] #[inline] -pub unsafe fn PeerDistServerUnpublish(hpeerdist: isize, cbcontentidentifier: u32, pcontentidentifier: &u8) -> u32 { +pub unsafe fn PeerDistServerUnpublish(hpeerdist: isize, pcontentidentifier: &[u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PeerDistServerUnpublish(hpeerdist: isize, cbcontentidentifier: u32, pcontentidentifier: *const u8) -> u32; } - PeerDistServerUnpublish(hpeerdist, cbcontentidentifier, ::core::mem::transmute(pcontentidentifier)) + PeerDistServerUnpublish(hpeerdist, pcontentidentifier.len() as _, ::core::mem::transmute(pcontentidentifier.as_ptr())) } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`*"] #[inline] @@ -5501,7 +5501,7 @@ pub unsafe fn PeerGraphListen(hgraph: *const ::core::ffi::c_void, dwscope: u32, #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PeerGraphOpen<'a, P0, P1, P2>(pwzgraphid: P0, pwzpeerid: P1, pwzdatabasename: P2, psecurityinterface: ::core::option::Option<&PEER_SECURITY_INTERFACE>, precordtypesyncprecedence: &[::windows::core::GUID], phgraph: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> +pub unsafe fn PeerGraphOpen<'a, P0, P1, P2>(pwzgraphid: P0, pwzpeerid: P1, pwzdatabasename: P2, psecurityinterface: ::core::option::Option<&PEER_SECURITY_INTERFACE>, precordtypesyncprecedence: ::core::option::Option<&[::windows::core::GUID]>, phgraph: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -5511,7 +5511,7 @@ where extern "system" { fn PeerGraphOpen(pwzgraphid: ::windows::core::PCWSTR, pwzpeerid: ::windows::core::PCWSTR, pwzdatabasename: ::windows::core::PCWSTR, psecurityinterface: *const PEER_SECURITY_INTERFACE, crecordtypesyncprecedence: u32, precordtypesyncprecedence: *const ::windows::core::GUID, phgraph: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - PeerGraphOpen(pwzgraphid.into(), pwzpeerid.into(), pwzdatabasename.into(), ::core::mem::transmute(psecurityinterface), precordtypesyncprecedence.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(precordtypesyncprecedence)), ::core::mem::transmute(phgraph)).ok() + PeerGraphOpen(pwzgraphid.into(), pwzpeerid.into(), pwzdatabasename.into(), ::core::mem::transmute(psecurityinterface), precordtypesyncprecedence.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(precordtypesyncprecedence.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(phgraph)).ok() } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Networking_WinSock\"`*"] #[cfg(feature = "Win32_Networking_WinSock")] @@ -5549,7 +5549,7 @@ where extern "system" { fn PeerGraphRegisterEvent(hgraph: *const ::core::ffi::c_void, hevent: super::super::Foundation::HANDLE, ceventregistrations: u32, peventregistrations: *const PEER_GRAPH_EVENT_REGISTRATION, phpeerevent: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - PeerGraphRegisterEvent(::core::mem::transmute(hgraph), hevent.into(), peventregistrations.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(peventregistrations)), ::core::mem::transmute(phpeerevent)).ok() + PeerGraphRegisterEvent(::core::mem::transmute(hgraph), hevent.into(), peventregistrations.len() as _, ::core::mem::transmute(peventregistrations.as_ptr()), ::core::mem::transmute(phpeerevent)).ok() } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`*"] #[inline] @@ -5565,12 +5565,12 @@ where } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`*"] #[inline] -pub unsafe fn PeerGraphSendData(hgraph: *const ::core::ffi::c_void, ullconnectionid: u64, ptype: &::windows::core::GUID, cbdata: u32, pvdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { +pub unsafe fn PeerGraphSendData(hgraph: *const ::core::ffi::c_void, ullconnectionid: u64, ptype: &::windows::core::GUID, pvdata: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PeerGraphSendData(hgraph: *const ::core::ffi::c_void, ullconnectionid: u64, ptype: *const ::windows::core::GUID, cbdata: u32, pvdata: *const ::core::ffi::c_void) -> ::windows::core::HRESULT; } - PeerGraphSendData(::core::mem::transmute(hgraph), ullconnectionid, ::core::mem::transmute(ptype), cbdata, ::core::mem::transmute(pvdata)).ok() + PeerGraphSendData(::core::mem::transmute(hgraph), ullconnectionid, ::core::mem::transmute(ptype), pvdata.len() as _, ::core::mem::transmute(pvdata.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`*"] #[inline] @@ -5662,7 +5662,7 @@ pub unsafe fn PeerGraphValidateDeferredRecords(hgraph: *const ::core::ffi::c_voi extern "system" { fn PeerGraphValidateDeferredRecords(hgraph: *const ::core::ffi::c_void, crecordids: u32, precordids: *const ::windows::core::GUID) -> ::windows::core::HRESULT; } - PeerGraphValidateDeferredRecords(::core::mem::transmute(hgraph), precordids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(precordids))).ok() + PeerGraphValidateDeferredRecords(::core::mem::transmute(hgraph), precordids.len() as _, ::core::mem::transmute(precordids.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5710,7 +5710,7 @@ pub unsafe fn PeerGroupConnectByAddress(hgroup: *const ::core::ffi::c_void, padd extern "system" { fn PeerGroupConnectByAddress(hgroup: *const ::core::ffi::c_void, caddresses: u32, paddresses: *const PEER_ADDRESS) -> ::windows::core::HRESULT; } - PeerGroupConnectByAddress(::core::mem::transmute(hgroup), paddresses.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(paddresses))).ok() + PeerGroupConnectByAddress(::core::mem::transmute(hgroup), paddresses.len() as _, ::core::mem::transmute(paddresses.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`*"] #[inline] @@ -5724,7 +5724,7 @@ pub unsafe fn PeerGroupCreate(pproperties: &PEER_GROUP_PROPERTIES, phgroup: *mut #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PeerGroupCreateInvitation<'a, P0>(hgroup: *const ::core::ffi::c_void, pwzidentityinfo: P0, pftexpiration: ::core::option::Option<&super::super::Foundation::FILETIME>, proles: &[::windows::core::GUID]) -> ::windows::core::Result<::windows::core::PWSTR> +pub unsafe fn PeerGroupCreateInvitation<'a, P0>(hgroup: *const ::core::ffi::c_void, pwzidentityinfo: P0, pftexpiration: ::core::option::Option<&super::super::Foundation::FILETIME>, proles: ::core::option::Option<&[::windows::core::GUID]>) -> ::windows::core::Result<::windows::core::PWSTR> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -5733,7 +5733,7 @@ where fn PeerGroupCreateInvitation(hgroup: *const ::core::ffi::c_void, pwzidentityinfo: ::windows::core::PCWSTR, pftexpiration: *const super::super::Foundation::FILETIME, croles: u32, proles: *const ::windows::core::GUID, ppwzinvitation: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - PeerGroupCreateInvitation(::core::mem::transmute(hgroup), pwzidentityinfo.into(), ::core::mem::transmute(pftexpiration), proles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(proles)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) + PeerGroupCreateInvitation(::core::mem::transmute(hgroup), pwzidentityinfo.into(), ::core::mem::transmute(pftexpiration), proles.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(proles.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`*"] #[inline] @@ -5997,7 +5997,7 @@ where extern "system" { fn PeerGroupRegisterEvent(hgroup: *const ::core::ffi::c_void, hevent: super::super::Foundation::HANDLE, ceventregistration: u32, peventregistrations: *const PEER_GROUP_EVENT_REGISTRATION, phpeerevent: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - PeerGroupRegisterEvent(::core::mem::transmute(hgroup), hevent.into(), peventregistrations.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(peventregistrations)), ::core::mem::transmute(phpeerevent)).ok() + PeerGroupRegisterEvent(::core::mem::transmute(hgroup), hevent.into(), peventregistrations.len() as _, ::core::mem::transmute(peventregistrations.as_ptr()), ::core::mem::transmute(phpeerevent)).ok() } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`*"] #[inline] @@ -6022,12 +6022,12 @@ where } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`*"] #[inline] -pub unsafe fn PeerGroupSendData(hgroup: *const ::core::ffi::c_void, ullconnectionid: u64, ptype: &::windows::core::GUID, cbdata: u32, pvdata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { +pub unsafe fn PeerGroupSendData(hgroup: *const ::core::ffi::c_void, ullconnectionid: u64, ptype: &::windows::core::GUID, pvdata: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PeerGroupSendData(hgroup: *const ::core::ffi::c_void, ullconnectionid: u64, ptype: *const ::windows::core::GUID, cbdata: u32, pvdata: *const ::core::ffi::c_void) -> ::windows::core::HRESULT; } - PeerGroupSendData(::core::mem::transmute(hgroup), ullconnectionid, ::core::mem::transmute(ptype), cbdata, ::core::mem::transmute(pvdata)).ok() + PeerGroupSendData(::core::mem::transmute(hgroup), ullconnectionid, ::core::mem::transmute(ptype), pvdata.len() as _, ::core::mem::transmute(pvdata.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_NetworkManagement_P2P\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/QoS/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/QoS/mod.rs index 1b23fc9e75..b5102ed649 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/QoS/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/QoS/mod.rs @@ -2064,7 +2064,7 @@ pub const QOSSP_ERR_BASE: u32 = 56000u32; #[doc = "*Required features: `\"Win32_NetworkManagement_QoS\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn QOSSetFlow<'a, P0>(qoshandle: P0, flowid: u32, operation: QOS_SET_FLOW, size: u32, buffer: *const ::core::ffi::c_void, flags: u32, overlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>) -> super::super::Foundation::BOOL +pub unsafe fn QOSSetFlow<'a, P0>(qoshandle: P0, flowid: u32, operation: QOS_SET_FLOW, buffer: &[u8], flags: u32, overlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -2072,7 +2072,7 @@ where extern "system" { fn QOSSetFlow(qoshandle: super::super::Foundation::HANDLE, flowid: u32, operation: QOS_SET_FLOW, size: u32, buffer: *const ::core::ffi::c_void, flags: u32, overlapped: *mut super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL; } - QOSSetFlow(qoshandle.into(), flowid, operation, size, ::core::mem::transmute(buffer), flags, ::core::mem::transmute(overlapped)) + QOSSetFlow(qoshandle.into(), flowid, operation, buffer.len() as _, ::core::mem::transmute(buffer.as_ptr()), flags, ::core::mem::transmute(overlapped)) } #[doc = "*Required features: `\"Win32_NetworkManagement_QoS\"`, `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] @@ -4559,7 +4559,7 @@ where extern "system" { fn TcGetFlowNameA(flowhandle: super::super::Foundation::HANDLE, strsize: u32, pflowname: ::windows::core::PSTR) -> u32; } - TcGetFlowNameA(flowhandle.into(), pflowname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pflowname))) + TcGetFlowNameA(flowhandle.into(), pflowname.len() as _, ::core::mem::transmute(pflowname.as_ptr())) } #[doc = "*Required features: `\"Win32_NetworkManagement_QoS\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4572,7 +4572,7 @@ where extern "system" { fn TcGetFlowNameW(flowhandle: super::super::Foundation::HANDLE, strsize: u32, pflowname: ::windows::core::PWSTR) -> u32; } - TcGetFlowNameW(flowhandle.into(), pflowname.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pflowname))) + TcGetFlowNameW(flowhandle.into(), pflowname.len() as _, ::core::mem::transmute(pflowname.as_ptr())) } #[doc = "*Required features: `\"Win32_NetworkManagement_QoS\"`, `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] @@ -4670,7 +4670,7 @@ where } #[doc = "*Required features: `\"Win32_NetworkManagement_QoS\"`*"] #[inline] -pub unsafe fn TcSetFlowA<'a, P0>(pflowname: P0, pguidparam: &::windows::core::GUID, buffersize: u32, buffer: *const ::core::ffi::c_void) -> u32 +pub unsafe fn TcSetFlowA<'a, P0>(pflowname: P0, pguidparam: &::windows::core::GUID, buffer: &[u8]) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -4678,11 +4678,11 @@ where extern "system" { fn TcSetFlowA(pflowname: ::windows::core::PCSTR, pguidparam: *const ::windows::core::GUID, buffersize: u32, buffer: *const ::core::ffi::c_void) -> u32; } - TcSetFlowA(pflowname.into(), ::core::mem::transmute(pguidparam), buffersize, ::core::mem::transmute(buffer)) + TcSetFlowA(pflowname.into(), ::core::mem::transmute(pguidparam), buffer.len() as _, ::core::mem::transmute(buffer.as_ptr())) } #[doc = "*Required features: `\"Win32_NetworkManagement_QoS\"`*"] #[inline] -pub unsafe fn TcSetFlowW<'a, P0>(pflowname: P0, pguidparam: &::windows::core::GUID, buffersize: u32, buffer: *const ::core::ffi::c_void) -> u32 +pub unsafe fn TcSetFlowW<'a, P0>(pflowname: P0, pguidparam: &::windows::core::GUID, buffer: &[u8]) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -4690,12 +4690,12 @@ where extern "system" { fn TcSetFlowW(pflowname: ::windows::core::PCWSTR, pguidparam: *const ::windows::core::GUID, buffersize: u32, buffer: *const ::core::ffi::c_void) -> u32; } - TcSetFlowW(pflowname.into(), ::core::mem::transmute(pguidparam), buffersize, ::core::mem::transmute(buffer)) + TcSetFlowW(pflowname.into(), ::core::mem::transmute(pguidparam), buffer.len() as _, ::core::mem::transmute(buffer.as_ptr())) } #[doc = "*Required features: `\"Win32_NetworkManagement_QoS\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn TcSetInterface<'a, P0>(ifchandle: P0, pguidparam: &::windows::core::GUID, buffersize: u32, buffer: *const ::core::ffi::c_void) -> u32 +pub unsafe fn TcSetInterface<'a, P0>(ifchandle: P0, pguidparam: &::windows::core::GUID, buffer: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -4703,7 +4703,7 @@ where extern "system" { fn TcSetInterface(ifchandle: super::super::Foundation::HANDLE, pguidparam: *const ::windows::core::GUID, buffersize: u32, buffer: *const ::core::ffi::c_void) -> u32; } - TcSetInterface(ifchandle.into(), ::core::mem::transmute(pguidparam), buffersize, ::core::mem::transmute(buffer)) + TcSetInterface(ifchandle.into(), ::core::mem::transmute(pguidparam), buffer.len() as _, ::core::mem::transmute(buffer.as_ptr())) } #[doc = "*Required features: `\"Win32_NetworkManagement_QoS\"`*"] pub const UNSUPPORTED_CREDENTIAL_TYPE: u32 = 2u32; diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/Rras/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/Rras/mod.rs index 399a360edc..ff5ea4ea94 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/Rras/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/Rras/mod.rs @@ -3881,7 +3881,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn MprConfigGetFriendlyName<'a, P0, P1>(hmprconfig: P0, pszguidname: P1, pszbuffer: ::windows::core::PWSTR, dwbuffersize: u32) -> u32 +pub unsafe fn MprConfigGetFriendlyName<'a, P0, P1>(hmprconfig: P0, pszguidname: P1, pszbuffer: &mut [u8]) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -3890,12 +3890,12 @@ where extern "system" { fn MprConfigGetFriendlyName(hmprconfig: super::super::Foundation::HANDLE, pszguidname: ::windows::core::PCWSTR, pszbuffer: ::windows::core::PWSTR, dwbuffersize: u32) -> u32; } - MprConfigGetFriendlyName(hmprconfig.into(), pszguidname.into(), ::core::mem::transmute(pszbuffer), dwbuffersize) + MprConfigGetFriendlyName(hmprconfig.into(), pszguidname.into(), ::core::mem::transmute(pszbuffer.as_ptr()), pszbuffer.len() as _) } #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn MprConfigGetGuidName<'a, P0, P1>(hmprconfig: P0, pszfriendlyname: P1, pszbuffer: ::windows::core::PWSTR, dwbuffersize: u32) -> u32 +pub unsafe fn MprConfigGetGuidName<'a, P0, P1>(hmprconfig: P0, pszfriendlyname: P1, pszbuffer: &mut [u8]) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -3904,7 +3904,7 @@ where extern "system" { fn MprConfigGetGuidName(hmprconfig: super::super::Foundation::HANDLE, pszfriendlyname: ::windows::core::PCWSTR, pszbuffer: ::windows::core::PWSTR, dwbuffersize: u32) -> u32; } - MprConfigGetGuidName(hmprconfig.into(), pszfriendlyname.into(), ::core::mem::transmute(pszbuffer), dwbuffersize) + MprConfigGetGuidName(hmprconfig.into(), pszfriendlyname.into(), ::core::mem::transmute(pszbuffer.as_ptr()), pszbuffer.len() as _) } #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4019,7 +4019,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn MprConfigInterfaceTransportAdd<'a, P0, P1, P2>(hmprconfig: P0, hrouterinterface: P1, dwtransportid: u32, lpwstransportname: P2, pinterfaceinfo: &u8, dwinterfaceinfosize: u32, phrouteriftransport: &mut super::super::Foundation::HANDLE) -> u32 +pub unsafe fn MprConfigInterfaceTransportAdd<'a, P0, P1, P2>(hmprconfig: P0, hrouterinterface: P1, dwtransportid: u32, lpwstransportname: P2, pinterfaceinfo: &[u8], phrouteriftransport: &mut super::super::Foundation::HANDLE) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -4029,7 +4029,7 @@ where extern "system" { fn MprConfigInterfaceTransportAdd(hmprconfig: super::super::Foundation::HANDLE, hrouterinterface: super::super::Foundation::HANDLE, dwtransportid: u32, lpwstransportname: ::windows::core::PCWSTR, pinterfaceinfo: *const u8, dwinterfaceinfosize: u32, phrouteriftransport: *mut super::super::Foundation::HANDLE) -> u32; } - MprConfigInterfaceTransportAdd(hmprconfig.into(), hrouterinterface.into(), dwtransportid, lpwstransportname.into(), ::core::mem::transmute(pinterfaceinfo), dwinterfaceinfosize, ::core::mem::transmute(phrouteriftransport)) + MprConfigInterfaceTransportAdd(hmprconfig.into(), hrouterinterface.into(), dwtransportid, lpwstransportname.into(), ::core::mem::transmute(pinterfaceinfo.as_ptr()), pinterfaceinfo.len() as _, ::core::mem::transmute(phrouteriftransport)) } #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4092,7 +4092,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn MprConfigInterfaceTransportSetInfo<'a, P0, P1, P2>(hmprconfig: P0, hrouterinterface: P1, hrouteriftransport: P2, pinterfaceinfo: ::core::option::Option<&u8>, dwinterfaceinfosize: u32) -> u32 +pub unsafe fn MprConfigInterfaceTransportSetInfo<'a, P0, P1, P2>(hmprconfig: P0, hrouterinterface: P1, hrouteriftransport: P2, pinterfaceinfo: ::core::option::Option<&[u8]>) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -4102,7 +4102,7 @@ where extern "system" { fn MprConfigInterfaceTransportSetInfo(hmprconfig: super::super::Foundation::HANDLE, hrouterinterface: super::super::Foundation::HANDLE, hrouteriftransport: super::super::Foundation::HANDLE, pinterfaceinfo: *const u8, dwinterfaceinfosize: u32) -> u32; } - MprConfigInterfaceTransportSetInfo(hmprconfig.into(), hrouterinterface.into(), hrouteriftransport.into(), ::core::mem::transmute(pinterfaceinfo), dwinterfaceinfosize) + MprConfigInterfaceTransportSetInfo(hmprconfig.into(), hrouterinterface.into(), hrouteriftransport.into(), ::core::mem::transmute(pinterfaceinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pinterfaceinfo.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4231,7 +4231,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn MprConfigTransportCreate<'a, P0, P1, P2>(hmprconfig: P0, dwtransportid: u32, lpwstransportname: P1, pglobalinfo: &u8, dwglobalinfosize: u32, pclientinterfaceinfo: ::core::option::Option<&u8>, dwclientinterfaceinfosize: u32, lpwsdllpath: P2, phroutertransport: &mut super::super::Foundation::HANDLE) -> u32 +pub unsafe fn MprConfigTransportCreate<'a, P0, P1, P2>(hmprconfig: P0, dwtransportid: u32, lpwstransportname: P1, pglobalinfo: &[u8], pclientinterfaceinfo: ::core::option::Option<&[u8]>, lpwsdllpath: P2, phroutertransport: &mut super::super::Foundation::HANDLE) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -4241,7 +4241,7 @@ where extern "system" { fn MprConfigTransportCreate(hmprconfig: super::super::Foundation::HANDLE, dwtransportid: u32, lpwstransportname: ::windows::core::PCWSTR, pglobalinfo: *const u8, dwglobalinfosize: u32, pclientinterfaceinfo: *const u8, dwclientinterfaceinfosize: u32, lpwsdllpath: ::windows::core::PCWSTR, phroutertransport: *mut super::super::Foundation::HANDLE) -> u32; } - MprConfigTransportCreate(hmprconfig.into(), dwtransportid, lpwstransportname.into(), ::core::mem::transmute(pglobalinfo), dwglobalinfosize, ::core::mem::transmute(pclientinterfaceinfo), dwclientinterfaceinfosize, lpwsdllpath.into(), ::core::mem::transmute(phroutertransport)) + MprConfigTransportCreate(hmprconfig.into(), dwtransportid, lpwstransportname.into(), ::core::mem::transmute(pglobalinfo.as_ptr()), pglobalinfo.len() as _, ::core::mem::transmute(pclientinterfaceinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pclientinterfaceinfo.as_deref().map_or(0, |slice| slice.len() as _), lpwsdllpath.into(), ::core::mem::transmute(phroutertransport)) } #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4300,7 +4300,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn MprConfigTransportSetInfo<'a, P0, P1, P2>(hmprconfig: P0, hroutertransport: P1, pglobalinfo: ::core::option::Option<&u8>, dwglobalinfosize: u32, pclientinterfaceinfo: ::core::option::Option<&u8>, dwclientinterfaceinfosize: u32, lpwsdllpath: P2) -> u32 +pub unsafe fn MprConfigTransportSetInfo<'a, P0, P1, P2>(hmprconfig: P0, hroutertransport: P1, pglobalinfo: ::core::option::Option<&[u8]>, pclientinterfaceinfo: ::core::option::Option<&[u8]>, lpwsdllpath: P2) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -4310,7 +4310,7 @@ where extern "system" { fn MprConfigTransportSetInfo(hmprconfig: super::super::Foundation::HANDLE, hroutertransport: super::super::Foundation::HANDLE, pglobalinfo: *const u8, dwglobalinfosize: u32, pclientinterfaceinfo: *const u8, dwclientinterfaceinfosize: u32, lpwsdllpath: ::windows::core::PCWSTR) -> u32; } - MprConfigTransportSetInfo(hmprconfig.into(), hroutertransport.into(), ::core::mem::transmute(pglobalinfo), dwglobalinfosize, ::core::mem::transmute(pclientinterfaceinfo), dwclientinterfaceinfosize, lpwsdllpath.into()) + MprConfigTransportSetInfo(hmprconfig.into(), hroutertransport.into(), ::core::mem::transmute(pglobalinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pglobalinfo.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pclientinterfaceinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pclientinterfaceinfo.as_deref().map_or(0, |slice| slice.len() as _), lpwsdllpath.into()) } #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`*"] #[inline] @@ -10362,7 +10362,7 @@ where } #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`*"] #[inline] -pub unsafe fn RasEnumAutodialAddressesA(lpprasautodialaddresses: ::core::option::Option<&mut ::windows::core::PSTR>, lpdwcbrasautodialaddresses: &mut u32, lpdwcrasautodialaddresses: &mut u32) -> u32 { +pub unsafe fn RasEnumAutodialAddressesA(lpprasautodialaddresses: *mut ::windows::core::PSTR, lpdwcbrasautodialaddresses: &mut u32, lpdwcrasautodialaddresses: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RasEnumAutodialAddressesA(lpprasautodialaddresses: *mut ::windows::core::PSTR, lpdwcbrasautodialaddresses: *mut u32, lpdwcrasautodialaddresses: *mut u32) -> u32; @@ -10371,7 +10371,7 @@ pub unsafe fn RasEnumAutodialAddressesA(lpprasautodialaddresses: ::core::option: } #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`*"] #[inline] -pub unsafe fn RasEnumAutodialAddressesW(lpprasautodialaddresses: ::core::option::Option<&mut ::windows::core::PWSTR>, lpdwcbrasautodialaddresses: &mut u32, lpdwcrasautodialaddresses: &mut u32) -> u32 { +pub unsafe fn RasEnumAutodialAddressesW(lpprasautodialaddresses: *mut ::windows::core::PWSTR, lpdwcbrasautodialaddresses: &mut u32, lpdwcrasautodialaddresses: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RasEnumAutodialAddressesW(lpprasautodialaddresses: *mut ::windows::core::PWSTR, lpdwcbrasautodialaddresses: *mut u32, lpdwcrasautodialaddresses: *mut u32) -> u32; @@ -10609,7 +10609,7 @@ where } #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`*"] #[inline] -pub unsafe fn RasGetCustomAuthDataA<'a, P0, P1>(pszphonebook: P0, pszentry: P1, pbcustomauthdata: ::core::option::Option<&mut u8>, pdwsizeofcustomauthdata: &mut u32) -> u32 +pub unsafe fn RasGetCustomAuthDataA<'a, P0, P1>(pszphonebook: P0, pszentry: P1, pbcustomauthdata: *mut u8, pdwsizeofcustomauthdata: &mut u32) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -10622,7 +10622,7 @@ where } #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`*"] #[inline] -pub unsafe fn RasGetCustomAuthDataW<'a, P0, P1>(pszphonebook: P0, pszentry: P1, pbcustomauthdata: ::core::option::Option<&mut u8>, pdwsizeofcustomauthdata: &mut u32) -> u32 +pub unsafe fn RasGetCustomAuthDataW<'a, P0, P1>(pszphonebook: P0, pszentry: P1, pbcustomauthdata: *mut u8, pdwsizeofcustomauthdata: &mut u32) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -10753,7 +10753,7 @@ pub unsafe fn RasGetErrorStringA(resourceid: u32, lpszstring: &mut [u8]) -> u32 extern "system" { fn RasGetErrorStringA(resourceid: u32, lpszstring: ::windows::core::PSTR, inbufsize: u32) -> u32; } - RasGetErrorStringA(resourceid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszstring)), lpszstring.len() as _) + RasGetErrorStringA(resourceid, ::core::mem::transmute(lpszstring.as_ptr()), lpszstring.len() as _) } #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`*"] #[inline] @@ -10762,7 +10762,7 @@ pub unsafe fn RasGetErrorStringW(resourceid: u32, lpszstring: &mut [u16]) -> u32 extern "system" { fn RasGetErrorStringW(resourceid: u32, lpszstring: ::windows::core::PWSTR, inbufsize: u32) -> u32; } - RasGetErrorStringW(resourceid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszstring)), lpszstring.len() as _) + RasGetErrorStringW(resourceid, ::core::mem::transmute(lpszstring.as_ptr()), lpszstring.len() as _) } #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`*"] #[inline] @@ -11068,7 +11068,7 @@ where } #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`*"] #[inline] -pub unsafe fn RasSetCustomAuthDataA<'a, P0, P1>(pszphonebook: P0, pszentry: P1, pbcustomauthdata: &u8, dwsizeofcustomauthdata: u32) -> u32 +pub unsafe fn RasSetCustomAuthDataA<'a, P0, P1>(pszphonebook: P0, pszentry: P1, pbcustomauthdata: &[u8]) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -11077,11 +11077,11 @@ where extern "system" { fn RasSetCustomAuthDataA(pszphonebook: ::windows::core::PCSTR, pszentry: ::windows::core::PCSTR, pbcustomauthdata: *const u8, dwsizeofcustomauthdata: u32) -> u32; } - RasSetCustomAuthDataA(pszphonebook.into(), pszentry.into(), ::core::mem::transmute(pbcustomauthdata), dwsizeofcustomauthdata) + RasSetCustomAuthDataA(pszphonebook.into(), pszentry.into(), ::core::mem::transmute(pbcustomauthdata.as_ptr()), pbcustomauthdata.len() as _) } #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`*"] #[inline] -pub unsafe fn RasSetCustomAuthDataW<'a, P0, P1>(pszphonebook: P0, pszentry: P1, pbcustomauthdata: &u8, dwsizeofcustomauthdata: u32) -> u32 +pub unsafe fn RasSetCustomAuthDataW<'a, P0, P1>(pszphonebook: P0, pszentry: P1, pbcustomauthdata: &[u8]) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -11090,7 +11090,7 @@ where extern "system" { fn RasSetCustomAuthDataW(pszphonebook: ::windows::core::PCWSTR, pszentry: ::windows::core::PCWSTR, pbcustomauthdata: *const u8, dwsizeofcustomauthdata: u32) -> u32; } - RasSetCustomAuthDataW(pszphonebook.into(), pszentry.into(), ::core::mem::transmute(pbcustomauthdata), dwsizeofcustomauthdata) + RasSetCustomAuthDataW(pszphonebook.into(), pszentry.into(), ::core::mem::transmute(pbcustomauthdata.as_ptr()), pbcustomauthdata.len() as _) } #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -11510,7 +11510,7 @@ pub unsafe fn RtmGetLessSpecificDestination(rtmreghandle: isize, desthandle: isi } #[doc = "*Required features: `\"Win32_NetworkManagement_Rras\"`*"] #[inline] -pub unsafe fn RtmGetListEnumRoutes(rtmreghandle: isize, enumhandle: isize, numroutes: &mut u32, routehandles: &mut isize) -> u32 { +pub unsafe fn RtmGetListEnumRoutes(rtmreghandle: isize, enumhandle: isize, numroutes: &mut u32, routehandles: *mut isize) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RtmGetListEnumRoutes(rtmreghandle: isize, enumhandle: isize, numroutes: *mut u32, routehandles: *mut isize) -> u32; diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/Snmp/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/Snmp/mod.rs index 64d0f0a3c4..390c4c928b 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/Snmp/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/Snmp/mod.rs @@ -831,7 +831,7 @@ pub unsafe fn SnmpEntityToStr(entity: isize, string: &mut [u8]) -> u32 { extern "system" { fn SnmpEntityToStr(entity: isize, size: u32, string: ::windows::core::PSTR) -> u32; } - SnmpEntityToStr(entity, string.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(string))) + SnmpEntityToStr(entity, string.len() as _, ::core::mem::transmute(string.as_ptr())) } #[doc = "*Required features: `\"Win32_NetworkManagement_Snmp\"`*"] #[inline] @@ -1090,7 +1090,7 @@ pub unsafe fn SnmpOidToStr(srcoid: &smiOID, string: &mut [u8]) -> u32 { extern "system" { fn SnmpOidToStr(srcoid: *const smiOID, size: u32, string: ::windows::core::PSTR) -> u32; } - SnmpOidToStr(::core::mem::transmute(srcoid), string.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(string))) + SnmpOidToStr(::core::mem::transmute(srcoid), string.len() as _, ::core::mem::transmute(string.as_ptr())) } #[doc = "*Required features: `\"Win32_NetworkManagement_Snmp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/WNet/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/WNet/mod.rs index 13eac74313..14f9ae4f39 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/WNet/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/WNet/mod.rs @@ -866,7 +866,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_WNet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn NPAddConnection4<'a, P0>(hwndowner: P0, lpnetresource: &NETRESOURCEW, lpauthbuffer: *const ::core::ffi::c_void, cbauthbuffer: u32, dwflags: u32, lpuseoptions: ::core::option::Option<&u8>, cbuseoptions: u32) -> u32 +pub unsafe fn NPAddConnection4<'a, P0>(hwndowner: P0, lpnetresource: &NETRESOURCEW, lpauthbuffer: ::core::option::Option<&[u8]>, dwflags: u32, lpuseoptions: ::core::option::Option<&[u8]>) -> u32 where P0: ::std::convert::Into, { @@ -874,7 +874,7 @@ where extern "system" { fn NPAddConnection4(hwndowner: super::super::Foundation::HWND, lpnetresource: *const NETRESOURCEW, lpauthbuffer: *const ::core::ffi::c_void, cbauthbuffer: u32, dwflags: u32, lpuseoptions: *const u8, cbuseoptions: u32) -> u32; } - NPAddConnection4(hwndowner.into(), ::core::mem::transmute(lpnetresource), ::core::mem::transmute(lpauthbuffer), cbauthbuffer, dwflags, ::core::mem::transmute(lpuseoptions), cbuseoptions) + NPAddConnection4(hwndowner.into(), ::core::mem::transmute(lpnetresource), ::core::mem::transmute(lpauthbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpauthbuffer.as_deref().map_or(0, |slice| slice.len() as _), dwflags, ::core::mem::transmute(lpuseoptions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpuseoptions.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_NetworkManagement_WNet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1018,7 +1018,7 @@ where } #[doc = "*Required features: `\"Win32_NetworkManagement_WNet\"`*"] #[inline] -pub unsafe fn NPGetPersistentUseOptionsForConnection<'a, P0>(lpremotepath: P0, lpreaduseoptions: ::core::option::Option<&u8>, cbreaduseoptions: u32, lpwriteuseoptions: &mut u8, lpsizewriteuseoptions: &mut u32) -> u32 +pub unsafe fn NPGetPersistentUseOptionsForConnection<'a, P0>(lpremotepath: P0, lpreaduseoptions: ::core::option::Option<&[u8]>, lpwriteuseoptions: *mut u8, lpsizewriteuseoptions: &mut u32) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1026,7 +1026,7 @@ where extern "system" { fn NPGetPersistentUseOptionsForConnection(lpremotepath: ::windows::core::PCWSTR, lpreaduseoptions: *const u8, cbreaduseoptions: u32, lpwriteuseoptions: *mut u8, lpsizewriteuseoptions: *mut u32) -> u32; } - NPGetPersistentUseOptionsForConnection(lpremotepath.into(), ::core::mem::transmute(lpreaduseoptions), cbreaduseoptions, ::core::mem::transmute(lpwriteuseoptions), ::core::mem::transmute(lpsizewriteuseoptions)) + NPGetPersistentUseOptionsForConnection(lpremotepath.into(), ::core::mem::transmute(lpreaduseoptions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpreaduseoptions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpwriteuseoptions), ::core::mem::transmute(lpsizewriteuseoptions)) } #[doc = "*Required features: `\"Win32_NetworkManagement_WNet\"`*"] #[inline] @@ -1660,7 +1660,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_WNet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WNetAddConnection4A<'a, P0>(hwndowner: P0, lpnetresource: &NETRESOURCEA, pauthbuffer: *const ::core::ffi::c_void, cbauthbuffer: u32, dwflags: u32, lpuseoptions: &u8, cbuseoptions: u32) -> u32 +pub unsafe fn WNetAddConnection4A<'a, P0>(hwndowner: P0, lpnetresource: &NETRESOURCEA, pauthbuffer: &[u8], dwflags: u32, lpuseoptions: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -1668,12 +1668,12 @@ where extern "system" { fn WNetAddConnection4A(hwndowner: super::super::Foundation::HWND, lpnetresource: *const NETRESOURCEA, pauthbuffer: *const ::core::ffi::c_void, cbauthbuffer: u32, dwflags: u32, lpuseoptions: *const u8, cbuseoptions: u32) -> u32; } - WNetAddConnection4A(hwndowner.into(), ::core::mem::transmute(lpnetresource), ::core::mem::transmute(pauthbuffer), cbauthbuffer, dwflags, ::core::mem::transmute(lpuseoptions), cbuseoptions) + WNetAddConnection4A(hwndowner.into(), ::core::mem::transmute(lpnetresource), ::core::mem::transmute(pauthbuffer.as_ptr()), pauthbuffer.len() as _, dwflags, ::core::mem::transmute(lpuseoptions.as_ptr()), lpuseoptions.len() as _) } #[doc = "*Required features: `\"Win32_NetworkManagement_WNet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WNetAddConnection4W<'a, P0>(hwndowner: P0, lpnetresource: &NETRESOURCEW, pauthbuffer: *const ::core::ffi::c_void, cbauthbuffer: u32, dwflags: u32, lpuseoptions: &u8, cbuseoptions: u32) -> u32 +pub unsafe fn WNetAddConnection4W<'a, P0>(hwndowner: P0, lpnetresource: &NETRESOURCEW, pauthbuffer: &[u8], dwflags: u32, lpuseoptions: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -1681,7 +1681,7 @@ where extern "system" { fn WNetAddConnection4W(hwndowner: super::super::Foundation::HWND, lpnetresource: *const NETRESOURCEW, pauthbuffer: *const ::core::ffi::c_void, cbauthbuffer: u32, dwflags: u32, lpuseoptions: *const u8, cbuseoptions: u32) -> u32; } - WNetAddConnection4W(hwndowner.into(), ::core::mem::transmute(lpnetresource), ::core::mem::transmute(pauthbuffer), cbauthbuffer, dwflags, ::core::mem::transmute(lpuseoptions), cbuseoptions) + WNetAddConnection4W(hwndowner.into(), ::core::mem::transmute(lpnetresource), ::core::mem::transmute(pauthbuffer.as_ptr()), pauthbuffer.len() as _, dwflags, ::core::mem::transmute(lpuseoptions.as_ptr()), lpuseoptions.len() as _) } #[doc = "*Required features: `\"Win32_NetworkManagement_WNet\"`*"] #[inline] @@ -1903,7 +1903,7 @@ pub unsafe fn WNetGetLastErrorA(lperror: &mut u32, lperrorbuf: &mut [u8], lpname extern "system" { fn WNetGetLastErrorA(lperror: *mut u32, lperrorbuf: ::windows::core::PSTR, nerrorbufsize: u32, lpnamebuf: ::windows::core::PSTR, nnamebufsize: u32) -> u32; } - WNetGetLastErrorA(::core::mem::transmute(lperror), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lperrorbuf)), lperrorbuf.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpnamebuf)), lpnamebuf.len() as _) + WNetGetLastErrorA(::core::mem::transmute(lperror), ::core::mem::transmute(lperrorbuf.as_ptr()), lperrorbuf.len() as _, ::core::mem::transmute(lpnamebuf.as_ptr()), lpnamebuf.len() as _) } #[doc = "*Required features: `\"Win32_NetworkManagement_WNet\"`*"] #[inline] @@ -1912,7 +1912,7 @@ pub unsafe fn WNetGetLastErrorW(lperror: &mut u32, lperrorbuf: &mut [u16], lpnam extern "system" { fn WNetGetLastErrorW(lperror: *mut u32, lperrorbuf: ::windows::core::PWSTR, nerrorbufsize: u32, lpnamebuf: ::windows::core::PWSTR, nnamebufsize: u32) -> u32; } - WNetGetLastErrorW(::core::mem::transmute(lperror), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lperrorbuf)), lperrorbuf.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpnamebuf)), lpnamebuf.len() as _) + WNetGetLastErrorW(::core::mem::transmute(lperror), ::core::mem::transmute(lperrorbuf.as_ptr()), lperrorbuf.len() as _, ::core::mem::transmute(lpnamebuf.as_ptr()), lpnamebuf.len() as _) } #[doc = "*Required features: `\"Win32_NetworkManagement_WNet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2089,7 +2089,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_WNet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WNetUseConnection4A<'a, P0>(hwndowner: P0, lpnetresource: &NETRESOURCEA, pauthbuffer: *const ::core::ffi::c_void, cbauthbuffer: u32, dwflags: u32, lpuseoptions: ::core::option::Option<&u8>, cbuseoptions: u32, lpaccessname: ::windows::core::PSTR, lpbuffersize: ::core::option::Option<&mut u32>, lpresult: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn WNetUseConnection4A<'a, P0>(hwndowner: P0, lpnetresource: &NETRESOURCEA, pauthbuffer: ::core::option::Option<&[u8]>, dwflags: u32, lpuseoptions: ::core::option::Option<&[u8]>, lpaccessname: ::windows::core::PSTR, lpbuffersize: ::core::option::Option<&mut u32>, lpresult: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into, { @@ -2097,12 +2097,23 @@ where extern "system" { fn WNetUseConnection4A(hwndowner: super::super::Foundation::HWND, lpnetresource: *const NETRESOURCEA, pauthbuffer: *const ::core::ffi::c_void, cbauthbuffer: u32, dwflags: u32, lpuseoptions: *const u8, cbuseoptions: u32, lpaccessname: ::windows::core::PSTR, lpbuffersize: *mut u32, lpresult: *mut u32) -> u32; } - WNetUseConnection4A(hwndowner.into(), ::core::mem::transmute(lpnetresource), ::core::mem::transmute(pauthbuffer), cbauthbuffer, dwflags, ::core::mem::transmute(lpuseoptions), cbuseoptions, ::core::mem::transmute(lpaccessname), ::core::mem::transmute(lpbuffersize), ::core::mem::transmute(lpresult)) + WNetUseConnection4A( + hwndowner.into(), + ::core::mem::transmute(lpnetresource), + ::core::mem::transmute(pauthbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pauthbuffer.as_deref().map_or(0, |slice| slice.len() as _), + dwflags, + ::core::mem::transmute(lpuseoptions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + lpuseoptions.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(lpaccessname), + ::core::mem::transmute(lpbuffersize), + ::core::mem::transmute(lpresult), + ) } #[doc = "*Required features: `\"Win32_NetworkManagement_WNet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WNetUseConnection4W<'a, P0>(hwndowner: P0, lpnetresource: &NETRESOURCEW, pauthbuffer: *const ::core::ffi::c_void, cbauthbuffer: u32, dwflags: u32, lpuseoptions: ::core::option::Option<&u8>, cbuseoptions: u32, lpaccessname: ::windows::core::PWSTR, lpbuffersize: ::core::option::Option<&mut u32>, lpresult: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn WNetUseConnection4W<'a, P0>(hwndowner: P0, lpnetresource: &NETRESOURCEW, pauthbuffer: ::core::option::Option<&[u8]>, dwflags: u32, lpuseoptions: ::core::option::Option<&[u8]>, lpaccessname: ::windows::core::PWSTR, lpbuffersize: ::core::option::Option<&mut u32>, lpresult: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into, { @@ -2110,7 +2121,18 @@ where extern "system" { fn WNetUseConnection4W(hwndowner: super::super::Foundation::HWND, lpnetresource: *const NETRESOURCEW, pauthbuffer: *const ::core::ffi::c_void, cbauthbuffer: u32, dwflags: u32, lpuseoptions: *const u8, cbuseoptions: u32, lpaccessname: ::windows::core::PWSTR, lpbuffersize: *mut u32, lpresult: *mut u32) -> u32; } - WNetUseConnection4W(hwndowner.into(), ::core::mem::transmute(lpnetresource), ::core::mem::transmute(pauthbuffer), cbauthbuffer, dwflags, ::core::mem::transmute(lpuseoptions), cbuseoptions, ::core::mem::transmute(lpaccessname), ::core::mem::transmute(lpbuffersize), ::core::mem::transmute(lpresult)) + WNetUseConnection4W( + hwndowner.into(), + ::core::mem::transmute(lpnetresource), + ::core::mem::transmute(pauthbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pauthbuffer.as_deref().map_or(0, |slice| slice.len() as _), + dwflags, + ::core::mem::transmute(lpuseoptions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + lpuseoptions.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(lpaccessname), + ::core::mem::transmute(lpbuffersize), + ::core::mem::transmute(lpresult), + ) } #[doc = "*Required features: `\"Win32_NetworkManagement_WNet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/WebDav/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/WebDav/mod.rs index 8410db8aca..d580daa822 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/WebDav/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/WebDav/mod.rs @@ -150,7 +150,7 @@ impl ::core::default::Default for DAV_CALLBACK_CRED { #[doc = "*Required features: `\"Win32_NetworkManagement_WebDav\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn DavAddConnection<'a, P0, P1, P2>(connectionhandle: &mut super::super::Foundation::HANDLE, remotename: P0, username: P1, password: P2, clientcert: &u8, certsize: u32) -> u32 +pub unsafe fn DavAddConnection<'a, P0, P1, P2>(connectionhandle: &mut super::super::Foundation::HANDLE, remotename: P0, username: P1, password: P2, clientcert: &[u8]) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -160,7 +160,7 @@ where extern "system" { fn DavAddConnection(connectionhandle: *mut super::super::Foundation::HANDLE, remotename: ::windows::core::PCWSTR, username: ::windows::core::PCWSTR, password: ::windows::core::PCWSTR, clientcert: *const u8, certsize: u32) -> u32; } - DavAddConnection(::core::mem::transmute(connectionhandle), remotename.into(), username.into(), password.into(), ::core::mem::transmute(clientcert), certsize) + DavAddConnection(::core::mem::transmute(connectionhandle), remotename.into(), username.into(), password.into(), ::core::mem::transmute(clientcert.as_ptr()), clientcert.len() as _) } #[doc = "*Required features: `\"Win32_NetworkManagement_WebDav\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/WiFi/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/WiFi/mod.rs index d0d1ad1b49..d08890490f 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/WiFi/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/WiFi/mod.rs @@ -12162,7 +12162,7 @@ pub struct IDot11AdHocSecuritySettings_Vtbl { pub struct IEnumDot11AdHocInterfaces(::windows::core::IUnknown); impl IEnumDot11AdHocInterfaces { pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -12224,7 +12224,7 @@ pub struct IEnumDot11AdHocInterfaces_Vtbl { pub struct IEnumDot11AdHocNetworks(::windows::core::IUnknown); impl IEnumDot11AdHocNetworks { pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -12286,7 +12286,7 @@ pub struct IEnumDot11AdHocNetworks_Vtbl { pub struct IEnumDot11AdHocSecuritySettings(::windows::core::IUnknown); impl IEnumDot11AdHocSecuritySettings { pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -16283,7 +16283,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WlanDeviceServiceCommand<'a, P0>(hclienthandle: P0, pinterfaceguid: &::windows::core::GUID, pdeviceserviceguid: &::windows::core::GUID, dwopcode: u32, dwinbuffersize: u32, pinbuffer: *const ::core::ffi::c_void, dwoutbuffersize: u32, poutbuffer: *mut ::core::ffi::c_void, pdwbytesreturned: &mut u32) -> u32 +pub unsafe fn WlanDeviceServiceCommand<'a, P0>(hclienthandle: P0, pinterfaceguid: &::windows::core::GUID, pdeviceserviceguid: &::windows::core::GUID, dwopcode: u32, pinbuffer: ::core::option::Option<&[u8]>, poutbuffer: ::core::option::Option<&mut [u8]>, pdwbytesreturned: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -16291,7 +16291,7 @@ where extern "system" { fn WlanDeviceServiceCommand(hclienthandle: super::super::Foundation::HANDLE, pinterfaceguid: *const ::windows::core::GUID, pdeviceserviceguid: *const ::windows::core::GUID, dwopcode: u32, dwinbuffersize: u32, pinbuffer: *const ::core::ffi::c_void, dwoutbuffersize: u32, poutbuffer: *mut ::core::ffi::c_void, pdwbytesreturned: *mut u32) -> u32; } - WlanDeviceServiceCommand(hclienthandle.into(), ::core::mem::transmute(pinterfaceguid), ::core::mem::transmute(pdeviceserviceguid), dwopcode, dwinbuffersize, ::core::mem::transmute(pinbuffer), dwoutbuffersize, ::core::mem::transmute(poutbuffer), ::core::mem::transmute(pdwbytesreturned)) + WlanDeviceServiceCommand(hclienthandle.into(), ::core::mem::transmute(pinterfaceguid), ::core::mem::transmute(pdeviceserviceguid), dwopcode, pinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), poutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(poutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pdwbytesreturned)) } #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -16322,7 +16322,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WlanExtractPsdIEDataList<'a, P0, P1>(hclienthandle: P0, dwiedatasize: u32, prawiedata: &u8, strformat: P1, preserved: *mut ::core::ffi::c_void, pppsdiedatalist: &mut *mut WLAN_RAW_DATA_LIST) -> u32 +pub unsafe fn WlanExtractPsdIEDataList<'a, P0, P1>(hclienthandle: P0, prawiedata: &[u8], strformat: P1, preserved: *mut ::core::ffi::c_void, pppsdiedatalist: &mut *mut WLAN_RAW_DATA_LIST) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -16331,7 +16331,7 @@ where extern "system" { fn WlanExtractPsdIEDataList(hclienthandle: super::super::Foundation::HANDLE, dwiedatasize: u32, prawiedata: *const u8, strformat: ::windows::core::PCWSTR, preserved: *mut ::core::ffi::c_void, pppsdiedatalist: *mut *mut WLAN_RAW_DATA_LIST) -> u32; } - WlanExtractPsdIEDataList(hclienthandle.into(), dwiedatasize, ::core::mem::transmute(prawiedata), strformat.into(), ::core::mem::transmute(preserved), ::core::mem::transmute(pppsdiedatalist)) + WlanExtractPsdIEDataList(hclienthandle.into(), prawiedata.len() as _, ::core::mem::transmute(prawiedata.as_ptr()), strformat.into(), ::core::mem::transmute(preserved), ::core::mem::transmute(pppsdiedatalist)) } #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`*"] #[inline] @@ -16569,7 +16569,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WlanHostedNetworkSetProperty<'a, P0>(hclienthandle: P0, opcode: WLAN_HOSTED_NETWORK_OPCODE, dwdatasize: u32, pvdata: *const ::core::ffi::c_void, pfailreason: ::core::option::Option<&mut WLAN_HOSTED_NETWORK_REASON>, pvreserved: *mut ::core::ffi::c_void) -> u32 +pub unsafe fn WlanHostedNetworkSetProperty<'a, P0>(hclienthandle: P0, opcode: WLAN_HOSTED_NETWORK_OPCODE, pvdata: &[u8], pfailreason: ::core::option::Option<&mut WLAN_HOSTED_NETWORK_REASON>, pvreserved: *mut ::core::ffi::c_void) -> u32 where P0: ::std::convert::Into, { @@ -16577,12 +16577,12 @@ where extern "system" { fn WlanHostedNetworkSetProperty(hclienthandle: super::super::Foundation::HANDLE, opcode: WLAN_HOSTED_NETWORK_OPCODE, dwdatasize: u32, pvdata: *const ::core::ffi::c_void, pfailreason: *mut WLAN_HOSTED_NETWORK_REASON, pvreserved: *mut ::core::ffi::c_void) -> u32; } - WlanHostedNetworkSetProperty(hclienthandle.into(), opcode, dwdatasize, ::core::mem::transmute(pvdata), ::core::mem::transmute(pfailreason), ::core::mem::transmute(pvreserved)) + WlanHostedNetworkSetProperty(hclienthandle.into(), opcode, pvdata.len() as _, ::core::mem::transmute(pvdata.as_ptr()), ::core::mem::transmute(pfailreason), ::core::mem::transmute(pvreserved)) } #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WlanHostedNetworkSetSecondaryKey<'a, P0, P1, P2>(hclienthandle: P0, dwkeylength: u32, puckeydata: &u8, bispassphrase: P1, bpersistent: P2, pfailreason: ::core::option::Option<&mut WLAN_HOSTED_NETWORK_REASON>, pvreserved: *mut ::core::ffi::c_void) -> u32 +pub unsafe fn WlanHostedNetworkSetSecondaryKey<'a, P0, P1, P2>(hclienthandle: P0, puckeydata: &[u8], bispassphrase: P1, bpersistent: P2, pfailreason: ::core::option::Option<&mut WLAN_HOSTED_NETWORK_REASON>, pvreserved: *mut ::core::ffi::c_void) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -16592,7 +16592,7 @@ where extern "system" { fn WlanHostedNetworkSetSecondaryKey(hclienthandle: super::super::Foundation::HANDLE, dwkeylength: u32, puckeydata: *const u8, bispassphrase: super::super::Foundation::BOOL, bpersistent: super::super::Foundation::BOOL, pfailreason: *mut WLAN_HOSTED_NETWORK_REASON, pvreserved: *mut ::core::ffi::c_void) -> u32; } - WlanHostedNetworkSetSecondaryKey(hclienthandle.into(), dwkeylength, ::core::mem::transmute(puckeydata), bispassphrase.into(), bpersistent.into(), ::core::mem::transmute(pfailreason), ::core::mem::transmute(pvreserved)) + WlanHostedNetworkSetSecondaryKey(hclienthandle.into(), puckeydata.len() as _, ::core::mem::transmute(puckeydata.as_ptr()), bispassphrase.into(), bpersistent.into(), ::core::mem::transmute(pfailreason), ::core::mem::transmute(pvreserved)) } #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -16623,7 +16623,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WlanIhvControl<'a, P0>(hclienthandle: P0, pinterfaceguid: &::windows::core::GUID, r#type: WLAN_IHV_CONTROL_TYPE, dwinbuffersize: u32, pinbuffer: *const ::core::ffi::c_void, dwoutbuffersize: u32, poutbuffer: *mut ::core::ffi::c_void, pdwbytesreturned: &mut u32) -> u32 +pub unsafe fn WlanIhvControl<'a, P0>(hclienthandle: P0, pinterfaceguid: &::windows::core::GUID, r#type: WLAN_IHV_CONTROL_TYPE, pinbuffer: &[u8], poutbuffer: ::core::option::Option<&mut [u8]>, pdwbytesreturned: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -16631,7 +16631,7 @@ where extern "system" { fn WlanIhvControl(hclienthandle: super::super::Foundation::HANDLE, pinterfaceguid: *const ::windows::core::GUID, r#type: WLAN_IHV_CONTROL_TYPE, dwinbuffersize: u32, pinbuffer: *const ::core::ffi::c_void, dwoutbuffersize: u32, poutbuffer: *mut ::core::ffi::c_void, pdwbytesreturned: *mut u32) -> u32; } - WlanIhvControl(hclienthandle.into(), ::core::mem::transmute(pinterfaceguid), r#type, dwinbuffersize, ::core::mem::transmute(pinbuffer), dwoutbuffersize, ::core::mem::transmute(poutbuffer), ::core::mem::transmute(pdwbytesreturned)) + WlanIhvControl(hclienthandle.into(), ::core::mem::transmute(pinterfaceguid), r#type, pinbuffer.len() as _, ::core::mem::transmute(pinbuffer.as_ptr()), poutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(poutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pdwbytesreturned)) } #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -16676,7 +16676,7 @@ pub unsafe fn WlanReasonCodeToString(dwreasoncode: u32, pstringbuffer: &[u16], p extern "system" { fn WlanReasonCodeToString(dwreasoncode: u32, dwbuffersize: u32, pstringbuffer: ::windows::core::PCWSTR, preserved: *mut ::core::ffi::c_void) -> u32; } - WlanReasonCodeToString(dwreasoncode, pstringbuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pstringbuffer)), ::core::mem::transmute(preserved)) + WlanReasonCodeToString(dwreasoncode, pstringbuffer.len() as _, ::core::mem::transmute(pstringbuffer.as_ptr()), ::core::mem::transmute(preserved)) } #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -16766,7 +16766,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WlanSetAutoConfigParameter<'a, P0>(hclienthandle: P0, opcode: WLAN_AUTOCONF_OPCODE, dwdatasize: u32, pdata: *const ::core::ffi::c_void, preserved: *mut ::core::ffi::c_void) -> u32 +pub unsafe fn WlanSetAutoConfigParameter<'a, P0>(hclienthandle: P0, opcode: WLAN_AUTOCONF_OPCODE, pdata: &[u8], preserved: *mut ::core::ffi::c_void) -> u32 where P0: ::std::convert::Into, { @@ -16774,7 +16774,7 @@ where extern "system" { fn WlanSetAutoConfigParameter(hclienthandle: super::super::Foundation::HANDLE, opcode: WLAN_AUTOCONF_OPCODE, dwdatasize: u32, pdata: *const ::core::ffi::c_void, preserved: *mut ::core::ffi::c_void) -> u32; } - WlanSetAutoConfigParameter(hclienthandle.into(), opcode, dwdatasize, ::core::mem::transmute(pdata), ::core::mem::transmute(preserved)) + WlanSetAutoConfigParameter(hclienthandle.into(), opcode, pdata.len() as _, ::core::mem::transmute(pdata.as_ptr()), ::core::mem::transmute(preserved)) } #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -16792,7 +16792,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WlanSetInterface<'a, P0>(hclienthandle: P0, pinterfaceguid: &::windows::core::GUID, opcode: WLAN_INTF_OPCODE, dwdatasize: u32, pdata: *const ::core::ffi::c_void, preserved: *mut ::core::ffi::c_void) -> u32 +pub unsafe fn WlanSetInterface<'a, P0>(hclienthandle: P0, pinterfaceguid: &::windows::core::GUID, opcode: WLAN_INTF_OPCODE, pdata: &[u8], preserved: *mut ::core::ffi::c_void) -> u32 where P0: ::std::convert::Into, { @@ -16800,7 +16800,7 @@ where extern "system" { fn WlanSetInterface(hclienthandle: super::super::Foundation::HANDLE, pinterfaceguid: *const ::windows::core::GUID, opcode: WLAN_INTF_OPCODE, dwdatasize: u32, pdata: *const ::core::ffi::c_void, preserved: *mut ::core::ffi::c_void) -> u32; } - WlanSetInterface(hclienthandle.into(), ::core::mem::transmute(pinterfaceguid), opcode, dwdatasize, ::core::mem::transmute(pdata), ::core::mem::transmute(preserved)) + WlanSetInterface(hclienthandle.into(), ::core::mem::transmute(pinterfaceguid), opcode, pdata.len() as _, ::core::mem::transmute(pdata.as_ptr()), ::core::mem::transmute(preserved)) } #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -16821,7 +16821,7 @@ where #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WlanSetProfileCustomUserData<'a, P0, P1>(hclienthandle: P0, pinterfaceguid: &::windows::core::GUID, strprofilename: P1, dwdatasize: u32, pdata: &u8, preserved: *mut ::core::ffi::c_void) -> u32 +pub unsafe fn WlanSetProfileCustomUserData<'a, P0, P1>(hclienthandle: P0, pinterfaceguid: &::windows::core::GUID, strprofilename: P1, pdata: &[u8], preserved: *mut ::core::ffi::c_void) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -16830,12 +16830,12 @@ where extern "system" { fn WlanSetProfileCustomUserData(hclienthandle: super::super::Foundation::HANDLE, pinterfaceguid: *const ::windows::core::GUID, strprofilename: ::windows::core::PCWSTR, dwdatasize: u32, pdata: *const u8, preserved: *mut ::core::ffi::c_void) -> u32; } - WlanSetProfileCustomUserData(hclienthandle.into(), ::core::mem::transmute(pinterfaceguid), strprofilename.into(), dwdatasize, ::core::mem::transmute(pdata), ::core::mem::transmute(preserved)) + WlanSetProfileCustomUserData(hclienthandle.into(), ::core::mem::transmute(pinterfaceguid), strprofilename.into(), pdata.len() as _, ::core::mem::transmute(pdata.as_ptr()), ::core::mem::transmute(preserved)) } #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`, `\"Win32_Security_ExtensibleAuthenticationProtocol\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_ExtensibleAuthenticationProtocol"))] #[inline] -pub unsafe fn WlanSetProfileEapUserData<'a, P0, P1>(hclienthandle: P0, pinterfaceguid: &::windows::core::GUID, strprofilename: P1, eaptype: super::super::Security::ExtensibleAuthenticationProtocol::EAP_METHOD_TYPE, dwflags: WLAN_SET_EAPHOST_FLAGS, dweapuserdatasize: u32, pbeapuserdata: ::core::option::Option<&u8>, preserved: *mut ::core::ffi::c_void) -> u32 +pub unsafe fn WlanSetProfileEapUserData<'a, P0, P1>(hclienthandle: P0, pinterfaceguid: &::windows::core::GUID, strprofilename: P1, eaptype: super::super::Security::ExtensibleAuthenticationProtocol::EAP_METHOD_TYPE, dwflags: WLAN_SET_EAPHOST_FLAGS, pbeapuserdata: ::core::option::Option<&[u8]>, preserved: *mut ::core::ffi::c_void) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -16844,7 +16844,7 @@ where extern "system" { fn WlanSetProfileEapUserData(hclienthandle: super::super::Foundation::HANDLE, pinterfaceguid: *const ::windows::core::GUID, strprofilename: ::windows::core::PCWSTR, eaptype: super::super::Security::ExtensibleAuthenticationProtocol::EAP_METHOD_TYPE, dwflags: WLAN_SET_EAPHOST_FLAGS, dweapuserdatasize: u32, pbeapuserdata: *const u8, preserved: *mut ::core::ffi::c_void) -> u32; } - WlanSetProfileEapUserData(hclienthandle.into(), ::core::mem::transmute(pinterfaceguid), strprofilename.into(), ::core::mem::transmute(eaptype), dwflags, dweapuserdatasize, ::core::mem::transmute(pbeapuserdata), ::core::mem::transmute(preserved)) + WlanSetProfileEapUserData(hclienthandle.into(), ::core::mem::transmute(pinterfaceguid), strprofilename.into(), ::core::mem::transmute(eaptype), dwflags, pbeapuserdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbeapuserdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(preserved)) } #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -16872,7 +16872,7 @@ where extern "system" { fn WlanSetProfileList(hclienthandle: super::super::Foundation::HANDLE, pinterfaceguid: *const ::windows::core::GUID, dwitems: u32, strprofilenames: *const ::windows::core::PWSTR, preserved: *mut ::core::ffi::c_void) -> u32; } - WlanSetProfileList(hclienthandle.into(), ::core::mem::transmute(pinterfaceguid), strprofilenames.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(strprofilenames)), ::core::mem::transmute(preserved)) + WlanSetProfileList(hclienthandle.into(), ::core::mem::transmute(pinterfaceguid), strprofilenames.len() as _, ::core::mem::transmute(strprofilenames.as_ptr()), ::core::mem::transmute(preserved)) } #[doc = "*Required features: `\"Win32_NetworkManagement_WiFi\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/WindowsConnectNow/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/WindowsConnectNow/mod.rs index dce771bcdf..f7b52bfc75 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/WindowsConnectNow/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/WindowsConnectNow/mod.rs @@ -56,7 +56,7 @@ pub struct IWCNConnectNotify_Vtbl { pub struct IWCNDevice(::windows::core::IUnknown); impl IWCNDevice { pub unsafe fn SetPassword(&self, r#type: WCN_PASSWORD_TYPE, pbpassword: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPassword)(::windows::core::Interface::as_raw(self), r#type, pbpassword.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpassword))).ok() + (::windows::core::Interface::vtable(self).SetPassword)(::windows::core::Interface::as_raw(self), r#type, pbpassword.len() as _, ::core::mem::transmute(pbpassword.as_ptr())).ok() } pub unsafe fn Connect<'a, P0>(&self, pnotify: P0) -> ::windows::core::Result<()> where @@ -64,7 +64,7 @@ impl IWCNDevice { { (::windows::core::Interface::vtable(self).Connect)(::windows::core::Interface::as_raw(self), pnotify.into().abi()).ok() } - pub unsafe fn GetAttribute(&self, attributetype: WCN_ATTRIBUTE_TYPE, dwmaxbuffersize: u32, pbbuffer: &mut u8, pdwbufferused: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAttribute(&self, attributetype: WCN_ATTRIBUTE_TYPE, dwmaxbuffersize: u32, pbbuffer: *mut u8, pdwbufferused: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetAttribute)(::windows::core::Interface::as_raw(self), attributetype, dwmaxbuffersize, ::core::mem::transmute(pbbuffer), ::core::mem::transmute(pdwbufferused)).ok() } pub unsafe fn GetIntegerAttribute(&self, attributetype: WCN_ATTRIBUTE_TYPE) -> ::windows::core::Result { @@ -72,10 +72,10 @@ impl IWCNDevice { (::windows::core::Interface::vtable(self).GetIntegerAttribute)(::windows::core::Interface::as_raw(self), attributetype, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetStringAttribute(&self, attributetype: WCN_ATTRIBUTE_TYPE, wszstring: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStringAttribute)(::windows::core::Interface::as_raw(self), attributetype, wszstring.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wszstring))).ok() + (::windows::core::Interface::vtable(self).GetStringAttribute)(::windows::core::Interface::as_raw(self), attributetype, wszstring.len() as _, ::core::mem::transmute(wszstring.as_ptr())).ok() } pub unsafe fn GetNetworkProfile(&self, wszprofile: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNetworkProfile)(::windows::core::Interface::as_raw(self), wszprofile.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wszprofile))).ok() + (::windows::core::Interface::vtable(self).GetNetworkProfile)(::windows::core::Interface::as_raw(self), wszprofile.len() as _, ::core::mem::transmute(wszprofile.as_ptr())).ok() } pub unsafe fn SetNetworkProfile<'a, P0>(&self, pszprofilexml: P0) -> ::windows::core::Result<()> where @@ -83,17 +83,28 @@ impl IWCNDevice { { (::windows::core::Interface::vtable(self).SetNetworkProfile)(::windows::core::Interface::as_raw(self), pszprofilexml.into()).ok() } - pub unsafe fn GetVendorExtension(&self, pvendorextspec: &WCN_VENDOR_EXTENSION_SPEC, dwmaxbuffersize: u32, pbbuffer: &mut u8, pdwbufferused: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetVendorExtension(&self, pvendorextspec: &WCN_VENDOR_EXTENSION_SPEC, dwmaxbuffersize: u32, pbbuffer: *mut u8, pdwbufferused: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetVendorExtension)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvendorextspec), dwmaxbuffersize, ::core::mem::transmute(pbbuffer), ::core::mem::transmute(pdwbufferused)).ok() } pub unsafe fn SetVendorExtension(&self, pvendorextspec: &WCN_VENDOR_EXTENSION_SPEC, pbbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetVendorExtension)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvendorextspec), pbbuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbbuffer))).ok() + (::windows::core::Interface::vtable(self).SetVendorExtension)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvendorextspec), pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr())).ok() } pub unsafe fn Unadvise(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Unadvise)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn SetNFCPasswordParams(&self, r#type: WCN_PASSWORD_TYPE, dwoobpasswordid: u32, pbpassword: &[u8], pbremotepublickeyhash: &[u8], pbdhkeyblob: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetNFCPasswordParams)(::windows::core::Interface::as_raw(self), r#type, dwoobpasswordid, pbpassword.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpassword)), pbremotepublickeyhash.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbremotepublickeyhash)), pbdhkeyblob.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbdhkeyblob))).ok() + pub unsafe fn SetNFCPasswordParams(&self, r#type: WCN_PASSWORD_TYPE, dwoobpasswordid: u32, pbpassword: ::core::option::Option<&[u8]>, pbremotepublickeyhash: ::core::option::Option<&[u8]>, pbdhkeyblob: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetNFCPasswordParams)( + ::windows::core::Interface::as_raw(self), + r#type, + dwoobpasswordid, + pbpassword.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pbpassword.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pbremotepublickeyhash.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pbremotepublickeyhash.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pbdhkeyblob.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pbdhkeyblob.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ) + .ok() } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/WindowsConnectionManager/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/WindowsConnectionManager/mod.rs index 8c732dfee5..60fa129121 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/WindowsConnectionManager/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/WindowsConnectionManager/mod.rs @@ -11,7 +11,7 @@ pub unsafe fn FreeInterfaceContextTable(interfacecontexttable: &NET_INTERFACE_CO #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsConnectionManager\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetInterfaceContextTableForHostName<'a, P0, P1>(hostname: P0, proxyname: P1, flags: u32, connectionprofilefilterrawdata: ::core::option::Option<&u8>, connectionprofilefilterrawdatasize: u32) -> ::windows::core::Result<*mut NET_INTERFACE_CONTEXT_TABLE> +pub unsafe fn GetInterfaceContextTableForHostName<'a, P0, P1>(hostname: P0, proxyname: P1, flags: u32, connectionprofilefilterrawdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<*mut NET_INTERFACE_CONTEXT_TABLE> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -21,7 +21,7 @@ where fn GetInterfaceContextTableForHostName(hostname: ::windows::core::PCWSTR, proxyname: ::windows::core::PCWSTR, flags: u32, connectionprofilefilterrawdata: *const u8, connectionprofilefilterrawdatasize: u32, interfacecontexttable: *mut *mut NET_INTERFACE_CONTEXT_TABLE) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - GetInterfaceContextTableForHostName(hostname.into(), proxyname.into(), flags, ::core::mem::transmute(connectionprofilefilterrawdata), connectionprofilefilterrawdatasize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut NET_INTERFACE_CONTEXT_TABLE>(result__) + GetInterfaceContextTableForHostName(hostname.into(), proxyname.into(), flags, ::core::mem::transmute(connectionprofilefilterrawdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), connectionprofilefilterrawdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut NET_INTERFACE_CONTEXT_TABLE>(result__) } #[repr(C)] #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsConnectionManager\"`*"] @@ -624,7 +624,7 @@ where } #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsConnectionManager\"`*"] #[inline] -pub unsafe fn WcmSetProperty<'a, P0>(pinterface: ::core::option::Option<&::windows::core::GUID>, strprofilename: P0, property: WCM_PROPERTY, preserved: *mut ::core::ffi::c_void, pbdata: &[u8]) -> u32 +pub unsafe fn WcmSetProperty<'a, P0>(pinterface: ::core::option::Option<&::windows::core::GUID>, strprofilename: P0, property: WCM_PROPERTY, preserved: *mut ::core::ffi::c_void, pbdata: ::core::option::Option<&[u8]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -632,7 +632,7 @@ where extern "system" { fn WcmSetProperty(pinterface: *const ::windows::core::GUID, strprofilename: ::windows::core::PCWSTR, property: WCM_PROPERTY, preserved: *mut ::core::ffi::c_void, dwdatasize: u32, pbdata: *const u8) -> u32; } - WcmSetProperty(::core::mem::transmute(pinterface), strprofilename.into(), property, ::core::mem::transmute(preserved), pbdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbdata))) + WcmSetProperty(::core::mem::transmute(pinterface), strprofilename.into(), property, ::core::mem::transmute(preserved), pbdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[cfg(feature = "implement")] ::core::include!("impl.rs"); diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/WindowsFilteringPlatform/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/WindowsFilteringPlatform/mod.rs index d3f8a45a66..cef7687d02 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/WindowsFilteringPlatform/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/WindowsFilteringPlatform/mod.rs @@ -6547,7 +6547,7 @@ where extern "system" { fn FwpmIPsecTunnelAdd0(enginehandle: super::super::Foundation::HANDLE, flags: u32, mainmodepolicy: *const FWPM_PROVIDER_CONTEXT0, tunnelpolicy: *const FWPM_PROVIDER_CONTEXT0, numfilterconditions: u32, filterconditions: *const FWPM_FILTER_CONDITION0, sd: super::super::Security::PSECURITY_DESCRIPTOR) -> u32; } - FwpmIPsecTunnelAdd0(enginehandle.into(), flags, ::core::mem::transmute(mainmodepolicy), ::core::mem::transmute(tunnelpolicy), filterconditions.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(filterconditions)), sd.into()) + FwpmIPsecTunnelAdd0(enginehandle.into(), flags, ::core::mem::transmute(mainmodepolicy), ::core::mem::transmute(tunnelpolicy), filterconditions.len() as _, ::core::mem::transmute(filterconditions.as_ptr()), sd.into()) } #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsFilteringPlatform\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] @@ -6561,7 +6561,7 @@ where extern "system" { fn FwpmIPsecTunnelAdd1(enginehandle: super::super::Foundation::HANDLE, flags: u32, mainmodepolicy: *const FWPM_PROVIDER_CONTEXT1, tunnelpolicy: *const FWPM_PROVIDER_CONTEXT1, numfilterconditions: u32, filterconditions: *const FWPM_FILTER_CONDITION0, keymodkey: *const ::windows::core::GUID, sd: super::super::Security::PSECURITY_DESCRIPTOR) -> u32; } - FwpmIPsecTunnelAdd1(enginehandle.into(), flags, ::core::mem::transmute(mainmodepolicy), ::core::mem::transmute(tunnelpolicy), filterconditions.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(filterconditions)), ::core::mem::transmute(keymodkey), sd.into()) + FwpmIPsecTunnelAdd1(enginehandle.into(), flags, ::core::mem::transmute(mainmodepolicy), ::core::mem::transmute(tunnelpolicy), filterconditions.len() as _, ::core::mem::transmute(filterconditions.as_ptr()), ::core::mem::transmute(keymodkey), sd.into()) } #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsFilteringPlatform\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] @@ -6575,7 +6575,7 @@ where extern "system" { fn FwpmIPsecTunnelAdd2(enginehandle: super::super::Foundation::HANDLE, flags: u32, mainmodepolicy: *const FWPM_PROVIDER_CONTEXT2, tunnelpolicy: *const FWPM_PROVIDER_CONTEXT2, numfilterconditions: u32, filterconditions: *const FWPM_FILTER_CONDITION0, keymodkey: *const ::windows::core::GUID, sd: super::super::Security::PSECURITY_DESCRIPTOR) -> u32; } - FwpmIPsecTunnelAdd2(enginehandle.into(), flags, ::core::mem::transmute(mainmodepolicy), ::core::mem::transmute(tunnelpolicy), filterconditions.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(filterconditions)), ::core::mem::transmute(keymodkey), sd.into()) + FwpmIPsecTunnelAdd2(enginehandle.into(), flags, ::core::mem::transmute(mainmodepolicy), ::core::mem::transmute(tunnelpolicy), filterconditions.len() as _, ::core::mem::transmute(filterconditions.as_ptr()), ::core::mem::transmute(keymodkey), sd.into()) } #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsFilteringPlatform\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] @@ -6589,7 +6589,7 @@ where extern "system" { fn FwpmIPsecTunnelAdd3(enginehandle: super::super::Foundation::HANDLE, flags: u32, mainmodepolicy: *const FWPM_PROVIDER_CONTEXT3_, tunnelpolicy: *const FWPM_PROVIDER_CONTEXT3_, numfilterconditions: u32, filterconditions: *const FWPM_FILTER_CONDITION0, keymodkey: *const ::windows::core::GUID, sd: super::super::Security::PSECURITY_DESCRIPTOR) -> u32; } - FwpmIPsecTunnelAdd3(enginehandle.into(), flags, ::core::mem::transmute(mainmodepolicy), ::core::mem::transmute(tunnelpolicy), filterconditions.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(filterconditions)), ::core::mem::transmute(keymodkey), sd.into()) + FwpmIPsecTunnelAdd3(enginehandle.into(), flags, ::core::mem::transmute(mainmodepolicy), ::core::mem::transmute(tunnelpolicy), filterconditions.len() as _, ::core::mem::transmute(filterconditions.as_ptr()), ::core::mem::transmute(keymodkey), sd.into()) } #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsFilteringPlatform\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/NetworkManagement/WindowsFirewall/mod.rs b/crates/libs/windows/src/Windows/Win32/NetworkManagement/WindowsFirewall/mod.rs index 7e0bbe9f2e..064eca683a 100644 --- a/crates/libs/windows/src/Windows/Win32/NetworkManagement/WindowsFirewall/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/NetworkManagement/WindowsFirewall/mod.rs @@ -338,7 +338,7 @@ pub struct IDynamicPortMappingCollection_Vtbl { pub struct IEnumNetConnection(::windows::core::IUnknown); impl IEnumNetConnection { pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -402,7 +402,7 @@ impl IEnumNetSharingEveryConnection { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] pub unsafe fn Next(&self, rgvar: &mut [super::super::System::Com::VARIANT], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgvar.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgvar)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgvar.len() as _, ::core::mem::transmute(rgvar.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -469,7 +469,7 @@ impl IEnumNetSharingPortMapping { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] pub unsafe fn Next(&self, rgvar: &mut [super::super::System::Com::VARIANT], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgvar.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgvar)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgvar.len() as _, ::core::mem::transmute(rgvar.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -536,7 +536,7 @@ impl IEnumNetSharingPrivateConnection { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] pub unsafe fn Next(&self, rgvar: &mut [super::super::System::Com::VARIANT], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgvar.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgvar)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgvar.len() as _, ::core::mem::transmute(rgvar.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -603,7 +603,7 @@ impl IEnumNetSharingPublicConnection { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] pub unsafe fn Next(&self, rgvar: &mut [super::super::System::Com::VARIANT], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgvar.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgvar)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgvar.len() as _, ::core::mem::transmute(rgvar.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -6801,7 +6801,7 @@ pub unsafe fn NetworkIsolationSetAppContainerConfig(appcontainersids: &[super::s extern "system" { fn NetworkIsolationSetAppContainerConfig(dwnumpublicappcs: u32, appcontainersids: *const super::super::Security::SID_AND_ATTRIBUTES) -> u32; } - NetworkIsolationSetAppContainerConfig(appcontainersids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(appcontainersids))) + NetworkIsolationSetAppContainerConfig(appcontainersids.len() as _, ::core::mem::transmute(appcontainersids.as_ptr())) } #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsFirewall\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6818,7 +6818,7 @@ where extern "system" { fn NetworkIsolationSetupAppContainerBinaries(applicationcontainersid: super::super::Foundation::PSID, packagefullname: ::windows::core::PCWSTR, packagefolder: ::windows::core::PCWSTR, displayname: ::windows::core::PCWSTR, bbinariesfullycomputed: super::super::Foundation::BOOL, binaries: *const ::windows::core::PWSTR, binariescount: u32) -> ::windows::core::HRESULT; } - NetworkIsolationSetupAppContainerBinaries(applicationcontainersid.into(), packagefullname.into(), packagefolder.into(), displayname.into(), bbinariesfullycomputed.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(binaries)), binaries.len() as _).ok() + NetworkIsolationSetupAppContainerBinaries(applicationcontainersid.into(), packagefullname.into(), packagefolder.into(), displayname.into(), bbinariesfullycomputed.into(), ::core::mem::transmute(binaries.as_ptr()), binaries.len() as _).ok() } #[doc = "*Required features: `\"Win32_NetworkManagement_WindowsFirewall\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Networking/ActiveDirectory/mod.rs b/crates/libs/windows/src/Windows/Win32/Networking/ActiveDirectory/mod.rs index 8b55e8de6c..7db4cd40ea 100644 --- a/crates/libs/windows/src/Windows/Win32/Networking/ActiveDirectory/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Networking/ActiveDirectory/mod.rs @@ -2239,7 +2239,7 @@ pub unsafe fn ADsBuildVarArrayStr(lpppathnames: &[::windows::core::PWSTR], pvar: extern "system" { fn ADsBuildVarArrayStr(lpppathnames: *const ::windows::core::PWSTR, dwpathnames: u32, pvar: *mut super::super::System::Com::VARIANT) -> ::windows::core::HRESULT; } - ADsBuildVarArrayStr(::core::mem::transmute(::windows::core::as_ptr_or_null(lpppathnames)), lpppathnames.len() as _, ::core::mem::transmute(pvar)).ok() + ADsBuildVarArrayStr(::core::mem::transmute(lpppathnames.as_ptr()), lpppathnames.len() as _, ::core::mem::transmute(pvar)).ok() } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] @@ -2295,7 +2295,7 @@ pub unsafe fn ADsGetLastError(lperror: &mut u32, lperrorbuf: &mut [u16], lpnameb extern "system" { fn ADsGetLastError(lperror: *mut u32, lperrorbuf: ::windows::core::PWSTR, dwerrorbuflen: u32, lpnamebuf: ::windows::core::PWSTR, dwnamebuflen: u32) -> ::windows::core::HRESULT; } - ADsGetLastError(::core::mem::transmute(lperror), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lperrorbuf)), lperrorbuf.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpnamebuf)), lpnamebuf.len() as _).ok() + ADsGetLastError(::core::mem::transmute(lperror), ::core::mem::transmute(lperrorbuf.as_ptr()), lperrorbuf.len() as _, ::core::mem::transmute(lpnamebuf.as_ptr()), lpnamebuf.len() as _).ok() } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] @@ -7153,7 +7153,7 @@ where extern "system" { fn DsAddressToSiteNamesA(computername: ::windows::core::PCSTR, entrycount: u32, socketaddresses: *const super::WinSock::SOCKET_ADDRESS, sitenames: *mut *mut ::windows::core::PSTR) -> u32; } - DsAddressToSiteNamesA(computername.into(), socketaddresses.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(socketaddresses)), ::core::mem::transmute(sitenames)) + DsAddressToSiteNamesA(computername.into(), socketaddresses.len() as _, ::core::mem::transmute(socketaddresses.as_ptr()), ::core::mem::transmute(sitenames)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`, `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] @@ -7166,7 +7166,7 @@ where extern "system" { fn DsAddressToSiteNamesExA(computername: ::windows::core::PCSTR, entrycount: u32, socketaddresses: *const super::WinSock::SOCKET_ADDRESS, sitenames: *mut *mut ::windows::core::PSTR, subnetnames: *mut *mut ::windows::core::PSTR) -> u32; } - DsAddressToSiteNamesExA(computername.into(), socketaddresses.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(socketaddresses)), ::core::mem::transmute(sitenames), ::core::mem::transmute(subnetnames)) + DsAddressToSiteNamesExA(computername.into(), socketaddresses.len() as _, ::core::mem::transmute(socketaddresses.as_ptr()), ::core::mem::transmute(sitenames), ::core::mem::transmute(subnetnames)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`, `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] @@ -7179,7 +7179,7 @@ where extern "system" { fn DsAddressToSiteNamesExW(computername: ::windows::core::PCWSTR, entrycount: u32, socketaddresses: *const super::WinSock::SOCKET_ADDRESS, sitenames: *mut *mut ::windows::core::PWSTR, subnetnames: *mut *mut ::windows::core::PWSTR) -> u32; } - DsAddressToSiteNamesExW(computername.into(), socketaddresses.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(socketaddresses)), ::core::mem::transmute(sitenames), ::core::mem::transmute(subnetnames)) + DsAddressToSiteNamesExW(computername.into(), socketaddresses.len() as _, ::core::mem::transmute(socketaddresses.as_ptr()), ::core::mem::transmute(sitenames), ::core::mem::transmute(subnetnames)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`, `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock"))] @@ -7192,7 +7192,7 @@ where extern "system" { fn DsAddressToSiteNamesW(computername: ::windows::core::PCWSTR, entrycount: u32, socketaddresses: *const super::WinSock::SOCKET_ADDRESS, sitenames: *mut *mut ::windows::core::PWSTR) -> u32; } - DsAddressToSiteNamesW(computername.into(), socketaddresses.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(socketaddresses)), ::core::mem::transmute(sitenames)) + DsAddressToSiteNamesW(computername.into(), socketaddresses.len() as _, ::core::mem::transmute(socketaddresses.as_ptr()), ::core::mem::transmute(sitenames)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7438,7 +7438,7 @@ where extern "system" { fn DsCrackNamesA(hds: super::super::Foundation::HANDLE, flags: DS_NAME_FLAGS, formatoffered: DS_NAME_FORMAT, formatdesired: DS_NAME_FORMAT, cnames: u32, rpnames: *const ::windows::core::PSTR, ppresult: *mut *mut DS_NAME_RESULTA) -> u32; } - DsCrackNamesA(hds.into(), flags, formatoffered, formatdesired, rpnames.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rpnames)), ::core::mem::transmute(ppresult)) + DsCrackNamesA(hds.into(), flags, formatoffered, formatdesired, rpnames.len() as _, ::core::mem::transmute(rpnames.as_ptr()), ::core::mem::transmute(ppresult)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7451,7 +7451,7 @@ where extern "system" { fn DsCrackNamesW(hds: super::super::Foundation::HANDLE, flags: DS_NAME_FLAGS, formatoffered: DS_NAME_FORMAT, formatdesired: DS_NAME_FORMAT, cnames: u32, rpnames: *const ::windows::core::PWSTR, ppresult: *mut *mut DS_NAME_RESULTW) -> u32; } - DsCrackNamesW(hds.into(), flags, formatoffered, formatdesired, rpnames.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rpnames)), ::core::mem::transmute(ppresult)) + DsCrackNamesW(hds.into(), flags, formatoffered, formatdesired, rpnames.len() as _, ::core::mem::transmute(rpnames.as_ptr()), ::core::mem::transmute(ppresult)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] @@ -7460,7 +7460,7 @@ pub unsafe fn DsCrackSpn2A(pszspn: &[u8], pcserviceclass: ::core::option::Option extern "system" { fn DsCrackSpn2A(pszspn: ::windows::core::PCSTR, cspn: u32, pcserviceclass: *mut u32, serviceclass: ::windows::core::PSTR, pcservicename: *mut u32, servicename: ::windows::core::PSTR, pcinstancename: *mut u32, instancename: ::windows::core::PSTR, pinstanceport: *mut u16) -> u32; } - DsCrackSpn2A(::core::mem::transmute(::windows::core::as_ptr_or_null(pszspn)), pszspn.len() as _, ::core::mem::transmute(pcserviceclass), ::core::mem::transmute(serviceclass), ::core::mem::transmute(pcservicename), ::core::mem::transmute(servicename), ::core::mem::transmute(pcinstancename), ::core::mem::transmute(instancename), ::core::mem::transmute(pinstanceport)) + DsCrackSpn2A(::core::mem::transmute(pszspn.as_ptr()), pszspn.len() as _, ::core::mem::transmute(pcserviceclass), ::core::mem::transmute(serviceclass), ::core::mem::transmute(pcservicename), ::core::mem::transmute(servicename), ::core::mem::transmute(pcinstancename), ::core::mem::transmute(instancename), ::core::mem::transmute(pinstanceport)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] @@ -7469,7 +7469,7 @@ pub unsafe fn DsCrackSpn2W(pszspn: &[u16], pcserviceclass: ::core::option::Optio extern "system" { fn DsCrackSpn2W(pszspn: ::windows::core::PCWSTR, cspn: u32, pcserviceclass: *mut u32, serviceclass: ::windows::core::PWSTR, pcservicename: *mut u32, servicename: ::windows::core::PWSTR, pcinstancename: *mut u32, instancename: ::windows::core::PWSTR, pinstanceport: *mut u16) -> u32; } - DsCrackSpn2W(::core::mem::transmute(::windows::core::as_ptr_or_null(pszspn)), pszspn.len() as _, ::core::mem::transmute(pcserviceclass), ::core::mem::transmute(serviceclass), ::core::mem::transmute(pcservicename), ::core::mem::transmute(servicename), ::core::mem::transmute(pcinstancename), ::core::mem::transmute(instancename), ::core::mem::transmute(pinstanceport)) + DsCrackSpn2W(::core::mem::transmute(pszspn.as_ptr()), pszspn.len() as _, ::core::mem::transmute(pcserviceclass), ::core::mem::transmute(serviceclass), ::core::mem::transmute(pcservicename), ::core::mem::transmute(servicename), ::core::mem::transmute(pcinstancename), ::core::mem::transmute(instancename), ::core::mem::transmute(pinstanceport)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] @@ -7527,7 +7527,7 @@ pub unsafe fn DsCrackUnquotedMangledRdnA(pszrdn: &[u8], pguid: ::core::option::O extern "system" { fn DsCrackUnquotedMangledRdnA(pszrdn: ::windows::core::PCSTR, cchrdn: u32, pguid: *mut ::windows::core::GUID, pedsmanglefor: *mut DS_MANGLE_FOR) -> super::super::Foundation::BOOL; } - DsCrackUnquotedMangledRdnA(::core::mem::transmute(::windows::core::as_ptr_or_null(pszrdn)), pszrdn.len() as _, ::core::mem::transmute(pguid), ::core::mem::transmute(pedsmanglefor)) + DsCrackUnquotedMangledRdnA(::core::mem::transmute(pszrdn.as_ptr()), pszrdn.len() as _, ::core::mem::transmute(pguid), ::core::mem::transmute(pedsmanglefor)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7537,7 +7537,7 @@ pub unsafe fn DsCrackUnquotedMangledRdnW(pszrdn: &[u16], pguid: ::core::option:: extern "system" { fn DsCrackUnquotedMangledRdnW(pszrdn: ::windows::core::PCWSTR, cchrdn: u32, pguid: *mut ::windows::core::GUID, pedsmanglefor: *mut DS_MANGLE_FOR) -> super::super::Foundation::BOOL; } - DsCrackUnquotedMangledRdnW(::core::mem::transmute(::windows::core::as_ptr_or_null(pszrdn)), pszrdn.len() as _, ::core::mem::transmute(pguid), ::core::mem::transmute(pedsmanglefor)) + DsCrackUnquotedMangledRdnW(::core::mem::transmute(pszrdn.as_ptr()), pszrdn.len() as _, ::core::mem::transmute(pguid), ::core::mem::transmute(pedsmanglefor)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] @@ -7600,7 +7600,7 @@ pub unsafe fn DsFreeDomainControllerInfoA(infolevel: u32, pinfo: &[u8]) { extern "system" { fn DsFreeDomainControllerInfoA(infolevel: u32, cinfo: u32, pinfo: *const ::core::ffi::c_void); } - DsFreeDomainControllerInfoA(infolevel, pinfo.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinfo))) + DsFreeDomainControllerInfoA(infolevel, pinfo.len() as _, ::core::mem::transmute(pinfo.as_ptr())) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] @@ -7609,7 +7609,7 @@ pub unsafe fn DsFreeDomainControllerInfoW(infolevel: u32, pinfo: &[u8]) { extern "system" { fn DsFreeDomainControllerInfoW(infolevel: u32, cinfo: u32, pinfo: *const ::core::ffi::c_void); } - DsFreeDomainControllerInfoW(infolevel, pinfo.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinfo))) + DsFreeDomainControllerInfoW(infolevel, pinfo.len() as _, ::core::mem::transmute(pinfo.as_ptr())) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] @@ -7663,7 +7663,7 @@ pub unsafe fn DsFreeSpnArrayA(rpszspn: &mut [::windows::core::PSTR]) { extern "system" { fn DsFreeSpnArrayA(cspn: u32, rpszspn: *mut ::windows::core::PSTR); } - DsFreeSpnArrayA(rpszspn.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rpszspn))) + DsFreeSpnArrayA(rpszspn.len() as _, ::core::mem::transmute(rpszspn.as_ptr())) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] @@ -7672,7 +7672,7 @@ pub unsafe fn DsFreeSpnArrayW(rpszspn: &mut [::windows::core::PWSTR]) { extern "system" { fn DsFreeSpnArrayW(cspn: u32, rpszspn: *mut ::windows::core::PWSTR); } - DsFreeSpnArrayW(rpszspn.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rpszspn))) + DsFreeSpnArrayW(rpszspn.len() as _, ::core::mem::transmute(rpszspn.as_ptr())) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] @@ -7844,7 +7844,7 @@ where extern "system" { fn DsGetFriendlyClassName(pszobjectclass: ::windows::core::PCWSTR, pszbuffer: ::windows::core::PWSTR, cchbuffer: u32) -> ::windows::core::HRESULT; } - DsGetFriendlyClassName(pszobjectclass.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), pszbuffer.len() as _).ok() + DsGetFriendlyClassName(pszobjectclass.into(), ::core::mem::transmute(pszbuffer.as_ptr()), pszbuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] @@ -7861,7 +7861,7 @@ where } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] -pub unsafe fn DsGetRdnW(ppdn: &mut ::windows::core::PWSTR, pcdn: &mut u32, ppkey: &mut ::windows::core::PWSTR, pckey: &mut u32, ppval: &mut ::windows::core::PWSTR, pcval: &mut u32) -> u32 { +pub unsafe fn DsGetRdnW(ppdn: *mut ::windows::core::PWSTR, pcdn: &mut u32, ppkey: &mut ::windows::core::PWSTR, pckey: &mut u32, ppval: &mut ::windows::core::PWSTR, pcval: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn DsGetRdnW(ppdn: *mut ::windows::core::PWSTR, pcdn: *mut u32, ppkey: *mut ::windows::core::PWSTR, pckey: *mut u32, ppval: *mut ::windows::core::PWSTR, pcval: *mut u32) -> u32; @@ -7894,7 +7894,7 @@ where } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] -pub unsafe fn DsGetSpnA<'a, P0, P1>(servicetype: DS_SPN_NAME_TYPE, serviceclass: P0, servicename: P1, instanceport: u16, cinstancenames: u16, pinstancenames: ::core::option::Option<&::windows::core::PSTR>, pinstanceports: ::core::option::Option<&u16>, pcspn: &mut u32, prpszspn: &mut *mut ::windows::core::PSTR) -> u32 +pub unsafe fn DsGetSpnA<'a, P0, P1>(servicetype: DS_SPN_NAME_TYPE, serviceclass: P0, servicename: P1, instanceport: u16, cinstancenames: u16, pinstancenames: *const ::windows::core::PSTR, pinstanceports: *const u16, pcspn: &mut u32, prpszspn: &mut *mut ::windows::core::PSTR) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -7907,7 +7907,7 @@ where } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] -pub unsafe fn DsGetSpnW<'a, P0, P1>(servicetype: DS_SPN_NAME_TYPE, serviceclass: P0, servicename: P1, instanceport: u16, cinstancenames: u16, pinstancenames: ::core::option::Option<&::windows::core::PWSTR>, pinstanceports: ::core::option::Option<&u16>, pcspn: &mut u32, prpszspn: &mut *mut ::windows::core::PWSTR) -> u32 +pub unsafe fn DsGetSpnW<'a, P0, P1>(servicetype: DS_SPN_NAME_TYPE, serviceclass: P0, servicename: P1, instanceport: u16, cinstancenames: u16, pinstancenames: *const ::windows::core::PWSTR, pinstanceports: *const u16, pcspn: &mut u32, prpszspn: &mut *mut ::windows::core::PWSTR) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -7982,7 +7982,7 @@ pub unsafe fn DsIsMangledRdnValueA(pszrdn: &[u8], edsmanglefordesired: DS_MANGLE extern "system" { fn DsIsMangledRdnValueA(pszrdn: ::windows::core::PCSTR, crdn: u32, edsmanglefordesired: DS_MANGLE_FOR) -> super::super::Foundation::BOOL; } - DsIsMangledRdnValueA(::core::mem::transmute(::windows::core::as_ptr_or_null(pszrdn)), pszrdn.len() as _, edsmanglefordesired) + DsIsMangledRdnValueA(::core::mem::transmute(pszrdn.as_ptr()), pszrdn.len() as _, edsmanglefordesired) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7992,7 +7992,7 @@ pub unsafe fn DsIsMangledRdnValueW(pszrdn: &[u16], edsmanglefordesired: DS_MANGL extern "system" { fn DsIsMangledRdnValueW(pszrdn: ::windows::core::PCWSTR, crdn: u32, edsmanglefordesired: DS_MANGLE_FOR) -> super::super::Foundation::BOOL; } - DsIsMangledRdnValueW(::core::mem::transmute(::windows::core::as_ptr_or_null(pszrdn)), pszrdn.len() as _, edsmanglefordesired) + DsIsMangledRdnValueW(::core::mem::transmute(pszrdn.as_ptr()), pszrdn.len() as _, edsmanglefordesired) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8229,7 +8229,7 @@ where extern "system" { fn DsMapSchemaGuidsA(hds: super::super::Foundation::HANDLE, cguids: u32, rguids: *const ::windows::core::GUID, ppguidmap: *mut *mut DS_SCHEMA_GUID_MAPA) -> u32; } - DsMapSchemaGuidsA(hds.into(), rguids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rguids)), ::core::mem::transmute(ppguidmap)) + DsMapSchemaGuidsA(hds.into(), rguids.len() as _, ::core::mem::transmute(rguids.as_ptr()), ::core::mem::transmute(ppguidmap)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8242,7 +8242,7 @@ where extern "system" { fn DsMapSchemaGuidsW(hds: super::super::Foundation::HANDLE, cguids: u32, rguids: *const ::windows::core::GUID, ppguidmap: *mut *mut DS_SCHEMA_GUID_MAPW) -> u32; } - DsMapSchemaGuidsW(hds.into(), rguids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rguids)), ::core::mem::transmute(ppguidmap)) + DsMapSchemaGuidsW(hds.into(), rguids.len() as _, ::core::mem::transmute(rguids.as_ptr()), ::core::mem::transmute(ppguidmap)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`, `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] @@ -8269,7 +8269,7 @@ where extern "system" { fn DsQuerySitesByCostA(hds: super::super::Foundation::HANDLE, pszfromsite: ::windows::core::PCSTR, rgsztosites: *const ::windows::core::PSTR, ctosites: u32, dwflags: u32, prgsiteinfo: *mut *mut DS_SITE_COST_INFO) -> u32; } - DsQuerySitesByCostA(hds.into(), pszfromsite.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgsztosites)), rgsztosites.len() as _, dwflags, ::core::mem::transmute(prgsiteinfo)) + DsQuerySitesByCostA(hds.into(), pszfromsite.into(), ::core::mem::transmute(rgsztosites.as_ptr()), rgsztosites.len() as _, dwflags, ::core::mem::transmute(prgsiteinfo)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8283,7 +8283,7 @@ where extern "system" { fn DsQuerySitesByCostW(hds: super::super::Foundation::HANDLE, pwszfromsite: ::windows::core::PCWSTR, rgwsztosites: *const ::windows::core::PWSTR, ctosites: u32, dwflags: u32, prgsiteinfo: *mut *mut DS_SITE_COST_INFO) -> u32; } - DsQuerySitesByCostW(hds.into(), pwszfromsite.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgwsztosites)), rgwsztosites.len() as _, dwflags, ::core::mem::transmute(prgsiteinfo)) + DsQuerySitesByCostW(hds.into(), pwszfromsite.into(), ::core::mem::transmute(rgwsztosites.as_ptr()), rgwsztosites.len() as _, dwflags, ::core::mem::transmute(prgsiteinfo)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] @@ -8301,7 +8301,7 @@ pub unsafe fn DsQuoteRdnValueA(psunquotedrdnvalue: &[u8], pcquotedrdnvaluelength extern "system" { fn DsQuoteRdnValueA(cunquotedrdnvaluelength: u32, psunquotedrdnvalue: ::windows::core::PCSTR, pcquotedrdnvaluelength: *mut u32, psquotedrdnvalue: ::windows::core::PSTR) -> u32; } - DsQuoteRdnValueA(psunquotedrdnvalue.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psunquotedrdnvalue)), ::core::mem::transmute(pcquotedrdnvaluelength), ::core::mem::transmute(psquotedrdnvalue)) + DsQuoteRdnValueA(psunquotedrdnvalue.len() as _, ::core::mem::transmute(psunquotedrdnvalue.as_ptr()), ::core::mem::transmute(pcquotedrdnvaluelength), ::core::mem::transmute(psquotedrdnvalue)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] @@ -8310,7 +8310,7 @@ pub unsafe fn DsQuoteRdnValueW(psunquotedrdnvalue: &[u16], pcquotedrdnvaluelengt extern "system" { fn DsQuoteRdnValueW(cunquotedrdnvaluelength: u32, psunquotedrdnvalue: ::windows::core::PCWSTR, pcquotedrdnvaluelength: *mut u32, psquotedrdnvalue: ::windows::core::PWSTR) -> u32; } - DsQuoteRdnValueW(psunquotedrdnvalue.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psunquotedrdnvalue)), ::core::mem::transmute(pcquotedrdnvaluelength), ::core::mem::transmute(psquotedrdnvalue)) + DsQuoteRdnValueW(psunquotedrdnvalue.len() as _, ::core::mem::transmute(psunquotedrdnvalue.as_ptr()), ::core::mem::transmute(pcquotedrdnvaluelength), ::core::mem::transmute(psquotedrdnvalue)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8708,7 +8708,7 @@ pub unsafe fn DsUnquoteRdnValueA(psquotedrdnvalue: &[u8], pcunquotedrdnvalueleng extern "system" { fn DsUnquoteRdnValueA(cquotedrdnvaluelength: u32, psquotedrdnvalue: ::windows::core::PCSTR, pcunquotedrdnvaluelength: *mut u32, psunquotedrdnvalue: ::windows::core::PSTR) -> u32; } - DsUnquoteRdnValueA(psquotedrdnvalue.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psquotedrdnvalue)), ::core::mem::transmute(pcunquotedrdnvaluelength), ::core::mem::transmute(psunquotedrdnvalue)) + DsUnquoteRdnValueA(psquotedrdnvalue.len() as _, ::core::mem::transmute(psquotedrdnvalue.as_ptr()), ::core::mem::transmute(pcunquotedrdnvaluelength), ::core::mem::transmute(psunquotedrdnvalue)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] @@ -8717,7 +8717,7 @@ pub unsafe fn DsUnquoteRdnValueW(psquotedrdnvalue: &[u16], pcunquotedrdnvaluelen extern "system" { fn DsUnquoteRdnValueW(cquotedrdnvaluelength: u32, psquotedrdnvalue: ::windows::core::PCWSTR, pcunquotedrdnvaluelength: *mut u32, psunquotedrdnvalue: ::windows::core::PWSTR) -> u32; } - DsUnquoteRdnValueW(psquotedrdnvalue.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psquotedrdnvalue)), ::core::mem::transmute(pcunquotedrdnvaluelength), ::core::mem::transmute(psunquotedrdnvalue)) + DsUnquoteRdnValueW(psquotedrdnvalue.len() as _, ::core::mem::transmute(psquotedrdnvalue.as_ptr()), ::core::mem::transmute(pcunquotedrdnvaluelength), ::core::mem::transmute(psunquotedrdnvalue)) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] #[inline] @@ -8755,7 +8755,7 @@ where extern "system" { fn DsWriteAccountSpnA(hds: super::super::Foundation::HANDLE, operation: DS_SPN_WRITE_OP, pszaccount: ::windows::core::PCSTR, cspn: u32, rpszspn: *const ::windows::core::PSTR) -> u32; } - DsWriteAccountSpnA(hds.into(), operation, pszaccount.into(), rpszspn.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rpszspn))) + DsWriteAccountSpnA(hds.into(), operation, pszaccount.into(), rpszspn.len() as _, ::core::mem::transmute(rpszspn.as_ptr())) } #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8769,7 +8769,7 @@ where extern "system" { fn DsWriteAccountSpnW(hds: super::super::Foundation::HANDLE, operation: DS_SPN_WRITE_OP, pszaccount: ::windows::core::PCWSTR, cspn: u32, rpszspn: *const ::windows::core::PWSTR) -> u32; } - DsWriteAccountSpnW(hds.into(), operation, pszaccount.into(), rpszspn.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rpszspn))) + DsWriteAccountSpnW(hds.into(), operation, pszaccount.into(), rpszspn.len() as _, ::core::mem::transmute(rpszspn.as_ptr())) } pub const Email: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8f92a857_478e_11d1_a3b4_00c04fb950dc); #[doc = "*Required features: `\"Win32_Networking_ActiveDirectory\"`*"] @@ -21889,7 +21889,7 @@ impl IDsDisplaySpecifier { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetIconLocation)(::windows::core::Interface::as_raw(self), pszobjectclass.into(), dwflags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), pszbuffer.len() as _, ::core::mem::transmute(presid)).ok() + (::windows::core::Interface::vtable(self).GetIconLocation)(::windows::core::Interface::as_raw(self), pszobjectclass.into(), dwflags, ::core::mem::transmute(pszbuffer.as_ptr()), pszbuffer.len() as _, ::core::mem::transmute(presid)).ok() } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] @@ -21903,14 +21903,14 @@ impl IDsDisplaySpecifier { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetFriendlyClassName)(::windows::core::Interface::as_raw(self), pszobjectclass.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), pszbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).GetFriendlyClassName)(::windows::core::Interface::as_raw(self), pszobjectclass.into(), ::core::mem::transmute(pszbuffer.as_ptr()), pszbuffer.len() as _).ok() } pub unsafe fn GetFriendlyAttributeName<'a, P0, P1>(&self, pszobjectclass: P0, pszattributename: P1, pszbuffer: &mut [u16]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetFriendlyAttributeName)(::windows::core::Interface::as_raw(self), pszobjectclass.into(), pszattributename.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), pszbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).GetFriendlyAttributeName)(::windows::core::Interface::as_raw(self), pszobjectclass.into(), pszattributename.into(), ::core::mem::transmute(pszbuffer.as_ptr()), pszbuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Networking/BackgroundIntelligentTransferService/mod.rs b/crates/libs/windows/src/Windows/Win32/Networking/BackgroundIntelligentTransferService/mod.rs index bccd89d1cd..bd0bfc954f 100644 --- a/crates/libs/windows/src/Windows/Win32/Networking/BackgroundIntelligentTransferService/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Networking/BackgroundIntelligentTransferService/mod.rs @@ -1560,7 +1560,7 @@ impl IBackgroundCopyCallback1 { P0: ::std::convert::Into<::windows::core::InParam<'a, IBackgroundCopyGroup>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IBackgroundCopyJob1>>, { - (::windows::core::Interface::vtable(self).OnProgressEx)(::windows::core::Interface::as_raw(self), progresstype, pgroup.into().abi(), pjob.into().abi(), dwfileindex, dwprogressvalue, pbyte.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbyte))).ok() + (::windows::core::Interface::vtable(self).OnProgressEx)(::windows::core::Interface::as_raw(self), progresstype, pgroup.into().abi(), pjob.into().abi(), dwfileindex, dwprogressvalue, pbyte.len() as _, ::core::mem::transmute(pbyte.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1728,7 +1728,7 @@ impl IBackgroundCopyCallback3 { P0: ::std::convert::Into<::windows::core::InParam<'a, IBackgroundCopyJob>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IBackgroundCopyFile>>, { - (::windows::core::Interface::vtable(self).FileRangesTransferred)(::windows::core::Interface::as_raw(self), job.into().abi(), file.into().abi(), ranges.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ranges))).ok() + (::windows::core::Interface::vtable(self).FileRangesTransferred)(::windows::core::Interface::as_raw(self), job.into().abi(), file.into().abi(), ranges.len() as _, ::core::mem::transmute(ranges.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1954,7 +1954,7 @@ impl IBackgroundCopyFile2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetProgress)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetFileRanges(&self, rangecount: &mut u32, ranges: &mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()> { + pub unsafe fn GetFileRanges(&self, rangecount: &mut u32, ranges: *mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetFileRanges)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rangecount), ::core::mem::transmute(ranges)).ok() } pub unsafe fn SetRemoteName<'a, P0>(&self, val: P0) -> ::windows::core::Result<()> @@ -2039,7 +2039,7 @@ impl IBackgroundCopyFile3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.GetProgress)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetFileRanges(&self, rangecount: &mut u32, ranges: &mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()> { + pub unsafe fn GetFileRanges(&self, rangecount: &mut u32, ranges: *mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetFileRanges)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rangecount), ::core::mem::transmute(ranges)).ok() } pub unsafe fn SetRemoteName<'a, P0>(&self, val: P0) -> ::windows::core::Result<()> @@ -2174,7 +2174,7 @@ impl IBackgroundCopyFile4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.GetProgress)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetFileRanges(&self, rangecount: &mut u32, ranges: &mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()> { + pub unsafe fn GetFileRanges(&self, rangecount: &mut u32, ranges: *mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetFileRanges)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rangecount), ::core::mem::transmute(ranges)).ok() } pub unsafe fn SetRemoteName<'a, P0>(&self, val: P0) -> ::windows::core::Result<()> @@ -2315,7 +2315,7 @@ impl IBackgroundCopyFile5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetProgress)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetFileRanges(&self, rangecount: &mut u32, ranges: &mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()> { + pub unsafe fn GetFileRanges(&self, rangecount: &mut u32, ranges: *mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetFileRanges)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rangecount), ::core::mem::transmute(ranges)).ok() } pub unsafe fn SetRemoteName<'a, P0>(&self, val: P0) -> ::windows::core::Result<()> @@ -2479,7 +2479,7 @@ impl IBackgroundCopyFile6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetProgress)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetFileRanges(&self, rangecount: &mut u32, ranges: &mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()> { + pub unsafe fn GetFileRanges(&self, rangecount: &mut u32, ranges: *mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetFileRanges)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rangecount), ::core::mem::transmute(ranges)).ok() } pub unsafe fn SetRemoteName<'a, P0>(&self, val: P0) -> ::windows::core::Result<()> @@ -2526,9 +2526,9 @@ impl IBackgroundCopyFile6 { (::windows::core::Interface::vtable(self).UpdateDownloadPosition)(::windows::core::Interface::as_raw(self), offset).ok() } pub unsafe fn RequestFileRanges(&self, ranges: &[BG_FILE_RANGE]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RequestFileRanges)(::windows::core::Interface::as_raw(self), ranges.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ranges))).ok() + (::windows::core::Interface::vtable(self).RequestFileRanges)(::windows::core::Interface::as_raw(self), ranges.len() as _, ::core::mem::transmute(ranges.as_ptr())).ok() } - pub unsafe fn GetFilledFileRanges(&self, rangecount: &mut u32, ranges: &mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()> { + pub unsafe fn GetFilledFileRanges(&self, rangecount: &mut u32, ranges: *mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetFilledFileRanges)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rangecount), ::core::mem::transmute(ranges)).ok() } } @@ -2781,7 +2781,7 @@ pub struct IBackgroundCopyGroup_Vtbl { pub struct IBackgroundCopyJob(::windows::core::IUnknown); impl IBackgroundCopyJob { pub unsafe fn AddFileSet(&self, pfileset: &[BG_FILE_INFO]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddFileSet)(::windows::core::Interface::as_raw(self), pfileset.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfileset))).ok() + (::windows::core::Interface::vtable(self).AddFileSet)(::windows::core::Interface::as_raw(self), pfileset.len() as _, ::core::mem::transmute(pfileset.as_ptr())).ok() } pub unsafe fn AddFile<'a, P0, P1>(&self, remoteurl: P0, localname: P1) -> ::windows::core::Result<()> where @@ -3004,7 +3004,7 @@ impl IBackgroundCopyJob1 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn AddFiles(&self, ppfileset: &[*const FILESETINFO]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddFiles)(::windows::core::Interface::as_raw(self), ppfileset.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppfileset))).ok() + (::windows::core::Interface::vtable(self).AddFiles)(::windows::core::Interface::as_raw(self), ppfileset.len() as _, ::core::mem::transmute(ppfileset.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3083,7 +3083,7 @@ pub struct IBackgroundCopyJob1_Vtbl { pub struct IBackgroundCopyJob2(::windows::core::IUnknown); impl IBackgroundCopyJob2 { pub unsafe fn AddFileSet(&self, pfileset: &[BG_FILE_INFO]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.AddFileSet)(::windows::core::Interface::as_raw(self), pfileset.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfileset))).ok() + (::windows::core::Interface::vtable(self).base__.AddFileSet)(::windows::core::Interface::as_raw(self), pfileset.len() as _, ::core::mem::transmute(pfileset.as_ptr())).ok() } pub unsafe fn AddFile<'a, P0, P1>(&self, remoteurl: P0, localname: P1) -> ::windows::core::Result<()> where @@ -3314,7 +3314,7 @@ pub struct IBackgroundCopyJob2_Vtbl { pub struct IBackgroundCopyJob3(::windows::core::IUnknown); impl IBackgroundCopyJob3 { pub unsafe fn AddFileSet(&self, pfileset: &[BG_FILE_INFO]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.AddFileSet)(::windows::core::Interface::as_raw(self), pfileset.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfileset))).ok() + (::windows::core::Interface::vtable(self).base__.base__.AddFileSet)(::windows::core::Interface::as_raw(self), pfileset.len() as _, ::core::mem::transmute(pfileset.as_ptr())).ok() } pub unsafe fn AddFile<'a, P0, P1>(&self, remoteurl: P0, localname: P1) -> ::windows::core::Result<()> where @@ -3488,7 +3488,7 @@ impl IBackgroundCopyJob3 { P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).AddFileWithRanges)(::windows::core::Interface::as_raw(self), remoteurl.into(), localname.into(), ranges.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ranges))).ok() + (::windows::core::Interface::vtable(self).AddFileWithRanges)(::windows::core::Interface::as_raw(self), remoteurl.into(), localname.into(), ranges.len() as _, ::core::mem::transmute(ranges.as_ptr())).ok() } pub unsafe fn SetFileACLFlags(&self, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetFileACLFlags)(::windows::core::Interface::as_raw(self), flags).ok() @@ -3577,7 +3577,7 @@ pub struct IBackgroundCopyJob3_Vtbl { pub struct IBackgroundCopyJob4(::windows::core::IUnknown); impl IBackgroundCopyJob4 { pub unsafe fn AddFileSet(&self, pfileset: &[BG_FILE_INFO]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.AddFileSet)(::windows::core::Interface::as_raw(self), pfileset.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfileset))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.AddFileSet)(::windows::core::Interface::as_raw(self), pfileset.len() as _, ::core::mem::transmute(pfileset.as_ptr())).ok() } pub unsafe fn AddFile<'a, P0, P1>(&self, remoteurl: P0, localname: P1) -> ::windows::core::Result<()> where @@ -3751,7 +3751,7 @@ impl IBackgroundCopyJob4 { P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.AddFileWithRanges)(::windows::core::Interface::as_raw(self), remoteurl.into(), localname.into(), ranges.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ranges))).ok() + (::windows::core::Interface::vtable(self).base__.AddFileWithRanges)(::windows::core::Interface::as_raw(self), remoteurl.into(), localname.into(), ranges.len() as _, ::core::mem::transmute(ranges.as_ptr())).ok() } pub unsafe fn SetFileACLFlags(&self, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SetFileACLFlags)(::windows::core::Interface::as_raw(self), flags).ok() @@ -3884,7 +3884,7 @@ pub struct IBackgroundCopyJob4_Vtbl { pub struct IBackgroundCopyJob5(::windows::core::IUnknown); impl IBackgroundCopyJob5 { pub unsafe fn AddFileSet(&self, pfileset: &[BG_FILE_INFO]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.AddFileSet)(::windows::core::Interface::as_raw(self), pfileset.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pfileset))).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.AddFileSet)(::windows::core::Interface::as_raw(self), pfileset.len() as _, ::core::mem::transmute(pfileset.as_ptr())).ok() } pub unsafe fn AddFile<'a, P0, P1>(&self, remoteurl: P0, localname: P1) -> ::windows::core::Result<()> where @@ -4058,7 +4058,7 @@ impl IBackgroundCopyJob5 { P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.AddFileWithRanges)(::windows::core::Interface::as_raw(self), remoteurl.into(), localname.into(), ranges.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ranges))).ok() + (::windows::core::Interface::vtable(self).base__.base__.AddFileWithRanges)(::windows::core::Interface::as_raw(self), remoteurl.into(), localname.into(), ranges.len() as _, ::core::mem::transmute(ranges.as_ptr())).ok() } pub unsafe fn SetFileACLFlags(&self, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.SetFileACLFlags)(::windows::core::Interface::as_raw(self), flags).ok() @@ -4219,7 +4219,7 @@ impl IBackgroundCopyJobHttpOptions { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetClientCertificateByID)(::windows::core::Interface::as_raw(self), storelocation, storename.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pcerthashblob))).ok() + (::windows::core::Interface::vtable(self).SetClientCertificateByID)(::windows::core::Interface::as_raw(self), storelocation, storename.into(), ::core::mem::transmute(pcerthashblob.as_ptr())).ok() } pub unsafe fn SetClientCertificateByName<'a, P0, P1>(&self, storelocation: BG_CERT_STORE_LOCATION, storename: P0, subjectname: P1) -> ::windows::core::Result<()> where @@ -4231,7 +4231,7 @@ impl IBackgroundCopyJobHttpOptions { pub unsafe fn RemoveClientCertificate(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).RemoveClientCertificate)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn GetClientCertificate(&self, pstorelocation: &mut BG_CERT_STORE_LOCATION, pstorename: &mut ::windows::core::PWSTR, ppcerthashblob: &mut *mut u8, psubjectname: &mut ::windows::core::PWSTR) -> ::windows::core::Result<()> { + pub unsafe fn GetClientCertificate(&self, pstorelocation: &mut BG_CERT_STORE_LOCATION, pstorename: &mut ::windows::core::PWSTR, ppcerthashblob: *mut *mut u8, psubjectname: &mut ::windows::core::PWSTR) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetClientCertificate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pstorelocation), ::core::mem::transmute(pstorename), ::core::mem::transmute(ppcerthashblob), ::core::mem::transmute(psubjectname)).ok() } pub unsafe fn SetCustomHeaders<'a, P0>(&self, requestheaders: P0) -> ::windows::core::Result<()> @@ -4308,7 +4308,7 @@ impl IBackgroundCopyJobHttpOptions2 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.SetClientCertificateByID)(::windows::core::Interface::as_raw(self), storelocation, storename.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pcerthashblob))).ok() + (::windows::core::Interface::vtable(self).base__.SetClientCertificateByID)(::windows::core::Interface::as_raw(self), storelocation, storename.into(), ::core::mem::transmute(pcerthashblob.as_ptr())).ok() } pub unsafe fn SetClientCertificateByName<'a, P0, P1>(&self, storelocation: BG_CERT_STORE_LOCATION, storename: P0, subjectname: P1) -> ::windows::core::Result<()> where @@ -4320,7 +4320,7 @@ impl IBackgroundCopyJobHttpOptions2 { pub unsafe fn RemoveClientCertificate(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.RemoveClientCertificate)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn GetClientCertificate(&self, pstorelocation: &mut BG_CERT_STORE_LOCATION, pstorename: &mut ::windows::core::PWSTR, ppcerthashblob: &mut *mut u8, psubjectname: &mut ::windows::core::PWSTR) -> ::windows::core::Result<()> { + pub unsafe fn GetClientCertificate(&self, pstorelocation: &mut BG_CERT_STORE_LOCATION, pstorename: &mut ::windows::core::PWSTR, ppcerthashblob: *mut *mut u8, psubjectname: &mut ::windows::core::PWSTR) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetClientCertificate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pstorelocation), ::core::mem::transmute(pstorename), ::core::mem::transmute(ppcerthashblob), ::core::mem::transmute(psubjectname)).ok() } pub unsafe fn SetCustomHeaders<'a, P0>(&self, requestheaders: P0) -> ::windows::core::Result<()> @@ -4416,7 +4416,7 @@ impl IBackgroundCopyJobHttpOptions3 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.SetClientCertificateByID)(::windows::core::Interface::as_raw(self), storelocation, storename.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pcerthashblob))).ok() + (::windows::core::Interface::vtable(self).base__.base__.SetClientCertificateByID)(::windows::core::Interface::as_raw(self), storelocation, storename.into(), ::core::mem::transmute(pcerthashblob.as_ptr())).ok() } pub unsafe fn SetClientCertificateByName<'a, P0, P1>(&self, storelocation: BG_CERT_STORE_LOCATION, storename: P0, subjectname: P1) -> ::windows::core::Result<()> where @@ -4428,7 +4428,7 @@ impl IBackgroundCopyJobHttpOptions3 { pub unsafe fn RemoveClientCertificate(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.RemoveClientCertificate)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn GetClientCertificate(&self, pstorelocation: &mut BG_CERT_STORE_LOCATION, pstorename: &mut ::windows::core::PWSTR, ppcerthashblob: &mut *mut u8, psubjectname: &mut ::windows::core::PWSTR) -> ::windows::core::Result<()> { + pub unsafe fn GetClientCertificate(&self, pstorelocation: &mut BG_CERT_STORE_LOCATION, pstorename: &mut ::windows::core::PWSTR, ppcerthashblob: *mut *mut u8, psubjectname: &mut ::windows::core::PWSTR) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetClientCertificate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pstorelocation), ::core::mem::transmute(pstorename), ::core::mem::transmute(ppcerthashblob), ::core::mem::transmute(psubjectname)).ok() } pub unsafe fn SetCustomHeaders<'a, P0>(&self, requestheaders: P0) -> ::windows::core::Result<()> @@ -4676,7 +4676,7 @@ impl IBackgroundCopyServerCertificateValidationCallback { P0: ::std::convert::Into<::windows::core::InParam<'a, IBackgroundCopyJob>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IBackgroundCopyFile>>, { - (::windows::core::Interface::vtable(self).ValidateServerCertificate)(::windows::core::Interface::as_raw(self), job.into().abi(), file.into().abi(), certdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(certdata)), certencodingtype, certstoredata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(certstoredata))).ok() + (::windows::core::Interface::vtable(self).ValidateServerCertificate)(::windows::core::Interface::as_raw(self), job.into().abi(), file.into().abi(), certdata.len() as _, ::core::mem::transmute(certdata.as_ptr()), certencodingtype, certstoredata.len() as _, ::core::mem::transmute(certstoredata.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -4931,7 +4931,7 @@ impl IBitsPeerCacheRecord { pub unsafe fn IsFileValidated(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).IsFileValidated)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn GetFileRanges(&self, prangecount: &mut u32, ppranges: &mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()> { + pub unsafe fn GetFileRanges(&self, prangecount: &mut u32, ppranges: *mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetFileRanges)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prangecount), ::core::mem::transmute(ppranges)).ok() } } @@ -5127,7 +5127,7 @@ pub struct IEnumBackgroundCopyFiles_Vtbl { pub struct IEnumBackgroundCopyGroups(::windows::core::IUnknown); impl IEnumBackgroundCopyGroups { pub unsafe fn Next(&self, rgelt: &mut [::windows::core::GUID], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -5261,7 +5261,7 @@ pub struct IEnumBackgroundCopyJobs_Vtbl { pub struct IEnumBackgroundCopyJobs1(::windows::core::IUnknown); impl IEnumBackgroundCopyJobs1 { pub unsafe fn Next(&self, rgelt: &mut [::windows::core::GUID], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() diff --git a/crates/libs/windows/src/Windows/Win32/Networking/Clustering/mod.rs b/crates/libs/windows/src/Windows/Win32/Networking/Clustering/mod.rs index daf9dae410..10f08182db 100644 --- a/crates/libs/windows/src/Windows/Win32/Networking/Clustering/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Networking/Clustering/mod.rs @@ -8816,7 +8816,7 @@ where extern "system" { fn ClusWorkersTerminate(clusworkers: *mut *mut CLUS_WORKER, clusworkerscount: usize, timeoutinmilliseconds: u32, waitonly: super::super::Foundation::BOOL) -> u32; } - ClusWorkersTerminate(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(clusworkers)), clusworkers.len() as _, timeoutinmilliseconds, waitonly.into()) + ClusWorkersTerminate(::core::mem::transmute(clusworkers.as_ptr()), clusworkers.len() as _, timeoutinmilliseconds, waitonly.into()) } pub const Cluster: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf2e606e3_2631_11d1_89f1_00a0c90d061e); #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] @@ -8851,7 +8851,7 @@ pub unsafe fn ClusterAddGroupToGroupSetWithDomains(hgroupset: &_HGROUPSET, hgrou } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ClusterAffinityRuleControl<'a, P0>(hcluster: &_HCLUSTER, affinityrulename: P0, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, cbinbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, cboutbuffersize: u32, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn ClusterAffinityRuleControl<'a, P0>(hcluster: &_HCLUSTER, affinityrulename: P0, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: ::core::option::Option<&[u8]>, lpoutbuffer: ::core::option::Option<&mut [u8]>, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -8859,7 +8859,7 @@ where extern "system" { fn ClusterAffinityRuleControl(hcluster: *const _HCLUSTER, affinityrulename: ::windows::core::PCWSTR, hhostnode: *const _HNODE, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, cbinbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, cboutbuffersize: u32, lpbytesreturned: *mut u32) -> u32; } - ClusterAffinityRuleControl(::core::mem::transmute(hcluster), affinityrulename.into(), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer), cbinbuffersize, ::core::mem::transmute(lpoutbuffer), cboutbuffersize, ::core::mem::transmute(lpbytesreturned)) + ClusterAffinityRuleControl(::core::mem::transmute(hcluster), affinityrulename.into(), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesreturned)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -8893,12 +8893,12 @@ pub unsafe fn ClusterCloseEnumEx(hclusterenum: &_HCLUSENUMEX) -> u32 { } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ClusterControl(hcluster: &_HCLUSTER, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 { +pub unsafe fn ClusterControl(hcluster: &_HCLUSTER, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: ::core::option::Option<&[u8]>, lpoutbuffer: ::core::option::Option<&mut [u8]>, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ClusterControl(hcluster: *const _HCLUSTER, hhostnode: *const _HNODE, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesreturned: *mut u32) -> u32; } - ClusterControl(::core::mem::transmute(hcluster), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer), ninbuffersize, ::core::mem::transmute(lpoutbuffer), noutbuffersize, ::core::mem::transmute(lpbytesreturned)) + ClusterControl(::core::mem::transmute(hcluster), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesreturned)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -8928,7 +8928,7 @@ pub unsafe fn ClusterEncrypt(hcluscryptprovider: &_HCLUSCRYPTPROVIDER, pdata: &[ extern "system" { fn ClusterEncrypt(hcluscryptprovider: *const _HCLUSCRYPTPROVIDER, pdata: *const u8, cbdata: u32, ppdata: *mut *mut u8, pcbdata: *mut u32) -> u32; } - ClusterEncrypt(::core::mem::transmute(hcluscryptprovider), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdata)), pdata.len() as _, ::core::mem::transmute(ppdata), ::core::mem::transmute(pcbdata)) + ClusterEncrypt(::core::mem::transmute(hcluscryptprovider), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _, ::core::mem::transmute(ppdata), ::core::mem::transmute(pcbdata)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -9012,12 +9012,12 @@ pub unsafe fn ClusterGroupCloseEnumEx(hgroupenumex: &_HGROUPENUMEX) -> u32 { } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ClusterGroupControl(hgroup: &_HGROUP, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 { +pub unsafe fn ClusterGroupControl(hgroup: &_HGROUP, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: ::core::option::Option<&[u8]>, lpoutbuffer: ::core::option::Option<&mut [u8]>, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ClusterGroupControl(hgroup: *const _HGROUP, hhostnode: *const _HNODE, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesreturned: *mut u32) -> u32; } - ClusterGroupControl(::core::mem::transmute(hgroup), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer), ninbuffersize, ::core::mem::transmute(lpoutbuffer), noutbuffersize, ::core::mem::transmute(lpbytesreturned)) + ClusterGroupControl(::core::mem::transmute(hgroup), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesreturned)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -9066,16 +9066,12 @@ pub unsafe fn ClusterGroupOpenEnum(hgroup: &_HGROUP, dwtype: u32) -> *mut _HGROU } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ClusterGroupOpenEnumEx<'a, P0, P1>(hcluster: &_HCLUSTER, lpszproperties: P0, cbproperties: u32, lpszroproperties: P1, cbroproperties: u32, dwflags: u32) -> *mut _HGROUPENUMEX -where - P0: ::std::convert::Into<::windows::core::PCWSTR>, - P1: ::std::convert::Into<::windows::core::PCWSTR>, -{ +pub unsafe fn ClusterGroupOpenEnumEx(hcluster: &_HCLUSTER, lpszproperties: ::core::option::Option<&[u8]>, lpszroproperties: ::core::option::Option<&[u8]>, dwflags: u32) -> *mut _HGROUPENUMEX { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ClusterGroupOpenEnumEx(hcluster: *const _HCLUSTER, lpszproperties: ::windows::core::PCWSTR, cbproperties: u32, lpszroproperties: ::windows::core::PCWSTR, cbroproperties: u32, dwflags: u32) -> *mut _HGROUPENUMEX; } - ClusterGroupOpenEnumEx(::core::mem::transmute(hcluster), lpszproperties.into(), cbproperties, lpszroproperties.into(), cbroproperties, dwflags) + ClusterGroupOpenEnumEx(::core::mem::transmute(hcluster), ::core::mem::transmute(lpszproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszproperties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpszroproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszroproperties.as_deref().map_or(0, |slice| slice.len() as _), dwflags) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -9088,12 +9084,12 @@ pub unsafe fn ClusterGroupSetCloseEnum(hgroupsetenum: &mut _HGROUPSETENUM) -> u3 } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ClusterGroupSetControl(hgroupset: &_HGROUPSET, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, cbinbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, cboutbuffersize: u32, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 { +pub unsafe fn ClusterGroupSetControl(hgroupset: &_HGROUPSET, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: ::core::option::Option<&[u8]>, lpoutbuffer: ::core::option::Option<&mut [u8]>, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ClusterGroupSetControl(hgroupset: *const _HGROUPSET, hhostnode: *const _HNODE, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, cbinbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, cboutbuffersize: u32, lpbytesreturned: *mut u32) -> u32; } - ClusterGroupSetControl(::core::mem::transmute(hgroupset), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer), cbinbuffersize, ::core::mem::transmute(lpoutbuffer), cboutbuffersize, ::core::mem::transmute(lpbytesreturned)) + ClusterGroupSetControl(::core::mem::transmute(hgroupset), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesreturned)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -9147,12 +9143,12 @@ pub unsafe fn ClusterNetInterfaceCloseEnum(hnetinterfaceenum: &_HNETINTERFACEENU } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ClusterNetInterfaceControl(hnetinterface: &_HNETINTERFACE, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 { +pub unsafe fn ClusterNetInterfaceControl(hnetinterface: &_HNETINTERFACE, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: ::core::option::Option<&[u8]>, lpoutbuffer: ::core::option::Option<&mut [u8]>, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ClusterNetInterfaceControl(hnetinterface: *const _HNETINTERFACE, hhostnode: *const _HNODE, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesreturned: *mut u32) -> u32; } - ClusterNetInterfaceControl(::core::mem::transmute(hnetinterface), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer), ninbuffersize, ::core::mem::transmute(lpoutbuffer), noutbuffersize, ::core::mem::transmute(lpbytesreturned)) + ClusterNetInterfaceControl(::core::mem::transmute(hnetinterface), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesreturned)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -9187,12 +9183,12 @@ pub unsafe fn ClusterNetworkCloseEnum(hnetworkenum: &_HNETWORKENUM) -> u32 { } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ClusterNetworkControl(hnetwork: &_HNETWORK, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 { +pub unsafe fn ClusterNetworkControl(hnetwork: &_HNETWORK, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: ::core::option::Option<&[u8]>, lpoutbuffer: ::core::option::Option<&mut [u8]>, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ClusterNetworkControl(hnetwork: *const _HNETWORK, hhostnode: *const _HNODE, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesreturned: *mut u32) -> u32; } - ClusterNetworkControl(::core::mem::transmute(hnetwork), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer), ninbuffersize, ::core::mem::transmute(lpoutbuffer), noutbuffersize, ::core::mem::transmute(lpbytesreturned)) + ClusterNetworkControl(::core::mem::transmute(hnetwork), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesreturned)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -9241,12 +9237,12 @@ pub unsafe fn ClusterNodeCloseEnumEx(hnodeenum: &_HNODEENUMEX) -> u32 { } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ClusterNodeControl(hnode: &_HNODE, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 { +pub unsafe fn ClusterNodeControl(hnode: &_HNODE, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: ::core::option::Option<&[u8]>, lpoutbuffer: ::core::option::Option<&mut [u8]>, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ClusterNodeControl(hnode: *const _HNODE, hhostnode: *const _HNODE, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesreturned: *mut u32) -> u32; } - ClusterNodeControl(::core::mem::transmute(hnode), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer), ninbuffersize, ::core::mem::transmute(lpoutbuffer), noutbuffersize, ::core::mem::transmute(lpbytesreturned)) + ClusterNodeControl(::core::mem::transmute(hnode), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesreturned)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -9347,7 +9343,7 @@ where } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ClusterRegBatchAddCommand<'a, P0>(hregbatch: &_HREGBATCH, dwcommand: CLUSTER_REG_COMMAND, wzname: P0, dwoptions: u32, lpdata: *const ::core::ffi::c_void, cbdata: u32) -> i32 +pub unsafe fn ClusterRegBatchAddCommand<'a, P0>(hregbatch: &_HREGBATCH, dwcommand: CLUSTER_REG_COMMAND, wzname: P0, dwoptions: u32, lpdata: ::core::option::Option<&[u8]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -9355,7 +9351,7 @@ where extern "system" { fn ClusterRegBatchAddCommand(hregbatch: *const _HREGBATCH, dwcommand: CLUSTER_REG_COMMAND, wzname: ::windows::core::PCWSTR, dwoptions: u32, lpdata: *const ::core::ffi::c_void, cbdata: u32) -> i32; } - ClusterRegBatchAddCommand(::core::mem::transmute(hregbatch), dwcommand, wzname.into(), dwoptions, ::core::mem::transmute(lpdata), cbdata) + ClusterRegBatchAddCommand(::core::mem::transmute(hregbatch), dwcommand, wzname.into(), dwoptions, ::core::mem::transmute(lpdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -9543,7 +9539,7 @@ where #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn ClusterRegEnumValue<'a, P0>(hkey: P0, dwindex: u32, lpszvaluename: ::windows::core::PWSTR, lpcchvaluename: &mut u32, lpdwtype: ::core::option::Option<&mut u32>, lpdata: ::core::option::Option<&mut u8>, lpcbdata: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn ClusterRegEnumValue<'a, P0>(hkey: P0, dwindex: u32, lpszvaluename: ::windows::core::PWSTR, lpcchvaluename: &mut u32, lpdwtype: ::core::option::Option<&mut u32>, lpdata: *mut u8, lpcbdata: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into, { @@ -9605,7 +9601,7 @@ where #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn ClusterRegQueryValue<'a, P0, P1>(hkey: P0, lpszvaluename: P1, lpdwvaluetype: ::core::option::Option<&mut u32>, lpdata: ::core::option::Option<&mut u8>, lpcbdata: ::core::option::Option<&mut u32>) -> i32 +pub unsafe fn ClusterRegQueryValue<'a, P0, P1>(hkey: P0, lpszvaluename: P1, lpdwvaluetype: ::core::option::Option<&mut u32>, lpdata: *mut u8, lpcbdata: ::core::option::Option<&mut u32>) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -9728,21 +9724,21 @@ pub unsafe fn ClusterResourceCloseEnumEx(hresourceenumex: &_HRESENUMEX) -> u32 { } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ClusterResourceControl(hresource: &_HRESOURCE, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, cbinbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, cboutbuffersize: u32, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 { +pub unsafe fn ClusterResourceControl(hresource: &_HRESOURCE, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: ::core::option::Option<&[u8]>, lpoutbuffer: ::core::option::Option<&mut [u8]>, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ClusterResourceControl(hresource: *const _HRESOURCE, hhostnode: *const _HNODE, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, cbinbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, cboutbuffersize: u32, lpbytesreturned: *mut u32) -> u32; } - ClusterResourceControl(::core::mem::transmute(hresource), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer), cbinbuffersize, ::core::mem::transmute(lpoutbuffer), cboutbuffersize, ::core::mem::transmute(lpbytesreturned)) + ClusterResourceControl(::core::mem::transmute(hresource), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesreturned)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ClusterResourceControlAsUser(hresource: &_HRESOURCE, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, cbinbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, cboutbuffersize: u32, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 { +pub unsafe fn ClusterResourceControlAsUser(hresource: &_HRESOURCE, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: ::core::option::Option<&[u8]>, lpoutbuffer: ::core::option::Option<&mut [u8]>, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ClusterResourceControlAsUser(hresource: *const _HRESOURCE, hhostnode: *const _HNODE, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, cbinbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, cboutbuffersize: u32, lpbytesreturned: *mut u32) -> u32; } - ClusterResourceControlAsUser(::core::mem::transmute(hresource), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer), cbinbuffersize, ::core::mem::transmute(lpoutbuffer), cboutbuffersize, ::core::mem::transmute(lpbytesreturned)) + ClusterResourceControlAsUser(::core::mem::transmute(hresource), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesreturned)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -9791,16 +9787,12 @@ pub unsafe fn ClusterResourceOpenEnum(hresource: &_HRESOURCE, dwtype: u32) -> *m } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ClusterResourceOpenEnumEx<'a, P0, P1>(hcluster: &_HCLUSTER, lpszproperties: P0, cbproperties: u32, lpszroproperties: P1, cbroproperties: u32, dwflags: u32) -> *mut _HRESENUMEX -where - P0: ::std::convert::Into<::windows::core::PCWSTR>, - P1: ::std::convert::Into<::windows::core::PCWSTR>, -{ +pub unsafe fn ClusterResourceOpenEnumEx(hcluster: &_HCLUSTER, lpszproperties: ::core::option::Option<&[u8]>, lpszroproperties: ::core::option::Option<&[u8]>, dwflags: u32) -> *mut _HRESENUMEX { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ClusterResourceOpenEnumEx(hcluster: *const _HCLUSTER, lpszproperties: ::windows::core::PCWSTR, cbproperties: u32, lpszroproperties: ::windows::core::PCWSTR, cbroproperties: u32, dwflags: u32) -> *mut _HRESENUMEX; } - ClusterResourceOpenEnumEx(::core::mem::transmute(hcluster), lpszproperties.into(), cbproperties, lpszroproperties.into(), cbroproperties, dwflags) + ClusterResourceOpenEnumEx(::core::mem::transmute(hcluster), ::core::mem::transmute(lpszproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszproperties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpszroproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszroproperties.as_deref().map_or(0, |slice| slice.len() as _), dwflags) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -9813,7 +9805,7 @@ pub unsafe fn ClusterResourceTypeCloseEnum(hrestypeenum: &_HRESTYPEENUM) -> u32 } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ClusterResourceTypeControl<'a, P0>(hcluster: &_HCLUSTER, lpszresourcetypename: P0, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn ClusterResourceTypeControl<'a, P0>(hcluster: &_HCLUSTER, lpszresourcetypename: P0, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: ::core::option::Option<&[u8]>, lpoutbuffer: ::core::option::Option<&mut [u8]>, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -9821,11 +9813,11 @@ where extern "system" { fn ClusterResourceTypeControl(hcluster: *const _HCLUSTER, lpszresourcetypename: ::windows::core::PCWSTR, hhostnode: *const _HNODE, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesreturned: *mut u32) -> u32; } - ClusterResourceTypeControl(::core::mem::transmute(hcluster), lpszresourcetypename.into(), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer), ninbuffersize, ::core::mem::transmute(lpoutbuffer), noutbuffersize, ::core::mem::transmute(lpbytesreturned)) + ClusterResourceTypeControl(::core::mem::transmute(hcluster), lpszresourcetypename.into(), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesreturned)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ClusterResourceTypeControlAsUser<'a, P0>(hcluster: &_HCLUSTER, lpszresourcetypename: P0, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn ClusterResourceTypeControlAsUser<'a, P0>(hcluster: &_HCLUSTER, lpszresourcetypename: P0, hhostnode: ::core::option::Option<&_HNODE>, dwcontrolcode: u32, lpinbuffer: ::core::option::Option<&[u8]>, lpoutbuffer: ::core::option::Option<&mut [u8]>, lpbytesreturned: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -9833,7 +9825,7 @@ where extern "system" { fn ClusterResourceTypeControlAsUser(hcluster: *const _HCLUSTER, lpszresourcetypename: ::windows::core::PCWSTR, hhostnode: *const _HNODE, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesreturned: *mut u32) -> u32; } - ClusterResourceTypeControlAsUser(::core::mem::transmute(hcluster), lpszresourcetypename.into(), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer), ninbuffersize, ::core::mem::transmute(lpoutbuffer), noutbuffersize, ::core::mem::transmute(lpbytesreturned)) + ClusterResourceTypeControlAsUser(::core::mem::transmute(hcluster), lpszresourcetypename.into(), ::core::mem::transmute(hhostnode), dwcontrolcode, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesreturned)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -10621,7 +10613,7 @@ pub unsafe fn GetClusterNotify(hchange: &_HCHANGE, lpdwnotifykey: &mut usize, lp } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn GetClusterNotifyV2(hchange: &_HCHANGE, lpdwnotifykey: &mut usize, pfilterandtype: ::core::option::Option<&mut NOTIFY_FILTER_AND_TYPE>, buffer: ::core::option::Option<&mut u8>, lpbbuffersize: ::core::option::Option<&mut u32>, lpszobjectid: ::windows::core::PWSTR, lpcchobjectid: ::core::option::Option<&mut u32>, lpszparentid: ::windows::core::PWSTR, lpcchparentid: ::core::option::Option<&mut u32>, lpszname: ::windows::core::PWSTR, lpcchname: ::core::option::Option<&mut u32>, lpsztype: ::windows::core::PWSTR, lpcchtype: ::core::option::Option<&mut u32>, dwmilliseconds: u32) -> u32 { +pub unsafe fn GetClusterNotifyV2(hchange: &_HCHANGE, lpdwnotifykey: &mut usize, pfilterandtype: ::core::option::Option<&mut NOTIFY_FILTER_AND_TYPE>, buffer: *mut u8, lpbbuffersize: ::core::option::Option<&mut u32>, lpszobjectid: ::windows::core::PWSTR, lpcchobjectid: ::core::option::Option<&mut u32>, lpszparentid: ::windows::core::PWSTR, lpcchparentid: ::core::option::Option<&mut u32>, lpszname: ::windows::core::PWSTR, lpcchname: ::core::option::Option<&mut u32>, lpsztype: ::windows::core::PWSTR, lpcchtype: ::core::option::Option<&mut u32>, dwmilliseconds: u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetClusterNotifyV2(hchange: *const _HCHANGE, lpdwnotifykey: *mut usize, pfilterandtype: *mut NOTIFY_FILTER_AND_TYPE, buffer: *mut u8, lpbbuffersize: *mut u32, lpszobjectid: ::windows::core::PWSTR, lpcchobjectid: *mut u32, lpszparentid: ::windows::core::PWSTR, lpcchparentid: *mut u32, lpszname: ::windows::core::PWSTR, lpcchname: *mut u32, lpsztype: ::windows::core::PWSTR, lpcchtype: *mut u32, dwmilliseconds: u32) -> u32; @@ -17485,12 +17477,12 @@ pub unsafe fn MoveClusterGroup(hgroup: &_HGROUP, hdestinationnode: ::core::optio } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn MoveClusterGroupEx(hgroup: &_HGROUP, hdestinationnode: ::core::option::Option<&_HNODE>, dwmoveflags: u32, lpinbuffer: ::core::option::Option<&u8>, cbinbuffersize: u32) -> u32 { +pub unsafe fn MoveClusterGroupEx(hgroup: &_HGROUP, hdestinationnode: ::core::option::Option<&_HNODE>, dwmoveflags: u32, lpinbuffer: ::core::option::Option<&[u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MoveClusterGroupEx(hgroup: *const _HGROUP, hdestinationnode: *const _HNODE, dwmoveflags: u32, lpinbuffer: *const u8, cbinbuffersize: u32) -> u32; } - MoveClusterGroupEx(::core::mem::transmute(hgroup), ::core::mem::transmute(hdestinationnode), dwmoveflags, ::core::mem::transmute(lpinbuffer), cbinbuffersize) + MoveClusterGroupEx(::core::mem::transmute(hgroup), ::core::mem::transmute(hdestinationnode), dwmoveflags, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] pub const NINETEEN_H1_UPGRADE_VERSION: u32 = 1u32; @@ -17627,12 +17619,12 @@ pub unsafe fn OfflineClusterGroup(hgroup: &_HGROUP) -> u32 { } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn OfflineClusterGroupEx(hgroup: &_HGROUP, dwofflineflags: u32, lpinbuffer: ::core::option::Option<&u8>, cbinbuffersize: u32) -> u32 { +pub unsafe fn OfflineClusterGroupEx(hgroup: &_HGROUP, dwofflineflags: u32, lpinbuffer: ::core::option::Option<&[u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn OfflineClusterGroupEx(hgroup: *const _HGROUP, dwofflineflags: u32, lpinbuffer: *const u8, cbinbuffersize: u32) -> u32; } - OfflineClusterGroupEx(::core::mem::transmute(hgroup), dwofflineflags, ::core::mem::transmute(lpinbuffer), cbinbuffersize) + OfflineClusterGroupEx(::core::mem::transmute(hgroup), dwofflineflags, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -17645,12 +17637,12 @@ pub unsafe fn OfflineClusterResource(hresource: &_HRESOURCE) -> u32 { } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn OfflineClusterResourceEx(hresource: &_HRESOURCE, dwofflineflags: u32, lpinbuffer: ::core::option::Option<&u8>, cbinbuffersize: u32) -> u32 { +pub unsafe fn OfflineClusterResourceEx(hresource: &_HRESOURCE, dwofflineflags: u32, lpinbuffer: ::core::option::Option<&[u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn OfflineClusterResourceEx(hresource: *const _HRESOURCE, dwofflineflags: u32, lpinbuffer: *const u8, cbinbuffersize: u32) -> u32; } - OfflineClusterResourceEx(::core::mem::transmute(hresource), dwofflineflags, ::core::mem::transmute(lpinbuffer), cbinbuffersize) + OfflineClusterResourceEx(::core::mem::transmute(hresource), dwofflineflags, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -17663,12 +17655,12 @@ pub unsafe fn OnlineClusterGroup(hgroup: &_HGROUP, hdestinationnode: ::core::opt } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn OnlineClusterGroupEx(hgroup: &_HGROUP, hdestinationnode: ::core::option::Option<&_HNODE>, dwonlineflags: u32, lpinbuffer: ::core::option::Option<&u8>, cbinbuffersize: u32) -> u32 { +pub unsafe fn OnlineClusterGroupEx(hgroup: &_HGROUP, hdestinationnode: ::core::option::Option<&_HNODE>, dwonlineflags: u32, lpinbuffer: ::core::option::Option<&[u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn OnlineClusterGroupEx(hgroup: *const _HGROUP, hdestinationnode: *const _HNODE, dwonlineflags: u32, lpinbuffer: *const u8, cbinbuffersize: u32) -> u32; } - OnlineClusterGroupEx(::core::mem::transmute(hgroup), ::core::mem::transmute(hdestinationnode), dwonlineflags, ::core::mem::transmute(lpinbuffer), cbinbuffersize) + OnlineClusterGroupEx(::core::mem::transmute(hgroup), ::core::mem::transmute(hdestinationnode), dwonlineflags, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -17681,12 +17673,12 @@ pub unsafe fn OnlineClusterResource(hresource: &_HRESOURCE) -> u32 { } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn OnlineClusterResourceEx(hresource: &_HRESOURCE, dwonlineflags: u32, lpinbuffer: ::core::option::Option<&u8>, cbinbuffersize: u32) -> u32 { +pub unsafe fn OnlineClusterResourceEx(hresource: &_HRESOURCE, dwonlineflags: u32, lpinbuffer: ::core::option::Option<&[u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn OnlineClusterResourceEx(hresource: *const _HRESOURCE, dwonlineflags: u32, lpinbuffer: *const u8, cbinbuffersize: u32) -> u32; } - OnlineClusterResourceEx(::core::mem::transmute(hresource), dwonlineflags, ::core::mem::transmute(lpinbuffer), cbinbuffersize) + OnlineClusterResourceEx(::core::mem::transmute(hresource), dwonlineflags, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -19623,7 +19615,7 @@ pub unsafe fn ResUtilEnumGroupsEx(hcluster: &mut _HCLUSTER, hself: &mut _HGROUP, #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn ResUtilEnumPrivateProperties<'a, P0>(hkeyclusterkey: P0, pszoutproperties: ::windows::core::PWSTR, cboutpropertiessize: u32, pcbbytesreturned: &mut u32, pcbrequired: &mut u32) -> u32 +pub unsafe fn ResUtilEnumPrivateProperties<'a, P0>(hkeyclusterkey: P0, pszoutproperties: &mut [u8], pcbbytesreturned: &mut u32, pcbrequired: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -19631,17 +19623,17 @@ where extern "system" { fn ResUtilEnumPrivateProperties(hkeyclusterkey: super::super::System::Registry::HKEY, pszoutproperties: ::windows::core::PWSTR, cboutpropertiessize: u32, pcbbytesreturned: *mut u32, pcbrequired: *mut u32) -> u32; } - ResUtilEnumPrivateProperties(hkeyclusterkey.into(), ::core::mem::transmute(pszoutproperties), cboutpropertiessize, ::core::mem::transmute(pcbbytesreturned), ::core::mem::transmute(pcbrequired)) + ResUtilEnumPrivateProperties(hkeyclusterkey.into(), ::core::mem::transmute(pszoutproperties.as_ptr()), pszoutproperties.len() as _, ::core::mem::transmute(pcbbytesreturned), ::core::mem::transmute(pcbrequired)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ResUtilEnumProperties(ppropertytable: &RESUTIL_PROPERTY_ITEM, pszoutproperties: ::windows::core::PWSTR, cboutpropertiessize: u32, pcbbytesreturned: &mut u32, pcbrequired: &mut u32) -> u32 { +pub unsafe fn ResUtilEnumProperties(ppropertytable: &RESUTIL_PROPERTY_ITEM, pszoutproperties: &mut [u8], pcbbytesreturned: &mut u32, pcbrequired: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ResUtilEnumProperties(ppropertytable: *const RESUTIL_PROPERTY_ITEM, pszoutproperties: ::windows::core::PWSTR, cboutpropertiessize: u32, pcbbytesreturned: *mut u32, pcbrequired: *mut u32) -> u32; } - ResUtilEnumProperties(::core::mem::transmute(ppropertytable), ::core::mem::transmute(pszoutproperties), cboutpropertiessize, ::core::mem::transmute(pcbbytesreturned), ::core::mem::transmute(pcbrequired)) + ResUtilEnumProperties(::core::mem::transmute(ppropertytable), ::core::mem::transmute(pszoutproperties.as_ptr()), pszoutproperties.len() as _, ::core::mem::transmute(pcbbytesreturned), ::core::mem::transmute(pcbrequired)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -19693,7 +19685,7 @@ where } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ResUtilFindBinaryProperty<'a, P0>(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: P0, pbpropertyvalue: ::core::option::Option<&mut *mut u8>, pcbpropertyvaluesize: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn ResUtilFindBinaryProperty<'a, P0>(ppropertylist: &[u8], pszpropertyname: P0, pbpropertyvalue: *mut *mut u8, pcbpropertyvaluesize: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -19701,7 +19693,7 @@ where extern "system" { fn ResUtilFindBinaryProperty(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: ::windows::core::PCWSTR, pbpropertyvalue: *mut *mut u8, pcbpropertyvaluesize: *mut u32) -> u32; } - ResUtilFindBinaryProperty(::core::mem::transmute(ppropertylist), cbpropertylistsize, pszpropertyname.into(), ::core::mem::transmute(pbpropertyvalue), ::core::mem::transmute(pcbpropertyvaluesize)) + ResUtilFindBinaryProperty(::core::mem::transmute(ppropertylist.as_ptr()), ppropertylist.len() as _, pszpropertyname.into(), ::core::mem::transmute(pbpropertyvalue), ::core::mem::transmute(pcbpropertyvaluesize)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -19714,7 +19706,7 @@ pub unsafe fn ResUtilFindDependentDiskResourceDriveLetter(hcluster: &_HCLUSTER, } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ResUtilFindDwordProperty<'a, P0>(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: P0, pdwpropertyvalue: &mut u32) -> u32 +pub unsafe fn ResUtilFindDwordProperty<'a, P0>(ppropertylist: &[u8], pszpropertyname: P0, pdwpropertyvalue: &mut u32) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -19722,11 +19714,11 @@ where extern "system" { fn ResUtilFindDwordProperty(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: ::windows::core::PCWSTR, pdwpropertyvalue: *mut u32) -> u32; } - ResUtilFindDwordProperty(::core::mem::transmute(ppropertylist), cbpropertylistsize, pszpropertyname.into(), ::core::mem::transmute(pdwpropertyvalue)) + ResUtilFindDwordProperty(::core::mem::transmute(ppropertylist.as_ptr()), ppropertylist.len() as _, pszpropertyname.into(), ::core::mem::transmute(pdwpropertyvalue)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ResUtilFindExpandSzProperty<'a, P0>(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: P0, pszpropertyvalue: ::core::option::Option<&mut ::windows::core::PWSTR>) -> u32 +pub unsafe fn ResUtilFindExpandSzProperty<'a, P0>(ppropertylist: &[u8], pszpropertyname: P0, pszpropertyvalue: ::core::option::Option<&mut ::windows::core::PWSTR>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -19734,11 +19726,11 @@ where extern "system" { fn ResUtilFindExpandSzProperty(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: ::windows::core::PCWSTR, pszpropertyvalue: *mut ::windows::core::PWSTR) -> u32; } - ResUtilFindExpandSzProperty(::core::mem::transmute(ppropertylist), cbpropertylistsize, pszpropertyname.into(), ::core::mem::transmute(pszpropertyvalue)) + ResUtilFindExpandSzProperty(::core::mem::transmute(ppropertylist.as_ptr()), ppropertylist.len() as _, pszpropertyname.into(), ::core::mem::transmute(pszpropertyvalue)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ResUtilFindExpandedSzProperty<'a, P0>(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: P0, pszpropertyvalue: ::core::option::Option<&mut ::windows::core::PWSTR>) -> u32 +pub unsafe fn ResUtilFindExpandedSzProperty<'a, P0>(ppropertylist: &[u8], pszpropertyname: P0, pszpropertyvalue: ::core::option::Option<&mut ::windows::core::PWSTR>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -19746,12 +19738,12 @@ where extern "system" { fn ResUtilFindExpandedSzProperty(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: ::windows::core::PCWSTR, pszpropertyvalue: *mut ::windows::core::PWSTR) -> u32; } - ResUtilFindExpandedSzProperty(::core::mem::transmute(ppropertylist), cbpropertylistsize, pszpropertyname.into(), ::core::mem::transmute(pszpropertyvalue)) + ResUtilFindExpandedSzProperty(::core::mem::transmute(ppropertylist.as_ptr()), ppropertylist.len() as _, pszpropertyname.into(), ::core::mem::transmute(pszpropertyvalue)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ResUtilFindFileTimeProperty<'a, P0>(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: P0, pftpropertyvalue: &mut super::super::Foundation::FILETIME) -> u32 +pub unsafe fn ResUtilFindFileTimeProperty<'a, P0>(ppropertylist: &[u8], pszpropertyname: P0, pftpropertyvalue: &mut super::super::Foundation::FILETIME) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -19759,11 +19751,11 @@ where extern "system" { fn ResUtilFindFileTimeProperty(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: ::windows::core::PCWSTR, pftpropertyvalue: *mut super::super::Foundation::FILETIME) -> u32; } - ResUtilFindFileTimeProperty(::core::mem::transmute(ppropertylist), cbpropertylistsize, pszpropertyname.into(), ::core::mem::transmute(pftpropertyvalue)) + ResUtilFindFileTimeProperty(::core::mem::transmute(ppropertylist.as_ptr()), ppropertylist.len() as _, pszpropertyname.into(), ::core::mem::transmute(pftpropertyvalue)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ResUtilFindLongProperty<'a, P0>(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: P0, plpropertyvalue: &mut i32) -> u32 +pub unsafe fn ResUtilFindLongProperty<'a, P0>(ppropertylist: &[u8], pszpropertyname: P0, plpropertyvalue: &mut i32) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -19771,11 +19763,11 @@ where extern "system" { fn ResUtilFindLongProperty(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: ::windows::core::PCWSTR, plpropertyvalue: *mut i32) -> u32; } - ResUtilFindLongProperty(::core::mem::transmute(ppropertylist), cbpropertylistsize, pszpropertyname.into(), ::core::mem::transmute(plpropertyvalue)) + ResUtilFindLongProperty(::core::mem::transmute(ppropertylist.as_ptr()), ppropertylist.len() as _, pszpropertyname.into(), ::core::mem::transmute(plpropertyvalue)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ResUtilFindMultiSzProperty<'a, P0>(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: P0, pszpropertyvalue: &mut ::windows::core::PWSTR, pcbpropertyvaluesize: &mut u32) -> u32 +pub unsafe fn ResUtilFindMultiSzProperty<'a, P0>(ppropertylist: &[u8], pszpropertyname: P0, pszpropertyvalue: *mut ::windows::core::PWSTR, pcbpropertyvaluesize: &mut u32) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -19783,11 +19775,11 @@ where extern "system" { fn ResUtilFindMultiSzProperty(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: ::windows::core::PCWSTR, pszpropertyvalue: *mut ::windows::core::PWSTR, pcbpropertyvaluesize: *mut u32) -> u32; } - ResUtilFindMultiSzProperty(::core::mem::transmute(ppropertylist), cbpropertylistsize, pszpropertyname.into(), ::core::mem::transmute(pszpropertyvalue), ::core::mem::transmute(pcbpropertyvaluesize)) + ResUtilFindMultiSzProperty(::core::mem::transmute(ppropertylist.as_ptr()), ppropertylist.len() as _, pszpropertyname.into(), ::core::mem::transmute(pszpropertyvalue), ::core::mem::transmute(pcbpropertyvaluesize)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ResUtilFindSzProperty<'a, P0>(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: P0, pszpropertyvalue: ::core::option::Option<&mut ::windows::core::PWSTR>) -> u32 +pub unsafe fn ResUtilFindSzProperty<'a, P0>(ppropertylist: &[u8], pszpropertyname: P0, pszpropertyvalue: ::core::option::Option<&mut ::windows::core::PWSTR>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -19795,11 +19787,11 @@ where extern "system" { fn ResUtilFindSzProperty(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: ::windows::core::PCWSTR, pszpropertyvalue: *mut ::windows::core::PWSTR) -> u32; } - ResUtilFindSzProperty(::core::mem::transmute(ppropertylist), cbpropertylistsize, pszpropertyname.into(), ::core::mem::transmute(pszpropertyvalue)) + ResUtilFindSzProperty(::core::mem::transmute(ppropertylist.as_ptr()), ppropertylist.len() as _, pszpropertyname.into(), ::core::mem::transmute(pszpropertyvalue)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ResUtilFindULargeIntegerProperty<'a, P0>(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: P0, plpropertyvalue: &mut u64) -> u32 +pub unsafe fn ResUtilFindULargeIntegerProperty<'a, P0>(ppropertylist: &[u8], pszpropertyname: P0, plpropertyvalue: &mut u64) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -19807,7 +19799,7 @@ where extern "system" { fn ResUtilFindULargeIntegerProperty(ppropertylist: *const ::core::ffi::c_void, cbpropertylistsize: u32, pszpropertyname: ::windows::core::PCWSTR, plpropertyvalue: *mut u64) -> u32; } - ResUtilFindULargeIntegerProperty(::core::mem::transmute(ppropertylist), cbpropertylistsize, pszpropertyname.into(), ::core::mem::transmute(plpropertyvalue)) + ResUtilFindULargeIntegerProperty(::core::mem::transmute(ppropertylist.as_ptr()), ppropertylist.len() as _, pszpropertyname.into(), ::core::mem::transmute(plpropertyvalue)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -19831,7 +19823,7 @@ pub unsafe fn ResUtilFreeParameterBlock(poutparams: &mut u8, pinparams: &u8, ppr #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] #[inline] -pub unsafe fn ResUtilGetAllProperties<'a, P0>(hkeyclusterkey: P0, ppropertytable: &RESUTIL_PROPERTY_ITEM, poutpropertylist: *mut ::core::ffi::c_void, cboutpropertylistsize: u32, pcbbytesreturned: &mut u32, pcbrequired: &mut u32) -> u32 +pub unsafe fn ResUtilGetAllProperties<'a, P0>(hkeyclusterkey: P0, ppropertytable: &RESUTIL_PROPERTY_ITEM, poutpropertylist: &mut [u8], pcbbytesreturned: &mut u32, pcbrequired: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -19839,21 +19831,21 @@ where extern "system" { fn ResUtilGetAllProperties(hkeyclusterkey: super::super::System::Registry::HKEY, ppropertytable: *const RESUTIL_PROPERTY_ITEM, poutpropertylist: *mut ::core::ffi::c_void, cboutpropertylistsize: u32, pcbbytesreturned: *mut u32, pcbrequired: *mut u32) -> u32; } - ResUtilGetAllProperties(hkeyclusterkey.into(), ::core::mem::transmute(ppropertytable), ::core::mem::transmute(poutpropertylist), cboutpropertylistsize, ::core::mem::transmute(pcbbytesreturned), ::core::mem::transmute(pcbrequired)) + ResUtilGetAllProperties(hkeyclusterkey.into(), ::core::mem::transmute(ppropertytable), ::core::mem::transmute(poutpropertylist.as_ptr()), poutpropertylist.len() as _, ::core::mem::transmute(pcbbytesreturned), ::core::mem::transmute(pcbrequired)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ResUtilGetBinaryProperty(ppboutvalue: &mut *mut u8, pcboutvaluesize: &mut u32, pvaluestruct: &CLUSPROP_BINARY, pboldvalue: ::core::option::Option<&u8>, cboldvaluesize: u32, pppropertylist: &mut *mut u8, pcbpropertylistsize: &mut u32) -> u32 { +pub unsafe fn ResUtilGetBinaryProperty(ppboutvalue: &mut *mut u8, pcboutvaluesize: &mut u32, pvaluestruct: &CLUSPROP_BINARY, pboldvalue: ::core::option::Option<&[u8]>, pppropertylist: *mut *mut u8, pcbpropertylistsize: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ResUtilGetBinaryProperty(ppboutvalue: *mut *mut u8, pcboutvaluesize: *mut u32, pvaluestruct: *const CLUSPROP_BINARY, pboldvalue: *const u8, cboldvaluesize: u32, pppropertylist: *mut *mut u8, pcbpropertylistsize: *mut u32) -> u32; } - ResUtilGetBinaryProperty(::core::mem::transmute(ppboutvalue), ::core::mem::transmute(pcboutvaluesize), ::core::mem::transmute(pvaluestruct), ::core::mem::transmute(pboldvalue), cboldvaluesize, ::core::mem::transmute(pppropertylist), ::core::mem::transmute(pcbpropertylistsize)) + ResUtilGetBinaryProperty(::core::mem::transmute(ppboutvalue), ::core::mem::transmute(pcboutvaluesize), ::core::mem::transmute(pvaluestruct), ::core::mem::transmute(pboldvalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pboldvalue.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pppropertylist), ::core::mem::transmute(pcbpropertylistsize)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn ResUtilGetBinaryValue<'a, P0, P1>(hkeyclusterkey: P0, pszvaluename: P1, ppboutvalue: ::core::option::Option<&mut *mut u8>, pcboutvaluesize: &mut u32) -> u32 +pub unsafe fn ResUtilGetBinaryValue<'a, P0, P1>(hkeyclusterkey: P0, pszvaluename: P1, ppboutvalue: *mut *mut u8, pcboutvaluesize: &mut u32) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -19971,20 +19963,17 @@ pub unsafe fn ResUtilGetLongProperty(ploutvalue: &mut i32, pvaluestruct: &CLUSPR } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ResUtilGetMultiSzProperty<'a, P0>(ppszoutvalue: &mut ::windows::core::PWSTR, pcboutvaluesize: &mut u32, pvaluestruct: &CLUSPROP_SZ, pszoldvalue: P0, cboldvaluesize: u32, pppropertylist: &mut *mut u8, pcbpropertylistsize: &mut u32) -> u32 -where - P0: ::std::convert::Into<::windows::core::PCWSTR>, -{ +pub unsafe fn ResUtilGetMultiSzProperty(ppszoutvalue: &mut ::windows::core::PWSTR, pcboutvaluesize: &mut u32, pvaluestruct: &CLUSPROP_SZ, pszoldvalue: ::core::option::Option<&[u8]>, pppropertylist: *mut *mut u8, pcbpropertylistsize: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ResUtilGetMultiSzProperty(ppszoutvalue: *mut ::windows::core::PWSTR, pcboutvaluesize: *mut u32, pvaluestruct: *const CLUSPROP_SZ, pszoldvalue: ::windows::core::PCWSTR, cboldvaluesize: u32, pppropertylist: *mut *mut u8, pcbpropertylistsize: *mut u32) -> u32; } - ResUtilGetMultiSzProperty(::core::mem::transmute(ppszoutvalue), ::core::mem::transmute(pcboutvaluesize), ::core::mem::transmute(pvaluestruct), pszoldvalue.into(), cboldvaluesize, ::core::mem::transmute(pppropertylist), ::core::mem::transmute(pcbpropertylistsize)) + ResUtilGetMultiSzProperty(::core::mem::transmute(ppszoutvalue), ::core::mem::transmute(pcboutvaluesize), ::core::mem::transmute(pvaluestruct), ::core::mem::transmute(pszoldvalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszoldvalue.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pppropertylist), ::core::mem::transmute(pcbpropertylistsize)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn ResUtilGetPrivateProperties<'a, P0>(hkeyclusterkey: P0, poutpropertylist: *mut ::core::ffi::c_void, cboutpropertylistsize: u32, pcbbytesreturned: &mut u32, pcbrequired: &mut u32) -> u32 +pub unsafe fn ResUtilGetPrivateProperties<'a, P0>(hkeyclusterkey: P0, poutpropertylist: &mut [u8], pcbbytesreturned: &mut u32, pcbrequired: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -19992,12 +19981,12 @@ where extern "system" { fn ResUtilGetPrivateProperties(hkeyclusterkey: super::super::System::Registry::HKEY, poutpropertylist: *mut ::core::ffi::c_void, cboutpropertylistsize: u32, pcbbytesreturned: *mut u32, pcbrequired: *mut u32) -> u32; } - ResUtilGetPrivateProperties(hkeyclusterkey.into(), ::core::mem::transmute(poutpropertylist), cboutpropertylistsize, ::core::mem::transmute(pcbbytesreturned), ::core::mem::transmute(pcbrequired)) + ResUtilGetPrivateProperties(hkeyclusterkey.into(), ::core::mem::transmute(poutpropertylist.as_ptr()), poutpropertylist.len() as _, ::core::mem::transmute(pcbbytesreturned), ::core::mem::transmute(pcbrequired)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] #[inline] -pub unsafe fn ResUtilGetProperties<'a, P0>(hkeyclusterkey: P0, ppropertytable: &RESUTIL_PROPERTY_ITEM, poutpropertylist: *mut ::core::ffi::c_void, cboutpropertylistsize: u32, pcbbytesreturned: &mut u32, pcbrequired: &mut u32) -> u32 +pub unsafe fn ResUtilGetProperties<'a, P0>(hkeyclusterkey: P0, ppropertytable: &RESUTIL_PROPERTY_ITEM, poutpropertylist: &mut [u8], pcbbytesreturned: &mut u32, pcbrequired: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -20005,7 +19994,7 @@ where extern "system" { fn ResUtilGetProperties(hkeyclusterkey: super::super::System::Registry::HKEY, ppropertytable: *const RESUTIL_PROPERTY_ITEM, poutpropertylist: *mut ::core::ffi::c_void, cboutpropertylistsize: u32, pcbbytesreturned: *mut u32, pcbrequired: *mut u32) -> u32; } - ResUtilGetProperties(hkeyclusterkey.into(), ::core::mem::transmute(ppropertytable), ::core::mem::transmute(poutpropertylist), cboutpropertylistsize, ::core::mem::transmute(pcbbytesreturned), ::core::mem::transmute(pcbrequired)) + ResUtilGetProperties(hkeyclusterkey.into(), ::core::mem::transmute(ppropertytable), ::core::mem::transmute(poutpropertylist.as_ptr()), poutpropertylist.len() as _, ::core::mem::transmute(pcbbytesreturned), ::core::mem::transmute(pcbrequired)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] @@ -20037,12 +20026,12 @@ where #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ResUtilGetPropertyFormats(ppropertytable: &RESUTIL_PROPERTY_ITEM, poutpropertyformatlist: *mut ::core::ffi::c_void, cbpropertyformatlistsize: u32, pcbbytesreturned: &mut u32, pcbrequired: &mut u32) -> u32 { +pub unsafe fn ResUtilGetPropertyFormats(ppropertytable: &RESUTIL_PROPERTY_ITEM, poutpropertyformatlist: &mut [u8], pcbbytesreturned: &mut u32, pcbrequired: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ResUtilGetPropertyFormats(ppropertytable: *const RESUTIL_PROPERTY_ITEM, poutpropertyformatlist: *mut ::core::ffi::c_void, cbpropertyformatlistsize: u32, pcbbytesreturned: *mut u32, pcbrequired: *mut u32) -> u32; } - ResUtilGetPropertyFormats(::core::mem::transmute(ppropertytable), ::core::mem::transmute(poutpropertyformatlist), cbpropertyformatlistsize, ::core::mem::transmute(pcbbytesreturned), ::core::mem::transmute(pcbrequired)) + ResUtilGetPropertyFormats(::core::mem::transmute(ppropertytable), ::core::mem::transmute(poutpropertyformatlist.as_ptr()), poutpropertyformatlist.len() as _, ::core::mem::transmute(pcbbytesreturned), ::core::mem::transmute(pcbrequired)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] @@ -20203,7 +20192,7 @@ where } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ResUtilGetSzProperty<'a, P0>(ppszoutvalue: &mut ::windows::core::PWSTR, pvaluestruct: &CLUSPROP_SZ, pszoldvalue: P0, pppropertylist: &mut *mut u8, pcbpropertylistsize: &mut u32) -> u32 +pub unsafe fn ResUtilGetSzProperty<'a, P0>(ppszoutvalue: &mut ::windows::core::PWSTR, pvaluestruct: &CLUSPROP_SZ, pszoldvalue: P0, pppropertylist: *mut *mut u8, pcbpropertylistsize: &mut u32) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -20346,7 +20335,7 @@ pub unsafe fn ResUtilResourcesEqual(hself: &mut _HRESOURCE, hresource: &mut _HRE #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn ResUtilSetBinaryValue<'a, P0, P1>(hkeyclusterkey: P0, pszvaluename: P1, pbnewvalue: &u8, cbnewvaluesize: u32, ppboutvalue: ::core::option::Option<&mut *mut u8>, pcboutvaluesize: &mut u32) -> u32 +pub unsafe fn ResUtilSetBinaryValue<'a, P0, P1>(hkeyclusterkey: P0, pszvaluename: P1, pbnewvalue: &[u8], ppboutvalue: *mut *mut u8, pcboutvaluesize: &mut u32) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -20355,7 +20344,7 @@ where extern "system" { fn ResUtilSetBinaryValue(hkeyclusterkey: super::super::System::Registry::HKEY, pszvaluename: ::windows::core::PCWSTR, pbnewvalue: *const u8, cbnewvaluesize: u32, ppboutvalue: *mut *mut u8, pcboutvaluesize: *mut u32) -> u32; } - ResUtilSetBinaryValue(hkeyclusterkey.into(), pszvaluename.into(), ::core::mem::transmute(pbnewvalue), cbnewvaluesize, ::core::mem::transmute(ppboutvalue), ::core::mem::transmute(pcboutvaluesize)) + ResUtilSetBinaryValue(hkeyclusterkey.into(), pszvaluename.into(), ::core::mem::transmute(pbnewvalue.as_ptr()), pbnewvalue.len() as _, ::core::mem::transmute(ppboutvalue), ::core::mem::transmute(pcboutvaluesize)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] @@ -20389,22 +20378,21 @@ where #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn ResUtilSetMultiSzValue<'a, P0, P1, P2>(hkeyclusterkey: P0, pszvaluename: P1, psznewvalue: P2, cbnewvaluesize: u32, ppszoutvalue: ::core::option::Option<&mut ::windows::core::PWSTR>, pcboutvaluesize: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn ResUtilSetMultiSzValue<'a, P0, P1>(hkeyclusterkey: P0, pszvaluename: P1, psznewvalue: &[u8], ppszoutvalue: *mut ::windows::core::PWSTR, pcboutvaluesize: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, - P2: ::std::convert::Into<::windows::core::PCWSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ResUtilSetMultiSzValue(hkeyclusterkey: super::super::System::Registry::HKEY, pszvaluename: ::windows::core::PCWSTR, psznewvalue: ::windows::core::PCWSTR, cbnewvaluesize: u32, ppszoutvalue: *mut ::windows::core::PWSTR, pcboutvaluesize: *mut u32) -> u32; } - ResUtilSetMultiSzValue(hkeyclusterkey.into(), pszvaluename.into(), psznewvalue.into(), cbnewvaluesize, ::core::mem::transmute(ppszoutvalue), ::core::mem::transmute(pcboutvaluesize)) + ResUtilSetMultiSzValue(hkeyclusterkey.into(), pszvaluename.into(), ::core::mem::transmute(psznewvalue.as_ptr()), psznewvalue.len() as _, ::core::mem::transmute(ppszoutvalue), ::core::mem::transmute(pcboutvaluesize)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn ResUtilSetPrivatePropertyList<'a, P0>(hkeyclusterkey: P0, pinpropertylist: *const ::core::ffi::c_void, cbinpropertylistsize: u32) -> u32 +pub unsafe fn ResUtilSetPrivatePropertyList<'a, P0>(hkeyclusterkey: P0, pinpropertylist: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -20412,7 +20400,7 @@ where extern "system" { fn ResUtilSetPrivatePropertyList(hkeyclusterkey: super::super::System::Registry::HKEY, pinpropertylist: *const ::core::ffi::c_void, cbinpropertylistsize: u32) -> u32; } - ResUtilSetPrivatePropertyList(hkeyclusterkey.into(), ::core::mem::transmute(pinpropertylist), cbinpropertylistsize) + ResUtilSetPrivatePropertyList(hkeyclusterkey.into(), ::core::mem::transmute(pinpropertylist.as_ptr()), pinpropertylist.len() as _) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] @@ -20444,7 +20432,7 @@ where #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] #[inline] -pub unsafe fn ResUtilSetPropertyTable<'a, P0, P1>(hkeyclusterkey: P0, ppropertytable: &RESUTIL_PROPERTY_ITEM, reserved: *mut ::core::ffi::c_void, ballowunknownproperties: P1, pinpropertylist: *const ::core::ffi::c_void, cbinpropertylistsize: u32, poutparams: ::core::option::Option<&mut u8>) -> u32 +pub unsafe fn ResUtilSetPropertyTable<'a, P0, P1>(hkeyclusterkey: P0, ppropertytable: &RESUTIL_PROPERTY_ITEM, reserved: *mut ::core::ffi::c_void, ballowunknownproperties: P1, pinpropertylist: &[u8], poutparams: ::core::option::Option<&mut u8>) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -20453,7 +20441,7 @@ where extern "system" { fn ResUtilSetPropertyTable(hkeyclusterkey: super::super::System::Registry::HKEY, ppropertytable: *const RESUTIL_PROPERTY_ITEM, reserved: *mut ::core::ffi::c_void, ballowunknownproperties: super::super::Foundation::BOOL, pinpropertylist: *const ::core::ffi::c_void, cbinpropertylistsize: u32, poutparams: *mut u8) -> u32; } - ResUtilSetPropertyTable(hkeyclusterkey.into(), ::core::mem::transmute(ppropertytable), ::core::mem::transmute(reserved), ballowunknownproperties.into(), ::core::mem::transmute(pinpropertylist), cbinpropertylistsize, ::core::mem::transmute(poutparams)) + ResUtilSetPropertyTable(hkeyclusterkey.into(), ::core::mem::transmute(ppropertytable), ::core::mem::transmute(reserved), ballowunknownproperties.into(), ::core::mem::transmute(pinpropertylist.as_ptr()), pinpropertylist.len() as _, ::core::mem::transmute(poutparams)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] @@ -20542,7 +20530,7 @@ where #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] #[inline] -pub unsafe fn ResUtilSetUnknownProperties<'a, P0>(hkeyclusterkey: P0, ppropertytable: &RESUTIL_PROPERTY_ITEM, pinpropertylist: *const ::core::ffi::c_void, cbinpropertylistsize: u32) -> u32 +pub unsafe fn ResUtilSetUnknownProperties<'a, P0>(hkeyclusterkey: P0, ppropertytable: &RESUTIL_PROPERTY_ITEM, pinpropertylist: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -20550,12 +20538,12 @@ where extern "system" { fn ResUtilSetUnknownProperties(hkeyclusterkey: super::super::System::Registry::HKEY, ppropertytable: *const RESUTIL_PROPERTY_ITEM, pinpropertylist: *const ::core::ffi::c_void, cbinpropertylistsize: u32) -> u32; } - ResUtilSetUnknownProperties(hkeyclusterkey.into(), ::core::mem::transmute(ppropertytable), ::core::mem::transmute(pinpropertylist), cbinpropertylistsize) + ResUtilSetUnknownProperties(hkeyclusterkey.into(), ::core::mem::transmute(ppropertytable), ::core::mem::transmute(pinpropertylist.as_ptr()), pinpropertylist.len() as _) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn ResUtilSetValueEx<'a, P0, P1>(hkeyclusterkey: P0, valuename: P1, valuetype: u32, valuedata: &u8, valuesize: u32, flags: u32) -> u32 +pub unsafe fn ResUtilSetValueEx<'a, P0, P1>(hkeyclusterkey: P0, valuename: P1, valuetype: u32, valuedata: &[u8], flags: u32) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -20564,7 +20552,7 @@ where extern "system" { fn ResUtilSetValueEx(hkeyclusterkey: super::super::System::Registry::HKEY, valuename: ::windows::core::PCWSTR, valuetype: u32, valuedata: *const u8, valuesize: u32, flags: u32) -> u32; } - ResUtilSetValueEx(hkeyclusterkey.into(), valuename.into(), valuetype, ::core::mem::transmute(valuedata), valuesize, flags) + ResUtilSetValueEx(hkeyclusterkey.into(), valuename.into(), valuetype, ::core::mem::transmute(valuedata.as_ptr()), valuedata.len() as _, flags) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -20618,17 +20606,17 @@ where } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn ResUtilVerifyPrivatePropertyList(pinpropertylist: *const ::core::ffi::c_void, cbinpropertylistsize: u32) -> u32 { +pub unsafe fn ResUtilVerifyPrivatePropertyList(pinpropertylist: &[u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ResUtilVerifyPrivatePropertyList(pinpropertylist: *const ::core::ffi::c_void, cbinpropertylistsize: u32) -> u32; } - ResUtilVerifyPrivatePropertyList(::core::mem::transmute(pinpropertylist), cbinpropertylistsize) + ResUtilVerifyPrivatePropertyList(::core::mem::transmute(pinpropertylist.as_ptr()), pinpropertylist.len() as _) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ResUtilVerifyPropertyTable<'a, P0>(ppropertytable: &RESUTIL_PROPERTY_ITEM, reserved: *mut ::core::ffi::c_void, ballowunknownproperties: P0, pinpropertylist: *const ::core::ffi::c_void, cbinpropertylistsize: u32, poutparams: ::core::option::Option<&mut u8>) -> u32 +pub unsafe fn ResUtilVerifyPropertyTable<'a, P0>(ppropertytable: &RESUTIL_PROPERTY_ITEM, reserved: *mut ::core::ffi::c_void, ballowunknownproperties: P0, pinpropertylist: &[u8], poutparams: ::core::option::Option<&mut u8>) -> u32 where P0: ::std::convert::Into, { @@ -20636,7 +20624,7 @@ where extern "system" { fn ResUtilVerifyPropertyTable(ppropertytable: *const RESUTIL_PROPERTY_ITEM, reserved: *mut ::core::ffi::c_void, ballowunknownproperties: super::super::Foundation::BOOL, pinpropertylist: *const ::core::ffi::c_void, cbinpropertylistsize: u32, poutparams: *mut u8) -> u32; } - ResUtilVerifyPropertyTable(::core::mem::transmute(ppropertytable), ::core::mem::transmute(reserved), ballowunknownproperties.into(), ::core::mem::transmute(pinpropertylist), cbinpropertylistsize, ::core::mem::transmute(poutparams)) + ResUtilVerifyPropertyTable(::core::mem::transmute(ppropertytable), ::core::mem::transmute(reserved), ballowunknownproperties.into(), ::core::mem::transmute(pinpropertylist.as_ptr()), pinpropertylist.len() as _, ::core::mem::transmute(poutparams)) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -21293,12 +21281,12 @@ where } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] -pub unsafe fn SetClusterGroupNodeList(hgroup: &_HGROUP, nodelist: &[*const _HNODE]) -> u32 { +pub unsafe fn SetClusterGroupNodeList(hgroup: &_HGROUP, nodelist: ::core::option::Option<&[*const _HNODE]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetClusterGroupNodeList(hgroup: *const _HGROUP, nodecount: u32, nodelist: *const *const _HNODE) -> u32; } - SetClusterGroupNodeList(::core::mem::transmute(hgroup), nodelist.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(nodelist))) + SetClusterGroupNodeList(::core::mem::transmute(hgroup), nodelist.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(nodelist.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -21343,7 +21331,7 @@ pub unsafe fn SetClusterNetworkPriorityOrder(hcluster: &_HCLUSTER, networklist: extern "system" { fn SetClusterNetworkPriorityOrder(hcluster: *const _HCLUSTER, networkcount: u32, networklist: *const *const _HNETWORK) -> u32; } - SetClusterNetworkPriorityOrder(::core::mem::transmute(hcluster), networklist.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(networklist))) + SetClusterNetworkPriorityOrder(::core::mem::transmute(hcluster), networklist.len() as _, ::core::mem::transmute(networklist.as_ptr())) } #[doc = "*Required features: `\"Win32_Networking_Clustering\"`*"] #[inline] @@ -21384,7 +21372,7 @@ where #[doc = "*Required features: `\"Win32_Networking_Clustering\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetClusterServiceAccountPassword<'a, P0, P1>(lpszclustername: P0, lpsznewpassword: P1, dwflags: u32, lpreturnstatusbuffer: ::core::option::Option<&mut CLUSTER_SET_PASSWORD_STATUS>, lpcbreturnstatusbuffersize: &mut u32) -> u32 +pub unsafe fn SetClusterServiceAccountPassword<'a, P0, P1>(lpszclustername: P0, lpsznewpassword: P1, dwflags: u32, lpreturnstatusbuffer: *mut CLUSTER_SET_PASSWORD_STATUS, lpcbreturnstatusbuffersize: &mut u32) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, diff --git a/crates/libs/windows/src/Windows/Win32/Networking/HttpServer/mod.rs b/crates/libs/windows/src/Windows/Win32/Networking/HttpServer/mod.rs index 49348bef20..c6e48bf6fb 100644 --- a/crates/libs/windows/src/Windows/Win32/Networking/HttpServer/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Networking/HttpServer/mod.rs @@ -5207,7 +5207,7 @@ where #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn HttpDeleteServiceConfiguration<'a, P0>(servicehandle: P0, configid: HTTP_SERVICE_CONFIG_ID, pconfiginformation: *const ::core::ffi::c_void, configinformationlength: u32, poverlapped: &mut super::super::System::IO::OVERLAPPED) -> u32 +pub unsafe fn HttpDeleteServiceConfiguration<'a, P0>(servicehandle: P0, configid: HTTP_SERVICE_CONFIG_ID, pconfiginformation: &[u8], poverlapped: &mut super::super::System::IO::OVERLAPPED) -> u32 where P0: ::std::convert::Into, { @@ -5215,7 +5215,7 @@ where extern "system" { fn HttpDeleteServiceConfiguration(servicehandle: super::super::Foundation::HANDLE, configid: HTTP_SERVICE_CONFIG_ID, pconfiginformation: *const ::core::ffi::c_void, configinformationlength: u32, poverlapped: *mut super::super::System::IO::OVERLAPPED) -> u32; } - HttpDeleteServiceConfiguration(servicehandle.into(), configid, ::core::mem::transmute(pconfiginformation), configinformationlength, ::core::mem::transmute(poverlapped)) + HttpDeleteServiceConfiguration(servicehandle.into(), configid, ::core::mem::transmute(pconfiginformation.as_ptr()), pconfiginformation.len() as _, ::core::mem::transmute(poverlapped)) } #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5288,7 +5288,7 @@ where #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HttpQueryRequestQueueProperty<'a, P0>(requestqueuehandle: P0, property: HTTP_SERVER_PROPERTY, propertyinformation: *mut ::core::ffi::c_void, propertyinformationlength: u32, reserved1: u32, returnlength: ::core::option::Option<&mut u32>, reserved2: *mut ::core::ffi::c_void) -> u32 +pub unsafe fn HttpQueryRequestQueueProperty<'a, P0>(requestqueuehandle: P0, property: HTTP_SERVER_PROPERTY, propertyinformation: ::core::option::Option<&mut [u8]>, reserved1: u32, returnlength: ::core::option::Option<&mut u32>, reserved2: *mut ::core::ffi::c_void) -> u32 where P0: ::std::convert::Into, { @@ -5296,21 +5296,21 @@ where extern "system" { fn HttpQueryRequestQueueProperty(requestqueuehandle: super::super::Foundation::HANDLE, property: HTTP_SERVER_PROPERTY, propertyinformation: *mut ::core::ffi::c_void, propertyinformationlength: u32, reserved1: u32, returnlength: *mut u32, reserved2: *mut ::core::ffi::c_void) -> u32; } - HttpQueryRequestQueueProperty(requestqueuehandle.into(), property, ::core::mem::transmute(propertyinformation), propertyinformationlength, reserved1, ::core::mem::transmute(returnlength), ::core::mem::transmute(reserved2)) + HttpQueryRequestQueueProperty(requestqueuehandle.into(), property, ::core::mem::transmute(propertyinformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertyinformation.as_deref().map_or(0, |slice| slice.len() as _), reserved1, ::core::mem::transmute(returnlength), ::core::mem::transmute(reserved2)) } #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`*"] #[inline] -pub unsafe fn HttpQueryServerSessionProperty(serversessionid: u64, property: HTTP_SERVER_PROPERTY, propertyinformation: *mut ::core::ffi::c_void, propertyinformationlength: u32, returnlength: ::core::option::Option<&mut u32>) -> u32 { +pub unsafe fn HttpQueryServerSessionProperty(serversessionid: u64, property: HTTP_SERVER_PROPERTY, propertyinformation: ::core::option::Option<&mut [u8]>, returnlength: ::core::option::Option<&mut u32>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HttpQueryServerSessionProperty(serversessionid: u64, property: HTTP_SERVER_PROPERTY, propertyinformation: *mut ::core::ffi::c_void, propertyinformationlength: u32, returnlength: *mut u32) -> u32; } - HttpQueryServerSessionProperty(serversessionid, property, ::core::mem::transmute(propertyinformation), propertyinformationlength, ::core::mem::transmute(returnlength)) + HttpQueryServerSessionProperty(serversessionid, property, ::core::mem::transmute(propertyinformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertyinformation.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(returnlength)) } #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn HttpQueryServiceConfiguration<'a, P0>(servicehandle: P0, configid: HTTP_SERVICE_CONFIG_ID, pinput: *const ::core::ffi::c_void, inputlength: u32, poutput: *mut ::core::ffi::c_void, outputlength: u32, preturnlength: ::core::option::Option<&mut u32>, poverlapped: &mut super::super::System::IO::OVERLAPPED) -> u32 +pub unsafe fn HttpQueryServiceConfiguration<'a, P0>(servicehandle: P0, configid: HTTP_SERVICE_CONFIG_ID, pinput: ::core::option::Option<&[u8]>, poutput: ::core::option::Option<&mut [u8]>, preturnlength: ::core::option::Option<&mut u32>, poverlapped: &mut super::super::System::IO::OVERLAPPED) -> u32 where P0: ::std::convert::Into, { @@ -5318,21 +5318,21 @@ where extern "system" { fn HttpQueryServiceConfiguration(servicehandle: super::super::Foundation::HANDLE, configid: HTTP_SERVICE_CONFIG_ID, pinput: *const ::core::ffi::c_void, inputlength: u32, poutput: *mut ::core::ffi::c_void, outputlength: u32, preturnlength: *mut u32, poverlapped: *mut super::super::System::IO::OVERLAPPED) -> u32; } - HttpQueryServiceConfiguration(servicehandle.into(), configid, ::core::mem::transmute(pinput), inputlength, ::core::mem::transmute(poutput), outputlength, ::core::mem::transmute(preturnlength), ::core::mem::transmute(poverlapped)) + HttpQueryServiceConfiguration(servicehandle.into(), configid, ::core::mem::transmute(pinput.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pinput.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(poutput.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), poutput.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(preturnlength), ::core::mem::transmute(poverlapped)) } #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`*"] #[inline] -pub unsafe fn HttpQueryUrlGroupProperty(urlgroupid: u64, property: HTTP_SERVER_PROPERTY, propertyinformation: *mut ::core::ffi::c_void, propertyinformationlength: u32, returnlength: ::core::option::Option<&mut u32>) -> u32 { +pub unsafe fn HttpQueryUrlGroupProperty(urlgroupid: u64, property: HTTP_SERVER_PROPERTY, propertyinformation: ::core::option::Option<&mut [u8]>, returnlength: ::core::option::Option<&mut u32>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HttpQueryUrlGroupProperty(urlgroupid: u64, property: HTTP_SERVER_PROPERTY, propertyinformation: *mut ::core::ffi::c_void, propertyinformationlength: u32, returnlength: *mut u32) -> u32; } - HttpQueryUrlGroupProperty(urlgroupid, property, ::core::mem::transmute(propertyinformation), propertyinformationlength, ::core::mem::transmute(returnlength)) + HttpQueryUrlGroupProperty(urlgroupid, property, ::core::mem::transmute(propertyinformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), propertyinformation.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(returnlength)) } #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn HttpReadFragmentFromCache<'a, P0, P1>(requestqueuehandle: P0, urlprefix: P1, byterange: &mut HTTP_BYTE_RANGE, buffer: *mut ::core::ffi::c_void, bufferlength: u32, bytesread: ::core::option::Option<&mut u32>, overlapped: &mut super::super::System::IO::OVERLAPPED) -> u32 +pub unsafe fn HttpReadFragmentFromCache<'a, P0, P1>(requestqueuehandle: P0, urlprefix: P1, byterange: &mut HTTP_BYTE_RANGE, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>, overlapped: &mut super::super::System::IO::OVERLAPPED) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -5341,12 +5341,12 @@ where extern "system" { fn HttpReadFragmentFromCache(requestqueuehandle: super::super::Foundation::HANDLE, urlprefix: ::windows::core::PCWSTR, byterange: *mut HTTP_BYTE_RANGE, buffer: *mut ::core::ffi::c_void, bufferlength: u32, bytesread: *mut u32, overlapped: *mut super::super::System::IO::OVERLAPPED) -> u32; } - HttpReadFragmentFromCache(requestqueuehandle.into(), urlprefix.into(), ::core::mem::transmute(byterange), ::core::mem::transmute(buffer), bufferlength, ::core::mem::transmute(bytesread), ::core::mem::transmute(overlapped)) + HttpReadFragmentFromCache(requestqueuehandle.into(), urlprefix.into(), ::core::mem::transmute(byterange), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread), ::core::mem::transmute(overlapped)) } #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn HttpReceiveClientCertificate<'a, P0>(requestqueuehandle: P0, connectionid: u64, flags: u32, sslclientcertinfo: &mut HTTP_SSL_CLIENT_CERT_INFO, sslclientcertinfosize: u32, bytesreceived: ::core::option::Option<&mut u32>, overlapped: &mut super::super::System::IO::OVERLAPPED) -> u32 +pub unsafe fn HttpReceiveClientCertificate<'a, P0>(requestqueuehandle: P0, connectionid: u64, flags: u32, sslclientcertinfo: &mut [u8], bytesreceived: ::core::option::Option<&mut u32>, overlapped: &mut super::super::System::IO::OVERLAPPED) -> u32 where P0: ::std::convert::Into, { @@ -5354,12 +5354,12 @@ where extern "system" { fn HttpReceiveClientCertificate(requestqueuehandle: super::super::Foundation::HANDLE, connectionid: u64, flags: u32, sslclientcertinfo: *mut HTTP_SSL_CLIENT_CERT_INFO, sslclientcertinfosize: u32, bytesreceived: *mut u32, overlapped: *mut super::super::System::IO::OVERLAPPED) -> u32; } - HttpReceiveClientCertificate(requestqueuehandle.into(), connectionid, flags, ::core::mem::transmute(sslclientcertinfo), sslclientcertinfosize, ::core::mem::transmute(bytesreceived), ::core::mem::transmute(overlapped)) + HttpReceiveClientCertificate(requestqueuehandle.into(), connectionid, flags, ::core::mem::transmute(sslclientcertinfo.as_ptr()), sslclientcertinfo.len() as _, ::core::mem::transmute(bytesreceived), ::core::mem::transmute(overlapped)) } #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`, `\"Win32_Foundation\"`, `\"Win32_Networking_WinSock\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinSock", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn HttpReceiveHttpRequest<'a, P0>(requestqueuehandle: P0, requestid: u64, flags: HTTP_RECEIVE_HTTP_REQUEST_FLAGS, requestbuffer: &mut HTTP_REQUEST_V2, requestbufferlength: u32, bytesreturned: ::core::option::Option<&mut u32>, overlapped: &mut super::super::System::IO::OVERLAPPED) -> u32 +pub unsafe fn HttpReceiveHttpRequest<'a, P0>(requestqueuehandle: P0, requestid: u64, flags: HTTP_RECEIVE_HTTP_REQUEST_FLAGS, requestbuffer: &mut [u8], bytesreturned: ::core::option::Option<&mut u32>, overlapped: &mut super::super::System::IO::OVERLAPPED) -> u32 where P0: ::std::convert::Into, { @@ -5367,12 +5367,12 @@ where extern "system" { fn HttpReceiveHttpRequest(requestqueuehandle: super::super::Foundation::HANDLE, requestid: u64, flags: HTTP_RECEIVE_HTTP_REQUEST_FLAGS, requestbuffer: *mut HTTP_REQUEST_V2, requestbufferlength: u32, bytesreturned: *mut u32, overlapped: *mut super::super::System::IO::OVERLAPPED) -> u32; } - HttpReceiveHttpRequest(requestqueuehandle.into(), requestid, flags, ::core::mem::transmute(requestbuffer), requestbufferlength, ::core::mem::transmute(bytesreturned), ::core::mem::transmute(overlapped)) + HttpReceiveHttpRequest(requestqueuehandle.into(), requestid, flags, ::core::mem::transmute(requestbuffer.as_ptr()), requestbuffer.len() as _, ::core::mem::transmute(bytesreturned), ::core::mem::transmute(overlapped)) } #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn HttpReceiveRequestEntityBody<'a, P0>(requestqueuehandle: P0, requestid: u64, flags: u32, entitybuffer: *mut ::core::ffi::c_void, entitybufferlength: u32, bytesreturned: ::core::option::Option<&mut u32>, overlapped: &mut super::super::System::IO::OVERLAPPED) -> u32 +pub unsafe fn HttpReceiveRequestEntityBody<'a, P0>(requestqueuehandle: P0, requestid: u64, flags: u32, entitybuffer: &mut [u8], bytesreturned: ::core::option::Option<&mut u32>, overlapped: &mut super::super::System::IO::OVERLAPPED) -> u32 where P0: ::std::convert::Into, { @@ -5380,7 +5380,7 @@ where extern "system" { fn HttpReceiveRequestEntityBody(requestqueuehandle: super::super::Foundation::HANDLE, requestid: u64, flags: u32, entitybuffer: *mut ::core::ffi::c_void, entitybufferlength: u32, bytesreturned: *mut u32, overlapped: *mut super::super::System::IO::OVERLAPPED) -> u32; } - HttpReceiveRequestEntityBody(requestqueuehandle.into(), requestid, flags, ::core::mem::transmute(entitybuffer), entitybufferlength, ::core::mem::transmute(bytesreturned), ::core::mem::transmute(overlapped)) + HttpReceiveRequestEntityBody(requestqueuehandle.into(), requestid, flags, ::core::mem::transmute(entitybuffer.as_ptr()), entitybuffer.len() as _, ::core::mem::transmute(bytesreturned), ::core::mem::transmute(overlapped)) } #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5424,7 +5424,7 @@ where #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn HttpSendResponseEntityBody<'a, P0>(requestqueuehandle: P0, requestid: u64, flags: u32, entitychunks: &[HTTP_DATA_CHUNK], bytessent: &mut u32, reserved1: *mut ::core::ffi::c_void, reserved2: u32, overlapped: &mut super::super::System::IO::OVERLAPPED, logdata: &mut HTTP_LOG_DATA) -> u32 +pub unsafe fn HttpSendResponseEntityBody<'a, P0>(requestqueuehandle: P0, requestid: u64, flags: u32, entitychunks: ::core::option::Option<&[HTTP_DATA_CHUNK]>, bytessent: &mut u32, reserved1: *mut ::core::ffi::c_void, reserved2: u32, overlapped: &mut super::super::System::IO::OVERLAPPED, logdata: &mut HTTP_LOG_DATA) -> u32 where P0: ::std::convert::Into, { @@ -5432,12 +5432,12 @@ where extern "system" { fn HttpSendResponseEntityBody(requestqueuehandle: super::super::Foundation::HANDLE, requestid: u64, flags: u32, entitychunkcount: u16, entitychunks: *const HTTP_DATA_CHUNK, bytessent: *mut u32, reserved1: *mut ::core::ffi::c_void, reserved2: u32, overlapped: *mut super::super::System::IO::OVERLAPPED, logdata: *mut HTTP_LOG_DATA) -> u32; } - HttpSendResponseEntityBody(requestqueuehandle.into(), requestid, flags, entitychunks.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(entitychunks)), ::core::mem::transmute(bytessent), ::core::mem::transmute(reserved1), reserved2, ::core::mem::transmute(overlapped), ::core::mem::transmute(logdata)) + HttpSendResponseEntityBody(requestqueuehandle.into(), requestid, flags, entitychunks.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entitychunks.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(bytessent), ::core::mem::transmute(reserved1), reserved2, ::core::mem::transmute(overlapped), ::core::mem::transmute(logdata)) } #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn HttpSetRequestProperty<'a, P0>(requestqueuehandle: P0, id: u64, propertyid: HTTP_REQUEST_PROPERTY, input: *const ::core::ffi::c_void, inputpropertysize: u32, overlapped: &super::super::System::IO::OVERLAPPED) -> u32 +pub unsafe fn HttpSetRequestProperty<'a, P0>(requestqueuehandle: P0, id: u64, propertyid: HTTP_REQUEST_PROPERTY, input: ::core::option::Option<&[u8]>, overlapped: &super::super::System::IO::OVERLAPPED) -> u32 where P0: ::std::convert::Into, { @@ -5445,12 +5445,12 @@ where extern "system" { fn HttpSetRequestProperty(requestqueuehandle: super::super::Foundation::HANDLE, id: u64, propertyid: HTTP_REQUEST_PROPERTY, input: *const ::core::ffi::c_void, inputpropertysize: u32, overlapped: *const super::super::System::IO::OVERLAPPED) -> u32; } - HttpSetRequestProperty(requestqueuehandle.into(), id, propertyid, ::core::mem::transmute(input), inputpropertysize, ::core::mem::transmute(overlapped)) + HttpSetRequestProperty(requestqueuehandle.into(), id, propertyid, ::core::mem::transmute(input.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), input.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(overlapped)) } #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HttpSetRequestQueueProperty<'a, P0>(requestqueuehandle: P0, property: HTTP_SERVER_PROPERTY, propertyinformation: *const ::core::ffi::c_void, propertyinformationlength: u32, reserved1: u32, reserved2: *mut ::core::ffi::c_void) -> u32 +pub unsafe fn HttpSetRequestQueueProperty<'a, P0>(requestqueuehandle: P0, property: HTTP_SERVER_PROPERTY, propertyinformation: &[u8], reserved1: u32, reserved2: *mut ::core::ffi::c_void) -> u32 where P0: ::std::convert::Into, { @@ -5458,21 +5458,21 @@ where extern "system" { fn HttpSetRequestQueueProperty(requestqueuehandle: super::super::Foundation::HANDLE, property: HTTP_SERVER_PROPERTY, propertyinformation: *const ::core::ffi::c_void, propertyinformationlength: u32, reserved1: u32, reserved2: *mut ::core::ffi::c_void) -> u32; } - HttpSetRequestQueueProperty(requestqueuehandle.into(), property, ::core::mem::transmute(propertyinformation), propertyinformationlength, reserved1, ::core::mem::transmute(reserved2)) + HttpSetRequestQueueProperty(requestqueuehandle.into(), property, ::core::mem::transmute(propertyinformation.as_ptr()), propertyinformation.len() as _, reserved1, ::core::mem::transmute(reserved2)) } #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`*"] #[inline] -pub unsafe fn HttpSetServerSessionProperty(serversessionid: u64, property: HTTP_SERVER_PROPERTY, propertyinformation: *const ::core::ffi::c_void, propertyinformationlength: u32) -> u32 { +pub unsafe fn HttpSetServerSessionProperty(serversessionid: u64, property: HTTP_SERVER_PROPERTY, propertyinformation: &[u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HttpSetServerSessionProperty(serversessionid: u64, property: HTTP_SERVER_PROPERTY, propertyinformation: *const ::core::ffi::c_void, propertyinformationlength: u32) -> u32; } - HttpSetServerSessionProperty(serversessionid, property, ::core::mem::transmute(propertyinformation), propertyinformationlength) + HttpSetServerSessionProperty(serversessionid, property, ::core::mem::transmute(propertyinformation.as_ptr()), propertyinformation.len() as _) } #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn HttpSetServiceConfiguration<'a, P0>(servicehandle: P0, configid: HTTP_SERVICE_CONFIG_ID, pconfiginformation: *const ::core::ffi::c_void, configinformationlength: u32, poverlapped: &mut super::super::System::IO::OVERLAPPED) -> u32 +pub unsafe fn HttpSetServiceConfiguration<'a, P0>(servicehandle: P0, configid: HTTP_SERVICE_CONFIG_ID, pconfiginformation: &[u8], poverlapped: &mut super::super::System::IO::OVERLAPPED) -> u32 where P0: ::std::convert::Into, { @@ -5480,16 +5480,16 @@ where extern "system" { fn HttpSetServiceConfiguration(servicehandle: super::super::Foundation::HANDLE, configid: HTTP_SERVICE_CONFIG_ID, pconfiginformation: *const ::core::ffi::c_void, configinformationlength: u32, poverlapped: *mut super::super::System::IO::OVERLAPPED) -> u32; } - HttpSetServiceConfiguration(servicehandle.into(), configid, ::core::mem::transmute(pconfiginformation), configinformationlength, ::core::mem::transmute(poverlapped)) + HttpSetServiceConfiguration(servicehandle.into(), configid, ::core::mem::transmute(pconfiginformation.as_ptr()), pconfiginformation.len() as _, ::core::mem::transmute(poverlapped)) } #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`*"] #[inline] -pub unsafe fn HttpSetUrlGroupProperty(urlgroupid: u64, property: HTTP_SERVER_PROPERTY, propertyinformation: *const ::core::ffi::c_void, propertyinformationlength: u32) -> u32 { +pub unsafe fn HttpSetUrlGroupProperty(urlgroupid: u64, property: HTTP_SERVER_PROPERTY, propertyinformation: &[u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HttpSetUrlGroupProperty(urlgroupid: u64, property: HTTP_SERVER_PROPERTY, propertyinformation: *const ::core::ffi::c_void, propertyinformationlength: u32) -> u32; } - HttpSetUrlGroupProperty(urlgroupid, property, ::core::mem::transmute(propertyinformation), propertyinformationlength) + HttpSetUrlGroupProperty(urlgroupid, property, ::core::mem::transmute(propertyinformation.as_ptr()), propertyinformation.len() as _) } #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5516,7 +5516,7 @@ pub unsafe fn HttpTerminate(flags: HTTP_INITIALIZE, preserved: *mut ::core::ffi: #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn HttpUpdateServiceConfiguration<'a, P0>(handle: P0, configid: HTTP_SERVICE_CONFIG_ID, configinfo: *const ::core::ffi::c_void, configinfolength: u32, overlapped: &mut super::super::System::IO::OVERLAPPED) -> u32 +pub unsafe fn HttpUpdateServiceConfiguration<'a, P0>(handle: P0, configid: HTTP_SERVICE_CONFIG_ID, configinfo: &[u8], overlapped: &mut super::super::System::IO::OVERLAPPED) -> u32 where P0: ::std::convert::Into, { @@ -5524,7 +5524,7 @@ where extern "system" { fn HttpUpdateServiceConfiguration(handle: super::super::Foundation::HANDLE, configid: HTTP_SERVICE_CONFIG_ID, configinfo: *const ::core::ffi::c_void, configinfolength: u32, overlapped: *mut super::super::System::IO::OVERLAPPED) -> u32; } - HttpUpdateServiceConfiguration(handle.into(), configid, ::core::mem::transmute(configinfo), configinfolength, ::core::mem::transmute(overlapped)) + HttpUpdateServiceConfiguration(handle.into(), configid, ::core::mem::transmute(configinfo.as_ptr()), configinfo.len() as _, ::core::mem::transmute(overlapped)) } #[doc = "*Required features: `\"Win32_Networking_HttpServer\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] diff --git a/crates/libs/windows/src/Windows/Win32/Networking/Ldap/mod.rs b/crates/libs/windows/src/Windows/Win32/Networking/Ldap/mod.rs index 5e7bc7d5c9..787d3e7a1d 100644 --- a/crates/libs/windows/src/Windows/Win32/Networking/Ldap/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Networking/Ldap/mod.rs @@ -1047,7 +1047,7 @@ pub unsafe fn LdapUTF8ToUnicode(lpsrcstr: &[u8], lpdeststr: &mut [u16]) -> i32 { extern "system" { fn LdapUTF8ToUnicode(lpsrcstr: ::windows::core::PCSTR, cchsrc: i32, lpdeststr: ::windows::core::PWSTR, cchdest: i32) -> i32; } - LdapUTF8ToUnicode(::core::mem::transmute(::windows::core::as_ptr_or_null(lpsrcstr)), lpsrcstr.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdeststr)), lpdeststr.len() as _) + LdapUTF8ToUnicode(::core::mem::transmute(lpsrcstr.as_ptr()), lpsrcstr.len() as _, ::core::mem::transmute(lpdeststr.as_ptr()), lpdeststr.len() as _) } #[doc = "*Required features: `\"Win32_Networking_Ldap\"`*"] #[inline] @@ -1056,7 +1056,7 @@ pub unsafe fn LdapUnicodeToUTF8(lpsrcstr: &[u16], lpdeststr: &mut [u8]) -> i32 { extern "system" { fn LdapUnicodeToUTF8(lpsrcstr: ::windows::core::PCWSTR, cchsrc: i32, lpdeststr: ::windows::core::PSTR, cchdest: i32) -> i32; } - LdapUnicodeToUTF8(::core::mem::transmute(::windows::core::as_ptr_or_null(lpsrcstr)), lpsrcstr.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdeststr)), lpdeststr.len() as _) + LdapUnicodeToUTF8(::core::mem::transmute(lpsrcstr.as_ptr()), lpsrcstr.len() as _, ::core::mem::transmute(lpdeststr.as_ptr()), lpdeststr.len() as _) } #[doc = "*Required features: `\"Win32_Networking_Ldap\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2274,39 +2274,30 @@ pub unsafe fn ldap_err2stringW(err: u32) -> ::windows::core::PWSTR { } #[doc = "*Required features: `\"Win32_Networking_Ldap\"`*"] #[inline] -pub unsafe fn ldap_escape_filter_element<'a, P0>(sourcefilterelement: P0, sourcelength: u32, destfilterelement: ::windows::core::PSTR, destlength: u32) -> u32 -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn ldap_escape_filter_element(sourcefilterelement: &[u8], destfilterelement: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ldap_escape_filter_element(sourcefilterelement: ::windows::core::PCSTR, sourcelength: u32, destfilterelement: ::windows::core::PSTR, destlength: u32) -> u32; } - ldap_escape_filter_element(sourcefilterelement.into(), sourcelength, ::core::mem::transmute(destfilterelement), destlength) + ldap_escape_filter_element(::core::mem::transmute(sourcefilterelement.as_ptr()), sourcefilterelement.len() as _, ::core::mem::transmute(destfilterelement.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), destfilterelement.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_Ldap\"`*"] #[inline] -pub unsafe fn ldap_escape_filter_elementA<'a, P0>(sourcefilterelement: P0, sourcelength: u32, destfilterelement: ::windows::core::PSTR, destlength: u32) -> u32 -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn ldap_escape_filter_elementA(sourcefilterelement: &[u8], destfilterelement: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ldap_escape_filter_elementA(sourcefilterelement: ::windows::core::PCSTR, sourcelength: u32, destfilterelement: ::windows::core::PSTR, destlength: u32) -> u32; } - ldap_escape_filter_elementA(sourcefilterelement.into(), sourcelength, ::core::mem::transmute(destfilterelement), destlength) + ldap_escape_filter_elementA(::core::mem::transmute(sourcefilterelement.as_ptr()), sourcefilterelement.len() as _, ::core::mem::transmute(destfilterelement.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), destfilterelement.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_Ldap\"`*"] #[inline] -pub unsafe fn ldap_escape_filter_elementW<'a, P0>(sourcefilterelement: P0, sourcelength: u32, destfilterelement: ::windows::core::PWSTR, destlength: u32) -> u32 -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn ldap_escape_filter_elementW(sourcefilterelement: &[u8], destfilterelement: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ldap_escape_filter_elementW(sourcefilterelement: ::windows::core::PCSTR, sourcelength: u32, destfilterelement: ::windows::core::PWSTR, destlength: u32) -> u32; } - ldap_escape_filter_elementW(sourcefilterelement.into(), sourcelength, ::core::mem::transmute(destfilterelement), destlength) + ldap_escape_filter_elementW(::core::mem::transmute(sourcefilterelement.as_ptr()), sourcefilterelement.len() as _, ::core::mem::transmute(destfilterelement.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), destfilterelement.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_Ldap\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/Networking/NetworkListManager/mod.rs b/crates/libs/windows/src/Windows/Win32/Networking/NetworkListManager/mod.rs index 5bd00ca58b..96675d9aa5 100644 --- a/crates/libs/windows/src/Windows/Win32/Networking/NetworkListManager/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Networking/NetworkListManager/mod.rs @@ -13,7 +13,7 @@ impl IEnumNetworkConnections { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -124,7 +124,7 @@ impl IEnumNetworks { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -679,7 +679,7 @@ impl INetworkCostManager { (::windows::core::Interface::vtable(self).GetDataPlanStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdataplanstatus), ::core::mem::transmute(pdestipaddr)).ok() } pub unsafe fn SetDestinationAddresses(&self, pdestipaddrlist: &[NLM_SOCKADDR], bappend: i16) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetDestinationAddresses)(::windows::core::Interface::as_raw(self), pdestipaddrlist.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdestipaddrlist)), bappend).ok() + (::windows::core::Interface::vtable(self).SetDestinationAddresses)(::windows::core::Interface::as_raw(self), pdestipaddrlist.len() as _, ::core::mem::transmute(pdestipaddrlist.as_ptr()), bappend).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/Networking/RemoteDifferentialCompression/mod.rs b/crates/libs/windows/src/Windows/Win32/Networking/RemoteDifferentialCompression/mod.rs index 4b12c585ce..5fb945224d 100644 --- a/crates/libs/windows/src/Windows/Win32/Networking/RemoteDifferentialCompression/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Networking/RemoteDifferentialCompression/mod.rs @@ -332,7 +332,7 @@ impl IRdcGenerator { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).Process)(::windows::core::Interface::as_raw(self), endofinput.into(), ::core::mem::transmute(endofoutput), ::core::mem::transmute(inputbuffer), outputbuffers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(outputbuffers)), ::core::mem::transmute(rdc_errorcode)).ok() + (::windows::core::Interface::vtable(self).Process)(::windows::core::Interface::as_raw(self), endofinput.into(), ::core::mem::transmute(endofoutput), ::core::mem::transmute(inputbuffer), outputbuffers.len() as _, ::core::mem::transmute(outputbuffers.as_ptr()), ::core::mem::transmute(rdc_errorcode)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -524,7 +524,7 @@ impl IRdcLibrary { } pub unsafe fn CreateGenerator(&self, igeneratorparametersarray: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateGenerator)(::windows::core::Interface::as_raw(self), igeneratorparametersarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(igeneratorparametersarray)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateGenerator)(::windows::core::Interface::as_raw(self), igeneratorparametersarray.len() as _, ::core::mem::transmute(igeneratorparametersarray.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateComparator<'a, P0>(&self, iseedsignaturesfile: P0, comparatorbuffersize: u32) -> ::windows::core::Result where diff --git a/crates/libs/windows/src/Windows/Win32/Networking/WebSocket/mod.rs b/crates/libs/windows/src/Windows/Win32/Networking/WebSocket/mod.rs index 292a445293..547f0a92da 100644 --- a/crates/libs/windows/src/Windows/Win32/Networking/WebSocket/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Networking/WebSocket/mod.rs @@ -383,7 +383,7 @@ where } #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"] #[inline] -pub unsafe fn WebSocketBeginClientHandshake<'a, P0>(hwebsocket: P0, pszsubprotocols: &[::windows::core::PSTR], pszextensions: &[::windows::core::PSTR], pinitialheaders: &[WEB_SOCKET_HTTP_HEADER], padditionalheaders: &mut *mut WEB_SOCKET_HTTP_HEADER, puladditionalheadercount: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn WebSocketBeginClientHandshake<'a, P0>(hwebsocket: P0, pszsubprotocols: ::core::option::Option<&[::windows::core::PSTR]>, pszextensions: ::core::option::Option<&[::windows::core::PSTR]>, pinitialheaders: ::core::option::Option<&[WEB_SOCKET_HTTP_HEADER]>, padditionalheaders: *mut *mut WEB_SOCKET_HTTP_HEADER, puladditionalheadercount: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -391,11 +391,22 @@ where extern "system" { fn WebSocketBeginClientHandshake(hwebsocket: WEB_SOCKET_HANDLE, pszsubprotocols: *const ::windows::core::PSTR, ulsubprotocolcount: u32, pszextensions: *const ::windows::core::PSTR, ulextensioncount: u32, pinitialheaders: *const WEB_SOCKET_HTTP_HEADER, ulinitialheadercount: u32, padditionalheaders: *mut *mut WEB_SOCKET_HTTP_HEADER, puladditionalheadercount: *mut u32) -> ::windows::core::HRESULT; } - WebSocketBeginClientHandshake(hwebsocket.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pszsubprotocols)), pszsubprotocols.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pszextensions)), pszextensions.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinitialheaders)), pinitialheaders.len() as _, ::core::mem::transmute(padditionalheaders), ::core::mem::transmute(puladditionalheadercount)).ok() + WebSocketBeginClientHandshake( + hwebsocket.into(), + ::core::mem::transmute(pszsubprotocols.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pszsubprotocols.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pszextensions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pszextensions.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pinitialheaders.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pinitialheaders.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(padditionalheaders), + ::core::mem::transmute(puladditionalheadercount), + ) + .ok() } #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"] #[inline] -pub unsafe fn WebSocketBeginServerHandshake<'a, P0, P1>(hwebsocket: P0, pszsubprotocolselected: P1, pszextensionselected: &[::windows::core::PSTR], prequestheaders: &[WEB_SOCKET_HTTP_HEADER], presponseheaders: &mut *mut WEB_SOCKET_HTTP_HEADER, pulresponseheadercount: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn WebSocketBeginServerHandshake<'a, P0, P1>(hwebsocket: P0, pszsubprotocolselected: P1, pszextensionselected: ::core::option::Option<&[::windows::core::PSTR]>, prequestheaders: &[WEB_SOCKET_HTTP_HEADER], presponseheaders: *mut *mut WEB_SOCKET_HTTP_HEADER, pulresponseheadercount: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -404,7 +415,7 @@ where extern "system" { fn WebSocketBeginServerHandshake(hwebsocket: WEB_SOCKET_HANDLE, pszsubprotocolselected: ::windows::core::PCSTR, pszextensionselected: *const ::windows::core::PSTR, ulextensionselectedcount: u32, prequestheaders: *const WEB_SOCKET_HTTP_HEADER, ulrequestheadercount: u32, presponseheaders: *mut *mut WEB_SOCKET_HTTP_HEADER, pulresponseheadercount: *mut u32) -> ::windows::core::HRESULT; } - WebSocketBeginServerHandshake(hwebsocket.into(), pszsubprotocolselected.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pszextensionselected)), pszextensionselected.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prequestheaders)), prequestheaders.len() as _, ::core::mem::transmute(presponseheaders), ::core::mem::transmute(pulresponseheadercount)).ok() + WebSocketBeginServerHandshake(hwebsocket.into(), pszsubprotocolselected.into(), ::core::mem::transmute(pszextensionselected.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszextensionselected.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prequestheaders.as_ptr()), prequestheaders.len() as _, ::core::mem::transmute(presponseheaders), ::core::mem::transmute(pulresponseheadercount)).ok() } #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"] #[inline] @@ -426,7 +437,7 @@ pub unsafe fn WebSocketCreateClientHandle(pproperties: &[WEB_SOCKET_PROPERTY]) - fn WebSocketCreateClientHandle(pproperties: *const WEB_SOCKET_PROPERTY, ulpropertycount: u32, phwebsocket: *mut WEB_SOCKET_HANDLE) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - WebSocketCreateClientHandle(::core::mem::transmute(::windows::core::as_ptr_or_null(pproperties)), pproperties.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + WebSocketCreateClientHandle(::core::mem::transmute(pproperties.as_ptr()), pproperties.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"] #[inline] @@ -436,7 +447,7 @@ pub unsafe fn WebSocketCreateServerHandle(pproperties: &[WEB_SOCKET_PROPERTY]) - fn WebSocketCreateServerHandle(pproperties: *const WEB_SOCKET_PROPERTY, ulpropertycount: u32, phwebsocket: *mut WEB_SOCKET_HANDLE) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - WebSocketCreateServerHandle(::core::mem::transmute(::windows::core::as_ptr_or_null(pproperties)), pproperties.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + WebSocketCreateServerHandle(::core::mem::transmute(pproperties.as_ptr()), pproperties.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"] #[inline] @@ -452,7 +463,7 @@ where } #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"] #[inline] -pub unsafe fn WebSocketEndClientHandshake<'a, P0>(hwebsocket: P0, presponseheaders: &[WEB_SOCKET_HTTP_HEADER], pulselectedextensions: ::core::option::Option<&mut u32>, pulselectedextensioncount: ::core::option::Option<&mut u32>, pulselectedsubprotocol: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> +pub unsafe fn WebSocketEndClientHandshake<'a, P0>(hwebsocket: P0, presponseheaders: &[WEB_SOCKET_HTTP_HEADER], pulselectedextensions: *mut u32, pulselectedextensioncount: ::core::option::Option<&mut u32>, pulselectedsubprotocol: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -460,7 +471,7 @@ where extern "system" { fn WebSocketEndClientHandshake(hwebsocket: WEB_SOCKET_HANDLE, presponseheaders: *const WEB_SOCKET_HTTP_HEADER, ulreponseheadercount: u32, pulselectedextensions: *mut u32, pulselectedextensioncount: *mut u32, pulselectedsubprotocol: *mut u32) -> ::windows::core::HRESULT; } - WebSocketEndClientHandshake(hwebsocket.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(presponseheaders)), presponseheaders.len() as _, ::core::mem::transmute(pulselectedextensions), ::core::mem::transmute(pulselectedextensioncount), ::core::mem::transmute(pulselectedsubprotocol)).ok() + WebSocketEndClientHandshake(hwebsocket.into(), ::core::mem::transmute(presponseheaders.as_ptr()), presponseheaders.len() as _, ::core::mem::transmute(pulselectedextensions), ::core::mem::transmute(pulselectedextensioncount), ::core::mem::transmute(pulselectedsubprotocol)).ok() } #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"] #[inline] @@ -476,7 +487,7 @@ where } #[doc = "*Required features: `\"Win32_Networking_WebSocket\"`*"] #[inline] -pub unsafe fn WebSocketGetAction<'a, P0>(hwebsocket: P0, eactionqueue: WEB_SOCKET_ACTION_QUEUE, pdatabuffers: &mut WEB_SOCKET_BUFFER, puldatabuffercount: &mut u32, paction: &mut WEB_SOCKET_ACTION, pbuffertype: &mut WEB_SOCKET_BUFFER_TYPE, pvapplicationcontext: *mut *mut ::core::ffi::c_void, pvactioncontext: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> +pub unsafe fn WebSocketGetAction<'a, P0>(hwebsocket: P0, eactionqueue: WEB_SOCKET_ACTION_QUEUE, pdatabuffers: *mut WEB_SOCKET_BUFFER, puldatabuffercount: &mut u32, paction: &mut WEB_SOCKET_ACTION, pbuffertype: &mut WEB_SOCKET_BUFFER_TYPE, pvapplicationcontext: *mut *mut ::core::ffi::c_void, pvactioncontext: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { diff --git a/crates/libs/windows/src/Windows/Win32/Networking/WinHttp/mod.rs b/crates/libs/windows/src/Windows/Win32/Networking/WinHttp/mod.rs index b30a748c35..c8abfaaf85 100644 --- a/crates/libs/windows/src/Windows/Win32/Networking/WinHttp/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Networking/WinHttp/mod.rs @@ -2686,7 +2686,7 @@ pub unsafe fn WinHttpAddRequestHeaders(hrequest: *mut ::core::ffi::c_void, lpszh extern "system" { fn WinHttpAddRequestHeaders(hrequest: *mut ::core::ffi::c_void, lpszheaders: ::windows::core::PCWSTR, dwheaderslength: u32, dwmodifiers: u32) -> super::super::Foundation::BOOL; } - WinHttpAddRequestHeaders(::core::mem::transmute(hrequest), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpszheaders)), lpszheaders.len() as _, dwmodifiers) + WinHttpAddRequestHeaders(::core::mem::transmute(hrequest), ::core::mem::transmute(lpszheaders.as_ptr()), lpszheaders.len() as _, dwmodifiers) } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`*"] #[inline] @@ -2695,7 +2695,7 @@ pub unsafe fn WinHttpAddRequestHeadersEx(hrequest: *mut ::core::ffi::c_void, dwm extern "system" { fn WinHttpAddRequestHeadersEx(hrequest: *mut ::core::ffi::c_void, dwmodifiers: u32, ullflags: u64, ullextra: u64, cheaders: u32, pheaders: *const WINHTTP_EXTENDED_HEADER) -> u32; } - WinHttpAddRequestHeadersEx(::core::mem::transmute(hrequest), dwmodifiers, ullflags, ullextra, pheaders.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pheaders))) + WinHttpAddRequestHeadersEx(::core::mem::transmute(hrequest), dwmodifiers, ullflags, ullextra, pheaders.len() as _, ::core::mem::transmute(pheaders.as_ptr())) } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2737,7 +2737,7 @@ pub unsafe fn WinHttpCrackUrl(pwszurl: &[u16], dwflags: u32, lpurlcomponents: &m extern "system" { fn WinHttpCrackUrl(pwszurl: ::windows::core::PCWSTR, dwurllength: u32, dwflags: u32, lpurlcomponents: *mut URL_COMPONENTS) -> super::super::Foundation::BOOL; } - WinHttpCrackUrl(::core::mem::transmute(::windows::core::as_ptr_or_null(pwszurl)), pwszurl.len() as _, dwflags, ::core::mem::transmute(lpurlcomponents)) + WinHttpCrackUrl(::core::mem::transmute(pwszurl.as_ptr()), pwszurl.len() as _, dwflags, ::core::mem::transmute(lpurlcomponents)) } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`*"] #[inline] @@ -2856,7 +2856,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WinHttpGetProxyForUrlEx2<'a, P0>(hresolver: *const ::core::ffi::c_void, pcwszurl: P0, pautoproxyoptions: &WINHTTP_AUTOPROXY_OPTIONS, cbinterfaceselectioncontext: u32, pinterfaceselectioncontext: ::core::option::Option<&u8>, pcontext: usize) -> u32 +pub unsafe fn WinHttpGetProxyForUrlEx2<'a, P0>(hresolver: *const ::core::ffi::c_void, pcwszurl: P0, pautoproxyoptions: &WINHTTP_AUTOPROXY_OPTIONS, pinterfaceselectioncontext: ::core::option::Option<&[u8]>, pcontext: usize) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2864,7 +2864,7 @@ where extern "system" { fn WinHttpGetProxyForUrlEx2(hresolver: *const ::core::ffi::c_void, pcwszurl: ::windows::core::PCWSTR, pautoproxyoptions: *const WINHTTP_AUTOPROXY_OPTIONS, cbinterfaceselectioncontext: u32, pinterfaceselectioncontext: *const u8, pcontext: usize) -> u32; } - WinHttpGetProxyForUrlEx2(::core::mem::transmute(hresolver), pcwszurl.into(), ::core::mem::transmute(pautoproxyoptions), cbinterfaceselectioncontext, ::core::mem::transmute(pinterfaceselectioncontext), pcontext) + WinHttpGetProxyForUrlEx2(::core::mem::transmute(hresolver), pcwszurl.into(), ::core::mem::transmute(pautoproxyoptions), pinterfaceselectioncontext.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pinterfaceselectioncontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pcontext) } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2968,7 +2968,7 @@ where } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`*"] #[inline] -pub unsafe fn WinHttpQueryHeadersEx(hrequest: *const ::core::ffi::c_void, dwinfolevel: u32, ullflags: u64, uicodepage: u32, pdwindex: ::core::option::Option<&mut u32>, pheadername: ::core::option::Option<&WINHTTP_HEADER_NAME>, pbuffer: *mut ::core::ffi::c_void, pdwbufferlength: &mut u32, ppheaders: ::core::option::Option<&mut *mut WINHTTP_EXTENDED_HEADER>, pdwheaderscount: &mut u32) -> u32 { +pub unsafe fn WinHttpQueryHeadersEx(hrequest: *const ::core::ffi::c_void, dwinfolevel: u32, ullflags: u64, uicodepage: u32, pdwindex: ::core::option::Option<&mut u32>, pheadername: ::core::option::Option<&WINHTTP_HEADER_NAME>, pbuffer: *mut ::core::ffi::c_void, pdwbufferlength: &mut u32, ppheaders: *mut *mut WINHTTP_EXTENDED_HEADER, pdwheaderscount: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinHttpQueryHeadersEx(hrequest: *const ::core::ffi::c_void, dwinfolevel: u32, ullflags: u64, uicodepage: u32, pdwindex: *mut u32, pheadername: *const WINHTTP_HEADER_NAME, pbuffer: *mut ::core::ffi::c_void, pdwbufferlength: *mut u32, ppheaders: *mut *mut WINHTTP_EXTENDED_HEADER, pdwheaderscount: *mut u32) -> u32; @@ -2988,21 +2988,21 @@ pub unsafe fn WinHttpQueryOption(hinternet: *mut ::core::ffi::c_void, dwoption: #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WinHttpReadData(hrequest: *mut ::core::ffi::c_void, lpbuffer: *mut ::core::ffi::c_void, dwnumberofbytestoread: u32, lpdwnumberofbytesread: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn WinHttpReadData(hrequest: *mut ::core::ffi::c_void, lpbuffer: &mut [u8], lpdwnumberofbytesread: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinHttpReadData(hrequest: *mut ::core::ffi::c_void, lpbuffer: *mut ::core::ffi::c_void, dwnumberofbytestoread: u32, lpdwnumberofbytesread: *mut u32) -> super::super::Foundation::BOOL; } - WinHttpReadData(::core::mem::transmute(hrequest), ::core::mem::transmute(lpbuffer), dwnumberofbytestoread, ::core::mem::transmute(lpdwnumberofbytesread)) + WinHttpReadData(::core::mem::transmute(hrequest), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpdwnumberofbytesread)) } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`*"] #[inline] -pub unsafe fn WinHttpReadDataEx(hrequest: *mut ::core::ffi::c_void, lpbuffer: *mut ::core::ffi::c_void, dwnumberofbytestoread: u32, lpdwnumberofbytesread: &mut u32, ullflags: u64, cbproperty: u32, pvproperty: *const ::core::ffi::c_void) -> u32 { +pub unsafe fn WinHttpReadDataEx(hrequest: *mut ::core::ffi::c_void, lpbuffer: &mut [u8], lpdwnumberofbytesread: &mut u32, ullflags: u64, pvproperty: ::core::option::Option<&[u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinHttpReadDataEx(hrequest: *mut ::core::ffi::c_void, lpbuffer: *mut ::core::ffi::c_void, dwnumberofbytestoread: u32, lpdwnumberofbytesread: *mut u32, ullflags: u64, cbproperty: u32, pvproperty: *const ::core::ffi::c_void) -> u32; } - WinHttpReadDataEx(::core::mem::transmute(hrequest), ::core::mem::transmute(lpbuffer), dwnumberofbytestoread, ::core::mem::transmute(lpdwnumberofbytesread), ullflags, cbproperty, ::core::mem::transmute(pvproperty)) + WinHttpReadDataEx(::core::mem::transmute(hrequest), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpdwnumberofbytesread), ullflags, pvproperty.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pvproperty.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3041,12 +3041,12 @@ pub unsafe fn WinHttpResetAutoProxy(hsession: *const ::core::ffi::c_void, dwflag #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WinHttpSendRequest(hrequest: *mut ::core::ffi::c_void, lpszheaders: &[u16], lpoptional: *const ::core::ffi::c_void, dwoptionallength: u32, dwtotallength: u32, dwcontext: usize) -> super::super::Foundation::BOOL { +pub unsafe fn WinHttpSendRequest(hrequest: *mut ::core::ffi::c_void, lpszheaders: ::core::option::Option<&[u16]>, lpoptional: ::core::option::Option<&[u8]>, dwtotallength: u32, dwcontext: usize) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinHttpSendRequest(hrequest: *mut ::core::ffi::c_void, lpszheaders: ::windows::core::PCWSTR, dwheaderslength: u32, lpoptional: *const ::core::ffi::c_void, dwoptionallength: u32, dwtotallength: u32, dwcontext: usize) -> super::super::Foundation::BOOL; } - WinHttpSendRequest(::core::mem::transmute(hrequest), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpszheaders)), lpszheaders.len() as _, ::core::mem::transmute(lpoptional), dwoptionallength, dwtotallength, dwcontext) + WinHttpSendRequest(::core::mem::transmute(hrequest), ::core::mem::transmute(lpszheaders.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszheaders.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoptional.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoptional.as_deref().map_or(0, |slice| slice.len() as _), dwtotallength, dwcontext) } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3075,12 +3075,12 @@ pub unsafe fn WinHttpSetDefaultProxyConfiguration(pproxyinfo: &mut WINHTTP_PROXY #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WinHttpSetOption(hinternet: *const ::core::ffi::c_void, dwoption: u32, lpbuffer: &[u8]) -> super::super::Foundation::BOOL { +pub unsafe fn WinHttpSetOption(hinternet: *const ::core::ffi::c_void, dwoption: u32, lpbuffer: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinHttpSetOption(hinternet: *const ::core::ffi::c_void, dwoption: u32, lpbuffer: *const ::core::ffi::c_void, dwbufferlength: u32) -> super::super::Foundation::BOOL; } - WinHttpSetOption(::core::mem::transmute(hinternet), dwoption, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpbuffer)), lpbuffer.len() as _) + WinHttpSetOption(::core::mem::transmute(hinternet), dwoption, ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3122,7 +3122,7 @@ pub unsafe fn WinHttpTimeFromSystemTime(pst: &super::super::Foundation::SYSTEMTI extern "system" { fn WinHttpTimeFromSystemTime(pst: *const super::super::Foundation::SYSTEMTIME, pwsztime: ::windows::core::PWSTR) -> super::super::Foundation::BOOL; } - WinHttpTimeFromSystemTime(::core::mem::transmute(pst), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwsztime))) + WinHttpTimeFromSystemTime(::core::mem::transmute(pst), ::core::mem::transmute(pwsztime.as_ptr())) } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3139,12 +3139,12 @@ where } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`*"] #[inline] -pub unsafe fn WinHttpWebSocketClose(hwebsocket: *const ::core::ffi::c_void, usstatus: u16, pvreason: *const ::core::ffi::c_void, dwreasonlength: u32) -> u32 { +pub unsafe fn WinHttpWebSocketClose(hwebsocket: *const ::core::ffi::c_void, usstatus: u16, pvreason: ::core::option::Option<&[u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinHttpWebSocketClose(hwebsocket: *const ::core::ffi::c_void, usstatus: u16, pvreason: *const ::core::ffi::c_void, dwreasonlength: u32) -> u32; } - WinHttpWebSocketClose(::core::mem::transmute(hwebsocket), usstatus, ::core::mem::transmute(pvreason), dwreasonlength) + WinHttpWebSocketClose(::core::mem::transmute(hwebsocket), usstatus, ::core::mem::transmute(pvreason.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvreason.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`*"] #[inline] @@ -3157,49 +3157,49 @@ pub unsafe fn WinHttpWebSocketCompleteUpgrade(hrequest: *const ::core::ffi::c_vo } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`*"] #[inline] -pub unsafe fn WinHttpWebSocketQueryCloseStatus(hwebsocket: *const ::core::ffi::c_void, pusstatus: &mut u16, pvreason: *mut ::core::ffi::c_void, dwreasonlength: u32, pdwreasonlengthconsumed: &mut u32) -> u32 { +pub unsafe fn WinHttpWebSocketQueryCloseStatus(hwebsocket: *const ::core::ffi::c_void, pusstatus: &mut u16, pvreason: ::core::option::Option<&mut [u8]>, pdwreasonlengthconsumed: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinHttpWebSocketQueryCloseStatus(hwebsocket: *const ::core::ffi::c_void, pusstatus: *mut u16, pvreason: *mut ::core::ffi::c_void, dwreasonlength: u32, pdwreasonlengthconsumed: *mut u32) -> u32; } - WinHttpWebSocketQueryCloseStatus(::core::mem::transmute(hwebsocket), ::core::mem::transmute(pusstatus), ::core::mem::transmute(pvreason), dwreasonlength, ::core::mem::transmute(pdwreasonlengthconsumed)) + WinHttpWebSocketQueryCloseStatus(::core::mem::transmute(hwebsocket), ::core::mem::transmute(pusstatus), ::core::mem::transmute(pvreason.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvreason.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdwreasonlengthconsumed)) } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`*"] #[inline] -pub unsafe fn WinHttpWebSocketReceive(hwebsocket: *const ::core::ffi::c_void, pvbuffer: *mut ::core::ffi::c_void, dwbufferlength: u32, pdwbytesread: &mut u32, pebuffertype: &mut WINHTTP_WEB_SOCKET_BUFFER_TYPE) -> u32 { +pub unsafe fn WinHttpWebSocketReceive(hwebsocket: *const ::core::ffi::c_void, pvbuffer: &mut [u8], pdwbytesread: &mut u32, pebuffertype: &mut WINHTTP_WEB_SOCKET_BUFFER_TYPE) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinHttpWebSocketReceive(hwebsocket: *const ::core::ffi::c_void, pvbuffer: *mut ::core::ffi::c_void, dwbufferlength: u32, pdwbytesread: *mut u32, pebuffertype: *mut WINHTTP_WEB_SOCKET_BUFFER_TYPE) -> u32; } - WinHttpWebSocketReceive(::core::mem::transmute(hwebsocket), ::core::mem::transmute(pvbuffer), dwbufferlength, ::core::mem::transmute(pdwbytesread), ::core::mem::transmute(pebuffertype)) + WinHttpWebSocketReceive(::core::mem::transmute(hwebsocket), ::core::mem::transmute(pvbuffer.as_ptr()), pvbuffer.len() as _, ::core::mem::transmute(pdwbytesread), ::core::mem::transmute(pebuffertype)) } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`*"] #[inline] -pub unsafe fn WinHttpWebSocketSend(hwebsocket: *const ::core::ffi::c_void, ebuffertype: WINHTTP_WEB_SOCKET_BUFFER_TYPE, pvbuffer: &[u8]) -> u32 { +pub unsafe fn WinHttpWebSocketSend(hwebsocket: *const ::core::ffi::c_void, ebuffertype: WINHTTP_WEB_SOCKET_BUFFER_TYPE, pvbuffer: ::core::option::Option<&[u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinHttpWebSocketSend(hwebsocket: *const ::core::ffi::c_void, ebuffertype: WINHTTP_WEB_SOCKET_BUFFER_TYPE, pvbuffer: *const ::core::ffi::c_void, dwbufferlength: u32) -> u32; } - WinHttpWebSocketSend(::core::mem::transmute(hwebsocket), ebuffertype, ::core::mem::transmute(::windows::core::as_ptr_or_null(pvbuffer)), pvbuffer.len() as _) + WinHttpWebSocketSend(::core::mem::transmute(hwebsocket), ebuffertype, ::core::mem::transmute(pvbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`*"] #[inline] -pub unsafe fn WinHttpWebSocketShutdown(hwebsocket: *const ::core::ffi::c_void, usstatus: u16, pvreason: *const ::core::ffi::c_void, dwreasonlength: u32) -> u32 { +pub unsafe fn WinHttpWebSocketShutdown(hwebsocket: *const ::core::ffi::c_void, usstatus: u16, pvreason: ::core::option::Option<&[u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinHttpWebSocketShutdown(hwebsocket: *const ::core::ffi::c_void, usstatus: u16, pvreason: *const ::core::ffi::c_void, dwreasonlength: u32) -> u32; } - WinHttpWebSocketShutdown(::core::mem::transmute(hwebsocket), usstatus, ::core::mem::transmute(pvreason), dwreasonlength) + WinHttpWebSocketShutdown(::core::mem::transmute(hwebsocket), usstatus, ::core::mem::transmute(pvreason.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvreason.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WinHttpWriteData(hrequest: *mut ::core::ffi::c_void, lpbuffer: *const ::core::ffi::c_void, dwnumberofbytestowrite: u32, lpdwnumberofbyteswritten: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn WinHttpWriteData(hrequest: *mut ::core::ffi::c_void, lpbuffer: ::core::option::Option<&[u8]>, lpdwnumberofbyteswritten: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WinHttpWriteData(hrequest: *mut ::core::ffi::c_void, lpbuffer: *const ::core::ffi::c_void, dwnumberofbytestowrite: u32, lpdwnumberofbyteswritten: *mut u32) -> super::super::Foundation::BOOL; } - WinHttpWriteData(::core::mem::transmute(hrequest), ::core::mem::transmute(lpbuffer), dwnumberofbytestowrite, ::core::mem::transmute(lpdwnumberofbyteswritten)) + WinHttpWriteData(::core::mem::transmute(hrequest), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpdwnumberofbyteswritten)) } #[doc = "*Required features: `\"Win32_Networking_WinHttp\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Networking/WinInet/mod.rs b/crates/libs/windows/src/Windows/Win32/Networking/WinInet/mod.rs index 7ba1b1b7e4..6cf5099be9 100644 --- a/crates/libs/windows/src/Windows/Win32/Networking/WinInet/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Networking/WinInet/mod.rs @@ -277,7 +277,7 @@ impl ::core::default::Default for AUTO_PROXY_SCRIPT_BUFFER { } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`*"] #[inline] -pub unsafe fn AppCacheCheckManifest<'a, P0, P1>(pwszmasterurl: P0, pwszmanifesturl: P1, pbmanifestdata: &u8, dwmanifestdatasize: u32, pbmanifestresponseheaders: &u8, dwmanifestresponseheaderssize: u32, pestate: &mut APP_CACHE_STATE, phnewappcache: *mut *mut ::core::ffi::c_void) -> u32 +pub unsafe fn AppCacheCheckManifest<'a, P0, P1>(pwszmasterurl: P0, pwszmanifesturl: P1, pbmanifestdata: &[u8], pbmanifestresponseheaders: &[u8], pestate: &mut APP_CACHE_STATE, phnewappcache: *mut *mut ::core::ffi::c_void) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -286,7 +286,7 @@ where extern "system" { fn AppCacheCheckManifest(pwszmasterurl: ::windows::core::PCWSTR, pwszmanifesturl: ::windows::core::PCWSTR, pbmanifestdata: *const u8, dwmanifestdatasize: u32, pbmanifestresponseheaders: *const u8, dwmanifestresponseheaderssize: u32, pestate: *mut APP_CACHE_STATE, phnewappcache: *mut *mut ::core::ffi::c_void) -> u32; } - AppCacheCheckManifest(pwszmasterurl.into(), pwszmanifesturl.into(), ::core::mem::transmute(pbmanifestdata), dwmanifestdatasize, ::core::mem::transmute(pbmanifestresponseheaders), dwmanifestresponseheaderssize, ::core::mem::transmute(pestate), ::core::mem::transmute(phnewappcache)) + AppCacheCheckManifest(pwszmasterurl.into(), pwszmanifesturl.into(), ::core::mem::transmute(pbmanifestdata.as_ptr()), pbmanifestdata.len() as _, ::core::mem::transmute(pbmanifestresponseheaders.as_ptr()), pbmanifestresponseheaders.len() as _, ::core::mem::transmute(pestate), ::core::mem::transmute(phnewappcache)) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`*"] #[inline] @@ -299,7 +299,7 @@ pub unsafe fn AppCacheCloseHandle(happcache: *const ::core::ffi::c_void) { } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`*"] #[inline] -pub unsafe fn AppCacheCreateAndCommitFile<'a, P0, P1>(happcache: *const ::core::ffi::c_void, pwszsourcefilepath: P0, pwszurl: P1, pbresponseheaders: &u8, dwresponseheaderssize: u32) -> u32 +pub unsafe fn AppCacheCreateAndCommitFile<'a, P0, P1>(happcache: *const ::core::ffi::c_void, pwszsourcefilepath: P0, pwszurl: P1, pbresponseheaders: &[u8]) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -308,7 +308,7 @@ where extern "system" { fn AppCacheCreateAndCommitFile(happcache: *const ::core::ffi::c_void, pwszsourcefilepath: ::windows::core::PCWSTR, pwszurl: ::windows::core::PCWSTR, pbresponseheaders: *const u8, dwresponseheaderssize: u32) -> u32; } - AppCacheCreateAndCommitFile(::core::mem::transmute(happcache), pwszsourcefilepath.into(), pwszurl.into(), ::core::mem::transmute(pbresponseheaders), dwresponseheaderssize) + AppCacheCreateAndCommitFile(::core::mem::transmute(happcache), pwszsourcefilepath.into(), pwszurl.into(), ::core::mem::transmute(pbresponseheaders.as_ptr()), pbresponseheaders.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`*"] #[inline] @@ -345,12 +345,12 @@ pub unsafe fn AppCacheDuplicateHandle(happcache: *const ::core::ffi::c_void, phd } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`*"] #[inline] -pub unsafe fn AppCacheFinalize(happcache: *const ::core::ffi::c_void, pbmanifestdata: &u8, dwmanifestdatasize: u32, pestate: &mut APP_CACHE_FINALIZE_STATE) -> u32 { +pub unsafe fn AppCacheFinalize(happcache: *const ::core::ffi::c_void, pbmanifestdata: &[u8], pestate: &mut APP_CACHE_FINALIZE_STATE) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn AppCacheFinalize(happcache: *const ::core::ffi::c_void, pbmanifestdata: *const u8, dwmanifestdatasize: u32, pestate: *mut APP_CACHE_FINALIZE_STATE) -> u32; } - AppCacheFinalize(::core::mem::transmute(happcache), ::core::mem::transmute(pbmanifestdata), dwmanifestdatasize, ::core::mem::transmute(pestate)) + AppCacheFinalize(::core::mem::transmute(happcache), ::core::mem::transmute(pbmanifestdata.as_ptr()), pbmanifestdata.len() as _, ::core::mem::transmute(pestate)) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`*"] #[inline] @@ -804,7 +804,7 @@ pub const COOKIE_STATE_UB: u32 = 5u32; #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CommitUrlCacheEntryA<'a, P0, P1, P2, P3>(lpszurlname: P0, lpszlocalfilename: P1, expiretime: super::super::Foundation::FILETIME, lastmodifiedtime: super::super::Foundation::FILETIME, cacheentrytype: u32, lpheaderinfo: &[u8], lpszfileextension: P2, lpszoriginalurl: P3) -> super::super::Foundation::BOOL +pub unsafe fn CommitUrlCacheEntryA<'a, P0, P1, P2, P3>(lpszurlname: P0, lpszlocalfilename: P1, expiretime: super::super::Foundation::FILETIME, lastmodifiedtime: super::super::Foundation::FILETIME, cacheentrytype: u32, lpheaderinfo: ::core::option::Option<&[u8]>, lpszfileextension: P2, lpszoriginalurl: P3) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -815,12 +815,12 @@ where extern "system" { fn CommitUrlCacheEntryA(lpszurlname: ::windows::core::PCSTR, lpszlocalfilename: ::windows::core::PCSTR, expiretime: super::super::Foundation::FILETIME, lastmodifiedtime: super::super::Foundation::FILETIME, cacheentrytype: u32, lpheaderinfo: *const u8, cchheaderinfo: u32, lpszfileextension: ::windows::core::PCSTR, lpszoriginalurl: ::windows::core::PCSTR) -> super::super::Foundation::BOOL; } - CommitUrlCacheEntryA(lpszurlname.into(), lpszlocalfilename.into(), ::core::mem::transmute(expiretime), ::core::mem::transmute(lastmodifiedtime), cacheentrytype, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpheaderinfo)), lpheaderinfo.len() as _, lpszfileextension.into(), lpszoriginalurl.into()) + CommitUrlCacheEntryA(lpszurlname.into(), lpszlocalfilename.into(), ::core::mem::transmute(expiretime), ::core::mem::transmute(lastmodifiedtime), cacheentrytype, ::core::mem::transmute(lpheaderinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpheaderinfo.as_deref().map_or(0, |slice| slice.len() as _), lpszfileextension.into(), lpszoriginalurl.into()) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CommitUrlCacheEntryBinaryBlob<'a, P0>(pwszurlname: P0, dwtype: u32, ftexpiretime: super::super::Foundation::FILETIME, ftmodifiedtime: super::super::Foundation::FILETIME, pbblob: &[u8]) -> u32 +pub unsafe fn CommitUrlCacheEntryBinaryBlob<'a, P0>(pwszurlname: P0, dwtype: u32, ftexpiretime: super::super::Foundation::FILETIME, ftmodifiedtime: super::super::Foundation::FILETIME, pbblob: ::core::option::Option<&[u8]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -828,12 +828,12 @@ where extern "system" { fn CommitUrlCacheEntryBinaryBlob(pwszurlname: ::windows::core::PCWSTR, dwtype: u32, ftexpiretime: super::super::Foundation::FILETIME, ftmodifiedtime: super::super::Foundation::FILETIME, pbblob: *const u8, cbblob: u32) -> u32; } - CommitUrlCacheEntryBinaryBlob(pwszurlname.into(), dwtype, ::core::mem::transmute(ftexpiretime), ::core::mem::transmute(ftmodifiedtime), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbblob)), pbblob.len() as _) + CommitUrlCacheEntryBinaryBlob(pwszurlname.into(), dwtype, ::core::mem::transmute(ftexpiretime), ::core::mem::transmute(ftmodifiedtime), ::core::mem::transmute(pbblob.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbblob.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CommitUrlCacheEntryW<'a, P0, P1, P2, P3>(lpszurlname: P0, lpszlocalfilename: P1, expiretime: super::super::Foundation::FILETIME, lastmodifiedtime: super::super::Foundation::FILETIME, cacheentrytype: u32, lpszheaderinfo: &[u16], lpszfileextension: P2, lpszoriginalurl: P3) -> super::super::Foundation::BOOL +pub unsafe fn CommitUrlCacheEntryW<'a, P0, P1, P2, P3>(lpszurlname: P0, lpszlocalfilename: P1, expiretime: super::super::Foundation::FILETIME, lastmodifiedtime: super::super::Foundation::FILETIME, cacheentrytype: u32, lpszheaderinfo: ::core::option::Option<&[u16]>, lpszfileextension: P2, lpszoriginalurl: P3) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -844,7 +844,7 @@ where extern "system" { fn CommitUrlCacheEntryW(lpszurlname: ::windows::core::PCWSTR, lpszlocalfilename: ::windows::core::PCWSTR, expiretime: super::super::Foundation::FILETIME, lastmodifiedtime: super::super::Foundation::FILETIME, cacheentrytype: u32, lpszheaderinfo: ::windows::core::PCWSTR, cchheaderinfo: u32, lpszfileextension: ::windows::core::PCWSTR, lpszoriginalurl: ::windows::core::PCWSTR) -> super::super::Foundation::BOOL; } - CommitUrlCacheEntryW(lpszurlname.into(), lpszlocalfilename.into(), ::core::mem::transmute(expiretime), ::core::mem::transmute(lastmodifiedtime), cacheentrytype, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpszheaderinfo)), lpszheaderinfo.len() as _, lpszfileextension.into(), lpszoriginalurl.into()) + CommitUrlCacheEntryW(lpszurlname.into(), lpszlocalfilename.into(), ::core::mem::transmute(expiretime), ::core::mem::transmute(lastmodifiedtime), cacheentrytype, ::core::mem::transmute(lpszheaderinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszheaderinfo.as_deref().map_or(0, |slice| slice.len() as _), lpszfileextension.into(), lpszoriginalurl.into()) } #[repr(C)] #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] @@ -942,7 +942,7 @@ where extern "system" { fn CreateUrlCacheEntryA(lpszurlname: ::windows::core::PCSTR, dwexpectedfilesize: u32, lpszfileextension: ::windows::core::PCSTR, lpszfilename: ::windows::core::PSTR, dwreserved: u32) -> super::super::Foundation::BOOL; } - CreateUrlCacheEntryA(lpszurlname.into(), dwexpectedfilesize, lpszfileextension.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszfilename)), dwreserved) + CreateUrlCacheEntryA(lpszurlname.into(), dwexpectedfilesize, lpszfileextension.into(), ::core::mem::transmute(lpszfilename.as_ptr()), dwreserved) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -957,7 +957,7 @@ where extern "system" { fn CreateUrlCacheEntryExW(lpszurlname: ::windows::core::PCWSTR, dwexpectedfilesize: u32, lpszfileextension: ::windows::core::PCWSTR, lpszfilename: ::windows::core::PWSTR, dwreserved: u32, fpreserveincomingfilename: super::super::Foundation::BOOL) -> super::super::Foundation::BOOL; } - CreateUrlCacheEntryExW(lpszurlname.into(), dwexpectedfilesize, lpszfileextension.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszfilename)), dwreserved, fpreserveincomingfilename.into()) + CreateUrlCacheEntryExW(lpszurlname.into(), dwexpectedfilesize, lpszfileextension.into(), ::core::mem::transmute(lpszfilename.as_ptr()), dwreserved, fpreserveincomingfilename.into()) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -971,7 +971,7 @@ where extern "system" { fn CreateUrlCacheEntryW(lpszurlname: ::windows::core::PCWSTR, dwexpectedfilesize: u32, lpszfileextension: ::windows::core::PCWSTR, lpszfilename: ::windows::core::PWSTR, dwreserved: u32) -> super::super::Foundation::BOOL; } - CreateUrlCacheEntryW(lpszurlname.into(), dwexpectedfilesize, lpszfileextension.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszfilename)), dwreserved) + CreateUrlCacheEntryW(lpszurlname.into(), dwexpectedfilesize, lpszfileextension.into(), ::core::mem::transmute(lpszfilename.as_ptr()), dwreserved) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`*"] #[inline] @@ -1132,7 +1132,7 @@ pub unsafe fn DetectAutoProxyUrl(pszautoproxyurl: &mut [u8], dwdetectflags: PROX extern "system" { fn DetectAutoProxyUrl(pszautoproxyurl: ::windows::core::PSTR, cchautoproxyurl: u32, dwdetectflags: PROXY_AUTO_DETECT_TYPE) -> super::super::Foundation::BOOL; } - DetectAutoProxyUrl(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszautoproxyurl)), pszautoproxyurl.len() as _, dwdetectflags) + DetectAutoProxyUrl(::core::mem::transmute(pszautoproxyurl.as_ptr()), pszautoproxyurl.len() as _, dwdetectflags) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1527,7 +1527,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FindFirstUrlCacheContainerA(pdwmodified: &mut u32, lpcontainerinfo: &mut INTERNET_CACHE_CONTAINER_INFOA, lpcbcontainerinfo: &mut u32, dwoptions: u32) -> super::super::Foundation::HANDLE { +pub unsafe fn FindFirstUrlCacheContainerA(pdwmodified: &mut u32, lpcontainerinfo: *mut INTERNET_CACHE_CONTAINER_INFOA, lpcbcontainerinfo: &mut u32, dwoptions: u32) -> super::super::Foundation::HANDLE { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn FindFirstUrlCacheContainerA(pdwmodified: *mut u32, lpcontainerinfo: *mut INTERNET_CACHE_CONTAINER_INFOA, lpcbcontainerinfo: *mut u32, dwoptions: u32) -> super::super::Foundation::HANDLE; @@ -1537,7 +1537,7 @@ pub unsafe fn FindFirstUrlCacheContainerA(pdwmodified: &mut u32, lpcontainerinfo #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FindFirstUrlCacheContainerW(pdwmodified: &mut u32, lpcontainerinfo: &mut INTERNET_CACHE_CONTAINER_INFOW, lpcbcontainerinfo: &mut u32, dwoptions: u32) -> super::super::Foundation::HANDLE { +pub unsafe fn FindFirstUrlCacheContainerW(pdwmodified: &mut u32, lpcontainerinfo: *mut INTERNET_CACHE_CONTAINER_INFOW, lpcbcontainerinfo: &mut u32, dwoptions: u32) -> super::super::Foundation::HANDLE { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn FindFirstUrlCacheContainerW(pdwmodified: *mut u32, lpcontainerinfo: *mut INTERNET_CACHE_CONTAINER_INFOW, lpcbcontainerinfo: *mut u32, dwoptions: u32) -> super::super::Foundation::HANDLE; @@ -1547,7 +1547,7 @@ pub unsafe fn FindFirstUrlCacheContainerW(pdwmodified: &mut u32, lpcontainerinfo #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FindFirstUrlCacheEntryA<'a, P0>(lpszurlsearchpattern: P0, lpfirstcacheentryinfo: ::core::option::Option<&mut INTERNET_CACHE_ENTRY_INFOA>, lpcbcacheentryinfo: &mut u32) -> ::windows::core::Result +pub unsafe fn FindFirstUrlCacheEntryA<'a, P0>(lpszurlsearchpattern: P0, lpfirstcacheentryinfo: *mut INTERNET_CACHE_ENTRY_INFOA, lpcbcacheentryinfo: &mut u32) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -1561,7 +1561,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FindFirstUrlCacheEntryExA<'a, P0>(lpszurlsearchpattern: P0, dwflags: u32, dwfilter: u32, groupid: i64, lpfirstcacheentryinfo: ::core::option::Option<&mut INTERNET_CACHE_ENTRY_INFOA>, lpcbcacheentryinfo: &mut u32, lpgroupattributes: *mut ::core::ffi::c_void, lpcbgroupattributes: &mut u32, lpreserved: *mut ::core::ffi::c_void) -> ::windows::core::Result +pub unsafe fn FindFirstUrlCacheEntryExA<'a, P0>(lpszurlsearchpattern: P0, dwflags: u32, dwfilter: u32, groupid: i64, lpfirstcacheentryinfo: *mut INTERNET_CACHE_ENTRY_INFOA, lpcbcacheentryinfo: &mut u32, lpgroupattributes: *mut ::core::ffi::c_void, lpcbgroupattributes: &mut u32, lpreserved: *mut ::core::ffi::c_void) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -1575,7 +1575,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FindFirstUrlCacheEntryExW<'a, P0>(lpszurlsearchpattern: P0, dwflags: u32, dwfilter: u32, groupid: i64, lpfirstcacheentryinfo: ::core::option::Option<&mut INTERNET_CACHE_ENTRY_INFOW>, lpcbcacheentryinfo: &mut u32, lpgroupattributes: *mut ::core::ffi::c_void, lpcbgroupattributes: &mut u32, lpreserved: *mut ::core::ffi::c_void) -> ::windows::core::Result +pub unsafe fn FindFirstUrlCacheEntryExW<'a, P0>(lpszurlsearchpattern: P0, dwflags: u32, dwfilter: u32, groupid: i64, lpfirstcacheentryinfo: *mut INTERNET_CACHE_ENTRY_INFOW, lpcbcacheentryinfo: &mut u32, lpgroupattributes: *mut ::core::ffi::c_void, lpcbgroupattributes: &mut u32, lpreserved: *mut ::core::ffi::c_void) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1589,7 +1589,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FindFirstUrlCacheEntryW<'a, P0>(lpszurlsearchpattern: P0, lpfirstcacheentryinfo: ::core::option::Option<&mut INTERNET_CACHE_ENTRY_INFOW>, lpcbcacheentryinfo: &mut u32) -> ::windows::core::Result +pub unsafe fn FindFirstUrlCacheEntryW<'a, P0>(lpszurlsearchpattern: P0, lpfirstcacheentryinfo: *mut INTERNET_CACHE_ENTRY_INFOW, lpcbcacheentryinfo: &mut u32) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1614,7 +1614,7 @@ pub unsafe fn FindFirstUrlCacheGroup(dwflags: u32, dwfilter: u32, lpsearchcondit #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FindNextUrlCacheContainerA<'a, P0>(henumhandle: P0, lpcontainerinfo: &mut INTERNET_CACHE_CONTAINER_INFOA, lpcbcontainerinfo: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn FindNextUrlCacheContainerA<'a, P0>(henumhandle: P0, lpcontainerinfo: *mut INTERNET_CACHE_CONTAINER_INFOA, lpcbcontainerinfo: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1627,7 +1627,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FindNextUrlCacheContainerW<'a, P0>(henumhandle: P0, lpcontainerinfo: &mut INTERNET_CACHE_CONTAINER_INFOW, lpcbcontainerinfo: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn FindNextUrlCacheContainerW<'a, P0>(henumhandle: P0, lpcontainerinfo: *mut INTERNET_CACHE_CONTAINER_INFOW, lpcbcontainerinfo: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1640,7 +1640,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FindNextUrlCacheEntryA<'a, P0>(henumhandle: P0, lpnextcacheentryinfo: ::core::option::Option<&mut INTERNET_CACHE_ENTRY_INFOA>, lpcbcacheentryinfo: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn FindNextUrlCacheEntryA<'a, P0>(henumhandle: P0, lpnextcacheentryinfo: *mut INTERNET_CACHE_ENTRY_INFOA, lpcbcacheentryinfo: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1653,7 +1653,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FindNextUrlCacheEntryExA<'a, P0>(henumhandle: P0, lpnextcacheentryinfo: ::core::option::Option<&mut INTERNET_CACHE_ENTRY_INFOA>, lpcbcacheentryinfo: &mut u32, lpgroupattributes: *mut ::core::ffi::c_void, lpcbgroupattributes: &mut u32, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn FindNextUrlCacheEntryExA<'a, P0>(henumhandle: P0, lpnextcacheentryinfo: *mut INTERNET_CACHE_ENTRY_INFOA, lpcbcacheentryinfo: &mut u32, lpgroupattributes: *mut ::core::ffi::c_void, lpcbgroupattributes: &mut u32, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1666,7 +1666,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FindNextUrlCacheEntryExW<'a, P0>(henumhandle: P0, lpnextcacheentryinfo: ::core::option::Option<&mut INTERNET_CACHE_ENTRY_INFOW>, lpcbcacheentryinfo: &mut u32, lpgroupattributes: *mut ::core::ffi::c_void, lpcbgroupattributes: &mut u32, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn FindNextUrlCacheEntryExW<'a, P0>(henumhandle: P0, lpnextcacheentryinfo: *mut INTERNET_CACHE_ENTRY_INFOW, lpcbcacheentryinfo: &mut u32, lpgroupattributes: *mut ::core::ffi::c_void, lpcbgroupattributes: &mut u32, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1679,7 +1679,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FindNextUrlCacheEntryW<'a, P0>(henumhandle: P0, lpnextcacheentryinfo: ::core::option::Option<&mut INTERNET_CACHE_ENTRY_INFOW>, lpcbcacheentryinfo: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn FindNextUrlCacheEntryW<'a, P0>(henumhandle: P0, lpnextcacheentryinfo: *mut INTERNET_CACHE_ENTRY_INFOW, lpcbcacheentryinfo: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -2977,7 +2977,7 @@ pub unsafe fn GetUrlCacheConfigInfoW(lpcacheconfiginfo: &mut INTERNET_CACHE_CONF #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetUrlCacheEntryBinaryBlob<'a, P0>(pwszurlname: P0, dwtype: &mut u32, pftexpiretime: &mut super::super::Foundation::FILETIME, pftaccesstime: &mut super::super::Foundation::FILETIME, pftmodifiedtime: &mut super::super::Foundation::FILETIME, ppbblob: ::core::option::Option<&mut *mut u8>, pcbblob: &mut u32) -> u32 +pub unsafe fn GetUrlCacheEntryBinaryBlob<'a, P0>(pwszurlname: P0, dwtype: &mut u32, pftexpiretime: &mut super::super::Foundation::FILETIME, pftaccesstime: &mut super::super::Foundation::FILETIME, pftmodifiedtime: &mut super::super::Foundation::FILETIME, ppbblob: *mut *mut u8, pcbblob: &mut u32) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2990,7 +2990,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetUrlCacheEntryInfoA<'a, P0>(lpszurlname: P0, lpcacheentryinfo: ::core::option::Option<&mut INTERNET_CACHE_ENTRY_INFOA>, lpcbcacheentryinfo: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn GetUrlCacheEntryInfoA<'a, P0>(lpszurlname: P0, lpcacheentryinfo: *mut INTERNET_CACHE_ENTRY_INFOA, lpcbcacheentryinfo: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -3003,7 +3003,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetUrlCacheEntryInfoExA<'a, P0, P1>(lpszurl: P0, lpcacheentryinfo: ::core::option::Option<&mut INTERNET_CACHE_ENTRY_INFOA>, lpcbcacheentryinfo: ::core::option::Option<&mut u32>, lpszredirecturl: P1, lpcbredirecturl: &mut u32, lpreserved: *mut ::core::ffi::c_void, dwflags: u32) -> super::super::Foundation::BOOL +pub unsafe fn GetUrlCacheEntryInfoExA<'a, P0, P1>(lpszurl: P0, lpcacheentryinfo: *mut INTERNET_CACHE_ENTRY_INFOA, lpcbcacheentryinfo: ::core::option::Option<&mut u32>, lpszredirecturl: P1, lpcbredirecturl: &mut u32, lpreserved: *mut ::core::ffi::c_void, dwflags: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -3017,7 +3017,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetUrlCacheEntryInfoExW<'a, P0, P1>(lpszurl: P0, lpcacheentryinfo: ::core::option::Option<&mut INTERNET_CACHE_ENTRY_INFOW>, lpcbcacheentryinfo: ::core::option::Option<&mut u32>, lpszredirecturl: P1, lpcbredirecturl: &mut u32, lpreserved: *mut ::core::ffi::c_void, dwflags: u32) -> super::super::Foundation::BOOL +pub unsafe fn GetUrlCacheEntryInfoExW<'a, P0, P1>(lpszurl: P0, lpcacheentryinfo: *mut INTERNET_CACHE_ENTRY_INFOW, lpcbcacheentryinfo: ::core::option::Option<&mut u32>, lpszredirecturl: P1, lpcbredirecturl: &mut u32, lpreserved: *mut ::core::ffi::c_void, dwflags: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -3031,7 +3031,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetUrlCacheEntryInfoW<'a, P0>(lpszurlname: P0, lpcacheentryinfo: ::core::option::Option<&mut INTERNET_CACHE_ENTRY_INFOW>, lpcbcacheentryinfo: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn GetUrlCacheEntryInfoW<'a, P0>(lpszurlname: P0, lpcacheentryinfo: *mut INTERNET_CACHE_ENTRY_INFOW, lpcbcacheentryinfo: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -3044,7 +3044,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetUrlCacheGroupAttributeA(gid: i64, dwflags: u32, dwattributes: u32, lpgroupinfo: &mut INTERNET_CACHE_GROUP_INFOA, lpcbgroupinfo: &mut u32, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL { +pub unsafe fn GetUrlCacheGroupAttributeA(gid: i64, dwflags: u32, dwattributes: u32, lpgroupinfo: *mut INTERNET_CACHE_GROUP_INFOA, lpcbgroupinfo: &mut u32, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetUrlCacheGroupAttributeA(gid: i64, dwflags: u32, dwattributes: u32, lpgroupinfo: *mut INTERNET_CACHE_GROUP_INFOA, lpcbgroupinfo: *mut u32, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; @@ -3054,7 +3054,7 @@ pub unsafe fn GetUrlCacheGroupAttributeA(gid: i64, dwflags: u32, dwattributes: u #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetUrlCacheGroupAttributeW(gid: i64, dwflags: u32, dwattributes: u32, lpgroupinfo: &mut INTERNET_CACHE_GROUP_INFOW, lpcbgroupinfo: &mut u32, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL { +pub unsafe fn GetUrlCacheGroupAttributeW(gid: i64, dwflags: u32, dwattributes: u32, lpgroupinfo: *mut INTERNET_CACHE_GROUP_INFOW, lpcbgroupinfo: &mut u32, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetUrlCacheGroupAttributeW(gid: i64, dwflags: u32, dwattributes: u32, lpgroupinfo: *mut INTERNET_CACHE_GROUP_INFOW, lpcbgroupinfo: *mut u32, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; @@ -3141,7 +3141,7 @@ where extern "system" { fn GopherGetAttributeA(hconnect: *const ::core::ffi::c_void, lpszlocator: ::windows::core::PCSTR, lpszattributename: ::windows::core::PCSTR, lpbuffer: *mut u8, dwbufferlength: u32, lpdwcharactersreturned: *mut u32, lpfnenumerator: *mut ::core::ffi::c_void, dwcontext: usize) -> super::super::Foundation::BOOL; } - GopherGetAttributeA(::core::mem::transmute(hconnect), lpszlocator.into(), lpszattributename.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _, ::core::mem::transmute(lpdwcharactersreturned), ::core::mem::transmute(lpfnenumerator), dwcontext) + GopherGetAttributeA(::core::mem::transmute(hconnect), lpszlocator.into(), lpszattributename.into(), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpdwcharactersreturned), ::core::mem::transmute(lpfnenumerator), dwcontext) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3155,7 +3155,7 @@ where extern "system" { fn GopherGetAttributeW(hconnect: *const ::core::ffi::c_void, lpszlocator: ::windows::core::PCWSTR, lpszattributename: ::windows::core::PCWSTR, lpbuffer: *mut u8, dwbufferlength: u32, lpdwcharactersreturned: *mut u32, lpfnenumerator: *mut ::core::ffi::c_void, dwcontext: usize) -> super::super::Foundation::BOOL; } - GopherGetAttributeW(::core::mem::transmute(hconnect), lpszlocator.into(), lpszattributename.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _, ::core::mem::transmute(lpdwcharactersreturned), ::core::mem::transmute(lpfnenumerator), dwcontext) + GopherGetAttributeW(::core::mem::transmute(hconnect), lpszlocator.into(), lpszattributename.into(), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpdwcharactersreturned), ::core::mem::transmute(lpfnenumerator), dwcontext) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3906,7 +3906,7 @@ pub unsafe fn HttpAddRequestHeadersA(hrequest: *const ::core::ffi::c_void, lpszh extern "system" { fn HttpAddRequestHeadersA(hrequest: *const ::core::ffi::c_void, lpszheaders: ::windows::core::PCSTR, dwheaderslength: u32, dwmodifiers: HTTP_ADDREQ_FLAG) -> super::super::Foundation::BOOL; } - HttpAddRequestHeadersA(::core::mem::transmute(hrequest), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpszheaders)), lpszheaders.len() as _, dwmodifiers) + HttpAddRequestHeadersA(::core::mem::transmute(hrequest), ::core::mem::transmute(lpszheaders.as_ptr()), lpszheaders.len() as _, dwmodifiers) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3916,7 +3916,7 @@ pub unsafe fn HttpAddRequestHeadersW(hrequest: *const ::core::ffi::c_void, lpszh extern "system" { fn HttpAddRequestHeadersW(hrequest: *const ::core::ffi::c_void, lpszheaders: ::windows::core::PCWSTR, dwheaderslength: u32, dwmodifiers: HTTP_ADDREQ_FLAG) -> super::super::Foundation::BOOL; } - HttpAddRequestHeadersW(::core::mem::transmute(hrequest), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpszheaders)), lpszheaders.len() as _, dwmodifiers) + HttpAddRequestHeadersW(::core::mem::transmute(hrequest), ::core::mem::transmute(lpszheaders.as_ptr()), lpszheaders.len() as _, dwmodifiers) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4120,12 +4120,12 @@ pub unsafe fn HttpQueryInfoW(hrequest: *const ::core::ffi::c_void, dwinfolevel: #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HttpSendRequestA(hrequest: *const ::core::ffi::c_void, lpszheaders: &[u8], lpoptional: *const ::core::ffi::c_void, dwoptionallength: u32) -> super::super::Foundation::BOOL { +pub unsafe fn HttpSendRequestA(hrequest: *const ::core::ffi::c_void, lpszheaders: ::core::option::Option<&[u8]>, lpoptional: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HttpSendRequestA(hrequest: *const ::core::ffi::c_void, lpszheaders: ::windows::core::PCSTR, dwheaderslength: u32, lpoptional: *const ::core::ffi::c_void, dwoptionallength: u32) -> super::super::Foundation::BOOL; } - HttpSendRequestA(::core::mem::transmute(hrequest), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpszheaders)), lpszheaders.len() as _, ::core::mem::transmute(lpoptional), dwoptionallength) + HttpSendRequestA(::core::mem::transmute(hrequest), ::core::mem::transmute(lpszheaders.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszheaders.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoptional.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoptional.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4150,22 +4150,22 @@ pub unsafe fn HttpSendRequestExW(hrequest: *const ::core::ffi::c_void, lpbuffers #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HttpSendRequestW(hrequest: *const ::core::ffi::c_void, lpszheaders: &[u16], lpoptional: *const ::core::ffi::c_void, dwoptionallength: u32) -> super::super::Foundation::BOOL { +pub unsafe fn HttpSendRequestW(hrequest: *const ::core::ffi::c_void, lpszheaders: ::core::option::Option<&[u16]>, lpoptional: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HttpSendRequestW(hrequest: *const ::core::ffi::c_void, lpszheaders: ::windows::core::PCWSTR, dwheaderslength: u32, lpoptional: *const ::core::ffi::c_void, dwoptionallength: u32) -> super::super::Foundation::BOOL; } - HttpSendRequestW(::core::mem::transmute(hrequest), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpszheaders)), lpszheaders.len() as _, ::core::mem::transmute(lpoptional), dwoptionallength) + HttpSendRequestW(::core::mem::transmute(hrequest), ::core::mem::transmute(lpszheaders.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszheaders.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoptional.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoptional.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HttpWebSocketClose(hwebsocket: *const ::core::ffi::c_void, usstatus: u16, pvreason: *const ::core::ffi::c_void, dwreasonlength: u32) -> super::super::Foundation::BOOL { +pub unsafe fn HttpWebSocketClose(hwebsocket: *const ::core::ffi::c_void, usstatus: u16, pvreason: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HttpWebSocketClose(hwebsocket: *const ::core::ffi::c_void, usstatus: u16, pvreason: *const ::core::ffi::c_void, dwreasonlength: u32) -> super::super::Foundation::BOOL; } - HttpWebSocketClose(::core::mem::transmute(hwebsocket), usstatus, ::core::mem::transmute(pvreason), dwreasonlength) + HttpWebSocketClose(::core::mem::transmute(hwebsocket), usstatus, ::core::mem::transmute(pvreason.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvreason.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`*"] #[inline] @@ -4179,42 +4179,42 @@ pub unsafe fn HttpWebSocketCompleteUpgrade(hrequest: *const ::core::ffi::c_void, #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HttpWebSocketQueryCloseStatus(hwebsocket: *const ::core::ffi::c_void, pusstatus: &mut u16, pvreason: *mut ::core::ffi::c_void, dwreasonlength: u32, pdwreasonlengthconsumed: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn HttpWebSocketQueryCloseStatus(hwebsocket: *const ::core::ffi::c_void, pusstatus: &mut u16, pvreason: ::core::option::Option<&mut [u8]>, pdwreasonlengthconsumed: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HttpWebSocketQueryCloseStatus(hwebsocket: *const ::core::ffi::c_void, pusstatus: *mut u16, pvreason: *mut ::core::ffi::c_void, dwreasonlength: u32, pdwreasonlengthconsumed: *mut u32) -> super::super::Foundation::BOOL; } - HttpWebSocketQueryCloseStatus(::core::mem::transmute(hwebsocket), ::core::mem::transmute(pusstatus), ::core::mem::transmute(pvreason), dwreasonlength, ::core::mem::transmute(pdwreasonlengthconsumed)) + HttpWebSocketQueryCloseStatus(::core::mem::transmute(hwebsocket), ::core::mem::transmute(pusstatus), ::core::mem::transmute(pvreason.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvreason.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdwreasonlengthconsumed)) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HttpWebSocketReceive(hwebsocket: *const ::core::ffi::c_void, pvbuffer: *mut ::core::ffi::c_void, dwbufferlength: u32, pdwbytesread: &mut u32, pbuffertype: &mut HTTP_WEB_SOCKET_BUFFER_TYPE) -> super::super::Foundation::BOOL { +pub unsafe fn HttpWebSocketReceive(hwebsocket: *const ::core::ffi::c_void, pvbuffer: &mut [u8], pdwbytesread: &mut u32, pbuffertype: &mut HTTP_WEB_SOCKET_BUFFER_TYPE) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HttpWebSocketReceive(hwebsocket: *const ::core::ffi::c_void, pvbuffer: *mut ::core::ffi::c_void, dwbufferlength: u32, pdwbytesread: *mut u32, pbuffertype: *mut HTTP_WEB_SOCKET_BUFFER_TYPE) -> super::super::Foundation::BOOL; } - HttpWebSocketReceive(::core::mem::transmute(hwebsocket), ::core::mem::transmute(pvbuffer), dwbufferlength, ::core::mem::transmute(pdwbytesread), ::core::mem::transmute(pbuffertype)) + HttpWebSocketReceive(::core::mem::transmute(hwebsocket), ::core::mem::transmute(pvbuffer.as_ptr()), pvbuffer.len() as _, ::core::mem::transmute(pdwbytesread), ::core::mem::transmute(pbuffertype)) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HttpWebSocketSend(hwebsocket: *const ::core::ffi::c_void, buffertype: HTTP_WEB_SOCKET_BUFFER_TYPE, pvbuffer: *const ::core::ffi::c_void, dwbufferlength: u32) -> super::super::Foundation::BOOL { +pub unsafe fn HttpWebSocketSend(hwebsocket: *const ::core::ffi::c_void, buffertype: HTTP_WEB_SOCKET_BUFFER_TYPE, pvbuffer: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HttpWebSocketSend(hwebsocket: *const ::core::ffi::c_void, buffertype: HTTP_WEB_SOCKET_BUFFER_TYPE, pvbuffer: *const ::core::ffi::c_void, dwbufferlength: u32) -> super::super::Foundation::BOOL; } - HttpWebSocketSend(::core::mem::transmute(hwebsocket), buffertype, ::core::mem::transmute(pvbuffer), dwbufferlength) + HttpWebSocketSend(::core::mem::transmute(hwebsocket), buffertype, ::core::mem::transmute(pvbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HttpWebSocketShutdown(hwebsocket: *const ::core::ffi::c_void, usstatus: u16, pvreason: *const ::core::ffi::c_void, dwreasonlength: u32) -> super::super::Foundation::BOOL { +pub unsafe fn HttpWebSocketShutdown(hwebsocket: *const ::core::ffi::c_void, usstatus: u16, pvreason: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HttpWebSocketShutdown(hwebsocket: *const ::core::ffi::c_void, usstatus: u16, pvreason: *const ::core::ffi::c_void, dwreasonlength: u32) -> super::super::Foundation::BOOL; } - HttpWebSocketShutdown(::core::mem::transmute(hwebsocket), usstatus, ::core::mem::transmute(pvreason), dwreasonlength) + HttpWebSocketShutdown(::core::mem::transmute(hwebsocket), usstatus, ::core::mem::transmute(pvreason.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvreason.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`*"] pub const ICU_USERNAME: u32 = 1073741824u32; @@ -7172,7 +7172,7 @@ impl ::core::default::Default for INTERNET_VERSION_INFO { #[repr(transparent)] pub struct IProofOfPossessionCookieInfoManager(::windows::core::IUnknown); impl IProofOfPossessionCookieInfoManager { - pub unsafe fn GetCookieInfoForUri<'a, P0>(&self, uri: P0, cookieinfocount: &mut u32, cookieinfo: &mut *mut ProofOfPossessionCookieInfo) -> ::windows::core::Result<()> + pub unsafe fn GetCookieInfoForUri<'a, P0>(&self, uri: P0, cookieinfocount: &mut u32, cookieinfo: *mut *mut ProofOfPossessionCookieInfo) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -7224,7 +7224,7 @@ pub struct IProofOfPossessionCookieInfoManager_Vtbl { #[repr(transparent)] pub struct IProofOfPossessionCookieInfoManager2(::windows::core::IUnknown); impl IProofOfPossessionCookieInfoManager2 { - pub unsafe fn GetCookieInfoWithUriForAccount<'a, P0, P1>(&self, webaccount: P0, uri: P1, cookieinfocount: &mut u32, cookieinfo: &mut *mut ProofOfPossessionCookieInfo) -> ::windows::core::Result<()> + pub unsafe fn GetCookieInfoWithUriForAccount<'a, P0, P1>(&self, webaccount: P0, uri: P1, cookieinfocount: &mut u32, cookieinfo: *mut *mut ProofOfPossessionCookieInfo) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IInspectable>>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -7613,7 +7613,7 @@ where extern "system" { fn InternetConvertUrlFromWireToWideChar(pcszurl: ::windows::core::PCSTR, cchurl: u32, pcwszbaseurl: ::windows::core::PCWSTR, dwcodepagehost: u32, dwcodepagepath: u32, fencodepathextra: super::super::Foundation::BOOL, dwcodepageextra: u32, ppwszconvertedurl: *mut ::windows::core::PWSTR) -> u32; } - InternetConvertUrlFromWireToWideChar(::core::mem::transmute(::windows::core::as_ptr_or_null(pcszurl)), pcszurl.len() as _, pcwszbaseurl.into(), dwcodepagehost, dwcodepagepath, fencodepathextra.into(), dwcodepageextra, ::core::mem::transmute(ppwszconvertedurl)) + InternetConvertUrlFromWireToWideChar(::core::mem::transmute(pcszurl.as_ptr()), pcszurl.len() as _, pcwszbaseurl.into(), dwcodepagehost, dwcodepagepath, fencodepathextra.into(), dwcodepageextra, ::core::mem::transmute(ppwszconvertedurl)) } #[repr(C)] #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] @@ -7701,7 +7701,7 @@ pub unsafe fn InternetCrackUrlA(lpszurl: &[u8], dwflags: super::WinHttp::WIN_HTT extern "system" { fn InternetCrackUrlA(lpszurl: ::windows::core::PCSTR, dwurllength: u32, dwflags: super::WinHttp::WIN_HTTP_CREATE_URL_FLAGS, lpurlcomponents: *mut URL_COMPONENTSA) -> super::super::Foundation::BOOL; } - InternetCrackUrlA(::core::mem::transmute(::windows::core::as_ptr_or_null(lpszurl)), lpszurl.len() as _, dwflags, ::core::mem::transmute(lpurlcomponents)) + InternetCrackUrlA(::core::mem::transmute(lpszurl.as_ptr()), lpszurl.len() as _, dwflags, ::core::mem::transmute(lpurlcomponents)) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`, `\"Win32_Networking_WinHttp\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Networking_WinHttp"))] @@ -7711,7 +7711,7 @@ pub unsafe fn InternetCrackUrlW(lpszurl: &[u16], dwflags: super::WinHttp::WIN_HT extern "system" { fn InternetCrackUrlW(lpszurl: ::windows::core::PCWSTR, dwurllength: u32, dwflags: super::WinHttp::WIN_HTTP_CREATE_URL_FLAGS, lpurlcomponents: *mut URL_COMPONENTSW) -> super::super::Foundation::BOOL; } - InternetCrackUrlW(::core::mem::transmute(::windows::core::as_ptr_or_null(lpszurl)), lpszurl.len() as _, dwflags, ::core::mem::transmute(lpurlcomponents)) + InternetCrackUrlW(::core::mem::transmute(lpszurl.as_ptr()), lpszurl.len() as _, dwflags, ::core::mem::transmute(lpurlcomponents)) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7874,32 +7874,32 @@ pub unsafe fn InternetGetConnectedState(lpdwflags: &mut INTERNET_CONNECTION, dwr #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn InternetGetConnectedStateEx(lpdwflags: &mut INTERNET_CONNECTION, lpszconnectionname: &mut [u8], dwreserved: u32) -> super::super::Foundation::BOOL { +pub unsafe fn InternetGetConnectedStateEx(lpdwflags: &mut INTERNET_CONNECTION, lpszconnectionname: ::core::option::Option<&mut [u8]>, dwreserved: u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InternetGetConnectedStateEx(lpdwflags: *mut INTERNET_CONNECTION, lpszconnectionname: ::windows::core::PSTR, dwnamelen: u32, dwreserved: u32) -> super::super::Foundation::BOOL; } - InternetGetConnectedStateEx(::core::mem::transmute(lpdwflags), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszconnectionname)), lpszconnectionname.len() as _, dwreserved) + InternetGetConnectedStateEx(::core::mem::transmute(lpdwflags), ::core::mem::transmute(lpszconnectionname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszconnectionname.as_deref().map_or(0, |slice| slice.len() as _), dwreserved) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn InternetGetConnectedStateExA(lpdwflags: ::core::option::Option<&mut INTERNET_CONNECTION>, lpszconnectionname: &mut [u8], dwreserved: u32) -> super::super::Foundation::BOOL { +pub unsafe fn InternetGetConnectedStateExA(lpdwflags: ::core::option::Option<&mut INTERNET_CONNECTION>, lpszconnectionname: ::core::option::Option<&mut [u8]>, dwreserved: u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InternetGetConnectedStateExA(lpdwflags: *mut INTERNET_CONNECTION, lpszconnectionname: ::windows::core::PSTR, cchnamelen: u32, dwreserved: u32) -> super::super::Foundation::BOOL; } - InternetGetConnectedStateExA(::core::mem::transmute(lpdwflags), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszconnectionname)), lpszconnectionname.len() as _, dwreserved) + InternetGetConnectedStateExA(::core::mem::transmute(lpdwflags), ::core::mem::transmute(lpszconnectionname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszconnectionname.as_deref().map_or(0, |slice| slice.len() as _), dwreserved) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn InternetGetConnectedStateExW(lpdwflags: ::core::option::Option<&mut INTERNET_CONNECTION>, lpszconnectionname: &mut [u16], dwreserved: u32) -> super::super::Foundation::BOOL { +pub unsafe fn InternetGetConnectedStateExW(lpdwflags: ::core::option::Option<&mut INTERNET_CONNECTION>, lpszconnectionname: ::core::option::Option<&mut [u16]>, dwreserved: u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InternetGetConnectedStateExW(lpdwflags: *mut INTERNET_CONNECTION, lpszconnectionname: ::windows::core::PWSTR, cchnamelen: u32, dwreserved: u32) -> super::super::Foundation::BOOL; } - InternetGetConnectedStateExW(::core::mem::transmute(lpdwflags), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszconnectionname)), lpszconnectionname.len() as _, dwreserved) + InternetGetConnectedStateExW(::core::mem::transmute(lpdwflags), ::core::mem::transmute(lpszconnectionname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszconnectionname.as_deref().map_or(0, |slice| slice.len() as _), dwreserved) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8156,7 +8156,7 @@ where } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`*"] #[inline] -pub unsafe fn InternetOpenUrlA<'a, P0>(hinternet: *const ::core::ffi::c_void, lpszurl: P0, lpszheaders: &[u8], dwflags: u32, dwcontext: usize) -> *mut ::core::ffi::c_void +pub unsafe fn InternetOpenUrlA<'a, P0>(hinternet: *const ::core::ffi::c_void, lpszurl: P0, lpszheaders: ::core::option::Option<&[u8]>, dwflags: u32, dwcontext: usize) -> *mut ::core::ffi::c_void where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -8164,11 +8164,11 @@ where extern "system" { fn InternetOpenUrlA(hinternet: *const ::core::ffi::c_void, lpszurl: ::windows::core::PCSTR, lpszheaders: ::windows::core::PCSTR, dwheaderslength: u32, dwflags: u32, dwcontext: usize) -> *mut ::core::ffi::c_void; } - InternetOpenUrlA(::core::mem::transmute(hinternet), lpszurl.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpszheaders)), lpszheaders.len() as _, dwflags, dwcontext) + InternetOpenUrlA(::core::mem::transmute(hinternet), lpszurl.into(), ::core::mem::transmute(lpszheaders.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszheaders.as_deref().map_or(0, |slice| slice.len() as _), dwflags, dwcontext) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`*"] #[inline] -pub unsafe fn InternetOpenUrlW<'a, P0>(hinternet: *const ::core::ffi::c_void, lpszurl: P0, lpszheaders: &[u16], dwflags: u32, dwcontext: usize) -> *mut ::core::ffi::c_void +pub unsafe fn InternetOpenUrlW<'a, P0>(hinternet: *const ::core::ffi::c_void, lpszurl: P0, lpszheaders: ::core::option::Option<&[u16]>, dwflags: u32, dwcontext: usize) -> *mut ::core::ffi::c_void where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -8176,7 +8176,7 @@ where extern "system" { fn InternetOpenUrlW(hinternet: *const ::core::ffi::c_void, lpszurl: ::windows::core::PCWSTR, lpszheaders: ::windows::core::PCWSTR, dwheaderslength: u32, dwflags: u32, dwcontext: usize) -> *mut ::core::ffi::c_void; } - InternetOpenUrlW(::core::mem::transmute(hinternet), lpszurl.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpszheaders)), lpszheaders.len() as _, dwflags, dwcontext) + InternetOpenUrlW(::core::mem::transmute(hinternet), lpszurl.into(), ::core::mem::transmute(lpszheaders.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszheaders.as_deref().map_or(0, |slice| slice.len() as _), dwflags, dwcontext) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`*"] #[inline] @@ -8235,12 +8235,12 @@ pub unsafe fn InternetQueryOptionW(hinternet: *const ::core::ffi::c_void, dwopti #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn InternetReadFile(hfile: *const ::core::ffi::c_void, lpbuffer: *mut ::core::ffi::c_void, dwnumberofbytestoread: u32, lpdwnumberofbytesread: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn InternetReadFile(hfile: *const ::core::ffi::c_void, lpbuffer: &mut [u8], lpdwnumberofbytesread: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InternetReadFile(hfile: *const ::core::ffi::c_void, lpbuffer: *mut ::core::ffi::c_void, dwnumberofbytestoread: u32, lpdwnumberofbytesread: *mut u32) -> super::super::Foundation::BOOL; } - InternetReadFile(::core::mem::transmute(hfile), ::core::mem::transmute(lpbuffer), dwnumberofbytestoread, ::core::mem::transmute(lpdwnumberofbytesread)) + InternetReadFile(::core::mem::transmute(hfile), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpdwnumberofbytesread)) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8540,32 +8540,32 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn InternetTimeFromSystemTime(pst: &super::super::Foundation::SYSTEMTIME, dwrfc: u32, lpsztime: ::windows::core::PSTR, cbtime: u32) -> super::super::Foundation::BOOL { +pub unsafe fn InternetTimeFromSystemTime(pst: &super::super::Foundation::SYSTEMTIME, dwrfc: u32, lpsztime: &mut [u8]) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InternetTimeFromSystemTime(pst: *const super::super::Foundation::SYSTEMTIME, dwrfc: u32, lpsztime: ::windows::core::PSTR, cbtime: u32) -> super::super::Foundation::BOOL; } - InternetTimeFromSystemTime(::core::mem::transmute(pst), dwrfc, ::core::mem::transmute(lpsztime), cbtime) + InternetTimeFromSystemTime(::core::mem::transmute(pst), dwrfc, ::core::mem::transmute(lpsztime.as_ptr()), lpsztime.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn InternetTimeFromSystemTimeA(pst: &super::super::Foundation::SYSTEMTIME, dwrfc: u32, lpsztime: ::windows::core::PSTR, cbtime: u32) -> super::super::Foundation::BOOL { +pub unsafe fn InternetTimeFromSystemTimeA(pst: &super::super::Foundation::SYSTEMTIME, dwrfc: u32, lpsztime: &mut [u8]) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InternetTimeFromSystemTimeA(pst: *const super::super::Foundation::SYSTEMTIME, dwrfc: u32, lpsztime: ::windows::core::PSTR, cbtime: u32) -> super::super::Foundation::BOOL; } - InternetTimeFromSystemTimeA(::core::mem::transmute(pst), dwrfc, ::core::mem::transmute(lpsztime), cbtime) + InternetTimeFromSystemTimeA(::core::mem::transmute(pst), dwrfc, ::core::mem::transmute(lpsztime.as_ptr()), lpsztime.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn InternetTimeFromSystemTimeW(pst: &super::super::Foundation::SYSTEMTIME, dwrfc: u32, lpsztime: ::windows::core::PWSTR, cbtime: u32) -> super::super::Foundation::BOOL { +pub unsafe fn InternetTimeFromSystemTimeW(pst: &super::super::Foundation::SYSTEMTIME, dwrfc: u32, lpsztime: &mut [u8]) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InternetTimeFromSystemTimeW(pst: *const super::super::Foundation::SYSTEMTIME, dwrfc: u32, lpsztime: ::windows::core::PWSTR, cbtime: u32) -> super::super::Foundation::BOOL; } - InternetTimeFromSystemTimeW(::core::mem::transmute(pst), dwrfc, ::core::mem::transmute(lpsztime), cbtime) + InternetTimeFromSystemTimeW(::core::mem::transmute(pst), dwrfc, ::core::mem::transmute(lpsztime.as_ptr()), lpsztime.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8622,12 +8622,12 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn InternetWriteFile(hfile: *const ::core::ffi::c_void, lpbuffer: *const ::core::ffi::c_void, dwnumberofbytestowrite: u32, lpdwnumberofbyteswritten: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn InternetWriteFile(hfile: *const ::core::ffi::c_void, lpbuffer: &[u8], lpdwnumberofbyteswritten: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InternetWriteFile(hfile: *const ::core::ffi::c_void, lpbuffer: *const ::core::ffi::c_void, dwnumberofbytestowrite: u32, lpdwnumberofbyteswritten: *mut u32) -> super::super::Foundation::BOOL; } - InternetWriteFile(::core::mem::transmute(hfile), ::core::mem::transmute(lpbuffer), dwnumberofbytestowrite, ::core::mem::transmute(lpdwnumberofbyteswritten)) + InternetWriteFile(::core::mem::transmute(hfile), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpdwnumberofbyteswritten)) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8685,7 +8685,7 @@ pub unsafe fn IsHostInProxyBypassList(tscheme: INTERNET_SCHEME, lpszhost: &[u8]) extern "system" { fn IsHostInProxyBypassList(tscheme: INTERNET_SCHEME, lpszhost: ::windows::core::PCSTR, cchhost: u32) -> super::super::Foundation::BOOL; } - IsHostInProxyBypassList(tscheme, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpszhost)), lpszhost.len() as _) + IsHostInProxyBypassList(tscheme, ::core::mem::transmute(lpszhost.as_ptr()), lpszhost.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8895,12 +8895,12 @@ pub const PROXY_TYPE_DIRECT: u32 = 1u32; pub const PROXY_TYPE_PROXY: u32 = 2u32; #[doc = "*Required features: `\"Win32_Networking_WinInet\"`*"] #[inline] -pub unsafe fn ParseX509EncodedCertificateForListBoxEntry(lpcert: &u8, cbcert: u32, lpszlistboxentry: ::windows::core::PSTR, lpdwlistboxentry: &mut u32) -> u32 { +pub unsafe fn ParseX509EncodedCertificateForListBoxEntry(lpcert: &[u8], lpszlistboxentry: ::windows::core::PSTR, lpdwlistboxentry: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ParseX509EncodedCertificateForListBoxEntry(lpcert: *const u8, cbcert: u32, lpszlistboxentry: ::windows::core::PSTR, lpdwlistboxentry: *mut u32) -> u32; } - ParseX509EncodedCertificateForListBoxEntry(::core::mem::transmute(lpcert), cbcert, ::core::mem::transmute(lpszlistboxentry), ::core::mem::transmute(lpdwlistboxentry)) + ParseX509EncodedCertificateForListBoxEntry(::core::mem::transmute(lpcert.as_ptr()), lpcert.len() as _, ::core::mem::transmute(lpszlistboxentry), ::core::mem::transmute(lpdwlistboxentry)) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9075,7 +9075,7 @@ pub unsafe fn ResumeSuspendedDownload(hrequest: *const ::core::ffi::c_void, dwre #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RetrieveUrlCacheEntryFileA<'a, P0>(lpszurlname: P0, lpcacheentryinfo: ::core::option::Option<&mut INTERNET_CACHE_ENTRY_INFOA>, lpcbcacheentryinfo: &mut u32, dwreserved: u32) -> super::super::Foundation::BOOL +pub unsafe fn RetrieveUrlCacheEntryFileA<'a, P0>(lpszurlname: P0, lpcacheentryinfo: *mut INTERNET_CACHE_ENTRY_INFOA, lpcbcacheentryinfo: &mut u32, dwreserved: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -9088,7 +9088,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RetrieveUrlCacheEntryFileW<'a, P0>(lpszurlname: P0, lpcacheentryinfo: ::core::option::Option<&mut INTERNET_CACHE_ENTRY_INFOW>, lpcbcacheentryinfo: &mut u32, dwreserved: u32) -> super::super::Foundation::BOOL +pub unsafe fn RetrieveUrlCacheEntryFileW<'a, P0>(lpszurlname: P0, lpcacheentryinfo: *mut INTERNET_CACHE_ENTRY_INFOW, lpcbcacheentryinfo: &mut u32, dwreserved: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -9101,7 +9101,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RetrieveUrlCacheEntryStreamA<'a, P0, P1>(lpszurlname: P0, lpcacheentryinfo: ::core::option::Option<&mut INTERNET_CACHE_ENTRY_INFOA>, lpcbcacheentryinfo: &mut u32, frandomread: P1, dwreserved: u32) -> ::windows::core::Result +pub unsafe fn RetrieveUrlCacheEntryStreamA<'a, P0, P1>(lpszurlname: P0, lpcacheentryinfo: *mut INTERNET_CACHE_ENTRY_INFOA, lpcbcacheentryinfo: &mut u32, frandomread: P1, dwreserved: u32) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into, @@ -9116,7 +9116,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RetrieveUrlCacheEntryStreamW<'a, P0, P1>(lpszurlname: P0, lpcacheentryinfo: ::core::option::Option<&mut INTERNET_CACHE_ENTRY_INFOW>, lpcbcacheentryinfo: &mut u32, frandomread: P1, dwreserved: u32) -> ::windows::core::Result +pub unsafe fn RetrieveUrlCacheEntryStreamW<'a, P0, P1>(lpszurlname: P0, lpcacheentryinfo: *mut INTERNET_CACHE_ENTRY_INFOW, lpcbcacheentryinfo: &mut u32, frandomread: P1, dwreserved: u32) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into, @@ -9329,7 +9329,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ShowX509EncodedCertificate<'a, P0>(hwndparent: P0, lpcert: &u8, cbcert: u32) -> u32 +pub unsafe fn ShowX509EncodedCertificate<'a, P0>(hwndparent: P0, lpcert: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -9337,7 +9337,7 @@ where extern "system" { fn ShowX509EncodedCertificate(hwndparent: super::super::Foundation::HWND, lpcert: *const u8, cbcert: u32) -> u32; } - ShowX509EncodedCertificate(hwndparent.into(), ::core::mem::transmute(lpcert), cbcert) + ShowX509EncodedCertificate(hwndparent.into(), ::core::mem::transmute(lpcert.as_ptr()), lpcert.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`*"] pub const TRACK_OFFLINE_CACHE_ENTRY: u32 = 16u32; @@ -9634,7 +9634,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinInet\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn UrlCacheCheckEntriesExist(rgpwszurls: &::windows::core::PWSTR, centries: u32, rgfexist: &mut super::super::Foundation::BOOL) -> u32 { +pub unsafe fn UrlCacheCheckEntriesExist(rgpwszurls: *const ::windows::core::PWSTR, centries: u32, rgfexist: *mut super::super::Foundation::BOOL) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn UrlCacheCheckEntriesExist(rgpwszurls: *const ::windows::core::PWSTR, centries: u32, rgfexist: *mut super::super::Foundation::BOOL) -> u32; @@ -9826,7 +9826,7 @@ pub unsafe fn UrlCacheSetGlobalLimit(limittype: URL_CACHE_LIMIT_TYPE, ulllimit: } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`*"] #[inline] -pub unsafe fn UrlCacheUpdateEntryExtraData<'a, P0>(happcache: *const ::core::ffi::c_void, pcwszurl: P0, pbextradata: &u8, cbextradata: u32) -> u32 +pub unsafe fn UrlCacheUpdateEntryExtraData<'a, P0>(happcache: *const ::core::ffi::c_void, pcwszurl: P0, pbextradata: &[u8]) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -9834,7 +9834,7 @@ where extern "system" { fn UrlCacheUpdateEntryExtraData(happcache: *const ::core::ffi::c_void, pcwszurl: ::windows::core::PCWSTR, pbextradata: *const u8, cbextradata: u32) -> u32; } - UrlCacheUpdateEntryExtraData(::core::mem::transmute(happcache), pcwszurl.into(), ::core::mem::transmute(pbextradata), cbextradata) + UrlCacheUpdateEntryExtraData(::core::mem::transmute(happcache), pcwszurl.into(), ::core::mem::transmute(pbextradata.as_ptr()), pbextradata.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinInet\"`*"] pub const WININET_API_FLAG_ASYNC: u32 = 1u32; diff --git a/crates/libs/windows/src/Windows/Win32/Networking/WinSock/mod.rs b/crates/libs/windows/src/Windows/Win32/Networking/WinSock/mod.rs index 63937cbbe9..d59f4602f9 100644 --- a/crates/libs/windows/src/Windows/Win32/Networking/WinSock/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Networking/WinSock/mod.rs @@ -2221,35 +2221,35 @@ pub unsafe fn GetHostNameW(name: &mut [u16]) -> i32 { extern "system" { fn GetHostNameW(name: ::windows::core::PWSTR, namelen: i32) -> i32; } - GetHostNameW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(name)), name.len() as _) + GetHostNameW(::core::mem::transmute(name.as_ptr()), name.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] -pub unsafe fn GetNameByTypeA(lpservicetype: &::windows::core::GUID, lpservicename: ::windows::core::PSTR, dwnamelength: u32) -> i32 { +pub unsafe fn GetNameByTypeA(lpservicetype: &::windows::core::GUID, lpservicename: &mut [u8]) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetNameByTypeA(lpservicetype: *const ::windows::core::GUID, lpservicename: ::windows::core::PSTR, dwnamelength: u32) -> i32; } - GetNameByTypeA(::core::mem::transmute(lpservicetype), ::core::mem::transmute(lpservicename), dwnamelength) + GetNameByTypeA(::core::mem::transmute(lpservicetype), ::core::mem::transmute(lpservicename.as_ptr()), lpservicename.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] -pub unsafe fn GetNameByTypeW(lpservicetype: &::windows::core::GUID, lpservicename: ::windows::core::PWSTR, dwnamelength: u32) -> i32 { +pub unsafe fn GetNameByTypeW(lpservicetype: &::windows::core::GUID, lpservicename: &mut [u8]) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetNameByTypeW(lpservicetype: *const ::windows::core::GUID, lpservicename: ::windows::core::PWSTR, dwnamelength: u32) -> i32; } - GetNameByTypeW(::core::mem::transmute(lpservicetype), ::core::mem::transmute(lpservicename), dwnamelength) + GetNameByTypeW(::core::mem::transmute(lpservicetype), ::core::mem::transmute(lpservicename.as_ptr()), lpservicename.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetNameInfoW(psockaddr: &SOCKADDR, sockaddrlength: i32, pnodebuffer: &mut [u16], pservicebuffer: &mut [u16], flags: i32) -> i32 { +pub unsafe fn GetNameInfoW(psockaddr: &[u8], pnodebuffer: ::core::option::Option<&mut [u16]>, pservicebuffer: ::core::option::Option<&mut [u16]>, flags: i32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetNameInfoW(psockaddr: *const SOCKADDR, sockaddrlength: i32, pnodebuffer: ::windows::core::PWSTR, nodebuffersize: u32, pservicebuffer: ::windows::core::PWSTR, servicebuffersize: u32, flags: i32) -> i32; } - GetNameInfoW(::core::mem::transmute(psockaddr), sockaddrlength, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pnodebuffer)), pnodebuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pservicebuffer)), pservicebuffer.len() as _, flags) + GetNameInfoW(::core::mem::transmute(psockaddr.as_ptr()), psockaddr.len() as _, ::core::mem::transmute(pnodebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pnodebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pservicebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pservicebuffer.as_deref().map_or(0, |slice| slice.len() as _), flags) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5372,7 +5372,7 @@ pub unsafe fn InetNtopW(family: i32, paddr: *const ::core::ffi::c_void, pstringb extern "system" { fn InetNtopW(family: i32, paddr: *const ::core::ffi::c_void, pstringbuf: ::windows::core::PWSTR, stringbufsize: usize) -> ::windows::core::PWSTR; } - InetNtopW(family, ::core::mem::transmute(paddr), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pstringbuf)), pstringbuf.len() as _) + InetNtopW(family, ::core::mem::transmute(paddr), ::core::mem::transmute(pstringbuf.as_ptr()), pstringbuf.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -8314,7 +8314,7 @@ pub const PVD_CONFIG: u32 = 12289u32; #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn ProcessSocketNotifications<'a, P0>(completionport: P0, registrationinfos: &mut [SOCK_NOTIFY_REGISTRATION], timeoutms: u32, completionportentries: &mut [super::super::System::IO::OVERLAPPED_ENTRY], receivedentrycount: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn ProcessSocketNotifications<'a, P0>(completionport: P0, registrationinfos: ::core::option::Option<&mut [SOCK_NOTIFY_REGISTRATION]>, timeoutms: u32, completionportentries: ::core::option::Option<&mut [super::super::System::IO::OVERLAPPED_ENTRY]>, receivedentrycount: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into, { @@ -8322,7 +8322,7 @@ where extern "system" { fn ProcessSocketNotifications(completionport: super::super::Foundation::HANDLE, registrationcount: u32, registrationinfos: *mut SOCK_NOTIFY_REGISTRATION, timeoutms: u32, completioncount: u32, completionportentries: *mut super::super::System::IO::OVERLAPPED_ENTRY, receivedentrycount: *mut u32) -> u32; } - ProcessSocketNotifications(completionport.into(), registrationinfos.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(registrationinfos)), timeoutms, completionportentries.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(completionportentries)), ::core::mem::transmute(receivedentrycount)) + ProcessSocketNotifications(completionport.into(), registrationinfos.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(registrationinfos.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), timeoutms, completionportentries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(completionportentries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(receivedentrycount)) } #[repr(C)] #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] @@ -9286,7 +9286,7 @@ pub unsafe fn RtlEthernetAddressToStringA(addr: &DL_EUI48, s: &mut [u8; 18]) -> extern "system" { fn RtlEthernetAddressToStringA(addr: *const DL_EUI48, s: ::windows::core::PSTR) -> ::windows::core::PSTR; } - RtlEthernetAddressToStringA(::core::mem::transmute(addr), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(s))) + RtlEthernetAddressToStringA(::core::mem::transmute(addr), ::core::mem::transmute(s.as_ptr())) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -9295,7 +9295,7 @@ pub unsafe fn RtlEthernetAddressToStringW(addr: &DL_EUI48, s: &mut [u16; 18]) -> extern "system" { fn RtlEthernetAddressToStringW(addr: *const DL_EUI48, s: ::windows::core::PWSTR) -> ::windows::core::PWSTR; } - RtlEthernetAddressToStringW(::core::mem::transmute(addr), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(s))) + RtlEthernetAddressToStringW(::core::mem::transmute(addr), ::core::mem::transmute(s.as_ptr())) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -9328,7 +9328,7 @@ pub unsafe fn RtlIpv4AddressToStringA(addr: &IN_ADDR, s: &mut [u8; 16]) -> ::win extern "system" { fn RtlIpv4AddressToStringA(addr: *const IN_ADDR, s: ::windows::core::PSTR) -> ::windows::core::PSTR; } - RtlIpv4AddressToStringA(::core::mem::transmute(addr), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(s))) + RtlIpv4AddressToStringA(::core::mem::transmute(addr), ::core::mem::transmute(s.as_ptr())) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -9355,7 +9355,7 @@ pub unsafe fn RtlIpv4AddressToStringW(addr: &IN_ADDR, s: &mut [u16; 16]) -> ::wi extern "system" { fn RtlIpv4AddressToStringW(addr: *const IN_ADDR, s: ::windows::core::PWSTR) -> ::windows::core::PWSTR; } - RtlIpv4AddressToStringW(::core::mem::transmute(addr), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(s))) + RtlIpv4AddressToStringW(::core::mem::transmute(addr), ::core::mem::transmute(s.as_ptr())) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9420,7 +9420,7 @@ pub unsafe fn RtlIpv6AddressToStringA(addr: &IN6_ADDR, s: &mut [u8; 46]) -> ::wi extern "system" { fn RtlIpv6AddressToStringA(addr: *const IN6_ADDR, s: ::windows::core::PSTR) -> ::windows::core::PSTR; } - RtlIpv6AddressToStringA(::core::mem::transmute(addr), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(s))) + RtlIpv6AddressToStringA(::core::mem::transmute(addr), ::core::mem::transmute(s.as_ptr())) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -9447,7 +9447,7 @@ pub unsafe fn RtlIpv6AddressToStringW(addr: &IN6_ADDR, s: &mut [u16; 46]) -> ::w extern "system" { fn RtlIpv6AddressToStringW(addr: *const IN6_ADDR, s: ::windows::core::PWSTR) -> ::windows::core::PWSTR; } - RtlIpv6AddressToStringW(::core::mem::transmute(addr), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(s))) + RtlIpv6AddressToStringW(::core::mem::transmute(addr), ::core::mem::transmute(s.as_ptr())) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -12925,7 +12925,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAAccept<'a, P0>(s: P0, addr: ::core::option::Option<&mut SOCKADDR>, addrlen: ::core::option::Option<&mut i32>, lpfncondition: LPCONDITIONPROC, dwcallbackdata: usize) -> SOCKET +pub unsafe fn WSAAccept<'a, P0>(s: P0, addr: *mut SOCKADDR, addrlen: ::core::option::Option<&mut i32>, lpfncondition: LPCONDITIONPROC, dwcallbackdata: usize) -> SOCKET where P0: ::std::convert::Into, { @@ -12938,22 +12938,22 @@ where #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAAddressToStringA(lpsaaddress: &SOCKADDR, dwaddresslength: u32, lpprotocolinfo: ::core::option::Option<&WSAPROTOCOL_INFOA>, lpszaddressstring: ::windows::core::PSTR, lpdwaddressstringlength: &mut u32) -> i32 { +pub unsafe fn WSAAddressToStringA(lpsaaddress: &[u8], lpprotocolinfo: ::core::option::Option<&WSAPROTOCOL_INFOA>, lpszaddressstring: ::windows::core::PSTR, lpdwaddressstringlength: &mut u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSAAddressToStringA(lpsaaddress: *const SOCKADDR, dwaddresslength: u32, lpprotocolinfo: *const WSAPROTOCOL_INFOA, lpszaddressstring: ::windows::core::PSTR, lpdwaddressstringlength: *mut u32) -> i32; } - WSAAddressToStringA(::core::mem::transmute(lpsaaddress), dwaddresslength, ::core::mem::transmute(lpprotocolinfo), ::core::mem::transmute(lpszaddressstring), ::core::mem::transmute(lpdwaddressstringlength)) + WSAAddressToStringA(::core::mem::transmute(lpsaaddress.as_ptr()), lpsaaddress.len() as _, ::core::mem::transmute(lpprotocolinfo), ::core::mem::transmute(lpszaddressstring), ::core::mem::transmute(lpdwaddressstringlength)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAAddressToStringW(lpsaaddress: &SOCKADDR, dwaddresslength: u32, lpprotocolinfo: ::core::option::Option<&WSAPROTOCOL_INFOW>, lpszaddressstring: ::windows::core::PWSTR, lpdwaddressstringlength: &mut u32) -> i32 { +pub unsafe fn WSAAddressToStringW(lpsaaddress: &[u8], lpprotocolinfo: ::core::option::Option<&WSAPROTOCOL_INFOW>, lpszaddressstring: ::windows::core::PWSTR, lpdwaddressstringlength: &mut u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSAAddressToStringW(lpsaaddress: *const SOCKADDR, dwaddresslength: u32, lpprotocolinfo: *const WSAPROTOCOL_INFOW, lpszaddressstring: ::windows::core::PWSTR, lpdwaddressstringlength: *mut u32) -> i32; } - WSAAddressToStringW(::core::mem::transmute(lpsaaddress), dwaddresslength, ::core::mem::transmute(lpprotocolinfo), ::core::mem::transmute(lpszaddressstring), ::core::mem::transmute(lpdwaddressstringlength)) + WSAAddressToStringW(::core::mem::transmute(lpsaaddress.as_ptr()), lpsaaddress.len() as _, ::core::mem::transmute(lpprotocolinfo), ::core::mem::transmute(lpszaddressstring), ::core::mem::transmute(lpdwaddressstringlength)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] @@ -12968,21 +12968,20 @@ pub unsafe fn WSAAdvertiseProvider(puuidproviderid: &::windows::core::GUID, pnsp #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAAsyncGetHostByAddr<'a, P0, P1>(hwnd: P0, wmsg: u32, addr: P1, len: i32, r#type: i32, buf: ::windows::core::PSTR, buflen: i32) -> super::super::Foundation::HANDLE +pub unsafe fn WSAAsyncGetHostByAddr<'a, P0>(hwnd: P0, wmsg: u32, addr: &[u8], r#type: i32, buf: &mut [u8]) -> super::super::Foundation::HANDLE where P0: ::std::convert::Into, - P1: ::std::convert::Into<::windows::core::PCSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSAAsyncGetHostByAddr(hwnd: super::super::Foundation::HWND, wmsg: u32, addr: ::windows::core::PCSTR, len: i32, r#type: i32, buf: ::windows::core::PSTR, buflen: i32) -> super::super::Foundation::HANDLE; } - WSAAsyncGetHostByAddr(hwnd.into(), wmsg, addr.into(), len, r#type, ::core::mem::transmute(buf), buflen) + WSAAsyncGetHostByAddr(hwnd.into(), wmsg, ::core::mem::transmute(addr.as_ptr()), addr.len() as _, r#type, ::core::mem::transmute(buf.as_ptr()), buf.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAAsyncGetHostByName<'a, P0, P1>(hwnd: P0, wmsg: u32, name: P1, buf: ::windows::core::PSTR, buflen: i32) -> super::super::Foundation::HANDLE +pub unsafe fn WSAAsyncGetHostByName<'a, P0, P1>(hwnd: P0, wmsg: u32, name: P1, buf: &mut [u8]) -> super::super::Foundation::HANDLE where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -12991,12 +12990,12 @@ where extern "system" { fn WSAAsyncGetHostByName(hwnd: super::super::Foundation::HWND, wmsg: u32, name: ::windows::core::PCSTR, buf: ::windows::core::PSTR, buflen: i32) -> super::super::Foundation::HANDLE; } - WSAAsyncGetHostByName(hwnd.into(), wmsg, name.into(), ::core::mem::transmute(buf), buflen) + WSAAsyncGetHostByName(hwnd.into(), wmsg, name.into(), ::core::mem::transmute(buf.as_ptr()), buf.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAAsyncGetProtoByName<'a, P0, P1>(hwnd: P0, wmsg: u32, name: P1, buf: ::windows::core::PSTR, buflen: i32) -> super::super::Foundation::HANDLE +pub unsafe fn WSAAsyncGetProtoByName<'a, P0, P1>(hwnd: P0, wmsg: u32, name: P1, buf: &mut [u8]) -> super::super::Foundation::HANDLE where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -13005,12 +13004,12 @@ where extern "system" { fn WSAAsyncGetProtoByName(hwnd: super::super::Foundation::HWND, wmsg: u32, name: ::windows::core::PCSTR, buf: ::windows::core::PSTR, buflen: i32) -> super::super::Foundation::HANDLE; } - WSAAsyncGetProtoByName(hwnd.into(), wmsg, name.into(), ::core::mem::transmute(buf), buflen) + WSAAsyncGetProtoByName(hwnd.into(), wmsg, name.into(), ::core::mem::transmute(buf.as_ptr()), buf.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAAsyncGetProtoByNumber<'a, P0>(hwnd: P0, wmsg: u32, number: i32, buf: ::windows::core::PSTR, buflen: i32) -> super::super::Foundation::HANDLE +pub unsafe fn WSAAsyncGetProtoByNumber<'a, P0>(hwnd: P0, wmsg: u32, number: i32, buf: &mut [u8]) -> super::super::Foundation::HANDLE where P0: ::std::convert::Into, { @@ -13018,12 +13017,12 @@ where extern "system" { fn WSAAsyncGetProtoByNumber(hwnd: super::super::Foundation::HWND, wmsg: u32, number: i32, buf: ::windows::core::PSTR, buflen: i32) -> super::super::Foundation::HANDLE; } - WSAAsyncGetProtoByNumber(hwnd.into(), wmsg, number, ::core::mem::transmute(buf), buflen) + WSAAsyncGetProtoByNumber(hwnd.into(), wmsg, number, ::core::mem::transmute(buf.as_ptr()), buf.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAAsyncGetServByName<'a, P0, P1, P2>(hwnd: P0, wmsg: u32, name: P1, proto: P2, buf: ::windows::core::PSTR, buflen: i32) -> super::super::Foundation::HANDLE +pub unsafe fn WSAAsyncGetServByName<'a, P0, P1, P2>(hwnd: P0, wmsg: u32, name: P1, proto: P2, buf: &mut [u8]) -> super::super::Foundation::HANDLE where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -13033,12 +13032,12 @@ where extern "system" { fn WSAAsyncGetServByName(hwnd: super::super::Foundation::HWND, wmsg: u32, name: ::windows::core::PCSTR, proto: ::windows::core::PCSTR, buf: ::windows::core::PSTR, buflen: i32) -> super::super::Foundation::HANDLE; } - WSAAsyncGetServByName(hwnd.into(), wmsg, name.into(), proto.into(), ::core::mem::transmute(buf), buflen) + WSAAsyncGetServByName(hwnd.into(), wmsg, name.into(), proto.into(), ::core::mem::transmute(buf.as_ptr()), buf.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAAsyncGetServByPort<'a, P0, P1>(hwnd: P0, wmsg: u32, port: i32, proto: P1, buf: ::windows::core::PSTR, buflen: i32) -> super::super::Foundation::HANDLE +pub unsafe fn WSAAsyncGetServByPort<'a, P0, P1>(hwnd: P0, wmsg: u32, port: i32, proto: P1, buf: &mut [u8]) -> super::super::Foundation::HANDLE where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -13047,7 +13046,7 @@ where extern "system" { fn WSAAsyncGetServByPort(hwnd: super::super::Foundation::HWND, wmsg: u32, port: i32, proto: ::windows::core::PCSTR, buf: ::windows::core::PSTR, buflen: i32) -> super::super::Foundation::HANDLE; } - WSAAsyncGetServByPort(hwnd.into(), wmsg, port, proto.into(), ::core::mem::transmute(buf), buflen) + WSAAsyncGetServByPort(hwnd.into(), wmsg, port, proto.into(), ::core::mem::transmute(buf.as_ptr()), buf.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13399,7 +13398,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAConnect<'a, P0>(s: P0, name: &SOCKADDR, namelen: i32, lpcallerdata: ::core::option::Option<&WSABUF>, lpcalleedata: ::core::option::Option<&mut WSABUF>, lpsqos: ::core::option::Option<&QOS>, lpgqos: ::core::option::Option<&QOS>) -> i32 +pub unsafe fn WSAConnect<'a, P0>(s: P0, name: &[u8], lpcallerdata: ::core::option::Option<&WSABUF>, lpcalleedata: ::core::option::Option<&mut WSABUF>, lpsqos: ::core::option::Option<&QOS>, lpgqos: ::core::option::Option<&QOS>) -> i32 where P0: ::std::convert::Into, { @@ -13407,12 +13406,12 @@ where extern "system" { fn WSAConnect(s: SOCKET, name: *const SOCKADDR, namelen: i32, lpcallerdata: *const WSABUF, lpcalleedata: *mut WSABUF, lpsqos: *const QOS, lpgqos: *const QOS) -> i32; } - WSAConnect(s.into(), ::core::mem::transmute(name), namelen, ::core::mem::transmute(lpcallerdata), ::core::mem::transmute(lpcalleedata), ::core::mem::transmute(lpsqos), ::core::mem::transmute(lpgqos)) + WSAConnect(s.into(), ::core::mem::transmute(name.as_ptr()), name.len() as _, ::core::mem::transmute(lpcallerdata), ::core::mem::transmute(lpcalleedata), ::core::mem::transmute(lpsqos), ::core::mem::transmute(lpgqos)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn WSAConnectByList<'a, P0>(s: P0, socketaddress: &SOCKET_ADDRESS_LIST, localaddresslength: ::core::option::Option<&mut u32>, localaddress: ::core::option::Option<&mut SOCKADDR>, remoteaddresslength: ::core::option::Option<&mut u32>, remoteaddress: ::core::option::Option<&mut SOCKADDR>, timeout: ::core::option::Option<&timeval>, reserved: &mut super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL +pub unsafe fn WSAConnectByList<'a, P0>(s: P0, socketaddress: &SOCKET_ADDRESS_LIST, localaddresslength: ::core::option::Option<&mut u32>, localaddress: *mut SOCKADDR, remoteaddresslength: ::core::option::Option<&mut u32>, remoteaddress: *mut SOCKADDR, timeout: ::core::option::Option<&timeval>, reserved: &mut super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13425,7 +13424,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn WSAConnectByNameA<'a, P0, P1, P2>(s: P0, nodename: P1, servicename: P2, localaddresslength: ::core::option::Option<&mut u32>, localaddress: ::core::option::Option<&mut SOCKADDR>, remoteaddresslength: ::core::option::Option<&mut u32>, remoteaddress: ::core::option::Option<&mut SOCKADDR>, timeout: ::core::option::Option<&timeval>, reserved: &mut super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL +pub unsafe fn WSAConnectByNameA<'a, P0, P1, P2>(s: P0, nodename: P1, servicename: P2, localaddresslength: ::core::option::Option<&mut u32>, localaddress: *mut SOCKADDR, remoteaddresslength: ::core::option::Option<&mut u32>, remoteaddress: *mut SOCKADDR, timeout: ::core::option::Option<&timeval>, reserved: &mut super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -13440,7 +13439,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn WSAConnectByNameW<'a, P0, P1, P2>(s: P0, nodename: P1, servicename: P2, localaddresslength: ::core::option::Option<&mut u32>, localaddress: ::core::option::Option<&mut SOCKADDR>, remoteaddresslength: ::core::option::Option<&mut u32>, remoteaddress: ::core::option::Option<&mut SOCKADDR>, timeout: ::core::option::Option<&timeval>, reserved: &mut super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL +pub unsafe fn WSAConnectByNameW<'a, P0, P1, P2>(s: P0, nodename: P1, servicename: P2, localaddresslength: ::core::option::Option<&mut u32>, localaddress: *mut SOCKADDR, remoteaddresslength: ::core::option::Option<&mut u32>, remoteaddress: *mut SOCKADDR, timeout: ::core::option::Option<&timeval>, reserved: &mut super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -13571,7 +13570,7 @@ impl ::core::default::Default for WSAData { #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn WSADeleteSocketPeerTargetName<'a, P0>(socket: P0, peeraddr: &SOCKADDR, peeraddrlen: u32, overlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>, completionroutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32 +pub unsafe fn WSADeleteSocketPeerTargetName<'a, P0>(socket: P0, peeraddr: &[u8], overlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>, completionroutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32 where P0: ::std::convert::Into, { @@ -13579,7 +13578,7 @@ where extern "system" { fn WSADeleteSocketPeerTargetName(socket: SOCKET, peeraddr: *const SOCKADDR, peeraddrlen: u32, overlapped: *const super::super::System::IO::OVERLAPPED, completionroutine: *mut ::core::ffi::c_void) -> i32; } - WSADeleteSocketPeerTargetName(socket.into(), ::core::mem::transmute(peeraddr), peeraddrlen, ::core::mem::transmute(overlapped), ::core::mem::transmute(completionroutine)) + WSADeleteSocketPeerTargetName(socket.into(), ::core::mem::transmute(peeraddr.as_ptr()), peeraddr.len() as _, ::core::mem::transmute(overlapped), ::core::mem::transmute(completionroutine)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13665,7 +13664,7 @@ impl ::core::fmt::Debug for WSAESETSERVICEOP { #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAEnumNameSpaceProvidersA(lpdwbufferlength: &mut u32, lpnspbuffer: &mut WSANAMESPACE_INFOA) -> i32 { +pub unsafe fn WSAEnumNameSpaceProvidersA(lpdwbufferlength: &mut u32, lpnspbuffer: *mut WSANAMESPACE_INFOA) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSAEnumNameSpaceProvidersA(lpdwbufferlength: *mut u32, lpnspbuffer: *mut WSANAMESPACE_INFOA) -> i32; @@ -13675,7 +13674,7 @@ pub unsafe fn WSAEnumNameSpaceProvidersA(lpdwbufferlength: &mut u32, lpnspbuffer #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] #[inline] -pub unsafe fn WSAEnumNameSpaceProvidersExA(lpdwbufferlength: &mut u32, lpnspbuffer: &mut WSANAMESPACE_INFOEXA) -> i32 { +pub unsafe fn WSAEnumNameSpaceProvidersExA(lpdwbufferlength: &mut u32, lpnspbuffer: *mut WSANAMESPACE_INFOEXA) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSAEnumNameSpaceProvidersExA(lpdwbufferlength: *mut u32, lpnspbuffer: *mut WSANAMESPACE_INFOEXA) -> i32; @@ -13685,7 +13684,7 @@ pub unsafe fn WSAEnumNameSpaceProvidersExA(lpdwbufferlength: &mut u32, lpnspbuff #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] #[inline] -pub unsafe fn WSAEnumNameSpaceProvidersExW(lpdwbufferlength: &mut u32, lpnspbuffer: &mut WSANAMESPACE_INFOEXW) -> i32 { +pub unsafe fn WSAEnumNameSpaceProvidersExW(lpdwbufferlength: &mut u32, lpnspbuffer: *mut WSANAMESPACE_INFOEXW) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSAEnumNameSpaceProvidersExW(lpdwbufferlength: *mut u32, lpnspbuffer: *mut WSANAMESPACE_INFOEXW) -> i32; @@ -13695,7 +13694,7 @@ pub unsafe fn WSAEnumNameSpaceProvidersExW(lpdwbufferlength: &mut u32, lpnspbuff #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAEnumNameSpaceProvidersW(lpdwbufferlength: &mut u32, lpnspbuffer: &mut WSANAMESPACE_INFOW) -> i32 { +pub unsafe fn WSAEnumNameSpaceProvidersW(lpdwbufferlength: &mut u32, lpnspbuffer: *mut WSANAMESPACE_INFOW) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSAEnumNameSpaceProvidersW(lpdwbufferlength: *mut u32, lpnspbuffer: *mut WSANAMESPACE_INFOW) -> i32; @@ -13719,7 +13718,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAEnumProtocolsA(lpiprotocols: ::core::option::Option<&i32>, lpprotocolbuffer: ::core::option::Option<&mut WSAPROTOCOL_INFOA>, lpdwbufferlength: &mut u32) -> i32 { +pub unsafe fn WSAEnumProtocolsA(lpiprotocols: ::core::option::Option<&i32>, lpprotocolbuffer: *mut WSAPROTOCOL_INFOA, lpdwbufferlength: &mut u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSAEnumProtocolsA(lpiprotocols: *const i32, lpprotocolbuffer: *mut WSAPROTOCOL_INFOA, lpdwbufferlength: *mut u32) -> i32; @@ -13728,7 +13727,7 @@ pub unsafe fn WSAEnumProtocolsA(lpiprotocols: ::core::option::Option<&i32>, lppr } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] -pub unsafe fn WSAEnumProtocolsW(lpiprotocols: ::core::option::Option<&i32>, lpprotocolbuffer: ::core::option::Option<&mut WSAPROTOCOL_INFOW>, lpdwbufferlength: &mut u32) -> i32 { +pub unsafe fn WSAEnumProtocolsW(lpiprotocols: ::core::option::Option<&i32>, lpprotocolbuffer: *mut WSAPROTOCOL_INFOW, lpdwbufferlength: &mut u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSAEnumProtocolsW(lpiprotocols: *const i32, lpprotocolbuffer: *mut WSAPROTOCOL_INFOW, lpdwbufferlength: *mut u32) -> i32; @@ -13787,7 +13786,7 @@ where } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] -pub unsafe fn WSAGetServiceClassInfoA(lpproviderid: &::windows::core::GUID, lpserviceclassid: &::windows::core::GUID, lpdwbufsize: &mut u32, lpserviceclassinfo: &mut WSASERVICECLASSINFOA) -> i32 { +pub unsafe fn WSAGetServiceClassInfoA(lpproviderid: &::windows::core::GUID, lpserviceclassid: &::windows::core::GUID, lpdwbufsize: &mut u32, lpserviceclassinfo: *mut WSASERVICECLASSINFOA) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSAGetServiceClassInfoA(lpproviderid: *const ::windows::core::GUID, lpserviceclassid: *const ::windows::core::GUID, lpdwbufsize: *mut u32, lpserviceclassinfo: *mut WSASERVICECLASSINFOA) -> i32; @@ -13796,7 +13795,7 @@ pub unsafe fn WSAGetServiceClassInfoA(lpproviderid: &::windows::core::GUID, lpse } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] -pub unsafe fn WSAGetServiceClassInfoW(lpproviderid: &::windows::core::GUID, lpserviceclassid: &::windows::core::GUID, lpdwbufsize: &mut u32, lpserviceclassinfo: &mut WSASERVICECLASSINFOW) -> i32 { +pub unsafe fn WSAGetServiceClassInfoW(lpproviderid: &::windows::core::GUID, lpserviceclassid: &::windows::core::GUID, lpdwbufsize: &mut u32, lpserviceclassinfo: *mut WSASERVICECLASSINFOW) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSAGetServiceClassInfoW(lpproviderid: *const ::windows::core::GUID, lpserviceclassid: *const ::windows::core::GUID, lpdwbufsize: *mut u32, lpserviceclassinfo: *mut WSASERVICECLASSINFOW) -> i32; @@ -13848,7 +13847,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAImpersonateSocketPeer<'a, P0>(socket: P0, peeraddr: ::core::option::Option<&SOCKADDR>, peeraddrlen: u32) -> i32 +pub unsafe fn WSAImpersonateSocketPeer<'a, P0>(socket: P0, peeraddr: ::core::option::Option<&[u8]>) -> i32 where P0: ::std::convert::Into, { @@ -13856,7 +13855,7 @@ where extern "system" { fn WSAImpersonateSocketPeer(socket: SOCKET, peeraddr: *const SOCKADDR, peeraddrlen: u32) -> i32; } - WSAImpersonateSocketPeer(socket.into(), ::core::mem::transmute(peeraddr), peeraddrlen) + WSAImpersonateSocketPeer(socket.into(), ::core::mem::transmute(peeraddr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), peeraddr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -13879,7 +13878,7 @@ pub unsafe fn WSAInstallServiceClassW(lpserviceclassinfo: &WSASERVICECLASSINFOW) #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn WSAIoctl<'a, P0>(s: P0, dwiocontrolcode: u32, lpvinbuffer: *const ::core::ffi::c_void, cbinbuffer: u32, lpvoutbuffer: *mut ::core::ffi::c_void, cboutbuffer: u32, lpcbbytesreturned: &mut u32, lpoverlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>, lpcompletionroutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32 +pub unsafe fn WSAIoctl<'a, P0>(s: P0, dwiocontrolcode: u32, lpvinbuffer: ::core::option::Option<&[u8]>, lpvoutbuffer: ::core::option::Option<&mut [u8]>, lpcbbytesreturned: &mut u32, lpoverlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>, lpcompletionroutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32 where P0: ::std::convert::Into, { @@ -13887,7 +13886,7 @@ where extern "system" { fn WSAIoctl(s: SOCKET, dwiocontrolcode: u32, lpvinbuffer: *const ::core::ffi::c_void, cbinbuffer: u32, lpvoutbuffer: *mut ::core::ffi::c_void, cboutbuffer: u32, lpcbbytesreturned: *mut u32, lpoverlapped: *mut super::super::System::IO::OVERLAPPED, lpcompletionroutine: *mut ::core::ffi::c_void) -> i32; } - WSAIoctl(s.into(), dwiocontrolcode, ::core::mem::transmute(lpvinbuffer), cbinbuffer, ::core::mem::transmute(lpvoutbuffer), cboutbuffer, ::core::mem::transmute(lpcbbytesreturned), ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine)) + WSAIoctl(s.into(), dwiocontrolcode, ::core::mem::transmute(lpvinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpvinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpvoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpvoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpcbbytesreturned), ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13902,7 +13901,7 @@ pub unsafe fn WSAIsBlocking() -> super::super::Foundation::BOOL { #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAJoinLeaf<'a, P0>(s: P0, name: &SOCKADDR, namelen: i32, lpcallerdata: ::core::option::Option<&WSABUF>, lpcalleedata: ::core::option::Option<&mut WSABUF>, lpsqos: ::core::option::Option<&QOS>, lpgqos: ::core::option::Option<&QOS>, dwflags: u32) -> SOCKET +pub unsafe fn WSAJoinLeaf<'a, P0>(s: P0, name: &[u8], lpcallerdata: ::core::option::Option<&WSABUF>, lpcalleedata: ::core::option::Option<&mut WSABUF>, lpsqos: ::core::option::Option<&QOS>, lpgqos: ::core::option::Option<&QOS>, dwflags: u32) -> SOCKET where P0: ::std::convert::Into, { @@ -13910,7 +13909,7 @@ where extern "system" { fn WSAJoinLeaf(s: SOCKET, name: *const SOCKADDR, namelen: i32, lpcallerdata: *const WSABUF, lpcalleedata: *mut WSABUF, lpsqos: *const QOS, lpgqos: *const QOS, dwflags: u32) -> SOCKET; } - WSAJoinLeaf(s.into(), ::core::mem::transmute(name), namelen, ::core::mem::transmute(lpcallerdata), ::core::mem::transmute(lpcalleedata), ::core::mem::transmute(lpsqos), ::core::mem::transmute(lpgqos), dwflags) + WSAJoinLeaf(s.into(), ::core::mem::transmute(name.as_ptr()), name.len() as _, ::core::mem::transmute(lpcallerdata), ::core::mem::transmute(lpcalleedata), ::core::mem::transmute(lpsqos), ::core::mem::transmute(lpgqos), dwflags) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] @@ -13948,7 +13947,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] #[inline] -pub unsafe fn WSALookupServiceNextA<'a, P0>(hlookup: P0, dwcontrolflags: u32, lpdwbufferlength: &mut u32, lpqsresults: &mut WSAQUERYSETA) -> i32 +pub unsafe fn WSALookupServiceNextA<'a, P0>(hlookup: P0, dwcontrolflags: u32, lpdwbufferlength: &mut u32, lpqsresults: *mut WSAQUERYSETA) -> i32 where P0: ::std::convert::Into, { @@ -13961,7 +13960,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] #[inline] -pub unsafe fn WSALookupServiceNextW<'a, P0>(hlookup: P0, dwcontrolflags: u32, lpdwbufferlength: &mut u32, lpqsresults: ::core::option::Option<&mut WSAQUERYSETW>) -> i32 +pub unsafe fn WSALookupServiceNextW<'a, P0>(hlookup: P0, dwcontrolflags: u32, lpdwbufferlength: &mut u32, lpqsresults: *mut WSAQUERYSETW) -> i32 where P0: ::std::convert::Into, { @@ -14286,7 +14285,7 @@ impl ::core::default::Default for WSANSCLASSINFOW { #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn WSANSPIoctl<'a, P0>(hlookup: P0, dwcontrolcode: u32, lpvinbuffer: *const ::core::ffi::c_void, cbinbuffer: u32, lpvoutbuffer: *mut ::core::ffi::c_void, cboutbuffer: u32, lpcbbytesreturned: &mut u32, lpcompletion: ::core::option::Option<&WSACOMPLETION>) -> i32 +pub unsafe fn WSANSPIoctl<'a, P0>(hlookup: P0, dwcontrolcode: u32, lpvinbuffer: ::core::option::Option<&[u8]>, lpvoutbuffer: ::core::option::Option<&mut [u8]>, lpcbbytesreturned: &mut u32, lpcompletion: ::core::option::Option<&WSACOMPLETION>) -> i32 where P0: ::std::convert::Into, { @@ -14294,7 +14293,7 @@ where extern "system" { fn WSANSPIoctl(hlookup: super::super::Foundation::HANDLE, dwcontrolcode: u32, lpvinbuffer: *const ::core::ffi::c_void, cbinbuffer: u32, lpvoutbuffer: *mut ::core::ffi::c_void, cboutbuffer: u32, lpcbbytesreturned: *mut u32, lpcompletion: *const WSACOMPLETION) -> i32; } - WSANSPIoctl(hlookup.into(), dwcontrolcode, ::core::mem::transmute(lpvinbuffer), cbinbuffer, ::core::mem::transmute(lpvoutbuffer), cboutbuffer, ::core::mem::transmute(lpcbbytesreturned), ::core::mem::transmute(lpcompletion)) + WSANSPIoctl(hlookup.into(), dwcontrolcode, ::core::mem::transmute(lpvinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpvinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpvoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpvoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpcbbytesreturned), ::core::mem::transmute(lpcompletion)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -14869,7 +14868,7 @@ impl ::core::default::Default for WSAQUERYSETW { #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn WSAQuerySocketSecurity<'a, P0>(socket: P0, securityquerytemplate: ::core::option::Option<&SOCKET_SECURITY_QUERY_TEMPLATE>, securityquerytemplatelen: u32, securityqueryinfo: ::core::option::Option<&mut SOCKET_SECURITY_QUERY_INFO>, securityqueryinfolen: &mut u32, overlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>, completionroutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32 +pub unsafe fn WSAQuerySocketSecurity<'a, P0>(socket: P0, securityquerytemplate: ::core::option::Option<&[u8]>, securityqueryinfo: *mut SOCKET_SECURITY_QUERY_INFO, securityqueryinfolen: &mut u32, overlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>, completionroutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32 where P0: ::std::convert::Into, { @@ -14877,7 +14876,7 @@ where extern "system" { fn WSAQuerySocketSecurity(socket: SOCKET, securityquerytemplate: *const SOCKET_SECURITY_QUERY_TEMPLATE, securityquerytemplatelen: u32, securityqueryinfo: *mut SOCKET_SECURITY_QUERY_INFO, securityqueryinfolen: *mut u32, overlapped: *const super::super::System::IO::OVERLAPPED, completionroutine: *mut ::core::ffi::c_void) -> i32; } - WSAQuerySocketSecurity(socket.into(), ::core::mem::transmute(securityquerytemplate), securityquerytemplatelen, ::core::mem::transmute(securityqueryinfo), ::core::mem::transmute(securityqueryinfolen), ::core::mem::transmute(overlapped), ::core::mem::transmute(completionroutine)) + WSAQuerySocketSecurity(socket.into(), ::core::mem::transmute(securityquerytemplate.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), securityquerytemplate.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(securityqueryinfo), ::core::mem::transmute(securityqueryinfolen), ::core::mem::transmute(overlapped), ::core::mem::transmute(completionroutine)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] @@ -14890,7 +14889,7 @@ where extern "system" { fn WSARecv(s: SOCKET, lpbuffers: *const WSABUF, dwbuffercount: u32, lpnumberofbytesrecvd: *mut u32, lpflags: *mut u32, lpoverlapped: *mut super::super::System::IO::OVERLAPPED, lpcompletionroutine: *mut ::core::ffi::c_void) -> i32; } - WSARecv(s.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpbuffers)), lpbuffers.len() as _, ::core::mem::transmute(lpnumberofbytesrecvd), ::core::mem::transmute(lpflags), ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine)) + WSARecv(s.into(), ::core::mem::transmute(lpbuffers.as_ptr()), lpbuffers.len() as _, ::core::mem::transmute(lpnumberofbytesrecvd), ::core::mem::transmute(lpflags), ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -14906,7 +14905,7 @@ where } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] -pub unsafe fn WSARecvEx<'a, P0>(s: P0, buf: ::windows::core::PSTR, len: i32, flags: &mut i32) -> i32 +pub unsafe fn WSARecvEx<'a, P0>(s: P0, buf: &mut [u8], flags: &mut i32) -> i32 where P0: ::std::convert::Into, { @@ -14914,12 +14913,12 @@ where extern "system" { fn WSARecvEx(s: SOCKET, buf: ::windows::core::PSTR, len: i32, flags: *mut i32) -> i32; } - WSARecvEx(s.into(), ::core::mem::transmute(buf), len, ::core::mem::transmute(flags)) + WSARecvEx(s.into(), ::core::mem::transmute(buf.as_ptr()), buf.len() as _, ::core::mem::transmute(flags)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn WSARecvFrom<'a, P0>(s: P0, lpbuffers: &[WSABUF], lpnumberofbytesrecvd: ::core::option::Option<&mut u32>, lpflags: &mut u32, lpfrom: ::core::option::Option<&mut SOCKADDR>, lpfromlen: ::core::option::Option<&mut i32>, lpoverlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>, lpcompletionroutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32 +pub unsafe fn WSARecvFrom<'a, P0>(s: P0, lpbuffers: &[WSABUF], lpnumberofbytesrecvd: ::core::option::Option<&mut u32>, lpflags: &mut u32, lpfrom: *mut SOCKADDR, lpfromlen: ::core::option::Option<&mut i32>, lpoverlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>, lpcompletionroutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32 where P0: ::std::convert::Into, { @@ -14927,7 +14926,7 @@ where extern "system" { fn WSARecvFrom(s: SOCKET, lpbuffers: *const WSABUF, dwbuffercount: u32, lpnumberofbytesrecvd: *mut u32, lpflags: *mut u32, lpfrom: *mut SOCKADDR, lpfromlen: *mut i32, lpoverlapped: *mut super::super::System::IO::OVERLAPPED, lpcompletionroutine: *mut ::core::ffi::c_void) -> i32; } - WSARecvFrom(s.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpbuffers)), lpbuffers.len() as _, ::core::mem::transmute(lpnumberofbytesrecvd), ::core::mem::transmute(lpflags), ::core::mem::transmute(lpfrom), ::core::mem::transmute(lpfromlen), ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine)) + WSARecvFrom(s.into(), ::core::mem::transmute(lpbuffers.as_ptr()), lpbuffers.len() as _, ::core::mem::transmute(lpnumberofbytesrecvd), ::core::mem::transmute(lpflags), ::core::mem::transmute(lpfrom), ::core::mem::transmute(lpfromlen), ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -15081,7 +15080,7 @@ where extern "system" { fn WSASend(s: SOCKET, lpbuffers: *const WSABUF, dwbuffercount: u32, lpnumberofbytessent: *mut u32, dwflags: u32, lpoverlapped: *mut super::super::System::IO::OVERLAPPED, lpcompletionroutine: *mut ::core::ffi::c_void) -> i32; } - WSASend(s.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpbuffers)), lpbuffers.len() as _, ::core::mem::transmute(lpnumberofbytessent), dwflags, ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine)) + WSASend(s.into(), ::core::mem::transmute(lpbuffers.as_ptr()), lpbuffers.len() as _, ::core::mem::transmute(lpnumberofbytessent), dwflags, ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -15111,7 +15110,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn WSASendTo<'a, P0>(s: P0, lpbuffers: &[WSABUF], lpnumberofbytessent: ::core::option::Option<&mut u32>, dwflags: u32, lpto: ::core::option::Option<&SOCKADDR>, itolen: i32, lpoverlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>, lpcompletionroutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32 +pub unsafe fn WSASendTo<'a, P0>(s: P0, lpbuffers: &[WSABUF], lpnumberofbytessent: ::core::option::Option<&mut u32>, dwflags: u32, lpto: ::core::option::Option<&[u8]>, lpoverlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>, lpcompletionroutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32 where P0: ::std::convert::Into, { @@ -15119,7 +15118,7 @@ where extern "system" { fn WSASendTo(s: SOCKET, lpbuffers: *const WSABUF, dwbuffercount: u32, lpnumberofbytessent: *mut u32, dwflags: u32, lpto: *const SOCKADDR, itolen: i32, lpoverlapped: *mut super::super::System::IO::OVERLAPPED, lpcompletionroutine: *mut ::core::ffi::c_void) -> i32; } - WSASendTo(s.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpbuffers)), lpbuffers.len() as _, ::core::mem::transmute(lpnumberofbytessent), dwflags, ::core::mem::transmute(lpto), itolen, ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine)) + WSASendTo(s.into(), ::core::mem::transmute(lpbuffers.as_ptr()), lpbuffers.len() as _, ::core::mem::transmute(lpnumberofbytessent), dwflags, ::core::mem::transmute(lpto.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpto.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -15176,7 +15175,7 @@ pub unsafe fn WSASetServiceW(lpqsreginfo: &WSAQUERYSETW, essoperation: WSAESETSE #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn WSASetSocketPeerTargetName<'a, P0>(socket: P0, peertargetname: &SOCKET_PEER_TARGET_NAME, peertargetnamelen: u32, overlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>, completionroutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32 +pub unsafe fn WSASetSocketPeerTargetName<'a, P0>(socket: P0, peertargetname: &[u8], overlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>, completionroutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32 where P0: ::std::convert::Into, { @@ -15184,12 +15183,12 @@ where extern "system" { fn WSASetSocketPeerTargetName(socket: SOCKET, peertargetname: *const SOCKET_PEER_TARGET_NAME, peertargetnamelen: u32, overlapped: *const super::super::System::IO::OVERLAPPED, completionroutine: *mut ::core::ffi::c_void) -> i32; } - WSASetSocketPeerTargetName(socket.into(), ::core::mem::transmute(peertargetname), peertargetnamelen, ::core::mem::transmute(overlapped), ::core::mem::transmute(completionroutine)) + WSASetSocketPeerTargetName(socket.into(), ::core::mem::transmute(peertargetname.as_ptr()), peertargetname.len() as _, ::core::mem::transmute(overlapped), ::core::mem::transmute(completionroutine)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn WSASetSocketSecurity<'a, P0>(socket: P0, securitysettings: ::core::option::Option<&SOCKET_SECURITY_SETTINGS>, securitysettingslen: u32, overlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>, completionroutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32 +pub unsafe fn WSASetSocketSecurity<'a, P0>(socket: P0, securitysettings: ::core::option::Option<&[u8]>, overlapped: ::core::option::Option<&super::super::System::IO::OVERLAPPED>, completionroutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32 where P0: ::std::convert::Into, { @@ -15197,7 +15196,7 @@ where extern "system" { fn WSASetSocketSecurity(socket: SOCKET, securitysettings: *const SOCKET_SECURITY_SETTINGS, securitysettingslen: u32, overlapped: *const super::super::System::IO::OVERLAPPED, completionroutine: *mut ::core::ffi::c_void) -> i32; } - WSASetSocketSecurity(socket.into(), ::core::mem::transmute(securitysettings), securitysettingslen, ::core::mem::transmute(overlapped), ::core::mem::transmute(completionroutine)) + WSASetSocketSecurity(socket.into(), ::core::mem::transmute(securitysettings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), securitysettings.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(overlapped), ::core::mem::transmute(completionroutine)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -15231,7 +15230,7 @@ pub unsafe fn WSAStartup(wversionrequested: u16, lpwsadata: &mut WSAData) -> i32 #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAStringToAddressA<'a, P0>(addressstring: P0, addressfamily: i32, lpprotocolinfo: ::core::option::Option<&WSAPROTOCOL_INFOA>, lpaddress: &mut SOCKADDR, lpaddresslength: &mut i32) -> i32 +pub unsafe fn WSAStringToAddressA<'a, P0>(addressstring: P0, addressfamily: i32, lpprotocolinfo: ::core::option::Option<&WSAPROTOCOL_INFOA>, lpaddress: *mut SOCKADDR, lpaddresslength: &mut i32) -> i32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -15244,7 +15243,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSAStringToAddressW<'a, P0>(addressstring: P0, addressfamily: i32, lpprotocolinfo: ::core::option::Option<&WSAPROTOCOL_INFOW>, lpaddress: &mut SOCKADDR, lpaddresslength: &mut i32) -> i32 +pub unsafe fn WSAStringToAddressW<'a, P0>(addressstring: P0, addressfamily: i32, lpprotocolinfo: ::core::option::Option<&WSAPROTOCOL_INFOW>, lpaddress: *mut SOCKADDR, lpaddresslength: &mut i32) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -15354,7 +15353,7 @@ where extern "system" { fn WSAWaitForMultipleEvents(cevents: u32, lphevents: *const super::super::Foundation::HANDLE, fwaitall: super::super::Foundation::BOOL, dwtimeout: u32, falertable: super::super::Foundation::BOOL) -> u32; } - WSAWaitForMultipleEvents(lphevents.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lphevents)), fwaitall.into(), dwtimeout, falertable.into()) + WSAWaitForMultipleEvents(lphevents.len() as _, ::core::mem::transmute(lphevents.as_ptr()), fwaitall.into(), dwtimeout, falertable.into()) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[repr(transparent)] @@ -15711,7 +15710,7 @@ where #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WSCEnumNameSpaceProviders32(lpdwbufferlength: &mut u32, lpnspbuffer: &mut WSANAMESPACE_INFOW) -> i32 { +pub unsafe fn WSCEnumNameSpaceProviders32(lpdwbufferlength: &mut u32, lpnspbuffer: *mut WSANAMESPACE_INFOW) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSCEnumNameSpaceProviders32(lpdwbufferlength: *mut u32, lpnspbuffer: *mut WSANAMESPACE_INFOW) -> i32; @@ -15722,7 +15721,7 @@ pub unsafe fn WSCEnumNameSpaceProviders32(lpdwbufferlength: &mut u32, lpnspbuffe #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] #[inline] -pub unsafe fn WSCEnumNameSpaceProvidersEx32(lpdwbufferlength: &mut u32, lpnspbuffer: &mut WSANAMESPACE_INFOEXW) -> i32 { +pub unsafe fn WSCEnumNameSpaceProvidersEx32(lpdwbufferlength: &mut u32, lpnspbuffer: *mut WSANAMESPACE_INFOEXW) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSCEnumNameSpaceProvidersEx32(lpdwbufferlength: *mut u32, lpnspbuffer: *mut WSANAMESPACE_INFOEXW) -> i32; @@ -15731,7 +15730,7 @@ pub unsafe fn WSCEnumNameSpaceProvidersEx32(lpdwbufferlength: &mut u32, lpnspbuf } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] -pub unsafe fn WSCEnumProtocols(lpiprotocols: ::core::option::Option<&i32>, lpprotocolbuffer: ::core::option::Option<&mut WSAPROTOCOL_INFOW>, lpdwbufferlength: &mut u32, lperrno: &mut i32) -> i32 { +pub unsafe fn WSCEnumProtocols(lpiprotocols: ::core::option::Option<&i32>, lpprotocolbuffer: *mut WSAPROTOCOL_INFOW, lpdwbufferlength: &mut u32, lperrno: &mut i32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSCEnumProtocols(lpiprotocols: *const i32, lpprotocolbuffer: *mut WSAPROTOCOL_INFOW, lpdwbufferlength: *mut u32, lperrno: *mut i32) -> i32; @@ -15741,7 +15740,7 @@ pub unsafe fn WSCEnumProtocols(lpiprotocols: ::core::option::Option<&i32>, lppro #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn WSCEnumProtocols32(lpiprotocols: ::core::option::Option<&i32>, lpprotocolbuffer: &mut WSAPROTOCOL_INFOW, lpdwbufferlength: &mut u32, lperrno: &mut i32) -> i32 { +pub unsafe fn WSCEnumProtocols32(lpiprotocols: ::core::option::Option<&i32>, lpprotocolbuffer: *mut WSAPROTOCOL_INFOW, lpdwbufferlength: &mut u32, lperrno: &mut i32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSCEnumProtocols32(lpiprotocols: *const i32, lpprotocolbuffer: *mut WSAPROTOCOL_INFOW, lpdwbufferlength: *mut u32, lperrno: *mut i32) -> i32; @@ -15750,16 +15749,16 @@ pub unsafe fn WSCEnumProtocols32(lpiprotocols: ::core::option::Option<&i32>, lpp } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] -pub unsafe fn WSCGetApplicationCategory(path: &[u16], extra: &[u16], ppermittedlspcategories: &mut u32, lperrno: &mut i32) -> i32 { +pub unsafe fn WSCGetApplicationCategory(path: &[u16], extra: ::core::option::Option<&[u16]>, ppermittedlspcategories: &mut u32, lperrno: &mut i32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSCGetApplicationCategory(path: ::windows::core::PCWSTR, pathlength: u32, extra: ::windows::core::PCWSTR, extralength: u32, ppermittedlspcategories: *mut u32, lperrno: *mut i32) -> i32; } - WSCGetApplicationCategory(::core::mem::transmute(::windows::core::as_ptr_or_null(path)), path.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(extra)), extra.len() as _, ::core::mem::transmute(ppermittedlspcategories), ::core::mem::transmute(lperrno)) + WSCGetApplicationCategory(::core::mem::transmute(path.as_ptr()), path.len() as _, ::core::mem::transmute(extra.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), extra.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppermittedlspcategories), ::core::mem::transmute(lperrno)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] -pub unsafe fn WSCGetProviderInfo(lpproviderid: &::windows::core::GUID, infotype: WSC_PROVIDER_INFO_TYPE, info: &mut u8, infosize: &mut usize, flags: u32, lperrno: &mut i32) -> i32 { +pub unsafe fn WSCGetProviderInfo(lpproviderid: &::windows::core::GUID, infotype: WSC_PROVIDER_INFO_TYPE, info: *mut u8, infosize: &mut usize, flags: u32, lperrno: &mut i32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSCGetProviderInfo(lpproviderid: *const ::windows::core::GUID, infotype: WSC_PROVIDER_INFO_TYPE, info: *mut u8, infosize: *mut usize, flags: u32, lperrno: *mut i32) -> i32; @@ -15769,7 +15768,7 @@ pub unsafe fn WSCGetProviderInfo(lpproviderid: &::windows::core::GUID, infotype: #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn WSCGetProviderInfo32(lpproviderid: &::windows::core::GUID, infotype: WSC_PROVIDER_INFO_TYPE, info: &mut u8, infosize: &mut usize, flags: u32, lperrno: &mut i32) -> i32 { +pub unsafe fn WSCGetProviderInfo32(lpproviderid: &::windows::core::GUID, infotype: WSC_PROVIDER_INFO_TYPE, info: *mut u8, infosize: &mut usize, flags: u32, lperrno: &mut i32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSCGetProviderInfo32(lpproviderid: *const ::windows::core::GUID, infotype: WSC_PROVIDER_INFO_TYPE, info: *mut u8, infosize: *mut usize, flags: u32, lperrno: *mut i32) -> i32; @@ -15861,7 +15860,7 @@ where extern "system" { fn WSCInstallProvider(lpproviderid: *const ::windows::core::GUID, lpszproviderdllpath: ::windows::core::PCWSTR, lpprotocolinfolist: *const WSAPROTOCOL_INFOW, dwnumberofentries: u32, lperrno: *mut i32) -> i32; } - WSCInstallProvider(::core::mem::transmute(lpproviderid), lpszproviderdllpath.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpprotocolinfolist)), lpprotocolinfolist.len() as _, ::core::mem::transmute(lperrno)) + WSCInstallProvider(::core::mem::transmute(lpproviderid), lpszproviderdllpath.into(), ::core::mem::transmute(lpprotocolinfolist.as_ptr()), lpprotocolinfolist.len() as _, ::core::mem::transmute(lperrno)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] @@ -15874,7 +15873,7 @@ where extern "system" { fn WSCInstallProvider64_32(lpproviderid: *const ::windows::core::GUID, lpszproviderdllpath: ::windows::core::PCWSTR, lpprotocolinfolist: *const WSAPROTOCOL_INFOW, dwnumberofentries: u32, lperrno: *mut i32) -> i32; } - WSCInstallProvider64_32(::core::mem::transmute(lpproviderid), lpszproviderdllpath.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpprotocolinfolist)), lpprotocolinfolist.len() as _, ::core::mem::transmute(lperrno)) + WSCInstallProvider64_32(::core::mem::transmute(lpproviderid), lpszproviderdllpath.into(), ::core::mem::transmute(lpprotocolinfolist.as_ptr()), lpprotocolinfolist.len() as _, ::core::mem::transmute(lperrno)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] @@ -15889,35 +15888,35 @@ where extern "system" { fn WSCInstallProviderAndChains64_32(lpproviderid: *const ::windows::core::GUID, lpszproviderdllpath: ::windows::core::PCWSTR, lpszproviderdllpath32: ::windows::core::PCWSTR, lpszlspname: ::windows::core::PCWSTR, dwserviceflags: u32, lpprotocolinfolist: *mut WSAPROTOCOL_INFOW, dwnumberofentries: u32, lpdwcatalogentryid: *mut u32, lperrno: *mut i32) -> i32; } - WSCInstallProviderAndChains64_32(::core::mem::transmute(lpproviderid), lpszproviderdllpath.into(), lpszproviderdllpath32.into(), lpszlspname.into(), dwserviceflags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpprotocolinfolist)), lpprotocolinfolist.len() as _, ::core::mem::transmute(lpdwcatalogentryid), ::core::mem::transmute(lperrno)) + WSCInstallProviderAndChains64_32(::core::mem::transmute(lpproviderid), lpszproviderdllpath.into(), lpszproviderdllpath32.into(), lpszlspname.into(), dwserviceflags, ::core::mem::transmute(lpprotocolinfolist.as_ptr()), lpprotocolinfolist.len() as _, ::core::mem::transmute(lpdwcatalogentryid), ::core::mem::transmute(lperrno)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] -pub unsafe fn WSCSetApplicationCategory(path: &[u16], extra: &[u16], permittedlspcategories: u32, pprevpermlspcat: ::core::option::Option<&mut u32>, lperrno: &mut i32) -> i32 { +pub unsafe fn WSCSetApplicationCategory(path: &[u16], extra: ::core::option::Option<&[u16]>, permittedlspcategories: u32, pprevpermlspcat: ::core::option::Option<&mut u32>, lperrno: &mut i32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSCSetApplicationCategory(path: ::windows::core::PCWSTR, pathlength: u32, extra: ::windows::core::PCWSTR, extralength: u32, permittedlspcategories: u32, pprevpermlspcat: *mut u32, lperrno: *mut i32) -> i32; } - WSCSetApplicationCategory(::core::mem::transmute(::windows::core::as_ptr_or_null(path)), path.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(extra)), extra.len() as _, permittedlspcategories, ::core::mem::transmute(pprevpermlspcat), ::core::mem::transmute(lperrno)) + WSCSetApplicationCategory(::core::mem::transmute(path.as_ptr()), path.len() as _, ::core::mem::transmute(extra.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), extra.as_deref().map_or(0, |slice| slice.len() as _), permittedlspcategories, ::core::mem::transmute(pprevpermlspcat), ::core::mem::transmute(lperrno)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] -pub unsafe fn WSCSetProviderInfo(lpproviderid: &::windows::core::GUID, infotype: WSC_PROVIDER_INFO_TYPE, info: &u8, infosize: usize, flags: u32, lperrno: &mut i32) -> i32 { +pub unsafe fn WSCSetProviderInfo(lpproviderid: &::windows::core::GUID, infotype: WSC_PROVIDER_INFO_TYPE, info: &[u8], flags: u32, lperrno: &mut i32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSCSetProviderInfo(lpproviderid: *const ::windows::core::GUID, infotype: WSC_PROVIDER_INFO_TYPE, info: *const u8, infosize: usize, flags: u32, lperrno: *mut i32) -> i32; } - WSCSetProviderInfo(::core::mem::transmute(lpproviderid), infotype, ::core::mem::transmute(info), infosize, flags, ::core::mem::transmute(lperrno)) + WSCSetProviderInfo(::core::mem::transmute(lpproviderid), infotype, ::core::mem::transmute(info.as_ptr()), info.len() as _, flags, ::core::mem::transmute(lperrno)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn WSCSetProviderInfo32(lpproviderid: &::windows::core::GUID, infotype: WSC_PROVIDER_INFO_TYPE, info: &u8, infosize: usize, flags: u32, lperrno: &mut i32) -> i32 { +pub unsafe fn WSCSetProviderInfo32(lpproviderid: &::windows::core::GUID, infotype: WSC_PROVIDER_INFO_TYPE, info: &[u8], flags: u32, lperrno: &mut i32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSCSetProviderInfo32(lpproviderid: *const ::windows::core::GUID, infotype: WSC_PROVIDER_INFO_TYPE, info: *const u8, infosize: usize, flags: u32, lperrno: *mut i32) -> i32; } - WSCSetProviderInfo32(::core::mem::transmute(lpproviderid), infotype, ::core::mem::transmute(info), infosize, flags, ::core::mem::transmute(lperrno)) + WSCSetProviderInfo32(::core::mem::transmute(lpproviderid), infotype, ::core::mem::transmute(info.as_ptr()), info.len() as _, flags, ::core::mem::transmute(lperrno)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -15948,7 +15947,7 @@ where extern "system" { fn WSCUpdateProvider(lpproviderid: *const ::windows::core::GUID, lpszproviderdllpath: ::windows::core::PCWSTR, lpprotocolinfolist: *const WSAPROTOCOL_INFOW, dwnumberofentries: u32, lperrno: *mut i32) -> i32; } - WSCUpdateProvider(::core::mem::transmute(lpproviderid), lpszproviderdllpath.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpprotocolinfolist)), lpprotocolinfolist.len() as _, ::core::mem::transmute(lperrno)) + WSCUpdateProvider(::core::mem::transmute(lpproviderid), lpszproviderdllpath.into(), ::core::mem::transmute(lpprotocolinfolist.as_ptr()), lpprotocolinfolist.len() as _, ::core::mem::transmute(lperrno)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] @@ -15961,7 +15960,7 @@ where extern "system" { fn WSCUpdateProvider32(lpproviderid: *const ::windows::core::GUID, lpszproviderdllpath: ::windows::core::PCWSTR, lpprotocolinfolist: *const WSAPROTOCOL_INFOW, dwnumberofentries: u32, lperrno: *mut i32) -> i32; } - WSCUpdateProvider32(::core::mem::transmute(lpproviderid), lpszproviderdllpath.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpprotocolinfolist)), lpprotocolinfolist.len() as _, ::core::mem::transmute(lperrno)) + WSCUpdateProvider32(::core::mem::transmute(lpproviderid), lpszproviderdllpath.into(), ::core::mem::transmute(lpprotocolinfolist.as_ptr()), lpprotocolinfolist.len() as _, ::core::mem::transmute(lperrno)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -16354,7 +16353,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn accept<'a, P0>(s: P0, addr: ::core::option::Option<&mut SOCKADDR>, addrlen: ::core::option::Option<&mut i32>) -> SOCKET +pub unsafe fn accept<'a, P0>(s: P0, addr: *mut SOCKADDR, addrlen: ::core::option::Option<&mut i32>) -> SOCKET where P0: ::std::convert::Into, { @@ -16984,7 +16983,7 @@ impl ::core::default::Default for addrinfoexW { #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn bind<'a, P0>(s: P0, name: &SOCKADDR, namelen: i32) -> i32 +pub unsafe fn bind<'a, P0>(s: P0, name: &[u8]) -> i32 where P0: ::std::convert::Into, { @@ -16992,7 +16991,7 @@ where extern "system" { fn bind(s: SOCKET, name: *const SOCKADDR, namelen: i32) -> i32; } - bind(s.into(), ::core::mem::transmute(name), namelen) + bind(s.into(), ::core::mem::transmute(name.as_ptr()), name.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -17041,7 +17040,7 @@ impl ::core::default::Default for cmsghdr { #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn connect<'a, P0>(s: P0, name: &SOCKADDR, namelen: i32) -> i32 +pub unsafe fn connect<'a, P0>(s: P0, name: &[u8]) -> i32 where P0: ::std::convert::Into, { @@ -17049,7 +17048,7 @@ where extern "system" { fn connect(s: SOCKET, name: *const SOCKADDR, namelen: i32) -> i32; } - connect(s.into(), ::core::mem::transmute(name), namelen) + connect(s.into(), ::core::mem::transmute(name.as_ptr()), name.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[repr(transparent)] @@ -17135,15 +17134,12 @@ where } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] -pub unsafe fn gethostbyaddr<'a, P0>(addr: P0, len: i32, r#type: i32) -> *mut hostent -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn gethostbyaddr(addr: &[u8], r#type: i32) -> *mut hostent { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn gethostbyaddr(addr: ::windows::core::PCSTR, len: i32, r#type: i32) -> *mut hostent; } - gethostbyaddr(addr.into(), len, r#type) + gethostbyaddr(::core::mem::transmute(addr.as_ptr()), addr.len() as _, r#type) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -17159,27 +17155,27 @@ where } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] -pub unsafe fn gethostname(name: ::windows::core::PSTR, namelen: i32) -> i32 { +pub unsafe fn gethostname(name: &mut [u8]) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn gethostname(name: ::windows::core::PSTR, namelen: i32) -> i32; } - gethostname(::core::mem::transmute(name), namelen) + gethostname(::core::mem::transmute(name.as_ptr()), name.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn getnameinfo(psockaddr: &SOCKADDR, sockaddrlength: i32, pnodebuffer: &mut [u8], pservicebuffer: &mut [u8], flags: i32) -> i32 { +pub unsafe fn getnameinfo(psockaddr: &[u8], pnodebuffer: ::core::option::Option<&mut [u8]>, pservicebuffer: ::core::option::Option<&mut [u8]>, flags: i32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn getnameinfo(psockaddr: *const SOCKADDR, sockaddrlength: i32, pnodebuffer: ::windows::core::PSTR, nodebuffersize: u32, pservicebuffer: ::windows::core::PSTR, servicebuffersize: u32, flags: i32) -> i32; } - getnameinfo(::core::mem::transmute(psockaddr), sockaddrlength, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pnodebuffer)), pnodebuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pservicebuffer)), pservicebuffer.len() as _, flags) + getnameinfo(::core::mem::transmute(psockaddr.as_ptr()), psockaddr.len() as _, ::core::mem::transmute(pnodebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pnodebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pservicebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pservicebuffer.as_deref().map_or(0, |slice| slice.len() as _), flags) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn getpeername<'a, P0>(s: P0, name: &mut SOCKADDR, namelen: &mut i32) -> i32 +pub unsafe fn getpeername<'a, P0>(s: P0, name: *mut SOCKADDR, namelen: &mut i32) -> i32 where P0: ::std::convert::Into, { @@ -17238,7 +17234,7 @@ where #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn getsockname<'a, P0>(s: P0, name: &mut SOCKADDR, namelen: &mut i32) -> i32 +pub unsafe fn getsockname<'a, P0>(s: P0, name: *mut SOCKADDR, namelen: &mut i32) -> i32 where P0: ::std::convert::Into, { @@ -17366,7 +17362,7 @@ pub unsafe fn inet_ntop(family: i32, paddr: *const ::core::ffi::c_void, pstringb extern "system" { fn inet_ntop(family: i32, paddr: *const ::core::ffi::c_void, pstringbuf: ::windows::core::PSTR, stringbufsize: usize) -> ::windows::core::PSTR; } - inet_ntop(family, ::core::mem::transmute(paddr), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pstringbuf)), pstringbuf.len() as _) + inet_ntop(family, ::core::mem::transmute(paddr), ::core::mem::transmute(pstringbuf.as_ptr()), pstringbuf.len() as _) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -18045,7 +18041,7 @@ impl ::core::default::Default for protoent { } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] -pub unsafe fn recv<'a, P0>(s: P0, buf: ::windows::core::PSTR, len: i32, flags: SEND_RECV_FLAGS) -> i32 +pub unsafe fn recv<'a, P0>(s: P0, buf: &mut [u8], flags: SEND_RECV_FLAGS) -> i32 where P0: ::std::convert::Into, { @@ -18053,12 +18049,12 @@ where extern "system" { fn recv(s: SOCKET, buf: ::windows::core::PSTR, len: i32, flags: SEND_RECV_FLAGS) -> i32; } - recv(s.into(), ::core::mem::transmute(buf), len, flags) + recv(s.into(), ::core::mem::transmute(buf.as_ptr()), buf.len() as _, flags) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn recvfrom<'a, P0>(s: P0, buf: ::windows::core::PSTR, len: i32, flags: i32, from: ::core::option::Option<&mut SOCKADDR>, fromlen: ::core::option::Option<&mut i32>) -> i32 +pub unsafe fn recvfrom<'a, P0>(s: P0, buf: &mut [u8], flags: i32, from: *mut SOCKADDR, fromlen: ::core::option::Option<&mut i32>) -> i32 where P0: ::std::convert::Into, { @@ -18066,7 +18062,7 @@ where extern "system" { fn recvfrom(s: SOCKET, buf: ::windows::core::PSTR, len: i32, flags: i32, from: *mut SOCKADDR, fromlen: *mut i32) -> i32; } - recvfrom(s.into(), ::core::mem::transmute(buf), len, flags, ::core::mem::transmute(from), ::core::mem::transmute(fromlen)) + recvfrom(s.into(), ::core::mem::transmute(buf.as_ptr()), buf.len() as _, flags, ::core::mem::transmute(from), ::core::mem::transmute(fromlen)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] @@ -18079,30 +18075,28 @@ pub unsafe fn select(nfds: i32, readfds: ::core::option::Option<&mut fd_set>, wr } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] -pub unsafe fn send<'a, P0, P1>(s: P0, buf: P1, len: i32, flags: SEND_RECV_FLAGS) -> i32 +pub unsafe fn send<'a, P0>(s: P0, buf: &[u8], flags: SEND_RECV_FLAGS) -> i32 where P0: ::std::convert::Into, - P1: ::std::convert::Into<::windows::core::PCSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn send(s: SOCKET, buf: ::windows::core::PCSTR, len: i32, flags: SEND_RECV_FLAGS) -> i32; } - send(s.into(), buf.into(), len, flags) + send(s.into(), ::core::mem::transmute(buf.as_ptr()), buf.len() as _, flags) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn sendto<'a, P0, P1>(s: P0, buf: P1, len: i32, flags: i32, to: &SOCKADDR, tolen: i32) -> i32 +pub unsafe fn sendto<'a, P0>(s: P0, buf: &[u8], flags: i32, to: &[u8]) -> i32 where P0: ::std::convert::Into, - P1: ::std::convert::Into<::windows::core::PCSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn sendto(s: SOCKET, buf: ::windows::core::PCSTR, len: i32, flags: i32, to: *const SOCKADDR, tolen: i32) -> i32; } - sendto(s.into(), buf.into(), len, flags, ::core::mem::transmute(to), tolen) + sendto(s.into(), ::core::mem::transmute(buf.as_ptr()), buf.len() as _, flags, ::core::mem::transmute(to.as_ptr()), to.len() as _) } #[repr(C)] #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] @@ -18188,16 +18182,15 @@ impl ::core::default::Default for servent { } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] -pub unsafe fn setsockopt<'a, P0, P1>(s: P0, level: i32, optname: i32, optval: P1, optlen: i32) -> i32 +pub unsafe fn setsockopt<'a, P0>(s: P0, level: i32, optname: i32, optval: ::core::option::Option<&[u8]>) -> i32 where P0: ::std::convert::Into, - P1: ::std::convert::Into<::windows::core::PCSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn setsockopt(s: SOCKET, level: i32, optname: i32, optval: ::windows::core::PCSTR, optlen: i32) -> i32; } - setsockopt(s.into(), level, optname, optval.into(), optlen) + setsockopt(s.into(), level, optname, ::core::mem::transmute(optval.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), optval.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/Networking/WindowsWebServices/mod.rs b/crates/libs/windows/src/Windows/Win32/Networking/WindowsWebServices/mod.rs index d2a539087e..d77b2e9a7b 100644 --- a/crates/libs/windows/src/Windows/Win32/Networking/WindowsWebServices/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Networking/WindowsWebServices/mod.rs @@ -14265,12 +14265,12 @@ pub unsafe fn WsAcceptChannel(listener: &WS_LISTENER, channel: &WS_CHANNEL, asyn #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsAddCustomHeader(message: &WS_MESSAGE, headerdescription: &WS_ELEMENT_DESCRIPTION, writeoption: WS_WRITE_OPTION, value: *const ::core::ffi::c_void, valuesize: u32, headerattributes: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsAddCustomHeader(message: &WS_MESSAGE, headerdescription: &WS_ELEMENT_DESCRIPTION, writeoption: WS_WRITE_OPTION, value: &[u8], headerattributes: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsAddCustomHeader(message: *const WS_MESSAGE, headerdescription: *const WS_ELEMENT_DESCRIPTION, writeoption: WS_WRITE_OPTION, value: *const ::core::ffi::c_void, valuesize: u32, headerattributes: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsAddCustomHeader(::core::mem::transmute(message), ::core::mem::transmute(headerdescription), writeoption, ::core::mem::transmute(value), valuesize, headerattributes, ::core::mem::transmute(error)).ok() + WsAddCustomHeader(::core::mem::transmute(message), ::core::mem::transmute(headerdescription), writeoption, ::core::mem::transmute(value.as_ptr()), value.len() as _, headerattributes, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -14284,12 +14284,12 @@ pub unsafe fn WsAddErrorString(error: &WS_ERROR, string: &WS_STRING) -> ::window #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsAddMappedHeader(message: &WS_MESSAGE, headername: &WS_XML_STRING, valuetype: WS_TYPE, writeoption: WS_WRITE_OPTION, value: *const ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsAddMappedHeader(message: &WS_MESSAGE, headername: &WS_XML_STRING, valuetype: WS_TYPE, writeoption: WS_WRITE_OPTION, value: &[u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsAddMappedHeader(message: *const WS_MESSAGE, headername: *const WS_XML_STRING, valuetype: WS_TYPE, writeoption: WS_WRITE_OPTION, value: *const ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsAddMappedHeader(::core::mem::transmute(message), ::core::mem::transmute(headername), valuetype, writeoption, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsAddMappedHeader(::core::mem::transmute(message), ::core::mem::transmute(headername), valuetype, writeoption, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -14321,12 +14321,12 @@ pub unsafe fn WsAsyncExecute(asyncstate: &WS_ASYNC_STATE, operation: WS_ASYNC_FU #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsCall(serviceproxy: &WS_SERVICE_PROXY, operation: &WS_OPERATION_DESCRIPTION, arguments: *const *const ::core::ffi::c_void, heap: &WS_HEAP, callproperties: &[WS_CALL_PROPERTY], asynccontext: ::core::option::Option<&WS_ASYNC_CONTEXT>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsCall(serviceproxy: &WS_SERVICE_PROXY, operation: &WS_OPERATION_DESCRIPTION, arguments: *const *const ::core::ffi::c_void, heap: &WS_HEAP, callproperties: ::core::option::Option<&[WS_CALL_PROPERTY]>, asynccontext: ::core::option::Option<&WS_ASYNC_CONTEXT>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsCall(serviceproxy: *const WS_SERVICE_PROXY, operation: *const WS_OPERATION_DESCRIPTION, arguments: *const *const ::core::ffi::c_void, heap: *const WS_HEAP, callproperties: *const WS_CALL_PROPERTY, callpropertycount: u32, asynccontext: *const WS_ASYNC_CONTEXT, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsCall(::core::mem::transmute(serviceproxy), ::core::mem::transmute(operation), ::core::mem::transmute(arguments), ::core::mem::transmute(heap), ::core::mem::transmute(::windows::core::as_ptr_or_null(callproperties)), callproperties.len() as _, ::core::mem::transmute(asynccontext), ::core::mem::transmute(error)).ok() + WsCall(::core::mem::transmute(serviceproxy), ::core::mem::transmute(operation), ::core::mem::transmute(arguments), ::core::mem::transmute(heap), ::core::mem::transmute(callproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), callproperties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(asynccontext), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -14402,31 +14402,31 @@ pub unsafe fn WsCopyNode(writer: &WS_XML_WRITER, reader: &WS_XML_READER, error: } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsCreateChannel(channeltype: WS_CHANNEL_TYPE, channelbinding: WS_CHANNEL_BINDING, properties: &[WS_CHANNEL_PROPERTY], securitydescription: ::core::option::Option<&WS_SECURITY_DESCRIPTION>, channel: &mut *mut WS_CHANNEL, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsCreateChannel(channeltype: WS_CHANNEL_TYPE, channelbinding: WS_CHANNEL_BINDING, properties: ::core::option::Option<&[WS_CHANNEL_PROPERTY]>, securitydescription: ::core::option::Option<&WS_SECURITY_DESCRIPTION>, channel: &mut *mut WS_CHANNEL, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsCreateChannel(channeltype: WS_CHANNEL_TYPE, channelbinding: WS_CHANNEL_BINDING, properties: *const WS_CHANNEL_PROPERTY, propertycount: u32, securitydescription: *const WS_SECURITY_DESCRIPTION, channel: *mut *mut WS_CHANNEL, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsCreateChannel(channeltype, channelbinding, ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(securitydescription), ::core::mem::transmute(channel), ::core::mem::transmute(error)).ok() + WsCreateChannel(channeltype, channelbinding, ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(securitydescription), ::core::mem::transmute(channel), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsCreateChannelForListener(listener: &WS_LISTENER, properties: &[WS_CHANNEL_PROPERTY], channel: &mut *mut WS_CHANNEL, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsCreateChannelForListener(listener: &WS_LISTENER, properties: ::core::option::Option<&[WS_CHANNEL_PROPERTY]>, channel: &mut *mut WS_CHANNEL, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsCreateChannelForListener(listener: *const WS_LISTENER, properties: *const WS_CHANNEL_PROPERTY, propertycount: u32, channel: *mut *mut WS_CHANNEL, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsCreateChannelForListener(::core::mem::transmute(listener), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(channel), ::core::mem::transmute(error)).ok() + WsCreateChannelForListener(::core::mem::transmute(listener), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(channel), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsCreateError(properties: &[WS_ERROR_PROPERTY]) -> ::windows::core::Result<*mut WS_ERROR> { +pub unsafe fn WsCreateError(properties: ::core::option::Option<&[WS_ERROR_PROPERTY]>) -> ::windows::core::Result<*mut WS_ERROR> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsCreateError(properties: *const WS_ERROR_PROPERTY, propertycount: u32, error: *mut *mut WS_ERROR) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - WsCreateError(::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut WS_ERROR>(result__) + WsCreateError(::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut WS_ERROR>(result__) } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14450,113 +14450,141 @@ pub unsafe fn WsCreateHeap(maxsize: usize, trimsize: usize, properties: ::core:: } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsCreateListener(channeltype: WS_CHANNEL_TYPE, channelbinding: WS_CHANNEL_BINDING, properties: &[WS_LISTENER_PROPERTY], securitydescription: ::core::option::Option<&WS_SECURITY_DESCRIPTION>, listener: &mut *mut WS_LISTENER, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsCreateListener(channeltype: WS_CHANNEL_TYPE, channelbinding: WS_CHANNEL_BINDING, properties: ::core::option::Option<&[WS_LISTENER_PROPERTY]>, securitydescription: ::core::option::Option<&WS_SECURITY_DESCRIPTION>, listener: &mut *mut WS_LISTENER, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsCreateListener(channeltype: WS_CHANNEL_TYPE, channelbinding: WS_CHANNEL_BINDING, properties: *const WS_LISTENER_PROPERTY, propertycount: u32, securitydescription: *const WS_SECURITY_DESCRIPTION, listener: *mut *mut WS_LISTENER, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsCreateListener(channeltype, channelbinding, ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(securitydescription), ::core::mem::transmute(listener), ::core::mem::transmute(error)).ok() + WsCreateListener(channeltype, channelbinding, ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(securitydescription), ::core::mem::transmute(listener), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsCreateMessage(envelopeversion: WS_ENVELOPE_VERSION, addressingversion: WS_ADDRESSING_VERSION, properties: &[WS_MESSAGE_PROPERTY], message: &mut *mut WS_MESSAGE, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsCreateMessage(envelopeversion: WS_ENVELOPE_VERSION, addressingversion: WS_ADDRESSING_VERSION, properties: ::core::option::Option<&[WS_MESSAGE_PROPERTY]>, message: &mut *mut WS_MESSAGE, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsCreateMessage(envelopeversion: WS_ENVELOPE_VERSION, addressingversion: WS_ADDRESSING_VERSION, properties: *const WS_MESSAGE_PROPERTY, propertycount: u32, message: *mut *mut WS_MESSAGE, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsCreateMessage(envelopeversion, addressingversion, ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(message), ::core::mem::transmute(error)).ok() + WsCreateMessage(envelopeversion, addressingversion, ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(message), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsCreateMessageForChannel(channel: &WS_CHANNEL, properties: &[WS_MESSAGE_PROPERTY], message: &mut *mut WS_MESSAGE, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsCreateMessageForChannel(channel: &WS_CHANNEL, properties: ::core::option::Option<&[WS_MESSAGE_PROPERTY]>, message: &mut *mut WS_MESSAGE, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsCreateMessageForChannel(channel: *const WS_CHANNEL, properties: *const WS_MESSAGE_PROPERTY, propertycount: u32, message: *mut *mut WS_MESSAGE, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsCreateMessageForChannel(::core::mem::transmute(channel), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(message), ::core::mem::transmute(error)).ok() + WsCreateMessageForChannel(::core::mem::transmute(channel), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(message), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsCreateMetadata(properties: &[WS_METADATA_PROPERTY], metadata: &mut *mut WS_METADATA, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsCreateMetadata(properties: ::core::option::Option<&[WS_METADATA_PROPERTY]>, metadata: &mut *mut WS_METADATA, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsCreateMetadata(properties: *const WS_METADATA_PROPERTY, propertycount: u32, metadata: *mut *mut WS_METADATA, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsCreateMetadata(::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(metadata), ::core::mem::transmute(error)).ok() + WsCreateMetadata(::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(metadata), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsCreateReader(properties: &[WS_XML_READER_PROPERTY], reader: &mut *mut WS_XML_READER, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsCreateReader(properties: ::core::option::Option<&[WS_XML_READER_PROPERTY]>, reader: &mut *mut WS_XML_READER, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsCreateReader(properties: *const WS_XML_READER_PROPERTY, propertycount: u32, reader: *mut *mut WS_XML_READER, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsCreateReader(::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(reader), ::core::mem::transmute(error)).ok() + WsCreateReader(::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(reader), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsCreateServiceEndpointFromTemplate(channeltype: WS_CHANNEL_TYPE, properties: &[WS_SERVICE_ENDPOINT_PROPERTY], addressurl: ::core::option::Option<&WS_STRING>, contract: &WS_SERVICE_CONTRACT, authorizationcallback: WS_SERVICE_SECURITY_CALLBACK, heap: &WS_HEAP, templatetype: WS_BINDING_TEMPLATE_TYPE, templatevalue: *const ::core::ffi::c_void, templatesize: u32, templatedescription: *const ::core::ffi::c_void, templatedescriptionsize: u32, serviceendpoint: &mut *mut WS_SERVICE_ENDPOINT, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsCreateServiceEndpointFromTemplate(channeltype: WS_CHANNEL_TYPE, properties: ::core::option::Option<&[WS_SERVICE_ENDPOINT_PROPERTY]>, addressurl: ::core::option::Option<&WS_STRING>, contract: &WS_SERVICE_CONTRACT, authorizationcallback: WS_SERVICE_SECURITY_CALLBACK, heap: &WS_HEAP, templatetype: WS_BINDING_TEMPLATE_TYPE, templatevalue: ::core::option::Option<&[u8]>, templatedescription: *const ::core::ffi::c_void, templatedescriptionsize: u32, serviceendpoint: &mut *mut WS_SERVICE_ENDPOINT, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsCreateServiceEndpointFromTemplate(channeltype: WS_CHANNEL_TYPE, properties: *const WS_SERVICE_ENDPOINT_PROPERTY, propertycount: u32, addressurl: *const WS_STRING, contract: *const WS_SERVICE_CONTRACT, authorizationcallback: *mut ::core::ffi::c_void, heap: *const WS_HEAP, templatetype: WS_BINDING_TEMPLATE_TYPE, templatevalue: *const ::core::ffi::c_void, templatesize: u32, templatedescription: *const ::core::ffi::c_void, templatedescriptionsize: u32, serviceendpoint: *mut *mut WS_SERVICE_ENDPOINT, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsCreateServiceEndpointFromTemplate(channeltype, ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(addressurl), ::core::mem::transmute(contract), ::core::mem::transmute(authorizationcallback), ::core::mem::transmute(heap), templatetype, ::core::mem::transmute(templatevalue), templatesize, ::core::mem::transmute(templatedescription), templatedescriptionsize, ::core::mem::transmute(serviceendpoint), ::core::mem::transmute(error)).ok() + WsCreateServiceEndpointFromTemplate( + channeltype, + ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + properties.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(addressurl), + ::core::mem::transmute(contract), + ::core::mem::transmute(authorizationcallback), + ::core::mem::transmute(heap), + templatetype, + ::core::mem::transmute(templatevalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + templatevalue.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(templatedescription), + templatedescriptionsize, + ::core::mem::transmute(serviceendpoint), + ::core::mem::transmute(error), + ) + .ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsCreateServiceHost(endpoints: &[*const WS_SERVICE_ENDPOINT], serviceproperties: &[WS_SERVICE_PROPERTY], servicehost: &mut *mut WS_SERVICE_HOST, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsCreateServiceHost(endpoints: ::core::option::Option<&[*const WS_SERVICE_ENDPOINT]>, serviceproperties: ::core::option::Option<&[WS_SERVICE_PROPERTY]>, servicehost: &mut *mut WS_SERVICE_HOST, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsCreateServiceHost(endpoints: *const *const WS_SERVICE_ENDPOINT, endpointcount: u16, serviceproperties: *const WS_SERVICE_PROPERTY, servicepropertycount: u32, servicehost: *mut *mut WS_SERVICE_HOST, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsCreateServiceHost(::core::mem::transmute(::windows::core::as_ptr_or_null(endpoints)), endpoints.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(serviceproperties)), serviceproperties.len() as _, ::core::mem::transmute(servicehost), ::core::mem::transmute(error)).ok() + WsCreateServiceHost(::core::mem::transmute(endpoints.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), endpoints.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(serviceproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), serviceproperties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(servicehost), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsCreateServiceProxy(channeltype: WS_CHANNEL_TYPE, channelbinding: WS_CHANNEL_BINDING, securitydescription: ::core::option::Option<&WS_SECURITY_DESCRIPTION>, properties: &[WS_PROXY_PROPERTY], channelproperties: &[WS_CHANNEL_PROPERTY], serviceproxy: &mut *mut WS_SERVICE_PROXY, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsCreateServiceProxy(channeltype: WS_CHANNEL_TYPE, channelbinding: WS_CHANNEL_BINDING, securitydescription: ::core::option::Option<&WS_SECURITY_DESCRIPTION>, properties: ::core::option::Option<&[WS_PROXY_PROPERTY]>, channelproperties: ::core::option::Option<&[WS_CHANNEL_PROPERTY]>, serviceproxy: &mut *mut WS_SERVICE_PROXY, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsCreateServiceProxy(channeltype: WS_CHANNEL_TYPE, channelbinding: WS_CHANNEL_BINDING, securitydescription: *const WS_SECURITY_DESCRIPTION, properties: *const WS_PROXY_PROPERTY, propertycount: u32, channelproperties: *const WS_CHANNEL_PROPERTY, channelpropertycount: u32, serviceproxy: *mut *mut WS_SERVICE_PROXY, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsCreateServiceProxy(channeltype, channelbinding, ::core::mem::transmute(securitydescription), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(channelproperties)), channelproperties.len() as _, ::core::mem::transmute(serviceproxy), ::core::mem::transmute(error)).ok() + WsCreateServiceProxy(channeltype, channelbinding, ::core::mem::transmute(securitydescription), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(channelproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), channelproperties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(serviceproxy), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsCreateServiceProxyFromTemplate(channeltype: WS_CHANNEL_TYPE, properties: &[WS_PROXY_PROPERTY], templatetype: WS_BINDING_TEMPLATE_TYPE, templatevalue: *const ::core::ffi::c_void, templatesize: u32, templatedescription: *const ::core::ffi::c_void, templatedescriptionsize: u32, serviceproxy: &mut *mut WS_SERVICE_PROXY, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsCreateServiceProxyFromTemplate(channeltype: WS_CHANNEL_TYPE, properties: ::core::option::Option<&[WS_PROXY_PROPERTY]>, templatetype: WS_BINDING_TEMPLATE_TYPE, templatevalue: ::core::option::Option<&[u8]>, templatedescription: *const ::core::ffi::c_void, templatedescriptionsize: u32, serviceproxy: &mut *mut WS_SERVICE_PROXY, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsCreateServiceProxyFromTemplate(channeltype: WS_CHANNEL_TYPE, properties: *const WS_PROXY_PROPERTY, propertycount: u32, templatetype: WS_BINDING_TEMPLATE_TYPE, templatevalue: *const ::core::ffi::c_void, templatesize: u32, templatedescription: *const ::core::ffi::c_void, templatedescriptionsize: u32, serviceproxy: *mut *mut WS_SERVICE_PROXY, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsCreateServiceProxyFromTemplate(channeltype, ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, templatetype, ::core::mem::transmute(templatevalue), templatesize, ::core::mem::transmute(templatedescription), templatedescriptionsize, ::core::mem::transmute(serviceproxy), ::core::mem::transmute(error)).ok() + WsCreateServiceProxyFromTemplate( + channeltype, + ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + properties.as_deref().map_or(0, |slice| slice.len() as _), + templatetype, + ::core::mem::transmute(templatevalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + templatevalue.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(templatedescription), + templatedescriptionsize, + ::core::mem::transmute(serviceproxy), + ::core::mem::transmute(error), + ) + .ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsCreateWriter(properties: &[WS_XML_WRITER_PROPERTY], writer: &mut *mut WS_XML_WRITER, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsCreateWriter(properties: ::core::option::Option<&[WS_XML_WRITER_PROPERTY]>, writer: &mut *mut WS_XML_WRITER, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsCreateWriter(properties: *const WS_XML_WRITER_PROPERTY, propertycount: u32, writer: *mut *mut WS_XML_WRITER, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsCreateWriter(::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(writer), ::core::mem::transmute(error)).ok() + WsCreateWriter(::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(writer), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsCreateXmlBuffer(heap: &WS_HEAP, properties: &[WS_XML_BUFFER_PROPERTY], buffer: &mut *mut WS_XML_BUFFER, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsCreateXmlBuffer(heap: &WS_HEAP, properties: ::core::option::Option<&[WS_XML_BUFFER_PROPERTY]>, buffer: &mut *mut WS_XML_BUFFER, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsCreateXmlBuffer(heap: *const WS_HEAP, properties: *const WS_XML_BUFFER_PROPERTY, propertycount: u32, buffer: *mut *mut WS_XML_BUFFER, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsCreateXmlBuffer(::core::mem::transmute(heap), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(buffer), ::core::mem::transmute(error)).ok() + WsCreateXmlBuffer(::core::mem::transmute(heap), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(buffer), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsCreateXmlSecurityToken(tokenxml: ::core::option::Option<&WS_XML_BUFFER>, tokenkey: ::core::option::Option<&WS_SECURITY_KEY_HANDLE>, properties: &[WS_XML_SECURITY_TOKEN_PROPERTY], token: &mut *mut WS_SECURITY_TOKEN, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsCreateXmlSecurityToken(tokenxml: ::core::option::Option<&WS_XML_BUFFER>, tokenkey: ::core::option::Option<&WS_SECURITY_KEY_HANDLE>, properties: ::core::option::Option<&[WS_XML_SECURITY_TOKEN_PROPERTY]>, token: &mut *mut WS_SECURITY_TOKEN, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsCreateXmlSecurityToken(tokenxml: *const WS_XML_BUFFER, tokenkey: *const WS_SECURITY_KEY_HANDLE, properties: *const WS_XML_SECURITY_TOKEN_PROPERTY, propertycount: u32, token: *mut *mut WS_SECURITY_TOKEN, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsCreateXmlSecurityToken(::core::mem::transmute(tokenxml), ::core::mem::transmute(tokenkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(token), ::core::mem::transmute(error)).ok() + WsCreateXmlSecurityToken(::core::mem::transmute(tokenxml), ::core::mem::transmute(tokenkey), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(token), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14764,22 +14792,22 @@ pub unsafe fn WsFreeWriter(writer: &WS_XML_WRITER) { } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsGetChannelProperty(channel: &WS_CHANNEL, id: WS_CHANNEL_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsGetChannelProperty(channel: &WS_CHANNEL, id: WS_CHANNEL_PROPERTY_ID, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetChannelProperty(channel: *const WS_CHANNEL, id: WS_CHANNEL_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsGetChannelProperty(::core::mem::transmute(channel), id, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsGetChannelProperty(::core::mem::transmute(channel), id, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsGetCustomHeader(message: &WS_MESSAGE, customheaderdescription: &WS_ELEMENT_DESCRIPTION, repeatingoption: WS_REPEATING_HEADER_OPTION, headerindex: u32, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: *mut ::core::ffi::c_void, valuesize: u32, headerattributes: ::core::option::Option<&mut u32>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsGetCustomHeader(message: &WS_MESSAGE, customheaderdescription: &WS_ELEMENT_DESCRIPTION, repeatingoption: WS_REPEATING_HEADER_OPTION, headerindex: u32, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: &mut [u8], headerattributes: ::core::option::Option<&mut u32>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetCustomHeader(message: *const WS_MESSAGE, customheaderdescription: *const WS_ELEMENT_DESCRIPTION, repeatingoption: WS_REPEATING_HEADER_OPTION, headerindex: u32, readoption: WS_READ_OPTION, heap: *const WS_HEAP, value: *mut ::core::ffi::c_void, valuesize: u32, headerattributes: *mut u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsGetCustomHeader(::core::mem::transmute(message), ::core::mem::transmute(customheaderdescription), repeatingoption, headerindex, readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value), valuesize, ::core::mem::transmute(headerattributes), ::core::mem::transmute(error)).ok() + WsGetCustomHeader(::core::mem::transmute(message), ::core::mem::transmute(customheaderdescription), repeatingoption, headerindex, readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(headerattributes), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14793,12 +14821,12 @@ pub unsafe fn WsGetDictionary(encoding: WS_ENCODING, dictionary: ::core::option: } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsGetErrorProperty(error: &WS_ERROR, id: WS_ERROR_PROPERTY_ID, buffer: *mut ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<()> { +pub unsafe fn WsGetErrorProperty(error: &WS_ERROR, id: WS_ERROR_PROPERTY_ID, buffer: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetErrorProperty(error: *const WS_ERROR, id: WS_ERROR_PROPERTY_ID, buffer: *mut ::core::ffi::c_void, buffersize: u32) -> ::windows::core::HRESULT; } - WsGetErrorProperty(::core::mem::transmute(error), id, ::core::mem::transmute(buffer), buffersize).ok() + WsGetErrorProperty(::core::mem::transmute(error), id, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -14813,30 +14841,30 @@ pub unsafe fn WsGetErrorString(error: &WS_ERROR, index: u32) -> ::windows::core: #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsGetFaultErrorDetail(error: &WS_ERROR, faultdetaildescription: &WS_FAULT_DETAIL_DESCRIPTION, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: *mut ::core::ffi::c_void, valuesize: u32) -> ::windows::core::Result<()> { +pub unsafe fn WsGetFaultErrorDetail(error: &WS_ERROR, faultdetaildescription: &WS_FAULT_DETAIL_DESCRIPTION, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetFaultErrorDetail(error: *const WS_ERROR, faultdetaildescription: *const WS_FAULT_DETAIL_DESCRIPTION, readoption: WS_READ_OPTION, heap: *const WS_HEAP, value: *mut ::core::ffi::c_void, valuesize: u32) -> ::windows::core::HRESULT; } - WsGetFaultErrorDetail(::core::mem::transmute(error), ::core::mem::transmute(faultdetaildescription), readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value), valuesize).ok() + WsGetFaultErrorDetail(::core::mem::transmute(error), ::core::mem::transmute(faultdetaildescription), readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value.as_ptr()), value.len() as _).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsGetFaultErrorProperty(error: &WS_ERROR, id: WS_FAULT_ERROR_PROPERTY_ID, buffer: *mut ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result<()> { +pub unsafe fn WsGetFaultErrorProperty(error: &WS_ERROR, id: WS_FAULT_ERROR_PROPERTY_ID, buffer: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetFaultErrorProperty(error: *const WS_ERROR, id: WS_FAULT_ERROR_PROPERTY_ID, buffer: *mut ::core::ffi::c_void, buffersize: u32) -> ::windows::core::HRESULT; } - WsGetFaultErrorProperty(::core::mem::transmute(error), id, ::core::mem::transmute(buffer), buffersize).ok() + WsGetFaultErrorProperty(::core::mem::transmute(error), id, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsGetHeader(message: &WS_MESSAGE, headertype: WS_HEADER_TYPE, valuetype: WS_TYPE, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsGetHeader(message: &WS_MESSAGE, headertype: WS_HEADER_TYPE, valuetype: WS_TYPE, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetHeader(message: *const WS_MESSAGE, headertype: WS_HEADER_TYPE, valuetype: WS_TYPE, readoption: WS_READ_OPTION, heap: *const WS_HEAP, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsGetHeader(::core::mem::transmute(message), headertype, valuetype, readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsGetHeader(::core::mem::transmute(message), headertype, valuetype, readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -14849,40 +14877,40 @@ pub unsafe fn WsGetHeaderAttributes(message: &WS_MESSAGE, reader: &WS_XML_READER } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsGetHeapProperty(heap: &WS_HEAP, id: WS_HEAP_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsGetHeapProperty(heap: &WS_HEAP, id: WS_HEAP_PROPERTY_ID, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetHeapProperty(heap: *const WS_HEAP, id: WS_HEAP_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsGetHeapProperty(::core::mem::transmute(heap), id, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsGetHeapProperty(::core::mem::transmute(heap), id, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsGetListenerProperty(listener: &WS_LISTENER, id: WS_LISTENER_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsGetListenerProperty(listener: &WS_LISTENER, id: WS_LISTENER_PROPERTY_ID, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetListenerProperty(listener: *const WS_LISTENER, id: WS_LISTENER_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsGetListenerProperty(::core::mem::transmute(listener), id, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsGetListenerProperty(::core::mem::transmute(listener), id, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsGetMappedHeader(message: &WS_MESSAGE, headername: &WS_XML_STRING, repeatingoption: WS_REPEATING_HEADER_OPTION, headerindex: u32, valuetype: WS_TYPE, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsGetMappedHeader(message: &WS_MESSAGE, headername: &WS_XML_STRING, repeatingoption: WS_REPEATING_HEADER_OPTION, headerindex: u32, valuetype: WS_TYPE, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetMappedHeader(message: *const WS_MESSAGE, headername: *const WS_XML_STRING, repeatingoption: WS_REPEATING_HEADER_OPTION, headerindex: u32, valuetype: WS_TYPE, readoption: WS_READ_OPTION, heap: *const WS_HEAP, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsGetMappedHeader(::core::mem::transmute(message), ::core::mem::transmute(headername), repeatingoption, headerindex, valuetype, readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsGetMappedHeader(::core::mem::transmute(message), ::core::mem::transmute(headername), repeatingoption, headerindex, valuetype, readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsGetMessageProperty(message: &WS_MESSAGE, id: WS_MESSAGE_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsGetMessageProperty(message: &WS_MESSAGE, id: WS_MESSAGE_PROPERTY_ID, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetMessageProperty(message: *const WS_MESSAGE, id: WS_MESSAGE_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsGetMessageProperty(::core::mem::transmute(message), id, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsGetMessageProperty(::core::mem::transmute(message), id, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14896,12 +14924,12 @@ pub unsafe fn WsGetMetadataEndpoints(metadata: &WS_METADATA, endpoints: &mut WS_ } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsGetMetadataProperty(metadata: &WS_METADATA, id: WS_METADATA_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsGetMetadataProperty(metadata: &WS_METADATA, id: WS_METADATA_PROPERTY_ID, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetMetadataProperty(metadata: *const WS_METADATA, id: WS_METADATA_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsGetMetadataProperty(::core::mem::transmute(metadata), id, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsGetMetadataProperty(::core::mem::transmute(metadata), id, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -14927,12 +14955,12 @@ where } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsGetOperationContextProperty(context: &WS_OPERATION_CONTEXT, id: WS_OPERATION_CONTEXT_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsGetOperationContextProperty(context: &WS_OPERATION_CONTEXT, id: WS_OPERATION_CONTEXT_PROPERTY_ID, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetOperationContextProperty(context: *const WS_OPERATION_CONTEXT, id: WS_OPERATION_CONTEXT_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsGetOperationContextProperty(::core::mem::transmute(context), id, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsGetOperationContextProperty(::core::mem::transmute(context), id, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -14945,12 +14973,12 @@ pub unsafe fn WsGetPolicyAlternativeCount(policy: &WS_POLICY, count: &mut u32, e } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsGetPolicyProperty(policy: &WS_POLICY, id: WS_POLICY_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsGetPolicyProperty(policy: &WS_POLICY, id: WS_POLICY_PROPERTY_ID, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetPolicyProperty(policy: *const WS_POLICY, id: WS_POLICY_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsGetPolicyProperty(::core::mem::transmute(policy), id, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsGetPolicyProperty(::core::mem::transmute(policy), id, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14985,48 +15013,48 @@ pub unsafe fn WsGetReaderPosition(reader: &WS_XML_READER, nodeposition: &mut WS_ } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsGetReaderProperty(reader: &WS_XML_READER, id: WS_XML_READER_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsGetReaderProperty(reader: &WS_XML_READER, id: WS_XML_READER_PROPERTY_ID, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetReaderProperty(reader: *const WS_XML_READER, id: WS_XML_READER_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsGetReaderProperty(::core::mem::transmute(reader), id, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsGetReaderProperty(::core::mem::transmute(reader), id, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsGetSecurityContextProperty(securitycontext: &WS_SECURITY_CONTEXT, id: WS_SECURITY_CONTEXT_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsGetSecurityContextProperty(securitycontext: &WS_SECURITY_CONTEXT, id: WS_SECURITY_CONTEXT_PROPERTY_ID, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetSecurityContextProperty(securitycontext: *const WS_SECURITY_CONTEXT, id: WS_SECURITY_CONTEXT_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsGetSecurityContextProperty(::core::mem::transmute(securitycontext), id, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsGetSecurityContextProperty(::core::mem::transmute(securitycontext), id, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsGetSecurityTokenProperty(securitytoken: &WS_SECURITY_TOKEN, id: WS_SECURITY_TOKEN_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, heap: ::core::option::Option<&WS_HEAP>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsGetSecurityTokenProperty(securitytoken: &WS_SECURITY_TOKEN, id: WS_SECURITY_TOKEN_PROPERTY_ID, value: &mut [u8], heap: ::core::option::Option<&WS_HEAP>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetSecurityTokenProperty(securitytoken: *const WS_SECURITY_TOKEN, id: WS_SECURITY_TOKEN_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, heap: *const WS_HEAP, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsGetSecurityTokenProperty(::core::mem::transmute(securitytoken), id, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(heap), ::core::mem::transmute(error)).ok() + WsGetSecurityTokenProperty(::core::mem::transmute(securitytoken), id, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(heap), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsGetServiceHostProperty(servicehost: &WS_SERVICE_HOST, id: WS_SERVICE_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsGetServiceHostProperty(servicehost: &WS_SERVICE_HOST, id: WS_SERVICE_PROPERTY_ID, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetServiceHostProperty(servicehost: *const WS_SERVICE_HOST, id: WS_SERVICE_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsGetServiceHostProperty(::core::mem::transmute(servicehost), id, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsGetServiceHostProperty(::core::mem::transmute(servicehost), id, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsGetServiceProxyProperty(serviceproxy: &WS_SERVICE_PROXY, id: WS_PROXY_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsGetServiceProxyProperty(serviceproxy: &WS_SERVICE_PROXY, id: WS_PROXY_PROPERTY_ID, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetServiceProxyProperty(serviceproxy: *const WS_SERVICE_PROXY, id: WS_PROXY_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsGetServiceProxyProperty(::core::mem::transmute(serviceproxy), id, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsGetServiceProxyProperty(::core::mem::transmute(serviceproxy), id, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -15039,12 +15067,12 @@ pub unsafe fn WsGetWriterPosition(writer: &WS_XML_WRITER, nodeposition: &mut WS_ } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsGetWriterProperty(writer: &WS_XML_WRITER, id: WS_XML_WRITER_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsGetWriterProperty(writer: &WS_XML_WRITER, id: WS_XML_WRITER_PROPERTY_ID, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsGetWriterProperty(writer: *const WS_XML_WRITER, id: WS_XML_WRITER_PROPERTY_ID, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsGetWriterProperty(::core::mem::transmute(writer), id, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsGetWriterProperty(::core::mem::transmute(writer), id, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -15164,41 +15192,41 @@ pub unsafe fn WsPushBytes(writer: &WS_XML_WRITER, callback: WS_PUSH_BYTES_CALLBA #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsReadArray(reader: &WS_XML_READER, localname: &WS_XML_STRING, ns: &WS_XML_STRING, valuetype: WS_VALUE_TYPE, array: *mut ::core::ffi::c_void, arraysize: u32, itemoffset: u32, itemcount: u32, actualitemcount: &mut u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsReadArray(reader: &WS_XML_READER, localname: &WS_XML_STRING, ns: &WS_XML_STRING, valuetype: WS_VALUE_TYPE, array: ::core::option::Option<&mut [u8]>, itemoffset: u32, itemcount: u32, actualitemcount: &mut u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsReadArray(reader: *const WS_XML_READER, localname: *const WS_XML_STRING, ns: *const WS_XML_STRING, valuetype: WS_VALUE_TYPE, array: *mut ::core::ffi::c_void, arraysize: u32, itemoffset: u32, itemcount: u32, actualitemcount: *mut u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsReadArray(::core::mem::transmute(reader), ::core::mem::transmute(localname), ::core::mem::transmute(ns), valuetype, ::core::mem::transmute(array), arraysize, itemoffset, itemcount, ::core::mem::transmute(actualitemcount), ::core::mem::transmute(error)).ok() + WsReadArray(::core::mem::transmute(reader), ::core::mem::transmute(localname), ::core::mem::transmute(ns), valuetype, ::core::mem::transmute(array.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), array.as_deref().map_or(0, |slice| slice.len() as _), itemoffset, itemcount, ::core::mem::transmute(actualitemcount), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsReadAttribute(reader: &WS_XML_READER, attributedescription: &WS_ATTRIBUTE_DESCRIPTION, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsReadAttribute(reader: &WS_XML_READER, attributedescription: &WS_ATTRIBUTE_DESCRIPTION, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsReadAttribute(reader: *const WS_XML_READER, attributedescription: *const WS_ATTRIBUTE_DESCRIPTION, readoption: WS_READ_OPTION, heap: *const WS_HEAP, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsReadAttribute(::core::mem::transmute(reader), ::core::mem::transmute(attributedescription), readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsReadAttribute(::core::mem::transmute(reader), ::core::mem::transmute(attributedescription), readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsReadBody(message: &WS_MESSAGE, bodydescription: &WS_ELEMENT_DESCRIPTION, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsReadBody(message: &WS_MESSAGE, bodydescription: &WS_ELEMENT_DESCRIPTION, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsReadBody(message: *const WS_MESSAGE, bodydescription: *const WS_ELEMENT_DESCRIPTION, readoption: WS_READ_OPTION, heap: *const WS_HEAP, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsReadBody(::core::mem::transmute(message), ::core::mem::transmute(bodydescription), readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsReadBody(::core::mem::transmute(message), ::core::mem::transmute(bodydescription), readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsReadBytes(reader: &WS_XML_READER, bytes: *mut ::core::ffi::c_void, maxbytecount: u32, actualbytecount: &mut u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsReadBytes(reader: &WS_XML_READER, bytes: &mut [u8], actualbytecount: &mut u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsReadBytes(reader: *const WS_XML_READER, bytes: *mut ::core::ffi::c_void, maxbytecount: u32, actualbytecount: *mut u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsReadBytes(::core::mem::transmute(reader), ::core::mem::transmute(bytes), maxbytecount, ::core::mem::transmute(actualbytecount), ::core::mem::transmute(error)).ok() + WsReadBytes(::core::mem::transmute(reader), ::core::mem::transmute(bytes.as_ptr()), bytes.len() as _, ::core::mem::transmute(actualbytecount), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -15207,7 +15235,7 @@ pub unsafe fn WsReadChars(reader: &WS_XML_READER, chars: &mut [u16], actualcharc extern "system" { fn WsReadChars(reader: *const WS_XML_READER, chars: ::windows::core::PWSTR, maxcharcount: u32, actualcharcount: *mut u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsReadChars(::core::mem::transmute(reader), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(chars)), chars.len() as _, ::core::mem::transmute(actualcharcount), ::core::mem::transmute(error)).ok() + WsReadChars(::core::mem::transmute(reader), ::core::mem::transmute(chars.as_ptr()), chars.len() as _, ::core::mem::transmute(actualcharcount), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -15216,17 +15244,17 @@ pub unsafe fn WsReadCharsUtf8(reader: &WS_XML_READER, bytes: &mut [u8], actualby extern "system" { fn WsReadCharsUtf8(reader: *const WS_XML_READER, bytes: *mut u8, maxbytecount: u32, actualbytecount: *mut u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsReadCharsUtf8(::core::mem::transmute(reader), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(bytes)), bytes.len() as _, ::core::mem::transmute(actualbytecount), ::core::mem::transmute(error)).ok() + WsReadCharsUtf8(::core::mem::transmute(reader), ::core::mem::transmute(bytes.as_ptr()), bytes.len() as _, ::core::mem::transmute(actualbytecount), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsReadElement(reader: &WS_XML_READER, elementdescription: &WS_ELEMENT_DESCRIPTION, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsReadElement(reader: &WS_XML_READER, elementdescription: &WS_ELEMENT_DESCRIPTION, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsReadElement(reader: *const WS_XML_READER, elementdescription: *const WS_ELEMENT_DESCRIPTION, readoption: WS_READ_OPTION, heap: *const WS_HEAP, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsReadElement(::core::mem::transmute(reader), ::core::mem::transmute(elementdescription), readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsReadElement(::core::mem::transmute(reader), ::core::mem::transmute(elementdescription), readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -15248,12 +15276,12 @@ pub unsafe fn WsReadEndElement(reader: &WS_XML_READER, error: ::core::option::Op } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsReadEndpointAddressExtension(reader: &WS_XML_READER, endpointaddress: &WS_ENDPOINT_ADDRESS, extensiontype: WS_ENDPOINT_ADDRESS_EXTENSION_TYPE, readoption: WS_READ_OPTION, heap: &WS_HEAP, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsReadEndpointAddressExtension(reader: &WS_XML_READER, endpointaddress: &WS_ENDPOINT_ADDRESS, extensiontype: WS_ENDPOINT_ADDRESS_EXTENSION_TYPE, readoption: WS_READ_OPTION, heap: &WS_HEAP, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsReadEndpointAddressExtension(reader: *const WS_XML_READER, endpointaddress: *const WS_ENDPOINT_ADDRESS, extensiontype: WS_ENDPOINT_ADDRESS_EXTENSION_TYPE, readoption: WS_READ_OPTION, heap: *const WS_HEAP, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsReadEndpointAddressExtension(::core::mem::transmute(reader), ::core::mem::transmute(endpointaddress), extensiontype, readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsReadEndpointAddressExtension(::core::mem::transmute(reader), ::core::mem::transmute(endpointaddress), extensiontype, readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -15349,21 +15377,21 @@ pub unsafe fn WsReadToStartElement(reader: &WS_XML_READER, localname: ::core::op } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsReadType(reader: &WS_XML_READER, typemapping: WS_TYPE_MAPPING, r#type: WS_TYPE, typedescription: *const ::core::ffi::c_void, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsReadType(reader: &WS_XML_READER, typemapping: WS_TYPE_MAPPING, r#type: WS_TYPE, typedescription: *const ::core::ffi::c_void, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsReadType(reader: *const WS_XML_READER, typemapping: WS_TYPE_MAPPING, r#type: WS_TYPE, typedescription: *const ::core::ffi::c_void, readoption: WS_READ_OPTION, heap: *const WS_HEAP, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsReadType(::core::mem::transmute(reader), typemapping, r#type, ::core::mem::transmute(typedescription), readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsReadType(::core::mem::transmute(reader), typemapping, r#type, ::core::mem::transmute(typedescription), readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsReadValue(reader: &WS_XML_READER, valuetype: WS_VALUE_TYPE, value: *mut ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsReadValue(reader: &WS_XML_READER, valuetype: WS_VALUE_TYPE, value: &mut [u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsReadValue(reader: *const WS_XML_READER, valuetype: WS_VALUE_TYPE, value: *mut ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsReadValue(::core::mem::transmute(reader), valuetype, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsReadValue(::core::mem::transmute(reader), valuetype, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -15376,22 +15404,22 @@ pub unsafe fn WsReadXmlBuffer(reader: &WS_XML_READER, heap: &WS_HEAP, xmlbuffer: } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsReadXmlBufferFromBytes(reader: &WS_XML_READER, encoding: ::core::option::Option<&WS_XML_READER_ENCODING>, properties: &[WS_XML_READER_PROPERTY], bytes: *const ::core::ffi::c_void, bytecount: u32, heap: &WS_HEAP, xmlbuffer: &mut *mut WS_XML_BUFFER, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsReadXmlBufferFromBytes(reader: &WS_XML_READER, encoding: ::core::option::Option<&WS_XML_READER_ENCODING>, properties: ::core::option::Option<&[WS_XML_READER_PROPERTY]>, bytes: &[u8], heap: &WS_HEAP, xmlbuffer: &mut *mut WS_XML_BUFFER, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsReadXmlBufferFromBytes(reader: *const WS_XML_READER, encoding: *const WS_XML_READER_ENCODING, properties: *const WS_XML_READER_PROPERTY, propertycount: u32, bytes: *const ::core::ffi::c_void, bytecount: u32, heap: *const WS_HEAP, xmlbuffer: *mut *mut WS_XML_BUFFER, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsReadXmlBufferFromBytes(::core::mem::transmute(reader), ::core::mem::transmute(encoding), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(bytes), bytecount, ::core::mem::transmute(heap), ::core::mem::transmute(xmlbuffer), ::core::mem::transmute(error)).ok() + WsReadXmlBufferFromBytes(::core::mem::transmute(reader), ::core::mem::transmute(encoding), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(bytes.as_ptr()), bytes.len() as _, ::core::mem::transmute(heap), ::core::mem::transmute(xmlbuffer), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsReceiveMessage(channel: &WS_CHANNEL, message: &WS_MESSAGE, messagedescriptions: &[*const WS_MESSAGE_DESCRIPTION], receiveoption: WS_RECEIVE_OPTION, readbodyoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: *mut ::core::ffi::c_void, valuesize: u32, index: ::core::option::Option<&mut u32>, asynccontext: ::core::option::Option<&WS_ASYNC_CONTEXT>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsReceiveMessage(channel: &WS_CHANNEL, message: &WS_MESSAGE, messagedescriptions: &[*const WS_MESSAGE_DESCRIPTION], receiveoption: WS_RECEIVE_OPTION, readbodyoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: &mut [u8], index: ::core::option::Option<&mut u32>, asynccontext: ::core::option::Option<&WS_ASYNC_CONTEXT>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsReceiveMessage(channel: *const WS_CHANNEL, message: *const WS_MESSAGE, messagedescriptions: *const *const WS_MESSAGE_DESCRIPTION, messagedescriptioncount: u32, receiveoption: WS_RECEIVE_OPTION, readbodyoption: WS_READ_OPTION, heap: *const WS_HEAP, value: *mut ::core::ffi::c_void, valuesize: u32, index: *mut u32, asynccontext: *const WS_ASYNC_CONTEXT, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsReceiveMessage(::core::mem::transmute(channel), ::core::mem::transmute(message), ::core::mem::transmute(::windows::core::as_ptr_or_null(messagedescriptions)), messagedescriptions.len() as _, receiveoption, readbodyoption, ::core::mem::transmute(heap), ::core::mem::transmute(value), valuesize, ::core::mem::transmute(index), ::core::mem::transmute(asynccontext), ::core::mem::transmute(error)).ok() + WsReceiveMessage(::core::mem::transmute(channel), ::core::mem::transmute(message), ::core::mem::transmute(messagedescriptions.as_ptr()), messagedescriptions.len() as _, receiveoption, readbodyoption, ::core::mem::transmute(heap), ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(index), ::core::mem::transmute(asynccontext), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -15443,21 +15471,37 @@ pub unsafe fn WsRemoveNode(nodeposition: &WS_XML_NODE_POSITION, error: ::core::o #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsRequestReply(channel: &WS_CHANNEL, requestmessage: &WS_MESSAGE, requestmessagedescription: &WS_MESSAGE_DESCRIPTION, writeoption: WS_WRITE_OPTION, requestbodyvalue: *const ::core::ffi::c_void, requestbodyvaluesize: u32, replymessage: &WS_MESSAGE, replymessagedescription: &WS_MESSAGE_DESCRIPTION, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: *mut ::core::ffi::c_void, valuesize: u32, asynccontext: ::core::option::Option<&WS_ASYNC_CONTEXT>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsRequestReply(channel: &WS_CHANNEL, requestmessage: &WS_MESSAGE, requestmessagedescription: &WS_MESSAGE_DESCRIPTION, writeoption: WS_WRITE_OPTION, requestbodyvalue: ::core::option::Option<&[u8]>, replymessage: &WS_MESSAGE, replymessagedescription: &WS_MESSAGE_DESCRIPTION, readoption: WS_READ_OPTION, heap: ::core::option::Option<&WS_HEAP>, value: ::core::option::Option<&mut [u8]>, asynccontext: ::core::option::Option<&WS_ASYNC_CONTEXT>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsRequestReply(channel: *const WS_CHANNEL, requestmessage: *const WS_MESSAGE, requestmessagedescription: *const WS_MESSAGE_DESCRIPTION, writeoption: WS_WRITE_OPTION, requestbodyvalue: *const ::core::ffi::c_void, requestbodyvaluesize: u32, replymessage: *const WS_MESSAGE, replymessagedescription: *const WS_MESSAGE_DESCRIPTION, readoption: WS_READ_OPTION, heap: *const WS_HEAP, value: *mut ::core::ffi::c_void, valuesize: u32, asynccontext: *const WS_ASYNC_CONTEXT, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsRequestReply(::core::mem::transmute(channel), ::core::mem::transmute(requestmessage), ::core::mem::transmute(requestmessagedescription), writeoption, ::core::mem::transmute(requestbodyvalue), requestbodyvaluesize, ::core::mem::transmute(replymessage), ::core::mem::transmute(replymessagedescription), readoption, ::core::mem::transmute(heap), ::core::mem::transmute(value), valuesize, ::core::mem::transmute(asynccontext), ::core::mem::transmute(error)).ok() + WsRequestReply( + ::core::mem::transmute(channel), + ::core::mem::transmute(requestmessage), + ::core::mem::transmute(requestmessagedescription), + writeoption, + ::core::mem::transmute(requestbodyvalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + requestbodyvalue.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(replymessage), + ::core::mem::transmute(replymessagedescription), + readoption, + ::core::mem::transmute(heap), + ::core::mem::transmute(value.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + value.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(asynccontext), + ::core::mem::transmute(error), + ) + .ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsRequestSecurityToken(channel: &WS_CHANNEL, properties: &[WS_REQUEST_SECURITY_TOKEN_PROPERTY], token: &mut *mut WS_SECURITY_TOKEN, asynccontext: ::core::option::Option<&WS_ASYNC_CONTEXT>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsRequestSecurityToken(channel: &WS_CHANNEL, properties: ::core::option::Option<&[WS_REQUEST_SECURITY_TOKEN_PROPERTY]>, token: &mut *mut WS_SECURITY_TOKEN, asynccontext: ::core::option::Option<&WS_ASYNC_CONTEXT>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsRequestSecurityToken(channel: *const WS_CHANNEL, properties: *const WS_REQUEST_SECURITY_TOKEN_PROPERTY, propertycount: u32, token: *mut *mut WS_SECURITY_TOKEN, asynccontext: *const WS_ASYNC_CONTEXT, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsRequestSecurityToken(::core::mem::transmute(channel), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(token), ::core::mem::transmute(asynccontext), ::core::mem::transmute(error)).ok() + WsRequestSecurityToken(::core::mem::transmute(channel), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(token), ::core::mem::transmute(asynccontext), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -15552,122 +15596,122 @@ pub unsafe fn WsSendFaultMessageForError(channel: &WS_CHANNEL, replymessage: &WS #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsSendMessage(channel: &WS_CHANNEL, message: &WS_MESSAGE, messagedescription: &WS_MESSAGE_DESCRIPTION, writeoption: WS_WRITE_OPTION, bodyvalue: *const ::core::ffi::c_void, bodyvaluesize: u32, asynccontext: ::core::option::Option<&WS_ASYNC_CONTEXT>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsSendMessage(channel: &WS_CHANNEL, message: &WS_MESSAGE, messagedescription: &WS_MESSAGE_DESCRIPTION, writeoption: WS_WRITE_OPTION, bodyvalue: ::core::option::Option<&[u8]>, asynccontext: ::core::option::Option<&WS_ASYNC_CONTEXT>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsSendMessage(channel: *const WS_CHANNEL, message: *const WS_MESSAGE, messagedescription: *const WS_MESSAGE_DESCRIPTION, writeoption: WS_WRITE_OPTION, bodyvalue: *const ::core::ffi::c_void, bodyvaluesize: u32, asynccontext: *const WS_ASYNC_CONTEXT, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsSendMessage(::core::mem::transmute(channel), ::core::mem::transmute(message), ::core::mem::transmute(messagedescription), writeoption, ::core::mem::transmute(bodyvalue), bodyvaluesize, ::core::mem::transmute(asynccontext), ::core::mem::transmute(error)).ok() + WsSendMessage(::core::mem::transmute(channel), ::core::mem::transmute(message), ::core::mem::transmute(messagedescription), writeoption, ::core::mem::transmute(bodyvalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bodyvalue.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(asynccontext), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsSendReplyMessage(channel: &WS_CHANNEL, replymessage: &WS_MESSAGE, replymessagedescription: &WS_MESSAGE_DESCRIPTION, writeoption: WS_WRITE_OPTION, replybodyvalue: *const ::core::ffi::c_void, replybodyvaluesize: u32, requestmessage: &WS_MESSAGE, asynccontext: ::core::option::Option<&WS_ASYNC_CONTEXT>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsSendReplyMessage(channel: &WS_CHANNEL, replymessage: &WS_MESSAGE, replymessagedescription: &WS_MESSAGE_DESCRIPTION, writeoption: WS_WRITE_OPTION, replybodyvalue: ::core::option::Option<&[u8]>, requestmessage: &WS_MESSAGE, asynccontext: ::core::option::Option<&WS_ASYNC_CONTEXT>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsSendReplyMessage(channel: *const WS_CHANNEL, replymessage: *const WS_MESSAGE, replymessagedescription: *const WS_MESSAGE_DESCRIPTION, writeoption: WS_WRITE_OPTION, replybodyvalue: *const ::core::ffi::c_void, replybodyvaluesize: u32, requestmessage: *const WS_MESSAGE, asynccontext: *const WS_ASYNC_CONTEXT, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsSendReplyMessage(::core::mem::transmute(channel), ::core::mem::transmute(replymessage), ::core::mem::transmute(replymessagedescription), writeoption, ::core::mem::transmute(replybodyvalue), replybodyvaluesize, ::core::mem::transmute(requestmessage), ::core::mem::transmute(asynccontext), ::core::mem::transmute(error)).ok() + WsSendReplyMessage(::core::mem::transmute(channel), ::core::mem::transmute(replymessage), ::core::mem::transmute(replymessagedescription), writeoption, ::core::mem::transmute(replybodyvalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), replybodyvalue.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requestmessage), ::core::mem::transmute(asynccontext), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsSetChannelProperty(channel: &WS_CHANNEL, id: WS_CHANNEL_PROPERTY_ID, value: *const ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsSetChannelProperty(channel: &WS_CHANNEL, id: WS_CHANNEL_PROPERTY_ID, value: &[u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsSetChannelProperty(channel: *const WS_CHANNEL, id: WS_CHANNEL_PROPERTY_ID, value: *const ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsSetChannelProperty(::core::mem::transmute(channel), id, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsSetChannelProperty(::core::mem::transmute(channel), id, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsSetErrorProperty(error: &WS_ERROR, id: WS_ERROR_PROPERTY_ID, value: *const ::core::ffi::c_void, valuesize: u32) -> ::windows::core::Result<()> { +pub unsafe fn WsSetErrorProperty(error: &WS_ERROR, id: WS_ERROR_PROPERTY_ID, value: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsSetErrorProperty(error: *const WS_ERROR, id: WS_ERROR_PROPERTY_ID, value: *const ::core::ffi::c_void, valuesize: u32) -> ::windows::core::HRESULT; } - WsSetErrorProperty(::core::mem::transmute(error), id, ::core::mem::transmute(value), valuesize).ok() + WsSetErrorProperty(::core::mem::transmute(error), id, ::core::mem::transmute(value.as_ptr()), value.len() as _).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsSetFaultErrorDetail(error: &WS_ERROR, faultdetaildescription: &WS_FAULT_DETAIL_DESCRIPTION, writeoption: WS_WRITE_OPTION, value: *const ::core::ffi::c_void, valuesize: u32) -> ::windows::core::Result<()> { +pub unsafe fn WsSetFaultErrorDetail(error: &WS_ERROR, faultdetaildescription: &WS_FAULT_DETAIL_DESCRIPTION, writeoption: WS_WRITE_OPTION, value: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsSetFaultErrorDetail(error: *const WS_ERROR, faultdetaildescription: *const WS_FAULT_DETAIL_DESCRIPTION, writeoption: WS_WRITE_OPTION, value: *const ::core::ffi::c_void, valuesize: u32) -> ::windows::core::HRESULT; } - WsSetFaultErrorDetail(::core::mem::transmute(error), ::core::mem::transmute(faultdetaildescription), writeoption, ::core::mem::transmute(value), valuesize).ok() + WsSetFaultErrorDetail(::core::mem::transmute(error), ::core::mem::transmute(faultdetaildescription), writeoption, ::core::mem::transmute(value.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), value.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsSetFaultErrorProperty(error: &WS_ERROR, id: WS_FAULT_ERROR_PROPERTY_ID, value: *const ::core::ffi::c_void, valuesize: u32) -> ::windows::core::Result<()> { +pub unsafe fn WsSetFaultErrorProperty(error: &WS_ERROR, id: WS_FAULT_ERROR_PROPERTY_ID, value: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsSetFaultErrorProperty(error: *const WS_ERROR, id: WS_FAULT_ERROR_PROPERTY_ID, value: *const ::core::ffi::c_void, valuesize: u32) -> ::windows::core::HRESULT; } - WsSetFaultErrorProperty(::core::mem::transmute(error), id, ::core::mem::transmute(value), valuesize).ok() + WsSetFaultErrorProperty(::core::mem::transmute(error), id, ::core::mem::transmute(value.as_ptr()), value.len() as _).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsSetHeader(message: &WS_MESSAGE, headertype: WS_HEADER_TYPE, valuetype: WS_TYPE, writeoption: WS_WRITE_OPTION, value: *const ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsSetHeader(message: &WS_MESSAGE, headertype: WS_HEADER_TYPE, valuetype: WS_TYPE, writeoption: WS_WRITE_OPTION, value: &[u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsSetHeader(message: *const WS_MESSAGE, headertype: WS_HEADER_TYPE, valuetype: WS_TYPE, writeoption: WS_WRITE_OPTION, value: *const ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsSetHeader(::core::mem::transmute(message), headertype, valuetype, writeoption, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsSetHeader(::core::mem::transmute(message), headertype, valuetype, writeoption, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsSetInput(reader: &WS_XML_READER, encoding: ::core::option::Option<&WS_XML_READER_ENCODING>, input: ::core::option::Option<&WS_XML_READER_INPUT>, properties: &[WS_XML_READER_PROPERTY], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsSetInput(reader: &WS_XML_READER, encoding: ::core::option::Option<&WS_XML_READER_ENCODING>, input: ::core::option::Option<&WS_XML_READER_INPUT>, properties: ::core::option::Option<&[WS_XML_READER_PROPERTY]>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsSetInput(reader: *const WS_XML_READER, encoding: *const WS_XML_READER_ENCODING, input: *const WS_XML_READER_INPUT, properties: *const WS_XML_READER_PROPERTY, propertycount: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsSetInput(::core::mem::transmute(reader), ::core::mem::transmute(encoding), ::core::mem::transmute(input), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(error)).ok() + WsSetInput(::core::mem::transmute(reader), ::core::mem::transmute(encoding), ::core::mem::transmute(input), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsSetInputToBuffer(reader: &WS_XML_READER, buffer: &WS_XML_BUFFER, properties: &[WS_XML_READER_PROPERTY], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsSetInputToBuffer(reader: &WS_XML_READER, buffer: &WS_XML_BUFFER, properties: ::core::option::Option<&[WS_XML_READER_PROPERTY]>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsSetInputToBuffer(reader: *const WS_XML_READER, buffer: *const WS_XML_BUFFER, properties: *const WS_XML_READER_PROPERTY, propertycount: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsSetInputToBuffer(::core::mem::transmute(reader), ::core::mem::transmute(buffer), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(error)).ok() + WsSetInputToBuffer(::core::mem::transmute(reader), ::core::mem::transmute(buffer), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsSetListenerProperty(listener: &WS_LISTENER, id: WS_LISTENER_PROPERTY_ID, value: *const ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsSetListenerProperty(listener: &WS_LISTENER, id: WS_LISTENER_PROPERTY_ID, value: &[u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsSetListenerProperty(listener: *const WS_LISTENER, id: WS_LISTENER_PROPERTY_ID, value: *const ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsSetListenerProperty(::core::mem::transmute(listener), id, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsSetListenerProperty(::core::mem::transmute(listener), id, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsSetMessageProperty(message: &WS_MESSAGE, id: WS_MESSAGE_PROPERTY_ID, value: *const ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsSetMessageProperty(message: &WS_MESSAGE, id: WS_MESSAGE_PROPERTY_ID, value: &[u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsSetMessageProperty(message: *const WS_MESSAGE, id: WS_MESSAGE_PROPERTY_ID, value: *const ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsSetMessageProperty(::core::mem::transmute(message), id, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsSetMessageProperty(::core::mem::transmute(message), id, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsSetOutput(writer: &WS_XML_WRITER, encoding: ::core::option::Option<&WS_XML_WRITER_ENCODING>, output: ::core::option::Option<&WS_XML_WRITER_OUTPUT>, properties: &[WS_XML_WRITER_PROPERTY], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsSetOutput(writer: &WS_XML_WRITER, encoding: ::core::option::Option<&WS_XML_WRITER_ENCODING>, output: ::core::option::Option<&WS_XML_WRITER_OUTPUT>, properties: ::core::option::Option<&[WS_XML_WRITER_PROPERTY]>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsSetOutput(writer: *const WS_XML_WRITER, encoding: *const WS_XML_WRITER_ENCODING, output: *const WS_XML_WRITER_OUTPUT, properties: *const WS_XML_WRITER_PROPERTY, propertycount: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsSetOutput(::core::mem::transmute(writer), ::core::mem::transmute(encoding), ::core::mem::transmute(output), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(error)).ok() + WsSetOutput(::core::mem::transmute(writer), ::core::mem::transmute(encoding), ::core::mem::transmute(output), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsSetOutputToBuffer(writer: &WS_XML_WRITER, buffer: &WS_XML_BUFFER, properties: &[WS_XML_WRITER_PROPERTY], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsSetOutputToBuffer(writer: &WS_XML_WRITER, buffer: &WS_XML_BUFFER, properties: ::core::option::Option<&[WS_XML_WRITER_PROPERTY]>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsSetOutputToBuffer(writer: *const WS_XML_WRITER, buffer: *const WS_XML_BUFFER, properties: *const WS_XML_WRITER_PROPERTY, propertycount: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsSetOutputToBuffer(::core::mem::transmute(writer), ::core::mem::transmute(buffer), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(error)).ok() + WsSetOutputToBuffer(::core::mem::transmute(writer), ::core::mem::transmute(buffer), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -15707,21 +15751,21 @@ pub unsafe fn WsSkipNode(reader: &WS_XML_READER, error: ::core::option::Option<& } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsStartReaderCanonicalization(reader: &WS_XML_READER, writecallback: WS_WRITE_CALLBACK, writecallbackstate: *const ::core::ffi::c_void, properties: &[WS_XML_CANONICALIZATION_PROPERTY], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsStartReaderCanonicalization(reader: &WS_XML_READER, writecallback: WS_WRITE_CALLBACK, writecallbackstate: *const ::core::ffi::c_void, properties: ::core::option::Option<&[WS_XML_CANONICALIZATION_PROPERTY]>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsStartReaderCanonicalization(reader: *const WS_XML_READER, writecallback: *mut ::core::ffi::c_void, writecallbackstate: *const ::core::ffi::c_void, properties: *const WS_XML_CANONICALIZATION_PROPERTY, propertycount: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsStartReaderCanonicalization(::core::mem::transmute(reader), ::core::mem::transmute(writecallback), ::core::mem::transmute(writecallbackstate), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(error)).ok() + WsStartReaderCanonicalization(::core::mem::transmute(reader), ::core::mem::transmute(writecallback), ::core::mem::transmute(writecallbackstate), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsStartWriterCanonicalization(writer: &WS_XML_WRITER, writecallback: WS_WRITE_CALLBACK, writecallbackstate: *const ::core::ffi::c_void, properties: &[WS_XML_CANONICALIZATION_PROPERTY], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsStartWriterCanonicalization(writer: &WS_XML_WRITER, writecallback: WS_WRITE_CALLBACK, writecallbackstate: *const ::core::ffi::c_void, properties: ::core::option::Option<&[WS_XML_CANONICALIZATION_PROPERTY]>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsStartWriterCanonicalization(writer: *const WS_XML_WRITER, writecallback: *mut ::core::ffi::c_void, writecallbackstate: *const ::core::ffi::c_void, properties: *const WS_XML_CANONICALIZATION_PROPERTY, propertycount: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsStartWriterCanonicalization(::core::mem::transmute(writer), ::core::mem::transmute(writecallback), ::core::mem::transmute(writecallbackstate), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(error)).ok() + WsStartWriterCanonicalization(::core::mem::transmute(writer), ::core::mem::transmute(writecallback), ::core::mem::transmute(writecallbackstate), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -15730,7 +15774,7 @@ pub unsafe fn WsTrimXmlWhitespace(chars: &[u16], trimmedchars: &mut *mut u16, tr extern "system" { fn WsTrimXmlWhitespace(chars: ::windows::core::PCWSTR, charcount: u32, trimmedchars: *mut *mut u16, trimmedcount: *mut u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsTrimXmlWhitespace(::core::mem::transmute(::windows::core::as_ptr_or_null(chars)), chars.len() as _, ::core::mem::transmute(trimmedchars), ::core::mem::transmute(trimmedcount), ::core::mem::transmute(error)).ok() + WsTrimXmlWhitespace(::core::mem::transmute(chars.as_ptr()), chars.len() as _, ::core::mem::transmute(trimmedchars), ::core::mem::transmute(trimmedcount), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -15739,46 +15783,46 @@ pub unsafe fn WsVerifyXmlNCName(ncnamechars: &[u16], error: ::core::option::Opti extern "system" { fn WsVerifyXmlNCName(ncnamechars: ::windows::core::PCWSTR, ncnamecharcount: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsVerifyXmlNCName(::core::mem::transmute(::windows::core::as_ptr_or_null(ncnamechars)), ncnamechars.len() as _, ::core::mem::transmute(error)).ok() + WsVerifyXmlNCName(::core::mem::transmute(ncnamechars.as_ptr()), ncnamechars.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsWriteArray(writer: &WS_XML_WRITER, localname: &WS_XML_STRING, ns: &WS_XML_STRING, valuetype: WS_VALUE_TYPE, array: *const ::core::ffi::c_void, arraysize: u32, itemoffset: u32, itemcount: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsWriteArray(writer: &WS_XML_WRITER, localname: &WS_XML_STRING, ns: &WS_XML_STRING, valuetype: WS_VALUE_TYPE, array: ::core::option::Option<&[u8]>, itemoffset: u32, itemcount: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsWriteArray(writer: *const WS_XML_WRITER, localname: *const WS_XML_STRING, ns: *const WS_XML_STRING, valuetype: WS_VALUE_TYPE, array: *const ::core::ffi::c_void, arraysize: u32, itemoffset: u32, itemcount: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsWriteArray(::core::mem::transmute(writer), ::core::mem::transmute(localname), ::core::mem::transmute(ns), valuetype, ::core::mem::transmute(array), arraysize, itemoffset, itemcount, ::core::mem::transmute(error)).ok() + WsWriteArray(::core::mem::transmute(writer), ::core::mem::transmute(localname), ::core::mem::transmute(ns), valuetype, ::core::mem::transmute(array.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), array.as_deref().map_or(0, |slice| slice.len() as _), itemoffset, itemcount, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsWriteAttribute(writer: &WS_XML_WRITER, attributedescription: &WS_ATTRIBUTE_DESCRIPTION, writeoption: WS_WRITE_OPTION, value: *const ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsWriteAttribute(writer: &WS_XML_WRITER, attributedescription: &WS_ATTRIBUTE_DESCRIPTION, writeoption: WS_WRITE_OPTION, value: ::core::option::Option<&[u8]>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsWriteAttribute(writer: *const WS_XML_WRITER, attributedescription: *const WS_ATTRIBUTE_DESCRIPTION, writeoption: WS_WRITE_OPTION, value: *const ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsWriteAttribute(::core::mem::transmute(writer), ::core::mem::transmute(attributedescription), writeoption, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsWriteAttribute(::core::mem::transmute(writer), ::core::mem::transmute(attributedescription), writeoption, ::core::mem::transmute(value.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), value.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsWriteBody(message: &WS_MESSAGE, bodydescription: &WS_ELEMENT_DESCRIPTION, writeoption: WS_WRITE_OPTION, value: *const ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsWriteBody(message: &WS_MESSAGE, bodydescription: &WS_ELEMENT_DESCRIPTION, writeoption: WS_WRITE_OPTION, value: &[u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsWriteBody(message: *const WS_MESSAGE, bodydescription: *const WS_ELEMENT_DESCRIPTION, writeoption: WS_WRITE_OPTION, value: *const ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsWriteBody(::core::mem::transmute(message), ::core::mem::transmute(bodydescription), writeoption, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsWriteBody(::core::mem::transmute(message), ::core::mem::transmute(bodydescription), writeoption, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsWriteBytes(writer: &WS_XML_WRITER, bytes: *const ::core::ffi::c_void, bytecount: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsWriteBytes(writer: &WS_XML_WRITER, bytes: &[u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsWriteBytes(writer: *const WS_XML_WRITER, bytes: *const ::core::ffi::c_void, bytecount: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsWriteBytes(::core::mem::transmute(writer), ::core::mem::transmute(bytes), bytecount, ::core::mem::transmute(error)).ok() + WsWriteBytes(::core::mem::transmute(writer), ::core::mem::transmute(bytes.as_ptr()), bytes.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -15787,7 +15831,7 @@ pub unsafe fn WsWriteChars(writer: &WS_XML_WRITER, chars: &[u16], error: ::core: extern "system" { fn WsWriteChars(writer: *const WS_XML_WRITER, chars: ::windows::core::PCWSTR, charcount: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsWriteChars(::core::mem::transmute(writer), ::core::mem::transmute(::windows::core::as_ptr_or_null(chars)), chars.len() as _, ::core::mem::transmute(error)).ok() + WsWriteChars(::core::mem::transmute(writer), ::core::mem::transmute(chars.as_ptr()), chars.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -15796,17 +15840,17 @@ pub unsafe fn WsWriteCharsUtf8(writer: &WS_XML_WRITER, bytes: &[u8], error: ::co extern "system" { fn WsWriteCharsUtf8(writer: *const WS_XML_WRITER, bytes: *const u8, bytecount: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsWriteCharsUtf8(::core::mem::transmute(writer), ::core::mem::transmute(::windows::core::as_ptr_or_null(bytes)), bytes.len() as _, ::core::mem::transmute(error)).ok() + WsWriteCharsUtf8(::core::mem::transmute(writer), ::core::mem::transmute(bytes.as_ptr()), bytes.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WsWriteElement(writer: &WS_XML_WRITER, elementdescription: &WS_ELEMENT_DESCRIPTION, writeoption: WS_WRITE_OPTION, value: *const ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsWriteElement(writer: &WS_XML_WRITER, elementdescription: &WS_ELEMENT_DESCRIPTION, writeoption: WS_WRITE_OPTION, value: ::core::option::Option<&[u8]>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsWriteElement(writer: *const WS_XML_WRITER, elementdescription: *const WS_ELEMENT_DESCRIPTION, writeoption: WS_WRITE_OPTION, value: *const ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsWriteElement(::core::mem::transmute(writer), ::core::mem::transmute(elementdescription), writeoption, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsWriteElement(::core::mem::transmute(writer), ::core::mem::transmute(elementdescription), writeoption, ::core::mem::transmute(value.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), value.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -15942,21 +15986,21 @@ pub unsafe fn WsWriteText(writer: &WS_XML_WRITER, text: &WS_XML_TEXT, error: ::c } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsWriteType(writer: &WS_XML_WRITER, typemapping: WS_TYPE_MAPPING, r#type: WS_TYPE, typedescription: *const ::core::ffi::c_void, writeoption: WS_WRITE_OPTION, value: *const ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsWriteType(writer: &WS_XML_WRITER, typemapping: WS_TYPE_MAPPING, r#type: WS_TYPE, typedescription: *const ::core::ffi::c_void, writeoption: WS_WRITE_OPTION, value: ::core::option::Option<&[u8]>, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsWriteType(writer: *const WS_XML_WRITER, typemapping: WS_TYPE_MAPPING, r#type: WS_TYPE, typedescription: *const ::core::ffi::c_void, writeoption: WS_WRITE_OPTION, value: *const ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsWriteType(::core::mem::transmute(writer), typemapping, r#type, ::core::mem::transmute(typedescription), writeoption, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsWriteType(::core::mem::transmute(writer), typemapping, r#type, ::core::mem::transmute(typedescription), writeoption, ::core::mem::transmute(value.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), value.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsWriteValue(writer: &WS_XML_WRITER, valuetype: WS_VALUE_TYPE, value: *const ::core::ffi::c_void, valuesize: u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsWriteValue(writer: &WS_XML_WRITER, valuetype: WS_VALUE_TYPE, value: &[u8], error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsWriteValue(writer: *const WS_XML_WRITER, valuetype: WS_VALUE_TYPE, value: *const ::core::ffi::c_void, valuesize: u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsWriteValue(::core::mem::transmute(writer), valuetype, ::core::mem::transmute(value), valuesize, ::core::mem::transmute(error)).ok() + WsWriteValue(::core::mem::transmute(writer), valuetype, ::core::mem::transmute(value.as_ptr()), value.len() as _, ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] @@ -15969,12 +16013,12 @@ pub unsafe fn WsWriteXmlBuffer(writer: &WS_XML_WRITER, xmlbuffer: &WS_XML_BUFFER } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`*"] #[inline] -pub unsafe fn WsWriteXmlBufferToBytes(writer: &WS_XML_WRITER, xmlbuffer: &WS_XML_BUFFER, encoding: ::core::option::Option<&WS_XML_WRITER_ENCODING>, properties: &[WS_XML_WRITER_PROPERTY], heap: &WS_HEAP, bytes: *mut *mut ::core::ffi::c_void, bytecount: &mut u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { +pub unsafe fn WsWriteXmlBufferToBytes(writer: &WS_XML_WRITER, xmlbuffer: &WS_XML_BUFFER, encoding: ::core::option::Option<&WS_XML_WRITER_ENCODING>, properties: ::core::option::Option<&[WS_XML_WRITER_PROPERTY]>, heap: &WS_HEAP, bytes: *mut *mut ::core::ffi::c_void, bytecount: &mut u32, error: ::core::option::Option<&WS_ERROR>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WsWriteXmlBufferToBytes(writer: *const WS_XML_WRITER, xmlbuffer: *const WS_XML_BUFFER, encoding: *const WS_XML_WRITER_ENCODING, properties: *const WS_XML_WRITER_PROPERTY, propertycount: u32, heap: *const WS_HEAP, bytes: *mut *mut ::core::ffi::c_void, bytecount: *mut u32, error: *const WS_ERROR) -> ::windows::core::HRESULT; } - WsWriteXmlBufferToBytes(::core::mem::transmute(writer), ::core::mem::transmute(xmlbuffer), ::core::mem::transmute(encoding), ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _, ::core::mem::transmute(heap), ::core::mem::transmute(bytes), ::core::mem::transmute(bytecount), ::core::mem::transmute(error)).ok() + WsWriteXmlBufferToBytes(::core::mem::transmute(writer), ::core::mem::transmute(xmlbuffer), ::core::mem::transmute(encoding), ::core::mem::transmute(properties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), properties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(heap), ::core::mem::transmute(bytes), ::core::mem::transmute(bytecount), ::core::mem::transmute(error)).ok() } #[doc = "*Required features: `\"Win32_Networking_WindowsWebServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Security/AppLocker/mod.rs b/crates/libs/windows/src/Windows/Win32/Security/AppLocker/mod.rs index c84d8e8217..75d98980b4 100644 --- a/crates/libs/windows/src/Windows/Win32/Security/AppLocker/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Security/AppLocker/mod.rs @@ -646,7 +646,7 @@ pub unsafe fn SaferCreateLevel(dwscopeid: u32, dwlevelid: u32, openflags: u32, p #[doc = "*Required features: `\"Win32_Security_AppLocker\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SaferGetLevelInformation<'a, P0>(levelhandle: P0, dwinfotype: SAFER_OBJECT_INFO_CLASS, lpquerybuffer: *mut ::core::ffi::c_void, dwinbuffersize: u32, lpdwoutbuffersize: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn SaferGetLevelInformation<'a, P0>(levelhandle: P0, dwinfotype: SAFER_OBJECT_INFO_CLASS, lpquerybuffer: ::core::option::Option<&mut [u8]>, lpdwoutbuffersize: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -654,27 +654,27 @@ where extern "system" { fn SaferGetLevelInformation(levelhandle: super::SAFER_LEVEL_HANDLE, dwinfotype: SAFER_OBJECT_INFO_CLASS, lpquerybuffer: *mut ::core::ffi::c_void, dwinbuffersize: u32, lpdwoutbuffersize: *mut u32) -> super::super::Foundation::BOOL; } - SaferGetLevelInformation(levelhandle.into(), dwinfotype, ::core::mem::transmute(lpquerybuffer), dwinbuffersize, ::core::mem::transmute(lpdwoutbuffersize)) + SaferGetLevelInformation(levelhandle.into(), dwinfotype, ::core::mem::transmute(lpquerybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpquerybuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpdwoutbuffersize)) } #[doc = "*Required features: `\"Win32_Security_AppLocker\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SaferGetPolicyInformation(dwscopeid: u32, saferpolicyinfoclass: SAFER_POLICY_INFO_CLASS, infobuffersize: u32, infobuffer: *mut ::core::ffi::c_void, infobufferretsize: &mut u32, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL { +pub unsafe fn SaferGetPolicyInformation(dwscopeid: u32, saferpolicyinfoclass: SAFER_POLICY_INFO_CLASS, infobuffer: &mut [u8], infobufferretsize: &mut u32, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SaferGetPolicyInformation(dwscopeid: u32, saferpolicyinfoclass: SAFER_POLICY_INFO_CLASS, infobuffersize: u32, infobuffer: *mut ::core::ffi::c_void, infobufferretsize: *mut u32, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SaferGetPolicyInformation(dwscopeid, saferpolicyinfoclass, infobuffersize, ::core::mem::transmute(infobuffer), ::core::mem::transmute(infobufferretsize), ::core::mem::transmute(lpreserved)) + SaferGetPolicyInformation(dwscopeid, saferpolicyinfoclass, infobuffer.len() as _, ::core::mem::transmute(infobuffer.as_ptr()), ::core::mem::transmute(infobufferretsize), ::core::mem::transmute(lpreserved)) } #[doc = "*Required features: `\"Win32_Security_AppLocker\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SaferIdentifyLevel(pcodeproperties: &[SAFER_CODE_PROPERTIES_V2], plevelhandle: &mut super::SAFER_LEVEL_HANDLE, lpreserved: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL { +pub unsafe fn SaferIdentifyLevel(pcodeproperties: ::core::option::Option<&[SAFER_CODE_PROPERTIES_V2]>, plevelhandle: &mut super::SAFER_LEVEL_HANDLE, lpreserved: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SaferIdentifyLevel(dwnumproperties: u32, pcodeproperties: *const SAFER_CODE_PROPERTIES_V2, plevelhandle: *mut super::SAFER_LEVEL_HANDLE, lpreserved: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SaferIdentifyLevel(pcodeproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pcodeproperties)), ::core::mem::transmute(plevelhandle), ::core::mem::transmute(lpreserved)) + SaferIdentifyLevel(pcodeproperties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcodeproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(plevelhandle), ::core::mem::transmute(lpreserved)) } #[doc = "*Required features: `\"Win32_Security_AppLocker\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -693,7 +693,7 @@ where #[doc = "*Required features: `\"Win32_Security_AppLocker\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SaferSetLevelInformation<'a, P0>(levelhandle: P0, dwinfotype: SAFER_OBJECT_INFO_CLASS, lpquerybuffer: *const ::core::ffi::c_void, dwinbuffersize: u32) -> super::super::Foundation::BOOL +pub unsafe fn SaferSetLevelInformation<'a, P0>(levelhandle: P0, dwinfotype: SAFER_OBJECT_INFO_CLASS, lpquerybuffer: &[u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -701,17 +701,17 @@ where extern "system" { fn SaferSetLevelInformation(levelhandle: super::SAFER_LEVEL_HANDLE, dwinfotype: SAFER_OBJECT_INFO_CLASS, lpquerybuffer: *const ::core::ffi::c_void, dwinbuffersize: u32) -> super::super::Foundation::BOOL; } - SaferSetLevelInformation(levelhandle.into(), dwinfotype, ::core::mem::transmute(lpquerybuffer), dwinbuffersize) + SaferSetLevelInformation(levelhandle.into(), dwinfotype, ::core::mem::transmute(lpquerybuffer.as_ptr()), lpquerybuffer.len() as _) } #[doc = "*Required features: `\"Win32_Security_AppLocker\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SaferSetPolicyInformation(dwscopeid: u32, saferpolicyinfoclass: SAFER_POLICY_INFO_CLASS, infobuffersize: u32, infobuffer: *const ::core::ffi::c_void, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL { +pub unsafe fn SaferSetPolicyInformation(dwscopeid: u32, saferpolicyinfoclass: SAFER_POLICY_INFO_CLASS, infobuffer: &[u8], lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SaferSetPolicyInformation(dwscopeid: u32, saferpolicyinfoclass: SAFER_POLICY_INFO_CLASS, infobuffersize: u32, infobuffer: *const ::core::ffi::c_void, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SaferSetPolicyInformation(dwscopeid, saferpolicyinfoclass, infobuffersize, ::core::mem::transmute(infobuffer), ::core::mem::transmute(lpreserved)) + SaferSetPolicyInformation(dwscopeid, saferpolicyinfoclass, infobuffer.len() as _, ::core::mem::transmute(infobuffer.as_ptr()), ::core::mem::transmute(lpreserved)) } #[doc = "*Required features: `\"Win32_Security_AppLocker\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Security/Authentication/Identity/Provider/mod.rs b/crates/libs/windows/src/Windows/Win32/Security/Authentication/Identity/Provider/mod.rs index b41a048918..fffd4952f2 100644 --- a/crates/libs/windows/src/Windows/Win32/Security/Authentication/Identity/Provider/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Security/Authentication/Identity/Provider/mod.rs @@ -133,7 +133,7 @@ pub struct AsyncIAssociatedIdentityProvider_Vtbl { pub struct AsyncIConnectedIdentityProvider(::windows::core::IUnknown); impl AsyncIConnectedIdentityProvider { pub unsafe fn Begin_ConnectIdentity(&self, authbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Begin_ConnectIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(authbuffer)), authbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).Begin_ConnectIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(authbuffer.as_ptr()), authbuffer.len() as _).ok() } pub unsafe fn Finish_ConnectIdentity(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Finish_ConnectIdentity)(::windows::core::Interface::as_raw(self)).ok() @@ -293,8 +293,8 @@ pub struct AsyncIIdentityAdvise_Vtbl { #[repr(transparent)] pub struct AsyncIIdentityAuthentication(::windows::core::IUnknown); impl AsyncIIdentityAuthentication { - pub unsafe fn Begin_SetIdentityCredential(&self, credbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Begin_SetIdentityCredential)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(credbuffer)), credbuffer.len() as _).ok() + pub unsafe fn Begin_SetIdentityCredential(&self, credbuffer: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Begin_SetIdentityCredential)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(credbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), credbuffer.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn Finish_SetIdentityCredential(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Finish_SetIdentityCredential)(::windows::core::Interface::as_raw(self)).ok() @@ -302,7 +302,7 @@ impl AsyncIIdentityAuthentication { #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] pub unsafe fn Begin_ValidateIdentityCredential(&self, credbuffer: &[u8], ppidentityproperties: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Begin_ValidateIdentityCredential)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(credbuffer)), credbuffer.len() as _, ::core::mem::transmute(ppidentityproperties)).ok() + (::windows::core::Interface::vtable(self).Begin_ValidateIdentityCredential)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(credbuffer.as_ptr()), credbuffer.len() as _, ::core::mem::transmute(ppidentityproperties)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] @@ -799,7 +799,7 @@ pub struct IAssociatedIdentityProvider_Vtbl { pub struct IConnectedIdentityProvider(::windows::core::IUnknown); impl IConnectedIdentityProvider { pub unsafe fn ConnectIdentity(&self, authbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ConnectIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(authbuffer)), authbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).ConnectIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(authbuffer.as_ptr()), authbuffer.len() as _).ok() } pub unsafe fn DisconnectIdentity(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DisconnectIdentity)(::windows::core::Interface::as_raw(self)).ok() @@ -1002,13 +1002,13 @@ pub struct IIdentityAdvise_Vtbl { #[repr(transparent)] pub struct IIdentityAuthentication(::windows::core::IUnknown); impl IIdentityAuthentication { - pub unsafe fn SetIdentityCredential(&self, credbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetIdentityCredential)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(credbuffer)), credbuffer.len() as _).ok() + pub unsafe fn SetIdentityCredential(&self, credbuffer: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetIdentityCredential)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(credbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), credbuffer.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] pub unsafe fn ValidateIdentityCredential(&self, credbuffer: &[u8], ppidentityproperties: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ValidateIdentityCredential)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(credbuffer)), credbuffer.len() as _, ::core::mem::transmute(ppidentityproperties)).ok() + (::windows::core::Interface::vtable(self).ValidateIdentityCredential)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(credbuffer.as_ptr()), credbuffer.len() as _, ::core::mem::transmute(ppidentityproperties)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1199,11 +1199,11 @@ impl IIdentityStore { { (::windows::core::Interface::vtable(self).AddToCache)(::windows::core::Interface::as_raw(self), lpszuniqueid.into(), ::core::mem::transmute(providerguid)).ok() } - pub unsafe fn ConvertToSid<'a, P0>(&self, lpszuniqueid: P0, providerguid: &::windows::core::GUID, psid: &mut [u8], pcbrequiredsid: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn ConvertToSid<'a, P0>(&self, lpszuniqueid: P0, providerguid: &::windows::core::GUID, psid: ::core::option::Option<&mut [u8]>, pcbrequiredsid: &mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).ConvertToSid)(::windows::core::Interface::as_raw(self), lpszuniqueid.into(), ::core::mem::transmute(providerguid), psid.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psid)), ::core::mem::transmute(pcbrequiredsid)).ok() + (::windows::core::Interface::vtable(self).ConvertToSid)(::windows::core::Interface::as_raw(self), lpszuniqueid.into(), ::core::mem::transmute(providerguid), psid.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(psid.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcbrequiredsid)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_UI_Shell_PropertiesSystem"))] diff --git a/crates/libs/windows/src/Windows/Win32/Security/Authentication/Identity/mod.rs b/crates/libs/windows/src/Windows/Win32/Security/Authentication/Identity/mod.rs index 200e4506be..c0e8468a81 100644 --- a/crates/libs/windows/src/Windows/Win32/Security/Authentication/Identity/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Security/Authentication/Identity/mod.rs @@ -362,7 +362,7 @@ where extern "system" { fn AuditComputeEffectivePolicyBySid(psid: super::super::super::Foundation::PSID, psubcategoryguids: *const ::windows::core::GUID, dwpolicycount: u32, ppauditpolicy: *mut *mut AUDIT_POLICY_INFORMATION) -> super::super::super::Foundation::BOOLEAN; } - AuditComputeEffectivePolicyBySid(psid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(psubcategoryguids)), psubcategoryguids.len() as _, ::core::mem::transmute(ppauditpolicy)) + AuditComputeEffectivePolicyBySid(psid.into(), ::core::mem::transmute(psubcategoryguids.as_ptr()), psubcategoryguids.len() as _, ::core::mem::transmute(ppauditpolicy)) } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -375,7 +375,7 @@ where extern "system" { fn AuditComputeEffectivePolicyByToken(htokenhandle: super::super::super::Foundation::HANDLE, psubcategoryguids: *const ::windows::core::GUID, dwpolicycount: u32, ppauditpolicy: *mut *mut AUDIT_POLICY_INFORMATION) -> super::super::super::Foundation::BOOLEAN; } - AuditComputeEffectivePolicyByToken(htokenhandle.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(psubcategoryguids)), psubcategoryguids.len() as _, ::core::mem::transmute(ppauditpolicy)) + AuditComputeEffectivePolicyByToken(htokenhandle.into(), ::core::mem::transmute(psubcategoryguids.as_ptr()), psubcategoryguids.len() as _, ::core::mem::transmute(ppauditpolicy)) } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -516,7 +516,7 @@ where extern "system" { fn AuditQueryPerUserPolicy(psid: super::super::super::Foundation::PSID, psubcategoryguids: *const ::windows::core::GUID, dwpolicycount: u32, ppauditpolicy: *mut *mut AUDIT_POLICY_INFORMATION) -> super::super::super::Foundation::BOOLEAN; } - AuditQueryPerUserPolicy(psid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(psubcategoryguids)), psubcategoryguids.len() as _, ::core::mem::transmute(ppauditpolicy)) + AuditQueryPerUserPolicy(psid.into(), ::core::mem::transmute(psubcategoryguids.as_ptr()), psubcategoryguids.len() as _, ::core::mem::transmute(ppauditpolicy)) } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -536,7 +536,7 @@ pub unsafe fn AuditQuerySystemPolicy(psubcategoryguids: &[::windows::core::GUID] extern "system" { fn AuditQuerySystemPolicy(psubcategoryguids: *const ::windows::core::GUID, dwpolicycount: u32, ppauditpolicy: *mut *mut AUDIT_POLICY_INFORMATION) -> super::super::super::Foundation::BOOLEAN; } - AuditQuerySystemPolicy(::core::mem::transmute(::windows::core::as_ptr_or_null(psubcategoryguids)), psubcategoryguids.len() as _, ::core::mem::transmute(ppauditpolicy)) + AuditQuerySystemPolicy(::core::mem::transmute(psubcategoryguids.as_ptr()), psubcategoryguids.len() as _, ::core::mem::transmute(ppauditpolicy)) } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -575,7 +575,7 @@ where extern "system" { fn AuditSetPerUserPolicy(psid: super::super::super::Foundation::PSID, pauditpolicy: *const AUDIT_POLICY_INFORMATION, dwpolicycount: u32) -> super::super::super::Foundation::BOOLEAN; } - AuditSetPerUserPolicy(psid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pauditpolicy)), pauditpolicy.len() as _) + AuditSetPerUserPolicy(psid.into(), ::core::mem::transmute(pauditpolicy.as_ptr()), pauditpolicy.len() as _) } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -598,7 +598,7 @@ pub unsafe fn AuditSetSystemPolicy(pauditpolicy: &[AUDIT_POLICY_INFORMATION]) -> extern "system" { fn AuditSetSystemPolicy(pauditpolicy: *const AUDIT_POLICY_INFORMATION, dwpolicycount: u32) -> super::super::super::Foundation::BOOLEAN; } - AuditSetSystemPolicy(::core::mem::transmute(::windows::core::as_ptr_or_null(pauditpolicy)), pauditpolicy.len() as _) + AuditSetSystemPolicy(::core::mem::transmute(pauditpolicy.as_ptr()), pauditpolicy.len() as _) } pub const Audit_AccountLogon: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x69979850_797a_11d9_bed3_505054503030); pub const Audit_AccountLogon_CredentialValidation: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0cce923f_69ae_11d9_bed3_505054503030); @@ -925,12 +925,12 @@ pub type CredReadFn = ::core::option::Option, retactualsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { +pub unsafe fn CredUnmarshalTargetInfo(buffer: &[u8], rettargetinfo: ::core::option::Option<&mut *mut super::super::Credentials::CREDENTIAL_TARGET_INFORMATIONW>, retactualsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CredUnmarshalTargetInfo(buffer: *const u16, buffersize: u32, rettargetinfo: *mut *mut super::super::Credentials::CREDENTIAL_TARGET_INFORMATIONW, retactualsize: *mut u32) -> super::super::super::Foundation::NTSTATUS; } - CredUnmarshalTargetInfo(::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(rettargetinfo), ::core::mem::transmute(retactualsize)).ok() + CredUnmarshalTargetInfo(::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(rettargetinfo), ::core::mem::transmute(retactualsize)).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`, `\"Win32_Security_Credentials\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Credentials"))] @@ -6365,12 +6365,12 @@ where extern "system" { fn LsaAddAccountRights(policyhandle: *const ::core::ffi::c_void, accountsid: super::super::super::Foundation::PSID, userrights: *const super::super::super::Foundation::UNICODE_STRING, countofrights: u32) -> super::super::super::Foundation::NTSTATUS; } - LsaAddAccountRights(::core::mem::transmute(policyhandle), accountsid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(userrights)), userrights.len() as _).ok() + LsaAddAccountRights(::core::mem::transmute(policyhandle), accountsid.into(), ::core::mem::transmute(userrights.as_ptr()), userrights.len() as _).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn LsaCallAuthenticationPackage<'a, P0>(lsahandle: P0, authenticationpackage: u32, protocolsubmitbuffer: *const ::core::ffi::c_void, submitbufferlength: u32, protocolreturnbuffer: *mut *mut ::core::ffi::c_void, returnbufferlength: ::core::option::Option<&mut u32>, protocolstatus: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> +pub unsafe fn LsaCallAuthenticationPackage<'a, P0>(lsahandle: P0, authenticationpackage: u32, protocolsubmitbuffer: &[u8], protocolreturnbuffer: *mut *mut ::core::ffi::c_void, returnbufferlength: ::core::option::Option<&mut u32>, protocolstatus: ::core::option::Option<&mut i32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -6378,7 +6378,7 @@ where extern "system" { fn LsaCallAuthenticationPackage(lsahandle: super::super::super::Foundation::HANDLE, authenticationpackage: u32, protocolsubmitbuffer: *const ::core::ffi::c_void, submitbufferlength: u32, protocolreturnbuffer: *mut *mut ::core::ffi::c_void, returnbufferlength: *mut u32, protocolstatus: *mut i32) -> super::super::super::Foundation::NTSTATUS; } - LsaCallAuthenticationPackage(lsahandle.into(), authenticationpackage, ::core::mem::transmute(protocolsubmitbuffer), submitbufferlength, ::core::mem::transmute(protocolreturnbuffer), ::core::mem::transmute(returnbufferlength), ::core::mem::transmute(protocolstatus)).ok() + LsaCallAuthenticationPackage(lsahandle.into(), authenticationpackage, ::core::mem::transmute(protocolsubmitbuffer.as_ptr()), protocolsubmitbuffer.len() as _, ::core::mem::transmute(protocolreturnbuffer), ::core::mem::transmute(returnbufferlength), ::core::mem::transmute(protocolstatus)).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6564,7 +6564,7 @@ unsafe impl ::windows::core::Abi for LsaHandle { #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] #[inline] -pub unsafe fn LsaLogonUser<'a, P0>(lsahandle: P0, originname: &super::super::super::System::Kernel::STRING, logontype: SECURITY_LOGON_TYPE, authenticationpackage: u32, authenticationinformation: *const ::core::ffi::c_void, authenticationinformationlength: u32, localgroups: ::core::option::Option<&super::super::TOKEN_GROUPS>, sourcecontext: &super::super::TOKEN_SOURCE, profilebuffer: *mut *mut ::core::ffi::c_void, profilebufferlength: &mut u32, logonid: &mut super::super::super::Foundation::LUID, token: &mut super::super::super::Foundation::HANDLE, quotas: &mut super::super::QUOTA_LIMITS, substatus: &mut i32) -> ::windows::core::Result<()> +pub unsafe fn LsaLogonUser<'a, P0>(lsahandle: P0, originname: &super::super::super::System::Kernel::STRING, logontype: SECURITY_LOGON_TYPE, authenticationpackage: u32, authenticationinformation: &[u8], localgroups: ::core::option::Option<&super::super::TOKEN_GROUPS>, sourcecontext: &super::super::TOKEN_SOURCE, profilebuffer: *mut *mut ::core::ffi::c_void, profilebufferlength: &mut u32, logonid: &mut super::super::super::Foundation::LUID, token: &mut super::super::super::Foundation::HANDLE, quotas: &mut super::super::QUOTA_LIMITS, substatus: &mut i32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -6572,7 +6572,7 @@ where extern "system" { fn LsaLogonUser(lsahandle: super::super::super::Foundation::HANDLE, originname: *const super::super::super::System::Kernel::STRING, logontype: SECURITY_LOGON_TYPE, authenticationpackage: u32, authenticationinformation: *const ::core::ffi::c_void, authenticationinformationlength: u32, localgroups: *const super::super::TOKEN_GROUPS, sourcecontext: *const super::super::TOKEN_SOURCE, profilebuffer: *mut *mut ::core::ffi::c_void, profilebufferlength: *mut u32, logonid: *mut super::super::super::Foundation::LUID, token: *mut super::super::super::Foundation::HANDLE, quotas: *mut super::super::QUOTA_LIMITS, substatus: *mut i32) -> super::super::super::Foundation::NTSTATUS; } - LsaLogonUser(lsahandle.into(), ::core::mem::transmute(originname), logontype, authenticationpackage, ::core::mem::transmute(authenticationinformation), authenticationinformationlength, ::core::mem::transmute(localgroups), ::core::mem::transmute(sourcecontext), ::core::mem::transmute(profilebuffer), ::core::mem::transmute(profilebufferlength), ::core::mem::transmute(logonid), ::core::mem::transmute(token), ::core::mem::transmute(quotas), ::core::mem::transmute(substatus)).ok() + LsaLogonUser(lsahandle.into(), ::core::mem::transmute(originname), logontype, authenticationpackage, ::core::mem::transmute(authenticationinformation.as_ptr()), authenticationinformation.len() as _, ::core::mem::transmute(localgroups), ::core::mem::transmute(sourcecontext), ::core::mem::transmute(profilebuffer), ::core::mem::transmute(profilebufferlength), ::core::mem::transmute(logonid), ::core::mem::transmute(token), ::core::mem::transmute(quotas), ::core::mem::transmute(substatus)).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] @@ -6663,12 +6663,12 @@ pub unsafe fn LsaOpenTrustedDomainByName(policyhandle: *const ::core::ffi::c_voi #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn LsaQueryCAPs(capids: &[super::super::super::Foundation::PSID], caps: &mut *mut CENTRAL_ACCESS_POLICY, capcount: &mut u32) -> ::windows::core::Result<()> { +pub unsafe fn LsaQueryCAPs(capids: ::core::option::Option<&[super::super::super::Foundation::PSID]>, caps: &mut *mut CENTRAL_ACCESS_POLICY, capcount: &mut u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn LsaQueryCAPs(capids: *const super::super::super::Foundation::PSID, capidcount: u32, caps: *mut *mut CENTRAL_ACCESS_POLICY, capcount: *mut u32) -> super::super::super::Foundation::NTSTATUS; } - LsaQueryCAPs(::core::mem::transmute(::windows::core::as_ptr_or_null(capids)), capids.len() as _, ::core::mem::transmute(caps), ::core::mem::transmute(capcount)).ok() + LsaQueryCAPs(::core::mem::transmute(capids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), capids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(caps), ::core::mem::transmute(capcount)).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6749,7 +6749,7 @@ where #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn LsaRemoveAccountRights<'a, P0, P1>(policyhandle: *const ::core::ffi::c_void, accountsid: P0, allrights: P1, userrights: &[super::super::super::Foundation::UNICODE_STRING]) -> ::windows::core::Result<()> +pub unsafe fn LsaRemoveAccountRights<'a, P0, P1>(policyhandle: *const ::core::ffi::c_void, accountsid: P0, allrights: P1, userrights: ::core::option::Option<&[super::super::super::Foundation::UNICODE_STRING]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -6758,7 +6758,7 @@ where extern "system" { fn LsaRemoveAccountRights(policyhandle: *const ::core::ffi::c_void, accountsid: super::super::super::Foundation::PSID, allrights: super::super::super::Foundation::BOOLEAN, userrights: *const super::super::super::Foundation::UNICODE_STRING, countofrights: u32) -> super::super::super::Foundation::NTSTATUS; } - LsaRemoveAccountRights(::core::mem::transmute(policyhandle), accountsid.into(), allrights.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(userrights)), userrights.len() as _).ok() + LsaRemoveAccountRights(::core::mem::transmute(policyhandle), accountsid.into(), allrights.into(), ::core::mem::transmute(userrights.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), userrights.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6773,12 +6773,12 @@ pub unsafe fn LsaRetrievePrivateData(policyhandle: *const ::core::ffi::c_void, k #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn LsaSetCAPs(capdns: &[super::super::super::Foundation::UNICODE_STRING], flags: u32) -> ::windows::core::Result<()> { +pub unsafe fn LsaSetCAPs(capdns: ::core::option::Option<&[super::super::super::Foundation::UNICODE_STRING]>, flags: u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn LsaSetCAPs(capdns: *const super::super::super::Foundation::UNICODE_STRING, capdncount: u32, flags: u32) -> super::super::super::Foundation::NTSTATUS; } - LsaSetCAPs(::core::mem::transmute(::windows::core::as_ptr_or_null(capdns)), capdns.len() as _, flags).ok() + LsaSetCAPs(::core::mem::transmute(capdns.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), capdns.as_deref().map_or(0, |slice| slice.len() as _), flags).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10191,22 +10191,22 @@ pub unsafe fn QueryContextAttributesA(phcontext: &super::super::Credentials::Sec #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Security_Credentials\"`*"] #[cfg(feature = "Win32_Security_Credentials")] #[inline] -pub unsafe fn QueryContextAttributesExA(phcontext: &super::super::Credentials::SecHandle, ulattribute: SECPKG_ATTR, pbuffer: *mut ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::Result<()> { +pub unsafe fn QueryContextAttributesExA(phcontext: &super::super::Credentials::SecHandle, ulattribute: SECPKG_ATTR, pbuffer: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn QueryContextAttributesExA(phcontext: *const super::super::Credentials::SecHandle, ulattribute: SECPKG_ATTR, pbuffer: *mut ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::HRESULT; } - QueryContextAttributesExA(::core::mem::transmute(phcontext), ulattribute, ::core::mem::transmute(pbuffer), cbbuffer).ok() + QueryContextAttributesExA(::core::mem::transmute(phcontext), ulattribute, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Security_Credentials\"`*"] #[cfg(feature = "Win32_Security_Credentials")] #[inline] -pub unsafe fn QueryContextAttributesExW(phcontext: &super::super::Credentials::SecHandle, ulattribute: SECPKG_ATTR, pbuffer: *mut ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::Result<()> { +pub unsafe fn QueryContextAttributesExW(phcontext: &super::super::Credentials::SecHandle, ulattribute: SECPKG_ATTR, pbuffer: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn QueryContextAttributesExW(phcontext: *const super::super::Credentials::SecHandle, ulattribute: SECPKG_ATTR, pbuffer: *mut ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::HRESULT; } - QueryContextAttributesExW(::core::mem::transmute(phcontext), ulattribute, ::core::mem::transmute(pbuffer), cbbuffer).ok() + QueryContextAttributesExW(::core::mem::transmute(phcontext), ulattribute, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Security_Credentials\"`*"] #[cfg(feature = "Win32_Security_Credentials")] @@ -10231,22 +10231,22 @@ pub unsafe fn QueryCredentialsAttributesA(phcredential: &super::super::Credentia #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Security_Credentials\"`*"] #[cfg(feature = "Win32_Security_Credentials")] #[inline] -pub unsafe fn QueryCredentialsAttributesExA(phcredential: &super::super::Credentials::SecHandle, ulattribute: u32, pbuffer: *mut ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::Result<()> { +pub unsafe fn QueryCredentialsAttributesExA(phcredential: &super::super::Credentials::SecHandle, ulattribute: u32, pbuffer: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn QueryCredentialsAttributesExA(phcredential: *const super::super::Credentials::SecHandle, ulattribute: u32, pbuffer: *mut ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::HRESULT; } - QueryCredentialsAttributesExA(::core::mem::transmute(phcredential), ulattribute, ::core::mem::transmute(pbuffer), cbbuffer).ok() + QueryCredentialsAttributesExA(::core::mem::transmute(phcredential), ulattribute, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Security_Credentials\"`*"] #[cfg(feature = "Win32_Security_Credentials")] #[inline] -pub unsafe fn QueryCredentialsAttributesExW(phcredential: &super::super::Credentials::SecHandle, ulattribute: u32, pbuffer: *mut ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::Result<()> { +pub unsafe fn QueryCredentialsAttributesExW(phcredential: &super::super::Credentials::SecHandle, ulattribute: u32, pbuffer: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn QueryCredentialsAttributesExW(phcredential: *const super::super::Credentials::SecHandle, ulattribute: u32, pbuffer: *mut ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::HRESULT; } - QueryCredentialsAttributesExW(::core::mem::transmute(phcredential), ulattribute, ::core::mem::transmute(pbuffer), cbbuffer).ok() + QueryCredentialsAttributesExW(::core::mem::transmute(phcredential), ulattribute, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Security_Credentials\"`*"] #[cfg(feature = "Win32_Security_Credentials")] @@ -15038,13 +15038,13 @@ pub unsafe fn SLGetLicense(hslc: *const ::core::ffi::c_void, plicensefileid: &:: } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] -pub unsafe fn SLGetLicenseFileId(hslc: *const ::core::ffi::c_void, cblicenseblob: u32, pblicenseblob: &u8) -> ::windows::core::Result<::windows::core::GUID> { +pub unsafe fn SLGetLicenseFileId(hslc: *const ::core::ffi::c_void, pblicenseblob: &[u8]) -> ::windows::core::Result<::windows::core::GUID> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SLGetLicenseFileId(hslc: *const ::core::ffi::c_void, cblicenseblob: u32, pblicenseblob: *const u8, plicensefileid: *mut ::windows::core::GUID) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - SLGetLicenseFileId(::core::mem::transmute(hslc), cblicenseblob, ::core::mem::transmute(pblicenseblob), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) + SLGetLicenseFileId(::core::mem::transmute(hslc), pblicenseblob.len() as _, ::core::mem::transmute(pblicenseblob.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] @@ -15072,7 +15072,7 @@ where } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] -pub unsafe fn SLGetPKeyId<'a, P0, P1>(hslc: *const ::core::ffi::c_void, pwszpkeyalgorithm: P0, pwszpkeystring: P1, cbpkeyspecificdata: u32, pbpkeyspecificdata: ::core::option::Option<&u8>) -> ::windows::core::Result<::windows::core::GUID> +pub unsafe fn SLGetPKeyId<'a, P0, P1>(hslc: *const ::core::ffi::c_void, pwszpkeyalgorithm: P0, pwszpkeystring: P1, pbpkeyspecificdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<::windows::core::GUID> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -15082,7 +15082,7 @@ where fn SLGetPKeyId(hslc: *const ::core::ffi::c_void, pwszpkeyalgorithm: ::windows::core::PCWSTR, pwszpkeystring: ::windows::core::PCWSTR, cbpkeyspecificdata: u32, pbpkeyspecificdata: *const u8, ppkeyid: *mut ::windows::core::GUID) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - SLGetPKeyId(::core::mem::transmute(hslc), pwszpkeyalgorithm.into(), pwszpkeystring.into(), cbpkeyspecificdata, ::core::mem::transmute(pbpkeyspecificdata), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) + SLGetPKeyId(::core::mem::transmute(hslc), pwszpkeyalgorithm.into(), pwszpkeystring.into(), pbpkeyspecificdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbpkeyspecificdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] @@ -15250,17 +15250,17 @@ impl ::core::fmt::Debug for SLIDTYPE { } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] -pub unsafe fn SLInstallLicense(hslc: *const ::core::ffi::c_void, cblicenseblob: u32, pblicenseblob: &u8) -> ::windows::core::Result<::windows::core::GUID> { +pub unsafe fn SLInstallLicense(hslc: *const ::core::ffi::c_void, pblicenseblob: &[u8]) -> ::windows::core::Result<::windows::core::GUID> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SLInstallLicense(hslc: *const ::core::ffi::c_void, cblicenseblob: u32, pblicenseblob: *const u8, plicensefileid: *mut ::windows::core::GUID) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - SLInstallLicense(::core::mem::transmute(hslc), cblicenseblob, ::core::mem::transmute(pblicenseblob), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) + SLInstallLicense(::core::mem::transmute(hslc), pblicenseblob.len() as _, ::core::mem::transmute(pblicenseblob.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] -pub unsafe fn SLInstallProofOfPurchase<'a, P0, P1>(hslc: *const ::core::ffi::c_void, pwszpkeyalgorithm: P0, pwszpkeystring: P1, cbpkeyspecificdata: u32, pbpkeyspecificdata: ::core::option::Option<&u8>) -> ::windows::core::Result<::windows::core::GUID> +pub unsafe fn SLInstallProofOfPurchase<'a, P0, P1>(hslc: *const ::core::ffi::c_void, pwszpkeyalgorithm: P0, pwszpkeystring: P1, pbpkeyspecificdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<::windows::core::GUID> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -15270,7 +15270,7 @@ where fn SLInstallProofOfPurchase(hslc: *const ::core::ffi::c_void, pwszpkeyalgorithm: ::windows::core::PCWSTR, pwszpkeystring: ::windows::core::PCWSTR, cbpkeyspecificdata: u32, pbpkeyspecificdata: *const u8, ppkeyid: *mut ::windows::core::GUID) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - SLInstallProofOfPurchase(::core::mem::transmute(hslc), pwszpkeyalgorithm.into(), pwszpkeystring.into(), cbpkeyspecificdata, ::core::mem::transmute(pbpkeyspecificdata), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) + SLInstallProofOfPurchase(::core::mem::transmute(hslc), pwszpkeyalgorithm.into(), pwszpkeystring.into(), pbpkeyspecificdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbpkeyspecificdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] @@ -15325,7 +15325,7 @@ pub unsafe fn SLOpen(phslc: *mut *mut ::core::ffi::c_void) -> ::windows::core::R } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] -pub unsafe fn SLQueryLicenseValueFromApp<'a, P0>(valuename: P0, valuetype: ::core::option::Option<&mut u32>, databuffer: *mut ::core::ffi::c_void, datasize: u32, resultdatasize: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn SLQueryLicenseValueFromApp<'a, P0>(valuename: P0, valuetype: ::core::option::Option<&mut u32>, databuffer: ::core::option::Option<&mut [u8]>, resultdatasize: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -15333,7 +15333,7 @@ where extern "system" { fn SLQueryLicenseValueFromApp(valuename: ::windows::core::PCWSTR, valuetype: *mut u32, databuffer: *mut ::core::ffi::c_void, datasize: u32, resultdatasize: *mut u32) -> ::windows::core::HRESULT; } - SLQueryLicenseValueFromApp(valuename.into(), ::core::mem::transmute(valuetype), ::core::mem::transmute(databuffer), datasize, ::core::mem::transmute(resultdatasize)).ok() + SLQueryLicenseValueFromApp(valuename.into(), ::core::mem::transmute(valuetype), ::core::mem::transmute(databuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), databuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(resultdatasize)).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[repr(transparent)] @@ -15393,7 +15393,7 @@ pub unsafe fn SLSetCurrentProductKey(hslc: *const ::core::ffi::c_void, pproducts } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] -pub unsafe fn SLSetGenuineInformation<'a, P0>(pqueryid: &::windows::core::GUID, pwszvaluename: P0, edatatype: SLDATATYPE, cbvalue: u32, pbvalue: ::core::option::Option<&u8>) -> ::windows::core::Result<()> +pub unsafe fn SLSetGenuineInformation<'a, P0>(pqueryid: &::windows::core::GUID, pwszvaluename: P0, edatatype: SLDATATYPE, pbvalue: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -15401,7 +15401,7 @@ where extern "system" { fn SLSetGenuineInformation(pqueryid: *const ::windows::core::GUID, pwszvaluename: ::windows::core::PCWSTR, edatatype: SLDATATYPE, cbvalue: u32, pbvalue: *const u8) -> ::windows::core::HRESULT; } - SLSetGenuineInformation(::core::mem::transmute(pqueryid), pwszvaluename.into(), edatatype, cbvalue, ::core::mem::transmute(pbvalue)).ok() + SLSetGenuineInformation(::core::mem::transmute(pqueryid), pwszvaluename.into(), edatatype, pbvalue.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbvalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] @@ -19779,42 +19779,42 @@ impl ::core::default::Default for SecurityFunctionTableW { #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Security_Credentials\"`*"] #[cfg(feature = "Win32_Security_Credentials")] #[inline] -pub unsafe fn SetContextAttributesA(phcontext: &super::super::Credentials::SecHandle, ulattribute: SECPKG_ATTR, pbuffer: *const ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::Result<()> { +pub unsafe fn SetContextAttributesA(phcontext: &super::super::Credentials::SecHandle, ulattribute: SECPKG_ATTR, pbuffer: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetContextAttributesA(phcontext: *const super::super::Credentials::SecHandle, ulattribute: SECPKG_ATTR, pbuffer: *const ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::HRESULT; } - SetContextAttributesA(::core::mem::transmute(phcontext), ulattribute, ::core::mem::transmute(pbuffer), cbbuffer).ok() + SetContextAttributesA(::core::mem::transmute(phcontext), ulattribute, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Security_Credentials\"`*"] #[cfg(feature = "Win32_Security_Credentials")] #[inline] -pub unsafe fn SetContextAttributesW(phcontext: &super::super::Credentials::SecHandle, ulattribute: SECPKG_ATTR, pbuffer: *const ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::Result<()> { +pub unsafe fn SetContextAttributesW(phcontext: &super::super::Credentials::SecHandle, ulattribute: SECPKG_ATTR, pbuffer: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetContextAttributesW(phcontext: *const super::super::Credentials::SecHandle, ulattribute: SECPKG_ATTR, pbuffer: *const ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::HRESULT; } - SetContextAttributesW(::core::mem::transmute(phcontext), ulattribute, ::core::mem::transmute(pbuffer), cbbuffer).ok() + SetContextAttributesW(::core::mem::transmute(phcontext), ulattribute, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Security_Credentials\"`*"] #[cfg(feature = "Win32_Security_Credentials")] #[inline] -pub unsafe fn SetCredentialsAttributesA(phcredential: &super::super::Credentials::SecHandle, ulattribute: u32, pbuffer: *const ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::Result<()> { +pub unsafe fn SetCredentialsAttributesA(phcredential: &super::super::Credentials::SecHandle, ulattribute: u32, pbuffer: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetCredentialsAttributesA(phcredential: *const super::super::Credentials::SecHandle, ulattribute: u32, pbuffer: *const ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::HRESULT; } - SetCredentialsAttributesA(::core::mem::transmute(phcredential), ulattribute, ::core::mem::transmute(pbuffer), cbbuffer).ok() + SetCredentialsAttributesA(::core::mem::transmute(phcredential), ulattribute, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Security_Credentials\"`*"] #[cfg(feature = "Win32_Security_Credentials")] #[inline] -pub unsafe fn SetCredentialsAttributesW(phcredential: &super::super::Credentials::SecHandle, ulattribute: u32, pbuffer: *const ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::Result<()> { +pub unsafe fn SetCredentialsAttributesW(phcredential: &super::super::Credentials::SecHandle, ulattribute: u32, pbuffer: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetCredentialsAttributesW(phcredential: *const super::super::Credentials::SecHandle, ulattribute: u32, pbuffer: *const ::core::ffi::c_void, cbbuffer: u32) -> ::windows::core::HRESULT; } - SetCredentialsAttributesW(::core::mem::transmute(phcredential), ulattribute, ::core::mem::transmute(pbuffer), cbbuffer).ok() + SetCredentialsAttributesW(::core::mem::transmute(phcredential), ulattribute, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -20013,7 +20013,7 @@ pub unsafe fn SslGetExtensions(clienthello: &[u8], genericextensions: &mut [SCH_ extern "system" { fn SslGetExtensions(clienthello: *const u8, clienthellobytesize: u32, genericextensions: *mut SCH_EXTENSION_DATA, genericextensionscount: u8, bytestoread: *mut u32, flags: SchGetExtensionsOptions) -> ::windows::core::HRESULT; } - SslGetExtensions(::core::mem::transmute(::windows::core::as_ptr_or_null(clienthello)), clienthello.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(genericextensions)), genericextensions.len() as _, ::core::mem::transmute(bytestoread), flags).ok() + SslGetExtensions(::core::mem::transmute(clienthello.as_ptr()), clienthello.len() as _, ::core::mem::transmute(genericextensions.as_ptr()), genericextensions.len() as _, ::core::mem::transmute(bytestoread), flags).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] pub type SslGetExtensionsFn = ::core::option::Option ::windows::core::HRESULT>; @@ -20028,12 +20028,12 @@ pub unsafe fn SslGetMaximumKeySize(reserved: u32) -> u32 { } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] -pub unsafe fn SslGetServerIdentity(clienthello: &u8, clienthellosize: u32, serveridentity: &mut *mut u8, serveridentitysize: &mut u32, flags: u32) -> ::windows::core::Result<()> { +pub unsafe fn SslGetServerIdentity(clienthello: &[u8], serveridentity: &mut *mut u8, serveridentitysize: &mut u32, flags: u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SslGetServerIdentity(clienthello: *const u8, clienthellosize: u32, serveridentity: *mut *mut u8, serveridentitysize: *mut u32, flags: u32) -> ::windows::core::HRESULT; } - SslGetServerIdentity(::core::mem::transmute(clienthello), clienthellosize, ::core::mem::transmute(serveridentity), ::core::mem::transmute(serveridentitysize), flags).ok() + SslGetServerIdentity(::core::mem::transmute(clienthello.as_ptr()), clienthello.len() as _, ::core::mem::transmute(serveridentity), ::core::mem::transmute(serveridentitysize), flags).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] pub type SslGetServerIdentityFn = ::core::option::Option ::windows::core::HRESULT>; @@ -20239,15 +20239,12 @@ where } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] -pub unsafe fn SspiUnmarshalAuthIdentity<'a, P0>(authidentitylength: u32, authidentitybytearray: P0, ppauthidentity: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn SspiUnmarshalAuthIdentity(authidentitybytearray: &[u8], ppauthidentity: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SspiUnmarshalAuthIdentity(authidentitylength: u32, authidentitybytearray: ::windows::core::PCSTR, ppauthidentity: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - SspiUnmarshalAuthIdentity(authidentitylength, authidentitybytearray.into(), ::core::mem::transmute(ppauthidentity)).ok() + SspiUnmarshalAuthIdentity(authidentitybytearray.len() as _, ::core::mem::transmute(authidentitybytearray.as_ptr()), ::core::mem::transmute(ppauthidentity)).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] @@ -20270,32 +20267,32 @@ pub unsafe fn SspiZeroAuthIdentity(authdata: *const ::core::ffi::c_void) { #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SystemFunction036(randombuffer: *mut ::core::ffi::c_void, randombufferlength: u32) -> super::super::super::Foundation::BOOLEAN { +pub unsafe fn SystemFunction036(randombuffer: &mut [u8]) -> super::super::super::Foundation::BOOLEAN { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SystemFunction036(randombuffer: *mut ::core::ffi::c_void, randombufferlength: u32) -> super::super::super::Foundation::BOOLEAN; } - SystemFunction036(::core::mem::transmute(randombuffer), randombufferlength) + SystemFunction036(::core::mem::transmute(randombuffer.as_ptr()), randombuffer.len() as _) } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SystemFunction040(memory: *mut ::core::ffi::c_void, memorysize: u32, optionflags: u32) -> ::windows::core::Result<()> { +pub unsafe fn SystemFunction040(memory: &mut [u8], optionflags: u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SystemFunction040(memory: *mut ::core::ffi::c_void, memorysize: u32, optionflags: u32) -> super::super::super::Foundation::NTSTATUS; } - SystemFunction040(::core::mem::transmute(memory), memorysize, optionflags).ok() + SystemFunction040(::core::mem::transmute(memory.as_ptr()), memory.len() as _, optionflags).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SystemFunction041(memory: *mut ::core::ffi::c_void, memorysize: u32, optionflags: u32) -> ::windows::core::Result<()> { +pub unsafe fn SystemFunction041(memory: &mut [u8], optionflags: u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SystemFunction041(memory: *mut ::core::ffi::c_void, memorysize: u32, optionflags: u32) -> super::super::super::Foundation::NTSTATUS; } - SystemFunction041(::core::mem::transmute(memory), memorysize, optionflags).ok() + SystemFunction041(::core::mem::transmute(memory.as_ptr()), memory.len() as _, optionflags).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] pub const TLS1SP_NAME: &str = "Microsoft TLS 1.0"; @@ -21189,7 +21186,7 @@ where } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] -pub unsafe fn TokenBindingGenerateBinding<'a, P0>(keytype: TOKENBINDING_KEY_PARAMETERS_TYPE, targeturl: P0, bindingtype: TOKENBINDING_TYPE, tlsekm: *const ::core::ffi::c_void, tlsekmsize: u32, extensionformat: TOKENBINDING_EXTENSION_FORMAT, extensiondata: *const ::core::ffi::c_void, tokenbinding: *mut *mut ::core::ffi::c_void, tokenbindingsize: &mut u32, resultdata: ::core::option::Option<&mut *mut TOKENBINDING_RESULT_DATA>) -> ::windows::core::Result<()> +pub unsafe fn TokenBindingGenerateBinding<'a, P0>(keytype: TOKENBINDING_KEY_PARAMETERS_TYPE, targeturl: P0, bindingtype: TOKENBINDING_TYPE, tlsekm: &[u8], extensionformat: TOKENBINDING_EXTENSION_FORMAT, extensiondata: *const ::core::ffi::c_void, tokenbinding: *mut *mut ::core::ffi::c_void, tokenbindingsize: &mut u32, resultdata: ::core::option::Option<&mut *mut TOKENBINDING_RESULT_DATA>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -21197,17 +21194,17 @@ where extern "system" { fn TokenBindingGenerateBinding(keytype: TOKENBINDING_KEY_PARAMETERS_TYPE, targeturl: ::windows::core::PCWSTR, bindingtype: TOKENBINDING_TYPE, tlsekm: *const ::core::ffi::c_void, tlsekmsize: u32, extensionformat: TOKENBINDING_EXTENSION_FORMAT, extensiondata: *const ::core::ffi::c_void, tokenbinding: *mut *mut ::core::ffi::c_void, tokenbindingsize: *mut u32, resultdata: *mut *mut TOKENBINDING_RESULT_DATA) -> ::windows::core::HRESULT; } - TokenBindingGenerateBinding(keytype, targeturl.into(), bindingtype, ::core::mem::transmute(tlsekm), tlsekmsize, extensionformat, ::core::mem::transmute(extensiondata), ::core::mem::transmute(tokenbinding), ::core::mem::transmute(tokenbindingsize), ::core::mem::transmute(resultdata)).ok() + TokenBindingGenerateBinding(keytype, targeturl.into(), bindingtype, ::core::mem::transmute(tlsekm.as_ptr()), tlsekm.len() as _, extensionformat, ::core::mem::transmute(extensiondata), ::core::mem::transmute(tokenbinding), ::core::mem::transmute(tokenbindingsize), ::core::mem::transmute(resultdata)).ok() } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] -pub unsafe fn TokenBindingGenerateID(keytype: TOKENBINDING_KEY_PARAMETERS_TYPE, publickey: *const ::core::ffi::c_void, publickeysize: u32) -> ::windows::core::Result<*mut TOKENBINDING_RESULT_DATA> { +pub unsafe fn TokenBindingGenerateID(keytype: TOKENBINDING_KEY_PARAMETERS_TYPE, publickey: &[u8]) -> ::windows::core::Result<*mut TOKENBINDING_RESULT_DATA> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TokenBindingGenerateID(keytype: TOKENBINDING_KEY_PARAMETERS_TYPE, publickey: *const ::core::ffi::c_void, publickeysize: u32, resultdata: *mut *mut TOKENBINDING_RESULT_DATA) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - TokenBindingGenerateID(keytype, ::core::mem::transmute(publickey), publickeysize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut TOKENBINDING_RESULT_DATA>(result__) + TokenBindingGenerateID(keytype, ::core::mem::transmute(publickey.as_ptr()), publickey.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut TOKENBINDING_RESULT_DATA>(result__) } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] @@ -21224,7 +21221,7 @@ where } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] -pub unsafe fn TokenBindingGenerateMessage(tokenbindings: *const *const ::core::ffi::c_void, tokenbindingssize: &u32, tokenbindingscount: u32, tokenbindingmessage: *mut *mut ::core::ffi::c_void, tokenbindingmessagesize: &mut u32) -> ::windows::core::Result<()> { +pub unsafe fn TokenBindingGenerateMessage(tokenbindings: *const *const ::core::ffi::c_void, tokenbindingssize: *const u32, tokenbindingscount: u32, tokenbindingmessage: *mut *mut ::core::ffi::c_void, tokenbindingmessagesize: &mut u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TokenBindingGenerateMessage(tokenbindings: *const *const ::core::ffi::c_void, tokenbindingssize: *const u32, tokenbindingscount: u32, tokenbindingmessage: *mut *mut ::core::ffi::c_void, tokenbindingmessagesize: *mut u32) -> ::windows::core::HRESULT; @@ -21262,13 +21259,13 @@ pub unsafe fn TokenBindingGetKeyTypesServer() -> ::windows::core::Result<*mut TO } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`*"] #[inline] -pub unsafe fn TokenBindingVerifyMessage(tokenbindingmessage: *const ::core::ffi::c_void, tokenbindingmessagesize: u32, keytype: TOKENBINDING_KEY_PARAMETERS_TYPE, tlsekm: *const ::core::ffi::c_void, tlsekmsize: u32) -> ::windows::core::Result<*mut TOKENBINDING_RESULT_LIST> { +pub unsafe fn TokenBindingVerifyMessage(tokenbindingmessage: &[u8], keytype: TOKENBINDING_KEY_PARAMETERS_TYPE, tlsekm: &[u8]) -> ::windows::core::Result<*mut TOKENBINDING_RESULT_LIST> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TokenBindingVerifyMessage(tokenbindingmessage: *const ::core::ffi::c_void, tokenbindingmessagesize: u32, keytype: TOKENBINDING_KEY_PARAMETERS_TYPE, tlsekm: *const ::core::ffi::c_void, tlsekmsize: u32, resultlist: *mut *mut TOKENBINDING_RESULT_LIST) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - TokenBindingVerifyMessage(::core::mem::transmute(tokenbindingmessage), tokenbindingmessagesize, keytype, ::core::mem::transmute(tlsekm), tlsekmsize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut TOKENBINDING_RESULT_LIST>(result__) + TokenBindingVerifyMessage(::core::mem::transmute(tokenbindingmessage.as_ptr()), tokenbindingmessage.len() as _, keytype, ::core::mem::transmute(tlsekm.as_ptr()), tlsekm.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut TOKENBINDING_RESULT_LIST>(result__) } #[doc = "*Required features: `\"Win32_Security_Authentication_Identity\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Security/Authorization/UI/mod.rs b/crates/libs/windows/src/Windows/Win32/Security/Authorization/UI/mod.rs index 8dec81bed6..5f87684bd3 100644 --- a/crates/libs/windows/src/Windows/Win32/Security/Authorization/UI/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Security/Authorization/UI/mod.rs @@ -163,7 +163,7 @@ impl IEffectivePermission2 { psid: P0, pdevicesid: P1, pszservername: P2, - psecurityobjects: &mut SECURITY_OBJECT, + psecurityobjects: *mut SECURITY_OBJECT, dwsecurityobjectcount: u32, pusergroups: ::core::option::Option<&super::super::TOKEN_GROUPS>, pauthzusergroupsoperations: ::core::option::Option<&super::AUTHZ_SID_OPERATION>, @@ -173,7 +173,7 @@ impl IEffectivePermission2 { pauthzuserclaimsoperations: ::core::option::Option<&super::AUTHZ_SECURITY_ATTRIBUTE_OPERATION>, pauthzdeviceclaims: ::core::option::Option<&super::AUTHZ_SECURITY_ATTRIBUTES_INFORMATION>, pauthzdeviceclaimsoperations: ::core::option::Option<&super::AUTHZ_SECURITY_ATTRIBUTE_OPERATION>, - peffpermresultlists: &mut EFFPERM_RESULT_LIST, + peffpermresultlists: *mut EFFPERM_RESULT_LIST, ) -> ::windows::core::Result<()> where P0: ::std::convert::Into, diff --git a/crates/libs/windows/src/Windows/Win32/Security/Authorization/mod.rs b/crates/libs/windows/src/Windows/Win32/Security/Authorization/mod.rs index c832aaa187..257d9629a0 100644 --- a/crates/libs/windows/src/Windows/Win32/Security/Authorization/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Security/Authorization/mod.rs @@ -2335,7 +2335,7 @@ impl ::core::fmt::Debug for AZ_PROP_CONSTANTS { #[doc = "*Required features: `\"Win32_Security_Authorization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AuthzAccessCheck<'a, P0, P1, P2>(flags: AUTHZ_ACCESS_CHECK_FLAGS, hauthzclientcontext: P0, prequest: &AUTHZ_ACCESS_REQUEST, hauditevent: P1, psecuritydescriptor: P2, optionalsecuritydescriptorarray: &[super::PSECURITY_DESCRIPTOR], preply: &mut AUTHZ_ACCESS_REPLY, phaccesscheckresults: ::core::option::Option<&mut isize>) -> super::super::Foundation::BOOL +pub unsafe fn AuthzAccessCheck<'a, P0, P1, P2>(flags: AUTHZ_ACCESS_CHECK_FLAGS, hauthzclientcontext: P0, prequest: &AUTHZ_ACCESS_REQUEST, hauditevent: P1, psecuritydescriptor: P2, optionalsecuritydescriptorarray: ::core::option::Option<&[super::PSECURITY_DESCRIPTOR]>, preply: &mut AUTHZ_ACCESS_REPLY, phaccesscheckresults: ::core::option::Option<&mut isize>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -2345,7 +2345,7 @@ where extern "system" { fn AuthzAccessCheck(flags: AUTHZ_ACCESS_CHECK_FLAGS, hauthzclientcontext: AUTHZ_CLIENT_CONTEXT_HANDLE, prequest: *const AUTHZ_ACCESS_REQUEST, hauditevent: AUTHZ_AUDIT_EVENT_HANDLE, psecuritydescriptor: super::PSECURITY_DESCRIPTOR, optionalsecuritydescriptorarray: *const super::PSECURITY_DESCRIPTOR, optionalsecuritydescriptorcount: u32, preply: *mut AUTHZ_ACCESS_REPLY, phaccesscheckresults: *mut isize) -> super::super::Foundation::BOOL; } - AuthzAccessCheck(flags, hauthzclientcontext.into(), ::core::mem::transmute(prequest), hauditevent.into(), psecuritydescriptor.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(optionalsecuritydescriptorarray)), optionalsecuritydescriptorarray.len() as _, ::core::mem::transmute(preply), ::core::mem::transmute(phaccesscheckresults)) + AuthzAccessCheck(flags, hauthzclientcontext.into(), ::core::mem::transmute(prequest), hauditevent.into(), psecuritydescriptor.into(), ::core::mem::transmute(optionalsecuritydescriptorarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), optionalsecuritydescriptorarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(preply), ::core::mem::transmute(phaccesscheckresults)) } #[doc = "*Required features: `\"Win32_Security_Authorization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2648,7 +2648,7 @@ where #[doc = "*Required features: `\"Win32_Security_Authorization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AuthzOpenObjectAudit<'a, P0, P1, P2>(flags: u32, hauthzclientcontext: P0, prequest: &AUTHZ_ACCESS_REQUEST, hauditevent: P1, psecuritydescriptor: P2, optionalsecuritydescriptorarray: &[super::PSECURITY_DESCRIPTOR], preply: &AUTHZ_ACCESS_REPLY) -> super::super::Foundation::BOOL +pub unsafe fn AuthzOpenObjectAudit<'a, P0, P1, P2>(flags: u32, hauthzclientcontext: P0, prequest: &AUTHZ_ACCESS_REQUEST, hauditevent: P1, psecuritydescriptor: P2, optionalsecuritydescriptorarray: ::core::option::Option<&[super::PSECURITY_DESCRIPTOR]>, preply: &AUTHZ_ACCESS_REPLY) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -2658,7 +2658,7 @@ where extern "system" { fn AuthzOpenObjectAudit(flags: u32, hauthzclientcontext: AUTHZ_CLIENT_CONTEXT_HANDLE, prequest: *const AUTHZ_ACCESS_REQUEST, hauditevent: AUTHZ_AUDIT_EVENT_HANDLE, psecuritydescriptor: super::PSECURITY_DESCRIPTOR, optionalsecuritydescriptorarray: *const super::PSECURITY_DESCRIPTOR, optionalsecuritydescriptorcount: u32, preply: *const AUTHZ_ACCESS_REPLY) -> super::super::Foundation::BOOL; } - AuthzOpenObjectAudit(flags, hauthzclientcontext.into(), ::core::mem::transmute(prequest), hauditevent.into(), psecuritydescriptor.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(optionalsecuritydescriptorarray)), optionalsecuritydescriptorarray.len() as _, ::core::mem::transmute(preply)) + AuthzOpenObjectAudit(flags, hauthzclientcontext.into(), ::core::mem::transmute(prequest), hauditevent.into(), psecuritydescriptor.into(), ::core::mem::transmute(optionalsecuritydescriptorarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), optionalsecuritydescriptorarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(preply)) } #[doc = "*Required features: `\"Win32_Security_Authorization\"`, `\"Win32_Foundation\"`, `\"Win32_System_Threading\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Threading"))] @@ -2714,7 +2714,7 @@ where #[doc = "*Required features: `\"Win32_Security_Authorization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AuthzSetAppContainerInformation<'a, P0, P1>(hauthzclientcontext: P0, pappcontainersid: P1, pcapabilitysids: &[super::SID_AND_ATTRIBUTES]) -> super::super::Foundation::BOOL +pub unsafe fn AuthzSetAppContainerInformation<'a, P0, P1>(hauthzclientcontext: P0, pappcontainersid: P1, pcapabilitysids: ::core::option::Option<&[super::SID_AND_ATTRIBUTES]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -2723,7 +2723,7 @@ where extern "system" { fn AuthzSetAppContainerInformation(hauthzclientcontext: AUTHZ_CLIENT_CONTEXT_HANDLE, pappcontainersid: super::super::Foundation::PSID, capabilitycount: u32, pcapabilitysids: *const super::SID_AND_ATTRIBUTES) -> super::super::Foundation::BOOL; } - AuthzSetAppContainerInformation(hauthzclientcontext.into(), pappcontainersid.into(), pcapabilitysids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pcapabilitysids))) + AuthzSetAppContainerInformation(hauthzclientcontext.into(), pappcontainersid.into(), pcapabilitysids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcapabilitysids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Security_Authorization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2829,7 +2829,7 @@ pub unsafe fn BuildImpersonateTrusteeW(ptrustee: &mut TRUSTEE_W, pimpersonatetru } #[doc = "*Required features: `\"Win32_Security_Authorization\"`*"] #[inline] -pub unsafe fn BuildSecurityDescriptorA<'a, P0>(powner: ::core::option::Option<&TRUSTEE_A>, pgroup: ::core::option::Option<&TRUSTEE_A>, plistofaccessentries: &[EXPLICIT_ACCESS_A], plistofauditentries: &[EXPLICIT_ACCESS_A], poldsd: P0, psizenewsd: &mut u32, pnewsd: &mut super::PSECURITY_DESCRIPTOR) -> u32 +pub unsafe fn BuildSecurityDescriptorA<'a, P0>(powner: ::core::option::Option<&TRUSTEE_A>, pgroup: ::core::option::Option<&TRUSTEE_A>, plistofaccessentries: ::core::option::Option<&[EXPLICIT_ACCESS_A]>, plistofauditentries: ::core::option::Option<&[EXPLICIT_ACCESS_A]>, poldsd: P0, psizenewsd: &mut u32, pnewsd: &mut super::PSECURITY_DESCRIPTOR) -> u32 where P0: ::std::convert::Into, { @@ -2837,11 +2837,21 @@ where extern "system" { fn BuildSecurityDescriptorA(powner: *const TRUSTEE_A, pgroup: *const TRUSTEE_A, ccountofaccessentries: u32, plistofaccessentries: *const EXPLICIT_ACCESS_A, ccountofauditentries: u32, plistofauditentries: *const EXPLICIT_ACCESS_A, poldsd: super::PSECURITY_DESCRIPTOR, psizenewsd: *mut u32, pnewsd: *mut super::PSECURITY_DESCRIPTOR) -> u32; } - BuildSecurityDescriptorA(::core::mem::transmute(powner), ::core::mem::transmute(pgroup), plistofaccessentries.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plistofaccessentries)), plistofauditentries.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plistofauditentries)), poldsd.into(), ::core::mem::transmute(psizenewsd), ::core::mem::transmute(pnewsd)) + BuildSecurityDescriptorA( + ::core::mem::transmute(powner), + ::core::mem::transmute(pgroup), + plistofaccessentries.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(plistofaccessentries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + plistofauditentries.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(plistofauditentries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + poldsd.into(), + ::core::mem::transmute(psizenewsd), + ::core::mem::transmute(pnewsd), + ) } #[doc = "*Required features: `\"Win32_Security_Authorization\"`*"] #[inline] -pub unsafe fn BuildSecurityDescriptorW<'a, P0>(powner: ::core::option::Option<&TRUSTEE_W>, pgroup: ::core::option::Option<&TRUSTEE_W>, plistofaccessentries: &[EXPLICIT_ACCESS_W], plistofauditentries: &[EXPLICIT_ACCESS_W], poldsd: P0, psizenewsd: &mut u32, pnewsd: &mut super::PSECURITY_DESCRIPTOR) -> u32 +pub unsafe fn BuildSecurityDescriptorW<'a, P0>(powner: ::core::option::Option<&TRUSTEE_W>, pgroup: ::core::option::Option<&TRUSTEE_W>, plistofaccessentries: ::core::option::Option<&[EXPLICIT_ACCESS_W]>, plistofauditentries: ::core::option::Option<&[EXPLICIT_ACCESS_W]>, poldsd: P0, psizenewsd: &mut u32, pnewsd: &mut super::PSECURITY_DESCRIPTOR) -> u32 where P0: ::std::convert::Into, { @@ -2849,7 +2859,17 @@ where extern "system" { fn BuildSecurityDescriptorW(powner: *const TRUSTEE_W, pgroup: *const TRUSTEE_W, ccountofaccessentries: u32, plistofaccessentries: *const EXPLICIT_ACCESS_W, ccountofauditentries: u32, plistofauditentries: *const EXPLICIT_ACCESS_W, poldsd: super::PSECURITY_DESCRIPTOR, psizenewsd: *mut u32, pnewsd: *mut super::PSECURITY_DESCRIPTOR) -> u32; } - BuildSecurityDescriptorW(::core::mem::transmute(powner), ::core::mem::transmute(pgroup), plistofaccessentries.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plistofaccessentries)), plistofauditentries.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plistofauditentries)), poldsd.into(), ::core::mem::transmute(psizenewsd), ::core::mem::transmute(pnewsd)) + BuildSecurityDescriptorW( + ::core::mem::transmute(powner), + ::core::mem::transmute(pgroup), + plistofaccessentries.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(plistofaccessentries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + plistofauditentries.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(plistofauditentries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + poldsd.into(), + ::core::mem::transmute(psizenewsd), + ::core::mem::transmute(pnewsd), + ) } #[doc = "*Required features: `\"Win32_Security_Authorization\"`*"] #[inline] @@ -3165,7 +3185,7 @@ pub unsafe fn FreeInheritedFromArray(pinheritarray: &[INHERITED_FROMW], pfnarray extern "system" { fn FreeInheritedFromArray(pinheritarray: *const INHERITED_FROMW, acecnt: u16, pfnarray: *const FN_OBJECT_MGR_FUNCTIONS) -> u32; } - FreeInheritedFromArray(::core::mem::transmute(::windows::core::as_ptr_or_null(pinheritarray)), pinheritarray.len() as _, ::core::mem::transmute(pfnarray)) + FreeInheritedFromArray(::core::mem::transmute(pinheritarray.as_ptr()), pinheritarray.len() as _, ::core::mem::transmute(pfnarray)) } #[doc = "*Required features: `\"Win32_Security_Authorization\"`*"] #[inline] @@ -3224,7 +3244,7 @@ pub unsafe fn GetExplicitEntriesFromAclW(pacl: &super::ACL, pccountofexplicitent #[doc = "*Required features: `\"Win32_Security_Authorization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetInheritanceSourceA<'a, P0, P1>(pobjectname: P0, objecttype: SE_OBJECT_TYPE, securityinfo: u32, container: P1, pobjectclassguids: &[*const ::windows::core::GUID], pacl: &super::ACL, pfnarray: ::core::option::Option<&FN_OBJECT_MGR_FUNCTIONS>, pgenericmapping: &super::GENERIC_MAPPING, pinheritarray: &mut INHERITED_FROMA) -> u32 +pub unsafe fn GetInheritanceSourceA<'a, P0, P1>(pobjectname: P0, objecttype: SE_OBJECT_TYPE, securityinfo: u32, container: P1, pobjectclassguids: ::core::option::Option<&[*const ::windows::core::GUID]>, pacl: &super::ACL, pfnarray: ::core::option::Option<&FN_OBJECT_MGR_FUNCTIONS>, pgenericmapping: &super::GENERIC_MAPPING, pinheritarray: &mut INHERITED_FROMA) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into, @@ -3233,12 +3253,12 @@ where extern "system" { fn GetInheritanceSourceA(pobjectname: ::windows::core::PCSTR, objecttype: SE_OBJECT_TYPE, securityinfo: u32, container: super::super::Foundation::BOOL, pobjectclassguids: *const *const ::windows::core::GUID, guidcount: u32, pacl: *const super::ACL, pfnarray: *const FN_OBJECT_MGR_FUNCTIONS, pgenericmapping: *const super::GENERIC_MAPPING, pinheritarray: *mut INHERITED_FROMA) -> u32; } - GetInheritanceSourceA(pobjectname.into(), objecttype, securityinfo, container.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pobjectclassguids)), pobjectclassguids.len() as _, ::core::mem::transmute(pacl), ::core::mem::transmute(pfnarray), ::core::mem::transmute(pgenericmapping), ::core::mem::transmute(pinheritarray)) + GetInheritanceSourceA(pobjectname.into(), objecttype, securityinfo, container.into(), ::core::mem::transmute(pobjectclassguids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pobjectclassguids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pacl), ::core::mem::transmute(pfnarray), ::core::mem::transmute(pgenericmapping), ::core::mem::transmute(pinheritarray)) } #[doc = "*Required features: `\"Win32_Security_Authorization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetInheritanceSourceW<'a, P0, P1>(pobjectname: P0, objecttype: SE_OBJECT_TYPE, securityinfo: u32, container: P1, pobjectclassguids: &[*const ::windows::core::GUID], pacl: &super::ACL, pfnarray: ::core::option::Option<&FN_OBJECT_MGR_FUNCTIONS>, pgenericmapping: &super::GENERIC_MAPPING, pinheritarray: &mut INHERITED_FROMW) -> u32 +pub unsafe fn GetInheritanceSourceW<'a, P0, P1>(pobjectname: P0, objecttype: SE_OBJECT_TYPE, securityinfo: u32, container: P1, pobjectclassguids: ::core::option::Option<&[*const ::windows::core::GUID]>, pacl: &super::ACL, pfnarray: ::core::option::Option<&FN_OBJECT_MGR_FUNCTIONS>, pgenericmapping: &super::GENERIC_MAPPING, pinheritarray: &mut INHERITED_FROMW) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into, @@ -3247,7 +3267,7 @@ where extern "system" { fn GetInheritanceSourceW(pobjectname: ::windows::core::PCWSTR, objecttype: SE_OBJECT_TYPE, securityinfo: u32, container: super::super::Foundation::BOOL, pobjectclassguids: *const *const ::windows::core::GUID, guidcount: u32, pacl: *const super::ACL, pfnarray: *const FN_OBJECT_MGR_FUNCTIONS, pgenericmapping: *const super::GENERIC_MAPPING, pinheritarray: *mut INHERITED_FROMW) -> u32; } - GetInheritanceSourceW(pobjectname.into(), objecttype, securityinfo, container.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pobjectclassguids)), pobjectclassguids.len() as _, ::core::mem::transmute(pacl), ::core::mem::transmute(pfnarray), ::core::mem::transmute(pgenericmapping), ::core::mem::transmute(pinheritarray)) + GetInheritanceSourceW(pobjectname.into(), objecttype, securityinfo, container.into(), ::core::mem::transmute(pobjectclassguids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pobjectclassguids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pacl), ::core::mem::transmute(pfnarray), ::core::mem::transmute(pgenericmapping), ::core::mem::transmute(pinheritarray)) } #[doc = "*Required features: `\"Win32_Security_Authorization\"`*"] #[inline] @@ -14157,21 +14177,21 @@ impl ::core::fmt::Debug for SE_OBJECT_TYPE { } #[doc = "*Required features: `\"Win32_Security_Authorization\"`*"] #[inline] -pub unsafe fn SetEntriesInAclA(plistofexplicitentries: &[EXPLICIT_ACCESS_A], oldacl: ::core::option::Option<&super::ACL>, newacl: &mut *mut super::ACL) -> u32 { +pub unsafe fn SetEntriesInAclA(plistofexplicitentries: ::core::option::Option<&[EXPLICIT_ACCESS_A]>, oldacl: ::core::option::Option<&super::ACL>, newacl: &mut *mut super::ACL) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetEntriesInAclA(ccountofexplicitentries: u32, plistofexplicitentries: *const EXPLICIT_ACCESS_A, oldacl: *const super::ACL, newacl: *mut *mut super::ACL) -> u32; } - SetEntriesInAclA(plistofexplicitentries.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plistofexplicitentries)), ::core::mem::transmute(oldacl), ::core::mem::transmute(newacl)) + SetEntriesInAclA(plistofexplicitentries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(plistofexplicitentries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(oldacl), ::core::mem::transmute(newacl)) } #[doc = "*Required features: `\"Win32_Security_Authorization\"`*"] #[inline] -pub unsafe fn SetEntriesInAclW(plistofexplicitentries: &[EXPLICIT_ACCESS_W], oldacl: ::core::option::Option<&super::ACL>, newacl: &mut *mut super::ACL) -> u32 { +pub unsafe fn SetEntriesInAclW(plistofexplicitentries: ::core::option::Option<&[EXPLICIT_ACCESS_W]>, oldacl: ::core::option::Option<&super::ACL>, newacl: &mut *mut super::ACL) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetEntriesInAclW(ccountofexplicitentries: u32, plistofexplicitentries: *const EXPLICIT_ACCESS_W, oldacl: *const super::ACL, newacl: *mut *mut super::ACL) -> u32; } - SetEntriesInAclW(plistofexplicitentries.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(plistofexplicitentries)), ::core::mem::transmute(oldacl), ::core::mem::transmute(newacl)) + SetEntriesInAclW(plistofexplicitentries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(plistofexplicitentries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(oldacl), ::core::mem::transmute(newacl)) } #[doc = "*Required features: `\"Win32_Security_Authorization\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Security/Credentials/mod.rs b/crates/libs/windows/src/Windows/Win32/Security/Credentials/mod.rs index 44762e0664..899cc4ad7d 100644 --- a/crates/libs/windows/src/Windows/Win32/Security/Credentials/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Security/Credentials/mod.rs @@ -1217,7 +1217,7 @@ pub unsafe fn CredGetSessionTypes(maximumpersist: &mut [u32]) -> super::super::F extern "system" { fn CredGetSessionTypes(maximumpersistcount: u32, maximumpersist: *mut u32) -> super::super::Foundation::BOOL; } - CredGetSessionTypes(maximumpersist.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(maximumpersist))) + CredGetSessionTypes(maximumpersist.len() as _, ::core::mem::transmute(maximumpersist.as_ptr())) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1320,7 +1320,7 @@ pub unsafe fn CredMarshalCredentialW(credtype: CRED_MARSHAL_TYPE, credential: *c #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CredPackAuthenticationBufferA<'a, P0, P1>(dwflags: CRED_PACK_FLAGS, pszusername: P0, pszpassword: P1, ppackedcredentials: ::core::option::Option<&mut u8>, pcbpackedcredentials: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CredPackAuthenticationBufferA<'a, P0, P1>(dwflags: CRED_PACK_FLAGS, pszusername: P0, pszpassword: P1, ppackedcredentials: *mut u8, pcbpackedcredentials: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -1334,7 +1334,7 @@ where #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CredPackAuthenticationBufferW<'a, P0, P1>(dwflags: CRED_PACK_FLAGS, pszusername: P0, pszpassword: P1, ppackedcredentials: ::core::option::Option<&mut u8>, pcbpackedcredentials: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CredPackAuthenticationBufferW<'a, P0, P1>(dwflags: CRED_PACK_FLAGS, pszusername: P0, pszpassword: P1, ppackedcredentials: *mut u8, pcbpackedcredentials: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -1356,7 +1356,7 @@ where extern "system" { fn CredProtectA(fasself: super::super::Foundation::BOOL, pszcredentials: ::windows::core::PCSTR, cchcredentials: u32, pszprotectedcredentials: ::windows::core::PSTR, pcchmaxchars: *mut u32, protectiontype: *mut CRED_PROTECTION_TYPE) -> super::super::Foundation::BOOL; } - CredProtectA(fasself.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pszcredentials)), pszcredentials.len() as _, ::core::mem::transmute(pszprotectedcredentials), ::core::mem::transmute(pcchmaxchars), ::core::mem::transmute(protectiontype)) + CredProtectA(fasself.into(), ::core::mem::transmute(pszcredentials.as_ptr()), pszcredentials.len() as _, ::core::mem::transmute(pszprotectedcredentials), ::core::mem::transmute(pcchmaxchars), ::core::mem::transmute(protectiontype)) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1369,7 +1369,7 @@ where extern "system" { fn CredProtectW(fasself: super::super::Foundation::BOOL, pszcredentials: ::windows::core::PCWSTR, cchcredentials: u32, pszprotectedcredentials: ::windows::core::PWSTR, pcchmaxchars: *mut u32, protectiontype: *mut CRED_PROTECTION_TYPE) -> super::super::Foundation::BOOL; } - CredProtectW(fasself.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pszcredentials)), pszcredentials.len() as _, ::core::mem::transmute(pszprotectedcredentials), ::core::mem::transmute(pcchmaxchars), ::core::mem::transmute(protectiontype)) + CredProtectW(fasself.into(), ::core::mem::transmute(pszcredentials.as_ptr()), pszcredentials.len() as _, ::core::mem::transmute(pszprotectedcredentials), ::core::mem::transmute(pcchmaxchars), ::core::mem::transmute(protectiontype)) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1456,7 +1456,7 @@ where extern "system" { fn CredUICmdLinePromptForCredentialsA(psztargetname: ::windows::core::PCSTR, pcontext: *mut SecHandle, dwautherror: u32, username: ::windows::core::PSTR, uluserbuffersize: u32, pszpassword: ::windows::core::PSTR, ulpasswordbuffersize: u32, pfsave: *mut super::super::Foundation::BOOL, dwflags: CREDUI_FLAGS) -> u32; } - CredUICmdLinePromptForCredentialsA(psztargetname.into(), ::core::mem::transmute(pcontext), dwautherror, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(username)), username.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpassword)), pszpassword.len() as _, ::core::mem::transmute(pfsave), dwflags) + CredUICmdLinePromptForCredentialsA(psztargetname.into(), ::core::mem::transmute(pcontext), dwautherror, ::core::mem::transmute(username.as_ptr()), username.len() as _, ::core::mem::transmute(pszpassword.as_ptr()), pszpassword.len() as _, ::core::mem::transmute(pfsave), dwflags) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1469,7 +1469,7 @@ where extern "system" { fn CredUICmdLinePromptForCredentialsW(psztargetname: ::windows::core::PCWSTR, pcontext: *mut SecHandle, dwautherror: u32, username: ::windows::core::PWSTR, uluserbuffersize: u32, pszpassword: ::windows::core::PWSTR, ulpasswordbuffersize: u32, pfsave: *mut super::super::Foundation::BOOL, dwflags: CREDUI_FLAGS) -> u32; } - CredUICmdLinePromptForCredentialsW(psztargetname.into(), ::core::mem::transmute(pcontext), dwautherror, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(username)), username.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpassword)), pszpassword.len() as _, ::core::mem::transmute(pfsave), dwflags) + CredUICmdLinePromptForCredentialsW(psztargetname.into(), ::core::mem::transmute(pcontext), dwautherror, ::core::mem::transmute(username.as_ptr()), username.len() as _, ::core::mem::transmute(pszpassword.as_ptr()), pszpassword.len() as _, ::core::mem::transmute(pfsave), dwflags) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1509,7 +1509,7 @@ where extern "system" { fn CredUIParseUserNameA(username: ::windows::core::PCSTR, user: ::windows::core::PSTR, userbuffersize: u32, domain: ::windows::core::PSTR, domainbuffersize: u32) -> u32; } - CredUIParseUserNameA(username.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(user)), user.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(domain)), domain.len() as _) + CredUIParseUserNameA(username.into(), ::core::mem::transmute(user.as_ptr()), user.len() as _, ::core::mem::transmute(domain.as_ptr()), domain.len() as _) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] @@ -1521,7 +1521,7 @@ where extern "system" { fn CredUIParseUserNameW(username: ::windows::core::PCWSTR, user: ::windows::core::PWSTR, userbuffersize: u32, domain: ::windows::core::PWSTR, domainbuffersize: u32) -> u32; } - CredUIParseUserNameW(username.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(user)), user.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(domain)), domain.len() as _) + CredUIParseUserNameW(username.into(), ::core::mem::transmute(user.as_ptr()), user.len() as _, ::core::mem::transmute(domain.as_ptr()), domain.len() as _) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -1534,7 +1534,7 @@ where extern "system" { fn CredUIPromptForCredentialsA(puiinfo: *const CREDUI_INFOA, psztargetname: ::windows::core::PCSTR, pcontext: *mut SecHandle, dwautherror: u32, pszusername: ::windows::core::PSTR, ulusernamebuffersize: u32, pszpassword: ::windows::core::PSTR, ulpasswordbuffersize: u32, save: *mut super::super::Foundation::BOOL, dwflags: CREDUI_FLAGS) -> u32; } - CredUIPromptForCredentialsA(::core::mem::transmute(puiinfo), psztargetname.into(), ::core::mem::transmute(pcontext), dwautherror, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszusername)), pszusername.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpassword)), pszpassword.len() as _, ::core::mem::transmute(save), dwflags) + CredUIPromptForCredentialsA(::core::mem::transmute(puiinfo), psztargetname.into(), ::core::mem::transmute(pcontext), dwautherror, ::core::mem::transmute(pszusername.as_ptr()), pszusername.len() as _, ::core::mem::transmute(pszpassword.as_ptr()), pszpassword.len() as _, ::core::mem::transmute(save), dwflags) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -1547,27 +1547,27 @@ where extern "system" { fn CredUIPromptForCredentialsW(puiinfo: *const CREDUI_INFOW, psztargetname: ::windows::core::PCWSTR, pcontext: *mut SecHandle, dwautherror: u32, pszusername: ::windows::core::PWSTR, ulusernamebuffersize: u32, pszpassword: ::windows::core::PWSTR, ulpasswordbuffersize: u32, save: *mut super::super::Foundation::BOOL, dwflags: CREDUI_FLAGS) -> u32; } - CredUIPromptForCredentialsW(::core::mem::transmute(puiinfo), psztargetname.into(), ::core::mem::transmute(pcontext), dwautherror, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszusername)), pszusername.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpassword)), pszpassword.len() as _, ::core::mem::transmute(save), dwflags) + CredUIPromptForCredentialsW(::core::mem::transmute(puiinfo), psztargetname.into(), ::core::mem::transmute(pcontext), dwautherror, ::core::mem::transmute(pszusername.as_ptr()), pszusername.len() as _, ::core::mem::transmute(pszpassword.as_ptr()), pszpassword.len() as _, ::core::mem::transmute(save), dwflags) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] #[inline] -pub unsafe fn CredUIPromptForWindowsCredentialsA(puiinfo: ::core::option::Option<&CREDUI_INFOA>, dwautherror: u32, pulauthpackage: &mut u32, pvinauthbuffer: *const ::core::ffi::c_void, ulinauthbuffersize: u32, ppvoutauthbuffer: *mut *mut ::core::ffi::c_void, puloutauthbuffersize: &mut u32, pfsave: ::core::option::Option<&mut super::super::Foundation::BOOL>, dwflags: CREDUIWIN_FLAGS) -> u32 { +pub unsafe fn CredUIPromptForWindowsCredentialsA(puiinfo: ::core::option::Option<&CREDUI_INFOA>, dwautherror: u32, pulauthpackage: &mut u32, pvinauthbuffer: ::core::option::Option<&[u8]>, ppvoutauthbuffer: *mut *mut ::core::ffi::c_void, puloutauthbuffersize: &mut u32, pfsave: ::core::option::Option<&mut super::super::Foundation::BOOL>, dwflags: CREDUIWIN_FLAGS) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CredUIPromptForWindowsCredentialsA(puiinfo: *const CREDUI_INFOA, dwautherror: u32, pulauthpackage: *mut u32, pvinauthbuffer: *const ::core::ffi::c_void, ulinauthbuffersize: u32, ppvoutauthbuffer: *mut *mut ::core::ffi::c_void, puloutauthbuffersize: *mut u32, pfsave: *mut super::super::Foundation::BOOL, dwflags: CREDUIWIN_FLAGS) -> u32; } - CredUIPromptForWindowsCredentialsA(::core::mem::transmute(puiinfo), dwautherror, ::core::mem::transmute(pulauthpackage), ::core::mem::transmute(pvinauthbuffer), ulinauthbuffersize, ::core::mem::transmute(ppvoutauthbuffer), ::core::mem::transmute(puloutauthbuffersize), ::core::mem::transmute(pfsave), dwflags) + CredUIPromptForWindowsCredentialsA(::core::mem::transmute(puiinfo), dwautherror, ::core::mem::transmute(pulauthpackage), ::core::mem::transmute(pvinauthbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvinauthbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppvoutauthbuffer), ::core::mem::transmute(puloutauthbuffersize), ::core::mem::transmute(pfsave), dwflags) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] #[inline] -pub unsafe fn CredUIPromptForWindowsCredentialsW(puiinfo: ::core::option::Option<&CREDUI_INFOW>, dwautherror: u32, pulauthpackage: &mut u32, pvinauthbuffer: *const ::core::ffi::c_void, ulinauthbuffersize: u32, ppvoutauthbuffer: *mut *mut ::core::ffi::c_void, puloutauthbuffersize: &mut u32, pfsave: ::core::option::Option<&mut super::super::Foundation::BOOL>, dwflags: CREDUIWIN_FLAGS) -> u32 { +pub unsafe fn CredUIPromptForWindowsCredentialsW(puiinfo: ::core::option::Option<&CREDUI_INFOW>, dwautherror: u32, pulauthpackage: &mut u32, pvinauthbuffer: ::core::option::Option<&[u8]>, ppvoutauthbuffer: *mut *mut ::core::ffi::c_void, puloutauthbuffersize: &mut u32, pfsave: ::core::option::Option<&mut super::super::Foundation::BOOL>, dwflags: CREDUIWIN_FLAGS) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CredUIPromptForWindowsCredentialsW(puiinfo: *const CREDUI_INFOW, dwautherror: u32, pulauthpackage: *mut u32, pvinauthbuffer: *const ::core::ffi::c_void, ulinauthbuffersize: u32, ppvoutauthbuffer: *mut *mut ::core::ffi::c_void, puloutauthbuffersize: *mut u32, pfsave: *mut super::super::Foundation::BOOL, dwflags: CREDUIWIN_FLAGS) -> u32; } - CredUIPromptForWindowsCredentialsW(::core::mem::transmute(puiinfo), dwautherror, ::core::mem::transmute(pulauthpackage), ::core::mem::transmute(pvinauthbuffer), ulinauthbuffersize, ::core::mem::transmute(ppvoutauthbuffer), ::core::mem::transmute(puloutauthbuffersize), ::core::mem::transmute(pfsave), dwflags) + CredUIPromptForWindowsCredentialsW(::core::mem::transmute(puiinfo), dwautherror, ::core::mem::transmute(pulauthpackage), ::core::mem::transmute(pvinauthbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvinauthbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppvoutauthbuffer), ::core::mem::transmute(puloutauthbuffersize), ::core::mem::transmute(pfsave), dwflags) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] @@ -1600,22 +1600,22 @@ where #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CredUnPackAuthenticationBufferA(dwflags: CRED_PACK_FLAGS, pauthbuffer: *const ::core::ffi::c_void, cbauthbuffer: u32, pszusername: ::windows::core::PSTR, pcchlmaxusername: &mut u32, pszdomainname: ::windows::core::PSTR, pcchmaxdomainname: ::core::option::Option<&mut u32>, pszpassword: ::windows::core::PSTR, pcchmaxpassword: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CredUnPackAuthenticationBufferA(dwflags: CRED_PACK_FLAGS, pauthbuffer: &[u8], pszusername: ::windows::core::PSTR, pcchlmaxusername: &mut u32, pszdomainname: ::windows::core::PSTR, pcchmaxdomainname: ::core::option::Option<&mut u32>, pszpassword: ::windows::core::PSTR, pcchmaxpassword: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CredUnPackAuthenticationBufferA(dwflags: CRED_PACK_FLAGS, pauthbuffer: *const ::core::ffi::c_void, cbauthbuffer: u32, pszusername: ::windows::core::PSTR, pcchlmaxusername: *mut u32, pszdomainname: ::windows::core::PSTR, pcchmaxdomainname: *mut u32, pszpassword: ::windows::core::PSTR, pcchmaxpassword: *mut u32) -> super::super::Foundation::BOOL; } - CredUnPackAuthenticationBufferA(dwflags, ::core::mem::transmute(pauthbuffer), cbauthbuffer, ::core::mem::transmute(pszusername), ::core::mem::transmute(pcchlmaxusername), ::core::mem::transmute(pszdomainname), ::core::mem::transmute(pcchmaxdomainname), ::core::mem::transmute(pszpassword), ::core::mem::transmute(pcchmaxpassword)) + CredUnPackAuthenticationBufferA(dwflags, ::core::mem::transmute(pauthbuffer.as_ptr()), pauthbuffer.len() as _, ::core::mem::transmute(pszusername), ::core::mem::transmute(pcchlmaxusername), ::core::mem::transmute(pszdomainname), ::core::mem::transmute(pcchmaxdomainname), ::core::mem::transmute(pszpassword), ::core::mem::transmute(pcchmaxpassword)) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CredUnPackAuthenticationBufferW(dwflags: CRED_PACK_FLAGS, pauthbuffer: *const ::core::ffi::c_void, cbauthbuffer: u32, pszusername: ::windows::core::PWSTR, pcchmaxusername: &mut u32, pszdomainname: ::windows::core::PWSTR, pcchmaxdomainname: ::core::option::Option<&mut u32>, pszpassword: ::windows::core::PWSTR, pcchmaxpassword: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CredUnPackAuthenticationBufferW(dwflags: CRED_PACK_FLAGS, pauthbuffer: &[u8], pszusername: ::windows::core::PWSTR, pcchmaxusername: &mut u32, pszdomainname: ::windows::core::PWSTR, pcchmaxdomainname: ::core::option::Option<&mut u32>, pszpassword: ::windows::core::PWSTR, pcchmaxpassword: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CredUnPackAuthenticationBufferW(dwflags: CRED_PACK_FLAGS, pauthbuffer: *const ::core::ffi::c_void, cbauthbuffer: u32, pszusername: ::windows::core::PWSTR, pcchmaxusername: *mut u32, pszdomainname: ::windows::core::PWSTR, pcchmaxdomainname: *mut u32, pszpassword: ::windows::core::PWSTR, pcchmaxpassword: *mut u32) -> super::super::Foundation::BOOL; } - CredUnPackAuthenticationBufferW(dwflags, ::core::mem::transmute(pauthbuffer), cbauthbuffer, ::core::mem::transmute(pszusername), ::core::mem::transmute(pcchmaxusername), ::core::mem::transmute(pszdomainname), ::core::mem::transmute(pcchmaxdomainname), ::core::mem::transmute(pszpassword), ::core::mem::transmute(pcchmaxpassword)) + CredUnPackAuthenticationBufferW(dwflags, ::core::mem::transmute(pauthbuffer.as_ptr()), pauthbuffer.len() as _, ::core::mem::transmute(pszusername), ::core::mem::transmute(pcchmaxusername), ::core::mem::transmute(pszdomainname), ::core::mem::transmute(pcchmaxdomainname), ::core::mem::transmute(pszpassword), ::core::mem::transmute(pcchmaxpassword)) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1654,7 +1654,7 @@ where extern "system" { fn CredUnprotectA(fasself: super::super::Foundation::BOOL, pszprotectedcredentials: ::windows::core::PCSTR, cchprotectedcredentials: u32, pszcredentials: ::windows::core::PSTR, pcchmaxchars: *mut u32) -> super::super::Foundation::BOOL; } - CredUnprotectA(fasself.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pszprotectedcredentials)), pszprotectedcredentials.len() as _, ::core::mem::transmute(pszcredentials), ::core::mem::transmute(pcchmaxchars)) + CredUnprotectA(fasself.into(), ::core::mem::transmute(pszprotectedcredentials.as_ptr()), pszprotectedcredentials.len() as _, ::core::mem::transmute(pszcredentials), ::core::mem::transmute(pcchmaxchars)) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1667,7 +1667,7 @@ where extern "system" { fn CredUnprotectW(fasself: super::super::Foundation::BOOL, pszprotectedcredentials: ::windows::core::PCWSTR, cchprotectedcredentials: u32, pszcredentials: ::windows::core::PWSTR, pcchmaxchars: *mut u32) -> super::super::Foundation::BOOL; } - CredUnprotectW(fasself.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pszprotectedcredentials)), pszprotectedcredentials.len() as _, ::core::mem::transmute(pszcredentials), ::core::mem::transmute(pcchmaxchars)) + CredUnprotectW(fasself.into(), ::core::mem::transmute(pszprotectedcredentials.as_ptr()), pszprotectedcredentials.len() as _, ::core::mem::transmute(pszcredentials), ::core::mem::transmute(pcchmaxchars)) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3101,12 +3101,12 @@ where } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] -pub unsafe fn SCardControl(hcard: usize, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, cbinbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, cboutbuffersize: u32, lpbytesreturned: &mut u32) -> i32 { +pub unsafe fn SCardControl(hcard: usize, dwcontrolcode: u32, lpinbuffer: &[u8], lpoutbuffer: &mut [u8], lpbytesreturned: &mut u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SCardControl(hcard: usize, dwcontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, cbinbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, cboutbuffersize: u32, lpbytesreturned: *mut u32) -> i32; } - SCardControl(hcard, dwcontrolcode, ::core::mem::transmute(lpinbuffer), cbinbuffersize, ::core::mem::transmute(lpoutbuffer), cboutbuffersize, ::core::mem::transmute(lpbytesreturned)) + SCardControl(hcard, dwcontrolcode, ::core::mem::transmute(lpinbuffer.as_ptr()), lpinbuffer.len() as _, ::core::mem::transmute(lpoutbuffer.as_ptr()), lpoutbuffer.len() as _, ::core::mem::transmute(lpbytesreturned)) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] @@ -3227,7 +3227,7 @@ pub unsafe fn SCardFreeMemory(hcontext: usize, pvmem: *const ::core::ffi::c_void } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] -pub unsafe fn SCardGetAttrib(hcard: usize, dwattrid: u32, pbattr: ::core::option::Option<&mut u8>, pcbattrlen: &mut u32) -> i32 { +pub unsafe fn SCardGetAttrib(hcard: usize, dwattrid: u32, pbattr: *mut u8, pcbattrlen: &mut u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SCardGetAttrib(hcard: usize, dwattrid: u32, pbattr: *mut u8, pcbattrlen: *mut u32) -> i32; @@ -3332,7 +3332,7 @@ where } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] -pub unsafe fn SCardGetReaderIconA<'a, P0>(hcontext: usize, szreadername: P0, pbicon: ::core::option::Option<&mut u8>, pcbicon: &mut u32) -> i32 +pub unsafe fn SCardGetReaderIconA<'a, P0>(hcontext: usize, szreadername: P0, pbicon: *mut u8, pcbicon: &mut u32) -> i32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -3344,7 +3344,7 @@ where } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] -pub unsafe fn SCardGetReaderIconW<'a, P0>(hcontext: usize, szreadername: P0, pbicon: ::core::option::Option<&mut u8>, pcbicon: &mut u32) -> i32 +pub unsafe fn SCardGetReaderIconW<'a, P0>(hcontext: usize, szreadername: P0, pbicon: *mut u8, pcbicon: &mut u32) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -3466,21 +3466,21 @@ pub unsafe fn SCardIsValidContext(hcontext: usize) -> i32 { } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] -pub unsafe fn SCardListCardsA(hcontext: usize, pbatr: ::core::option::Option<&u8>, rgquidinterfaces: &[::windows::core::GUID], mszcards: ::windows::core::PSTR, pcchcards: &mut u32) -> i32 { +pub unsafe fn SCardListCardsA(hcontext: usize, pbatr: ::core::option::Option<&u8>, rgquidinterfaces: ::core::option::Option<&[::windows::core::GUID]>, mszcards: ::windows::core::PSTR, pcchcards: &mut u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SCardListCardsA(hcontext: usize, pbatr: *const u8, rgquidinterfaces: *const ::windows::core::GUID, cguidinterfacecount: u32, mszcards: ::windows::core::PSTR, pcchcards: *mut u32) -> i32; } - SCardListCardsA(hcontext, ::core::mem::transmute(pbatr), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgquidinterfaces)), rgquidinterfaces.len() as _, ::core::mem::transmute(mszcards), ::core::mem::transmute(pcchcards)) + SCardListCardsA(hcontext, ::core::mem::transmute(pbatr), ::core::mem::transmute(rgquidinterfaces.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rgquidinterfaces.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(mszcards), ::core::mem::transmute(pcchcards)) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] -pub unsafe fn SCardListCardsW(hcontext: usize, pbatr: ::core::option::Option<&u8>, rgquidinterfaces: &[::windows::core::GUID], mszcards: ::windows::core::PWSTR, pcchcards: &mut u32) -> i32 { +pub unsafe fn SCardListCardsW(hcontext: usize, pbatr: ::core::option::Option<&u8>, rgquidinterfaces: ::core::option::Option<&[::windows::core::GUID]>, mszcards: ::windows::core::PWSTR, pcchcards: &mut u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SCardListCardsW(hcontext: usize, pbatr: *const u8, rgquidinterfaces: *const ::windows::core::GUID, cguidinterfacecount: u32, mszcards: ::windows::core::PWSTR, pcchcards: *mut u32) -> i32; } - SCardListCardsW(hcontext, ::core::mem::transmute(pbatr), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgquidinterfaces)), rgquidinterfaces.len() as _, ::core::mem::transmute(mszcards), ::core::mem::transmute(pcchcards)) + SCardListCardsW(hcontext, ::core::mem::transmute(pbatr), ::core::mem::transmute(rgquidinterfaces.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rgquidinterfaces.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(mszcards), ::core::mem::transmute(pcchcards)) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] @@ -3616,7 +3616,7 @@ where } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] -pub unsafe fn SCardReadCacheA<'a, P0>(hcontext: usize, cardidentifier: &::windows::core::GUID, freshnesscounter: u32, lookupname: P0, data: &mut u8, datalen: &mut u32) -> i32 +pub unsafe fn SCardReadCacheA<'a, P0>(hcontext: usize, cardidentifier: &::windows::core::GUID, freshnesscounter: u32, lookupname: P0, data: *mut u8, datalen: &mut u32) -> i32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -3628,7 +3628,7 @@ where } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] -pub unsafe fn SCardReadCacheW<'a, P0>(hcontext: usize, cardidentifier: &::windows::core::GUID, freshnesscounter: u32, lookupname: P0, data: &mut u8, datalen: &mut u32) -> i32 +pub unsafe fn SCardReadCacheW<'a, P0>(hcontext: usize, cardidentifier: &::windows::core::GUID, freshnesscounter: u32, lookupname: P0, data: *mut u8, datalen: &mut u32) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -3693,12 +3693,12 @@ where } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] -pub unsafe fn SCardSetAttrib(hcard: usize, dwattrid: u32, pbattr: &u8, cbattrlen: u32) -> i32 { +pub unsafe fn SCardSetAttrib(hcard: usize, dwattrid: u32, pbattr: &[u8]) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SCardSetAttrib(hcard: usize, dwattrid: u32, pbattr: *const u8, cbattrlen: u32) -> i32; } - SCardSetAttrib(hcard, dwattrid, ::core::mem::transmute(pbattr), cbattrlen) + SCardSetAttrib(hcard, dwattrid, ::core::mem::transmute(pbattr.as_ptr()), pbattr.len() as _) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] @@ -3728,7 +3728,7 @@ where } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] -pub unsafe fn SCardState(hcard: usize, pdwstate: &mut u32, pdwprotocol: &mut u32, pbatr: &mut u8, pcbatrlen: &mut u32) -> i32 { +pub unsafe fn SCardState(hcard: usize, pdwstate: &mut u32, pdwprotocol: &mut u32, pbatr: *mut u8, pcbatrlen: &mut u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SCardState(hcard: usize, pdwstate: *mut u32, pdwprotocol: *mut u32, pbatr: *mut u8, pcbatrlen: *mut u32) -> i32; @@ -3755,12 +3755,12 @@ pub unsafe fn SCardStatusW(hcard: usize, mszreadernames: ::windows::core::PWSTR, } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] -pub unsafe fn SCardTransmit(hcard: usize, piosendpci: &SCARD_IO_REQUEST, pbsendbuffer: &u8, cbsendlength: u32, piorecvpci: ::core::option::Option<&mut SCARD_IO_REQUEST>, pbrecvbuffer: &mut u8, pcbrecvlength: &mut u32) -> i32 { +pub unsafe fn SCardTransmit(hcard: usize, piosendpci: &SCARD_IO_REQUEST, pbsendbuffer: &[u8], piorecvpci: ::core::option::Option<&mut SCARD_IO_REQUEST>, pbrecvbuffer: *mut u8, pcbrecvlength: &mut u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SCardTransmit(hcard: usize, piosendpci: *const SCARD_IO_REQUEST, pbsendbuffer: *const u8, cbsendlength: u32, piorecvpci: *mut SCARD_IO_REQUEST, pbrecvbuffer: *mut u8, pcbrecvlength: *mut u32) -> i32; } - SCardTransmit(hcard, ::core::mem::transmute(piosendpci), ::core::mem::transmute(pbsendbuffer), cbsendlength, ::core::mem::transmute(piorecvpci), ::core::mem::transmute(pbrecvbuffer), ::core::mem::transmute(pcbrecvlength)) + SCardTransmit(hcard, ::core::mem::transmute(piosendpci), ::core::mem::transmute(pbsendbuffer.as_ptr()), pbsendbuffer.len() as _, ::core::mem::transmute(piorecvpci), ::core::mem::transmute(pbrecvbuffer), ::core::mem::transmute(pcbrecvlength)) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] @@ -3784,7 +3784,7 @@ pub unsafe fn SCardUIDlgSelectCardW(param0: &mut OPENCARDNAME_EXW) -> i32 { } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] -pub unsafe fn SCardWriteCacheA<'a, P0>(hcontext: usize, cardidentifier: &::windows::core::GUID, freshnesscounter: u32, lookupname: P0, data: &u8, datalen: u32) -> i32 +pub unsafe fn SCardWriteCacheA<'a, P0>(hcontext: usize, cardidentifier: &::windows::core::GUID, freshnesscounter: u32, lookupname: P0, data: &[u8]) -> i32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -3792,11 +3792,11 @@ where extern "system" { fn SCardWriteCacheA(hcontext: usize, cardidentifier: *const ::windows::core::GUID, freshnesscounter: u32, lookupname: ::windows::core::PCSTR, data: *const u8, datalen: u32) -> i32; } - SCardWriteCacheA(hcontext, ::core::mem::transmute(cardidentifier), freshnesscounter, lookupname.into(), ::core::mem::transmute(data), datalen) + SCardWriteCacheA(hcontext, ::core::mem::transmute(cardidentifier), freshnesscounter, lookupname.into(), ::core::mem::transmute(data.as_ptr()), data.len() as _) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] #[inline] -pub unsafe fn SCardWriteCacheW<'a, P0>(hcontext: usize, cardidentifier: &::windows::core::GUID, freshnesscounter: u32, lookupname: P0, data: &u8, datalen: u32) -> i32 +pub unsafe fn SCardWriteCacheW<'a, P0>(hcontext: usize, cardidentifier: &::windows::core::GUID, freshnesscounter: u32, lookupname: P0, data: &[u8]) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -3804,7 +3804,7 @@ where extern "system" { fn SCardWriteCacheW(hcontext: usize, cardidentifier: *const ::windows::core::GUID, freshnesscounter: u32, lookupname: ::windows::core::PCWSTR, data: *const u8, datalen: u32) -> i32; } - SCardWriteCacheW(hcontext, ::core::mem::transmute(cardidentifier), freshnesscounter, lookupname.into(), ::core::mem::transmute(data), datalen) + SCardWriteCacheW(hcontext, ::core::mem::transmute(cardidentifier), freshnesscounter, lookupname.into(), ::core::mem::transmute(data.as_ptr()), data.len() as _) } #[doc = "*Required features: `\"Win32_Security_Credentials\"`*"] pub const SECPKG_ALT_ATTR: u32 = 2147483648u32; diff --git a/crates/libs/windows/src/Windows/Win32/Security/Cryptography/Catalog/mod.rs b/crates/libs/windows/src/Windows/Win32/Security/Cryptography/Catalog/mod.rs index 1be43946e1..6126b23978 100644 --- a/crates/libs/windows/src/Windows/Win32/Security/Cryptography/Catalog/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Security/Cryptography/Catalog/mod.rs @@ -400,7 +400,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptCATAdminCalcHashFromFileHandle<'a, P0>(hfile: P0, pcbhash: &mut u32, pbhash: ::core::option::Option<&mut u8>, dwflags: u32) -> super::super::super::Foundation::BOOL +pub unsafe fn CryptCATAdminCalcHashFromFileHandle<'a, P0>(hfile: P0, pcbhash: &mut u32, pbhash: *mut u8, dwflags: u32) -> super::super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -413,7 +413,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptCATAdminCalcHashFromFileHandle2<'a, P0>(hcatadmin: isize, hfile: P0, pcbhash: &mut u32, pbhash: ::core::option::Option<&mut u8>, dwflags: u32) -> super::super::super::Foundation::BOOL +pub unsafe fn CryptCATAdminCalcHashFromFileHandle2<'a, P0>(hcatadmin: isize, hfile: P0, pcbhash: &mut u32, pbhash: *mut u8, dwflags: u32) -> super::super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -425,12 +425,12 @@ where } #[doc = "*Required features: `\"Win32_Security_Cryptography_Catalog\"`*"] #[inline] -pub unsafe fn CryptCATAdminEnumCatalogFromHash(hcatadmin: isize, pbhash: &u8, cbhash: u32, dwflags: u32, phprevcatinfo: ::core::option::Option<&mut isize>) -> isize { +pub unsafe fn CryptCATAdminEnumCatalogFromHash(hcatadmin: isize, pbhash: &[u8], dwflags: u32, phprevcatinfo: ::core::option::Option<&mut isize>) -> isize { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptCATAdminEnumCatalogFromHash(hcatadmin: isize, pbhash: *const u8, cbhash: u32, dwflags: u32, phprevcatinfo: *mut isize) -> isize; } - CryptCATAdminEnumCatalogFromHash(hcatadmin, ::core::mem::transmute(pbhash), cbhash, dwflags, ::core::mem::transmute(phprevcatinfo)) + CryptCATAdminEnumCatalogFromHash(hcatadmin, ::core::mem::transmute(pbhash.as_ptr()), pbhash.len() as _, dwflags, ::core::mem::transmute(phprevcatinfo)) } #[doc = "*Required features: `\"Win32_Security_Cryptography_Catalog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Security/Cryptography/Certificates/mod.rs b/crates/libs/windows/src/Windows/Win32/Security/Cryptography/Certificates/mod.rs index eeb7e7d339..41b2a0e128 100644 --- a/crates/libs/windows/src/Windows/Win32/Security/Cryptography/Certificates/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Security/Cryptography/Certificates/mod.rs @@ -33402,7 +33402,7 @@ pub unsafe fn PstGetCertificateChain(pcert: &super::CERT_CONTEXT, ptrustedissuer #[doc = "*Required features: `\"Win32_Security_Cryptography_Certificates\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PstGetCertificates<'a, P0>(ptargetname: &super::super::super::Foundation::UNICODE_STRING, rgpcriteria: &[super::CERT_SELECT_CRITERIA], bisclient: P0, pdwcertchaincontextcount: &mut u32, ppcertchaincontexts: &mut *mut *mut super::CERT_CHAIN_CONTEXT) -> ::windows::core::Result<()> +pub unsafe fn PstGetCertificates<'a, P0>(ptargetname: &super::super::super::Foundation::UNICODE_STRING, rgpcriteria: ::core::option::Option<&[super::CERT_SELECT_CRITERIA]>, bisclient: P0, pdwcertchaincontextcount: &mut u32, ppcertchaincontexts: &mut *mut *mut super::CERT_CHAIN_CONTEXT) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -33410,27 +33410,27 @@ where extern "system" { fn PstGetCertificates(ptargetname: *const super::super::super::Foundation::UNICODE_STRING, ccriteria: u32, rgpcriteria: *const super::CERT_SELECT_CRITERIA, bisclient: super::super::super::Foundation::BOOL, pdwcertchaincontextcount: *mut u32, ppcertchaincontexts: *mut *mut *mut super::CERT_CHAIN_CONTEXT) -> super::super::super::Foundation::NTSTATUS; } - PstGetCertificates(::core::mem::transmute(ptargetname), rgpcriteria.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpcriteria)), bisclient.into(), ::core::mem::transmute(pdwcertchaincontextcount), ::core::mem::transmute(ppcertchaincontexts)).ok() + PstGetCertificates(::core::mem::transmute(ptargetname), rgpcriteria.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpcriteria.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bisclient.into(), ::core::mem::transmute(pdwcertchaincontextcount), ::core::mem::transmute(ppcertchaincontexts)).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography_Certificates\"`, `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] #[inline] -pub unsafe fn PstGetTrustAnchors(ptargetname: &super::super::super::Foundation::UNICODE_STRING, rgpcriteria: &[super::CERT_SELECT_CRITERIA], pptrustedissuers: &mut *mut super::super::Authentication::Identity::SecPkgContext_IssuerListInfoEx) -> ::windows::core::Result<()> { +pub unsafe fn PstGetTrustAnchors(ptargetname: &super::super::super::Foundation::UNICODE_STRING, rgpcriteria: ::core::option::Option<&[super::CERT_SELECT_CRITERIA]>, pptrustedissuers: &mut *mut super::super::Authentication::Identity::SecPkgContext_IssuerListInfoEx) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PstGetTrustAnchors(ptargetname: *const super::super::super::Foundation::UNICODE_STRING, ccriteria: u32, rgpcriteria: *const super::CERT_SELECT_CRITERIA, pptrustedissuers: *mut *mut super::super::Authentication::Identity::SecPkgContext_IssuerListInfoEx) -> super::super::super::Foundation::NTSTATUS; } - PstGetTrustAnchors(::core::mem::transmute(ptargetname), rgpcriteria.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpcriteria)), ::core::mem::transmute(pptrustedissuers)).ok() + PstGetTrustAnchors(::core::mem::transmute(ptargetname), rgpcriteria.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpcriteria.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pptrustedissuers)).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography_Certificates\"`, `\"Win32_Foundation\"`, `\"Win32_Security_Authentication_Identity\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Authentication_Identity"))] #[inline] -pub unsafe fn PstGetTrustAnchorsEx(ptargetname: &super::super::super::Foundation::UNICODE_STRING, rgpcriteria: &[super::CERT_SELECT_CRITERIA], pcertcontext: ::core::option::Option<&super::CERT_CONTEXT>, pptrustedissuers: &mut *mut super::super::Authentication::Identity::SecPkgContext_IssuerListInfoEx) -> ::windows::core::Result<()> { +pub unsafe fn PstGetTrustAnchorsEx(ptargetname: &super::super::super::Foundation::UNICODE_STRING, rgpcriteria: ::core::option::Option<&[super::CERT_SELECT_CRITERIA]>, pcertcontext: ::core::option::Option<&super::CERT_CONTEXT>, pptrustedissuers: &mut *mut super::super::Authentication::Identity::SecPkgContext_IssuerListInfoEx) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PstGetTrustAnchorsEx(ptargetname: *const super::super::super::Foundation::UNICODE_STRING, ccriteria: u32, rgpcriteria: *const super::CERT_SELECT_CRITERIA, pcertcontext: *const super::CERT_CONTEXT, pptrustedissuers: *mut *mut super::super::Authentication::Identity::SecPkgContext_IssuerListInfoEx) -> super::super::super::Foundation::NTSTATUS; } - PstGetTrustAnchorsEx(::core::mem::transmute(ptargetname), rgpcriteria.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpcriteria)), ::core::mem::transmute(pcertcontext), ::core::mem::transmute(pptrustedissuers)).ok() + PstGetTrustAnchorsEx(::core::mem::transmute(ptargetname), rgpcriteria.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpcriteria.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcertcontext), ::core::mem::transmute(pptrustedissuers)).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography_Certificates\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Security/Cryptography/Sip/mod.rs b/crates/libs/windows/src/Windows/Win32/Security/Cryptography/Sip/mod.rs index 1daf2508ae..fdebf7fe1f 100644 --- a/crates/libs/windows/src/Windows/Win32/Security/Cryptography/Sip/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Security/Cryptography/Sip/mod.rs @@ -31,12 +31,12 @@ pub unsafe fn CryptSIPGetCaps(psubjinfo: &SIP_SUBJECTINFO, pcaps: &mut SIP_CAP_S #[doc = "*Required features: `\"Win32_Security_Cryptography_Sip\"`, `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] #[inline] -pub unsafe fn CryptSIPGetSealedDigest(psubjectinfo: &SIP_SUBJECTINFO, psig: &[u8], pbdigest: ::core::option::Option<&mut u8>, pcbdigest: &mut u32) -> super::super::super::Foundation::BOOL { +pub unsafe fn CryptSIPGetSealedDigest(psubjectinfo: &SIP_SUBJECTINFO, psig: ::core::option::Option<&[u8]>, pbdigest: *mut u8, pcbdigest: &mut u32) -> super::super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptSIPGetSealedDigest(psubjectinfo: *const SIP_SUBJECTINFO, psig: *const u8, dwsig: u32, pbdigest: *mut u8, pcbdigest: *mut u32) -> super::super::super::Foundation::BOOL; } - CryptSIPGetSealedDigest(::core::mem::transmute(psubjectinfo), ::core::mem::transmute(::windows::core::as_ptr_or_null(psig)), psig.len() as _, ::core::mem::transmute(pbdigest), ::core::mem::transmute(pcbdigest)) + CryptSIPGetSealedDigest(::core::mem::transmute(psubjectinfo), ::core::mem::transmute(psig.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psig.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbdigest), ::core::mem::transmute(pcbdigest)) } #[doc = "*Required features: `\"Win32_Security_Cryptography_Sip\"`, `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography_Catalog\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography_Catalog"))] diff --git a/crates/libs/windows/src/Windows/Win32/Security/Cryptography/mod.rs b/crates/libs/windows/src/Windows/Win32/Security/Cryptography/mod.rs index 1e929c76ee..35f9e2da32 100644 --- a/crates/libs/windows/src/Windows/Win32/Security/Cryptography/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Security/Cryptography/mod.rs @@ -2223,7 +2223,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptCreateHash<'a, P0>(halgorithm: P0, phhash: *mut *mut ::core::ffi::c_void, pbhashobject: ::core::option::Option<&mut u8>, cbhashobject: u32, pbsecret: ::core::option::Option<&u8>, cbsecret: u32, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn BCryptCreateHash<'a, P0>(halgorithm: P0, phhash: *mut *mut ::core::ffi::c_void, pbhashobject: ::core::option::Option<&mut u8>, cbhashobject: u32, pbsecret: ::core::option::Option<&[u8]>, dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2231,12 +2231,12 @@ where extern "system" { fn BCryptCreateHash(halgorithm: BCRYPT_ALG_HANDLE, phhash: *mut *mut ::core::ffi::c_void, pbhashobject: *mut u8, cbhashobject: u32, pbsecret: *const u8, cbsecret: u32, dwflags: u32) -> super::super::Foundation::NTSTATUS; } - BCryptCreateHash(halgorithm.into(), ::core::mem::transmute(phhash), ::core::mem::transmute(pbhashobject), cbhashobject, ::core::mem::transmute(pbsecret), cbsecret, dwflags).ok() + BCryptCreateHash(halgorithm.into(), ::core::mem::transmute(phhash), ::core::mem::transmute(pbhashobject), cbhashobject, ::core::mem::transmute(pbsecret.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbsecret.as_deref().map_or(0, |slice| slice.len() as _), dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptCreateMultiHash<'a, P0>(halgorithm: P0, phhash: *mut *mut ::core::ffi::c_void, nhashes: u32, pbhashobject: ::core::option::Option<&mut u8>, cbhashobject: u32, pbsecret: ::core::option::Option<&u8>, cbsecret: u32, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn BCryptCreateMultiHash<'a, P0>(halgorithm: P0, phhash: *mut *mut ::core::ffi::c_void, nhashes: u32, pbhashobject: ::core::option::Option<&mut u8>, cbhashobject: u32, pbsecret: ::core::option::Option<&[u8]>, dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2244,12 +2244,12 @@ where extern "system" { fn BCryptCreateMultiHash(halgorithm: BCRYPT_ALG_HANDLE, phhash: *mut *mut ::core::ffi::c_void, nhashes: u32, pbhashobject: *mut u8, cbhashobject: u32, pbsecret: *const u8, cbsecret: u32, dwflags: u32) -> super::super::Foundation::NTSTATUS; } - BCryptCreateMultiHash(halgorithm.into(), ::core::mem::transmute(phhash), nhashes, ::core::mem::transmute(pbhashobject), cbhashobject, ::core::mem::transmute(pbsecret), cbsecret, dwflags).ok() + BCryptCreateMultiHash(halgorithm.into(), ::core::mem::transmute(phhash), nhashes, ::core::mem::transmute(pbhashobject), cbhashobject, ::core::mem::transmute(pbsecret.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbsecret.as_deref().map_or(0, |slice| slice.len() as _), dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptDecrypt<'a, P0>(hkey: P0, pbinput: ::core::option::Option<&u8>, cbinput: u32, ppaddinginfo: *const ::core::ffi::c_void, pbiv: ::core::option::Option<&mut u8>, cbiv: u32, pboutput: ::core::option::Option<&mut u8>, cboutput: u32, pcbresult: &mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> +pub unsafe fn BCryptDecrypt<'a, P0>(hkey: P0, pbinput: ::core::option::Option<&[u8]>, ppaddinginfo: *const ::core::ffi::c_void, pbiv: ::core::option::Option<&mut [u8]>, pboutput: ::core::option::Option<&mut [u8]>, pcbresult: &mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2257,7 +2257,19 @@ where extern "system" { fn BCryptDecrypt(hkey: BCRYPT_KEY_HANDLE, pbinput: *const u8, cbinput: u32, ppaddinginfo: *const ::core::ffi::c_void, pbiv: *mut u8, cbiv: u32, pboutput: *mut u8, cboutput: u32, pcbresult: *mut u32, dwflags: NCRYPT_FLAGS) -> super::super::Foundation::NTSTATUS; } - BCryptDecrypt(hkey.into(), ::core::mem::transmute(pbinput), cbinput, ::core::mem::transmute(ppaddinginfo), ::core::mem::transmute(pbiv), cbiv, ::core::mem::transmute(pboutput), cboutput, ::core::mem::transmute(pcbresult), dwflags).ok() + BCryptDecrypt( + hkey.into(), + ::core::mem::transmute(pbinput.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pbinput.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(ppaddinginfo), + ::core::mem::transmute(pbiv.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pbiv.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pboutput.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pboutput.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pcbresult), + dwflags, + ) + .ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2275,7 +2287,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptDeriveKey<'a, P0>(hsharedsecret: *const ::core::ffi::c_void, pwszkdf: P0, pparameterlist: ::core::option::Option<&BCryptBufferDesc>, pbderivedkey: ::core::option::Option<&mut u8>, cbderivedkey: u32, pcbresult: &mut u32, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn BCryptDeriveKey<'a, P0>(hsharedsecret: *const ::core::ffi::c_void, pwszkdf: P0, pparameterlist: ::core::option::Option<&BCryptBufferDesc>, pbderivedkey: ::core::option::Option<&mut [u8]>, pcbresult: &mut u32, dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2283,12 +2295,12 @@ where extern "system" { fn BCryptDeriveKey(hsharedsecret: *const ::core::ffi::c_void, pwszkdf: ::windows::core::PCWSTR, pparameterlist: *const BCryptBufferDesc, pbderivedkey: *mut u8, cbderivedkey: u32, pcbresult: *mut u32, dwflags: u32) -> super::super::Foundation::NTSTATUS; } - BCryptDeriveKey(::core::mem::transmute(hsharedsecret), pwszkdf.into(), ::core::mem::transmute(pparameterlist), ::core::mem::transmute(pbderivedkey), cbderivedkey, ::core::mem::transmute(pcbresult), dwflags).ok() + BCryptDeriveKey(::core::mem::transmute(hsharedsecret), pwszkdf.into(), ::core::mem::transmute(pparameterlist), ::core::mem::transmute(pbderivedkey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbderivedkey.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbresult), dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptDeriveKeyCapi<'a, P0>(hhash: *const ::core::ffi::c_void, htargetalg: P0, pbderivedkey: &mut u8, cbderivedkey: u32, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn BCryptDeriveKeyCapi<'a, P0>(hhash: *const ::core::ffi::c_void, htargetalg: P0, pbderivedkey: &mut [u8], dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2296,12 +2308,12 @@ where extern "system" { fn BCryptDeriveKeyCapi(hhash: *const ::core::ffi::c_void, htargetalg: BCRYPT_ALG_HANDLE, pbderivedkey: *mut u8, cbderivedkey: u32, dwflags: u32) -> super::super::Foundation::NTSTATUS; } - BCryptDeriveKeyCapi(::core::mem::transmute(hhash), htargetalg.into(), ::core::mem::transmute(pbderivedkey), cbderivedkey, dwflags).ok() + BCryptDeriveKeyCapi(::core::mem::transmute(hhash), htargetalg.into(), ::core::mem::transmute(pbderivedkey.as_ptr()), pbderivedkey.len() as _, dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptDeriveKeyPBKDF2<'a, P0>(hprf: P0, pbpassword: ::core::option::Option<&u8>, cbpassword: u32, pbsalt: ::core::option::Option<&u8>, cbsalt: u32, citerations: u64, pbderivedkey: &mut u8, cbderivedkey: u32, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn BCryptDeriveKeyPBKDF2<'a, P0>(hprf: P0, pbpassword: ::core::option::Option<&[u8]>, pbsalt: ::core::option::Option<&[u8]>, citerations: u64, pbderivedkey: &mut [u8], dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2309,7 +2321,7 @@ where extern "system" { fn BCryptDeriveKeyPBKDF2(hprf: BCRYPT_ALG_HANDLE, pbpassword: *const u8, cbpassword: u32, pbsalt: *const u8, cbsalt: u32, citerations: u64, pbderivedkey: *mut u8, cbderivedkey: u32, dwflags: u32) -> super::super::Foundation::NTSTATUS; } - BCryptDeriveKeyPBKDF2(hprf.into(), ::core::mem::transmute(pbpassword), cbpassword, ::core::mem::transmute(pbsalt), cbsalt, citerations, ::core::mem::transmute(pbderivedkey), cbderivedkey, dwflags).ok() + BCryptDeriveKeyPBKDF2(hprf.into(), ::core::mem::transmute(pbpassword.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbpassword.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbsalt.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbsalt.as_deref().map_or(0, |slice| slice.len() as _), citerations, ::core::mem::transmute(pbderivedkey.as_ptr()), pbderivedkey.len() as _, dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2370,7 +2382,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptEncrypt<'a, P0>(hkey: P0, pbinput: ::core::option::Option<&u8>, cbinput: u32, ppaddinginfo: *const ::core::ffi::c_void, pbiv: ::core::option::Option<&mut u8>, cbiv: u32, pboutput: ::core::option::Option<&mut u8>, cboutput: u32, pcbresult: &mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> +pub unsafe fn BCryptEncrypt<'a, P0>(hkey: P0, pbinput: ::core::option::Option<&[u8]>, ppaddinginfo: *const ::core::ffi::c_void, pbiv: ::core::option::Option<&mut [u8]>, pboutput: ::core::option::Option<&mut [u8]>, pcbresult: &mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2378,7 +2390,19 @@ where extern "system" { fn BCryptEncrypt(hkey: BCRYPT_KEY_HANDLE, pbinput: *const u8, cbinput: u32, ppaddinginfo: *const ::core::ffi::c_void, pbiv: *mut u8, cbiv: u32, pboutput: *mut u8, cboutput: u32, pcbresult: *mut u32, dwflags: NCRYPT_FLAGS) -> super::super::Foundation::NTSTATUS; } - BCryptEncrypt(hkey.into(), ::core::mem::transmute(pbinput), cbinput, ::core::mem::transmute(ppaddinginfo), ::core::mem::transmute(pbiv), cbiv, ::core::mem::transmute(pboutput), cboutput, ::core::mem::transmute(pcbresult), dwflags).ok() + BCryptEncrypt( + hkey.into(), + ::core::mem::transmute(pbinput.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pbinput.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(ppaddinginfo), + ::core::mem::transmute(pbiv.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pbiv.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pboutput.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pboutput.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pcbresult), + dwflags, + ) + .ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2393,7 +2417,7 @@ pub unsafe fn BCryptEnumAlgorithms(dwalgoperations: BCRYPT_OPERATION, palgcount: #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptEnumContextFunctionProviders<'a, P0, P1>(dwtable: BCRYPT_TABLE, pszcontext: P0, dwinterface: BCRYPT_INTERFACE, pszfunction: P1, pcbbuffer: &mut u32, ppbuffer: &mut *mut CRYPT_CONTEXT_FUNCTION_PROVIDERS) -> ::windows::core::Result<()> +pub unsafe fn BCryptEnumContextFunctionProviders<'a, P0, P1>(dwtable: BCRYPT_TABLE, pszcontext: P0, dwinterface: BCRYPT_INTERFACE, pszfunction: P1, pcbbuffer: &mut u32, ppbuffer: *mut *mut CRYPT_CONTEXT_FUNCTION_PROVIDERS) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -2407,7 +2431,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptEnumContextFunctions<'a, P0>(dwtable: BCRYPT_TABLE, pszcontext: P0, dwinterface: BCRYPT_INTERFACE, pcbbuffer: &mut u32, ppbuffer: &mut *mut CRYPT_CONTEXT_FUNCTIONS) -> ::windows::core::Result<()> +pub unsafe fn BCryptEnumContextFunctions<'a, P0>(dwtable: BCRYPT_TABLE, pszcontext: P0, dwinterface: BCRYPT_INTERFACE, pcbbuffer: &mut u32, ppbuffer: *mut *mut CRYPT_CONTEXT_FUNCTIONS) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2420,7 +2444,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptEnumContexts(dwtable: BCRYPT_TABLE, pcbbuffer: &mut u32, ppbuffer: &mut *mut CRYPT_CONTEXTS) -> ::windows::core::Result<()> { +pub unsafe fn BCryptEnumContexts(dwtable: BCRYPT_TABLE, pcbbuffer: &mut u32, ppbuffer: *mut *mut CRYPT_CONTEXTS) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn BCryptEnumContexts(dwtable: BCRYPT_TABLE, pcbbuffer: *mut u32, ppbuffer: *mut *mut CRYPT_CONTEXTS) -> super::super::Foundation::NTSTATUS; @@ -2443,7 +2467,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptEnumRegisteredProviders(pcbbuffer: &mut u32, ppbuffer: &mut *mut CRYPT_PROVIDERS) -> ::windows::core::Result<()> { +pub unsafe fn BCryptEnumRegisteredProviders(pcbbuffer: &mut u32, ppbuffer: *mut *mut CRYPT_PROVIDERS) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn BCryptEnumRegisteredProviders(pcbbuffer: *mut u32, ppbuffer: *mut *mut CRYPT_PROVIDERS) -> super::super::Foundation::NTSTATUS; @@ -2453,7 +2477,7 @@ pub unsafe fn BCryptEnumRegisteredProviders(pcbbuffer: &mut u32, ppbuffer: &mut #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptExportKey<'a, P0, P1, P2>(hkey: P0, hexportkey: P1, pszblobtype: P2, pboutput: ::core::option::Option<&mut u8>, cboutput: u32, pcbresult: &mut u32, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn BCryptExportKey<'a, P0, P1, P2>(hkey: P0, hexportkey: P1, pszblobtype: P2, pboutput: ::core::option::Option<&mut [u8]>, pcbresult: &mut u32, dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -2463,7 +2487,7 @@ where extern "system" { fn BCryptExportKey(hkey: BCRYPT_KEY_HANDLE, hexportkey: BCRYPT_KEY_HANDLE, pszblobtype: ::windows::core::PCWSTR, pboutput: *mut u8, cboutput: u32, pcbresult: *mut u32, dwflags: u32) -> super::super::Foundation::NTSTATUS; } - BCryptExportKey(hkey.into(), hexportkey.into(), pszblobtype.into(), ::core::mem::transmute(pboutput), cboutput, ::core::mem::transmute(pcbresult), dwflags).ok() + BCryptExportKey(hkey.into(), hexportkey.into(), pszblobtype.into(), ::core::mem::transmute(pboutput.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pboutput.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbresult), dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2500,7 +2524,7 @@ pub unsafe fn BCryptFreeBuffer(pvbuffer: *const ::core::ffi::c_void) { #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptGenRandom<'a, P0>(halgorithm: P0, pbbuffer: &mut u8, cbbuffer: u32, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn BCryptGenRandom<'a, P0>(halgorithm: P0, pbbuffer: &mut [u8], dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2508,7 +2532,7 @@ where extern "system" { fn BCryptGenRandom(halgorithm: BCRYPT_ALG_HANDLE, pbbuffer: *mut u8, cbbuffer: u32, dwflags: u32) -> super::super::Foundation::NTSTATUS; } - BCryptGenRandom(halgorithm.into(), ::core::mem::transmute(pbbuffer), cbbuffer, dwflags).ok() + BCryptGenRandom(halgorithm.into(), ::core::mem::transmute(pbbuffer.as_ptr()), pbbuffer.len() as _, dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2526,7 +2550,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptGenerateSymmetricKey<'a, P0>(halgorithm: P0, phkey: &mut BCRYPT_KEY_HANDLE, pbkeyobject: ::core::option::Option<&mut u8>, cbkeyobject: u32, pbsecret: &u8, cbsecret: u32, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn BCryptGenerateSymmetricKey<'a, P0>(halgorithm: P0, phkey: &mut BCRYPT_KEY_HANDLE, pbkeyobject: ::core::option::Option<&mut u8>, cbkeyobject: u32, pbsecret: &[u8], dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2534,7 +2558,7 @@ where extern "system" { fn BCryptGenerateSymmetricKey(halgorithm: BCRYPT_ALG_HANDLE, phkey: *mut BCRYPT_KEY_HANDLE, pbkeyobject: *mut u8, cbkeyobject: u32, pbsecret: *const u8, cbsecret: u32, dwflags: u32) -> super::super::Foundation::NTSTATUS; } - BCryptGenerateSymmetricKey(halgorithm.into(), ::core::mem::transmute(phkey), ::core::mem::transmute(pbkeyobject), cbkeyobject, ::core::mem::transmute(pbsecret), cbsecret, dwflags).ok() + BCryptGenerateSymmetricKey(halgorithm.into(), ::core::mem::transmute(phkey), ::core::mem::transmute(pbkeyobject), cbkeyobject, ::core::mem::transmute(pbsecret.as_ptr()), pbsecret.len() as _, dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2549,7 +2573,7 @@ pub unsafe fn BCryptGetFipsAlgorithmMode(pfenabled: &mut u8) -> ::windows::core: #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptGetProperty<'a, P0>(hobject: *const ::core::ffi::c_void, pszproperty: P0, pboutput: ::core::option::Option<&mut u8>, cboutput: u32, pcbresult: &mut u32, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn BCryptGetProperty<'a, P0>(hobject: *const ::core::ffi::c_void, pszproperty: P0, pboutput: ::core::option::Option<&mut [u8]>, pcbresult: &mut u32, dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2557,12 +2581,12 @@ where extern "system" { fn BCryptGetProperty(hobject: *const ::core::ffi::c_void, pszproperty: ::windows::core::PCWSTR, pboutput: *mut u8, cboutput: u32, pcbresult: *mut u32, dwflags: u32) -> super::super::Foundation::NTSTATUS; } - BCryptGetProperty(::core::mem::transmute(hobject), pszproperty.into(), ::core::mem::transmute(pboutput), cboutput, ::core::mem::transmute(pcbresult), dwflags).ok() + BCryptGetProperty(::core::mem::transmute(hobject), pszproperty.into(), ::core::mem::transmute(pboutput.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pboutput.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbresult), dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptHash<'a, P0>(halgorithm: P0, pbsecret: ::core::option::Option<&u8>, cbsecret: u32, pbinput: &u8, cbinput: u32, pboutput: &mut u8, cboutput: u32) -> ::windows::core::Result<()> +pub unsafe fn BCryptHash<'a, P0>(halgorithm: P0, pbsecret: ::core::option::Option<&[u8]>, pbinput: &[u8], pboutput: &mut u8, cboutput: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2570,22 +2594,22 @@ where extern "system" { fn BCryptHash(halgorithm: BCRYPT_ALG_HANDLE, pbsecret: *const u8, cbsecret: u32, pbinput: *const u8, cbinput: u32, pboutput: *mut u8, cboutput: u32) -> super::super::Foundation::NTSTATUS; } - BCryptHash(halgorithm.into(), ::core::mem::transmute(pbsecret), cbsecret, ::core::mem::transmute(pbinput), cbinput, ::core::mem::transmute(pboutput), cboutput).ok() + BCryptHash(halgorithm.into(), ::core::mem::transmute(pbsecret.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbsecret.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbinput.as_ptr()), pbinput.len() as _, ::core::mem::transmute(pboutput), cboutput).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptHashData(hhash: *mut ::core::ffi::c_void, pbinput: &u8, cbinput: u32, dwflags: u32) -> ::windows::core::Result<()> { +pub unsafe fn BCryptHashData(hhash: *mut ::core::ffi::c_void, pbinput: &[u8], dwflags: u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn BCryptHashData(hhash: *mut ::core::ffi::c_void, pbinput: *const u8, cbinput: u32, dwflags: u32) -> super::super::Foundation::NTSTATUS; } - BCryptHashData(::core::mem::transmute(hhash), ::core::mem::transmute(pbinput), cbinput, dwflags).ok() + BCryptHashData(::core::mem::transmute(hhash), ::core::mem::transmute(pbinput.as_ptr()), pbinput.len() as _, dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptImportKey<'a, P0, P1, P2>(halgorithm: P0, himportkey: P1, pszblobtype: P2, phkey: &mut BCRYPT_KEY_HANDLE, pbkeyobject: ::core::option::Option<&mut u8>, cbkeyobject: u32, pbinput: &u8, cbinput: u32, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn BCryptImportKey<'a, P0, P1, P2>(halgorithm: P0, himportkey: P1, pszblobtype: P2, phkey: &mut BCRYPT_KEY_HANDLE, pbkeyobject: ::core::option::Option<&mut u8>, cbkeyobject: u32, pbinput: &[u8], dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -2595,12 +2619,12 @@ where extern "system" { fn BCryptImportKey(halgorithm: BCRYPT_ALG_HANDLE, himportkey: BCRYPT_KEY_HANDLE, pszblobtype: ::windows::core::PCWSTR, phkey: *mut BCRYPT_KEY_HANDLE, pbkeyobject: *mut u8, cbkeyobject: u32, pbinput: *const u8, cbinput: u32, dwflags: u32) -> super::super::Foundation::NTSTATUS; } - BCryptImportKey(halgorithm.into(), himportkey.into(), pszblobtype.into(), ::core::mem::transmute(phkey), ::core::mem::transmute(pbkeyobject), cbkeyobject, ::core::mem::transmute(pbinput), cbinput, dwflags).ok() + BCryptImportKey(halgorithm.into(), himportkey.into(), pszblobtype.into(), ::core::mem::transmute(phkey), ::core::mem::transmute(pbkeyobject), cbkeyobject, ::core::mem::transmute(pbinput.as_ptr()), pbinput.len() as _, dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptImportKeyPair<'a, P0, P1, P2>(halgorithm: P0, himportkey: P1, pszblobtype: P2, phkey: &mut BCRYPT_KEY_HANDLE, pbinput: &u8, cbinput: u32, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn BCryptImportKeyPair<'a, P0, P1, P2>(halgorithm: P0, himportkey: P1, pszblobtype: P2, phkey: &mut BCRYPT_KEY_HANDLE, pbinput: &[u8], dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -2610,12 +2634,12 @@ where extern "system" { fn BCryptImportKeyPair(halgorithm: BCRYPT_ALG_HANDLE, himportkey: BCRYPT_KEY_HANDLE, pszblobtype: ::windows::core::PCWSTR, phkey: *mut BCRYPT_KEY_HANDLE, pbinput: *const u8, cbinput: u32, dwflags: u32) -> super::super::Foundation::NTSTATUS; } - BCryptImportKeyPair(halgorithm.into(), himportkey.into(), pszblobtype.into(), ::core::mem::transmute(phkey), ::core::mem::transmute(pbinput), cbinput, dwflags).ok() + BCryptImportKeyPair(halgorithm.into(), himportkey.into(), pszblobtype.into(), ::core::mem::transmute(phkey), ::core::mem::transmute(pbinput.as_ptr()), pbinput.len() as _, dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptKeyDerivation<'a, P0>(hkey: P0, pparameterlist: ::core::option::Option<&BCryptBufferDesc>, pbderivedkey: &mut u8, cbderivedkey: u32, pcbresult: &mut u32, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn BCryptKeyDerivation<'a, P0>(hkey: P0, pparameterlist: ::core::option::Option<&BCryptBufferDesc>, pbderivedkey: &mut [u8], pcbresult: &mut u32, dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2623,7 +2647,7 @@ where extern "system" { fn BCryptKeyDerivation(hkey: BCRYPT_KEY_HANDLE, pparameterlist: *const BCryptBufferDesc, pbderivedkey: *mut u8, cbderivedkey: u32, pcbresult: *mut u32, dwflags: u32) -> super::super::Foundation::NTSTATUS; } - BCryptKeyDerivation(hkey.into(), ::core::mem::transmute(pparameterlist), ::core::mem::transmute(pbderivedkey), cbderivedkey, ::core::mem::transmute(pcbresult), dwflags).ok() + BCryptKeyDerivation(hkey.into(), ::core::mem::transmute(pparameterlist), ::core::mem::transmute(pbderivedkey.as_ptr()), pbderivedkey.len() as _, ::core::mem::transmute(pcbresult), dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2642,17 +2666,17 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptProcessMultiOperations(hobject: *mut ::core::ffi::c_void, operationtype: BCRYPT_MULTI_OPERATION_TYPE, poperations: *const ::core::ffi::c_void, cboperations: u32, dwflags: u32) -> ::windows::core::Result<()> { +pub unsafe fn BCryptProcessMultiOperations(hobject: *mut ::core::ffi::c_void, operationtype: BCRYPT_MULTI_OPERATION_TYPE, poperations: &[u8], dwflags: u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn BCryptProcessMultiOperations(hobject: *mut ::core::ffi::c_void, operationtype: BCRYPT_MULTI_OPERATION_TYPE, poperations: *const ::core::ffi::c_void, cboperations: u32, dwflags: u32) -> super::super::Foundation::NTSTATUS; } - BCryptProcessMultiOperations(::core::mem::transmute(hobject), operationtype, ::core::mem::transmute(poperations), cboperations, dwflags).ok() + BCryptProcessMultiOperations(::core::mem::transmute(hobject), operationtype, ::core::mem::transmute(poperations.as_ptr()), poperations.len() as _, dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptQueryContextConfiguration<'a, P0>(dwtable: BCRYPT_TABLE, pszcontext: P0, pcbbuffer: &mut u32, ppbuffer: &mut *mut CRYPT_CONTEXT_CONFIG) -> ::windows::core::Result<()> +pub unsafe fn BCryptQueryContextConfiguration<'a, P0>(dwtable: BCRYPT_TABLE, pszcontext: P0, pcbbuffer: &mut u32, ppbuffer: *mut *mut CRYPT_CONTEXT_CONFIG) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2665,7 +2689,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptQueryContextFunctionConfiguration<'a, P0, P1>(dwtable: BCRYPT_TABLE, pszcontext: P0, dwinterface: BCRYPT_INTERFACE, pszfunction: P1, pcbbuffer: &mut u32, ppbuffer: &mut *mut CRYPT_CONTEXT_FUNCTION_CONFIG) -> ::windows::core::Result<()> +pub unsafe fn BCryptQueryContextFunctionConfiguration<'a, P0, P1>(dwtable: BCRYPT_TABLE, pszcontext: P0, dwinterface: BCRYPT_INTERFACE, pszfunction: P1, pcbbuffer: &mut u32, ppbuffer: *mut *mut CRYPT_CONTEXT_FUNCTION_CONFIG) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -2679,7 +2703,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptQueryContextFunctionProperty<'a, P0, P1, P2>(dwtable: BCRYPT_TABLE, pszcontext: P0, dwinterface: BCRYPT_INTERFACE, pszfunction: P1, pszproperty: P2, pcbvalue: &mut u32, ppbvalue: &mut *mut u8) -> ::windows::core::Result<()> +pub unsafe fn BCryptQueryContextFunctionProperty<'a, P0, P1, P2>(dwtable: BCRYPT_TABLE, pszcontext: P0, dwinterface: BCRYPT_INTERFACE, pszfunction: P1, pszproperty: P2, pcbvalue: &mut u32, ppbvalue: *mut *mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -2694,7 +2718,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptQueryProviderRegistration<'a, P0>(pszprovider: P0, dwmode: BCRYPT_QUERY_PROVIDER_MODE, dwinterface: BCRYPT_INTERFACE, pcbbuffer: &mut u32, ppbuffer: &mut *mut CRYPT_PROVIDER_REG) -> ::windows::core::Result<()> +pub unsafe fn BCryptQueryProviderRegistration<'a, P0>(pszprovider: P0, dwmode: BCRYPT_QUERY_PROVIDER_MODE, dwinterface: BCRYPT_INTERFACE, pcbbuffer: &mut u32, ppbuffer: *mut *mut CRYPT_PROVIDER_REG) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2731,7 +2755,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptResolveProviders<'a, P0, P1, P2>(pszcontext: P0, dwinterface: u32, pszfunction: P1, pszprovider: P2, dwmode: BCRYPT_QUERY_PROVIDER_MODE, dwflags: BCRYPT_RESOLVE_PROVIDERS_FLAGS, pcbbuffer: &mut u32, ppbuffer: &mut *mut CRYPT_PROVIDER_REFS) -> ::windows::core::Result<()> +pub unsafe fn BCryptResolveProviders<'a, P0, P1, P2>(pszcontext: P0, dwinterface: u32, pszfunction: P1, pszprovider: P2, dwmode: BCRYPT_QUERY_PROVIDER_MODE, dwflags: BCRYPT_RESOLVE_PROVIDERS_FLAGS, pcbbuffer: &mut u32, ppbuffer: *mut *mut CRYPT_PROVIDER_REFS) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -2760,7 +2784,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptSetContextFunctionProperty<'a, P0, P1, P2>(dwtable: BCRYPT_TABLE, pszcontext: P0, dwinterface: BCRYPT_INTERFACE, pszfunction: P1, pszproperty: P2, cbvalue: u32, pbvalue: ::core::option::Option<&u8>) -> ::windows::core::Result<()> +pub unsafe fn BCryptSetContextFunctionProperty<'a, P0, P1, P2>(dwtable: BCRYPT_TABLE, pszcontext: P0, dwinterface: BCRYPT_INTERFACE, pszfunction: P1, pszproperty: P2, pbvalue: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -2770,12 +2794,12 @@ where extern "system" { fn BCryptSetContextFunctionProperty(dwtable: BCRYPT_TABLE, pszcontext: ::windows::core::PCWSTR, dwinterface: BCRYPT_INTERFACE, pszfunction: ::windows::core::PCWSTR, pszproperty: ::windows::core::PCWSTR, cbvalue: u32, pbvalue: *const u8) -> super::super::Foundation::NTSTATUS; } - BCryptSetContextFunctionProperty(dwtable, pszcontext.into(), dwinterface, pszfunction.into(), pszproperty.into(), cbvalue, ::core::mem::transmute(pbvalue)).ok() + BCryptSetContextFunctionProperty(dwtable, pszcontext.into(), dwinterface, pszfunction.into(), pszproperty.into(), pbvalue.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbvalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptSetProperty<'a, P0>(hobject: *mut ::core::ffi::c_void, pszproperty: P0, pbinput: &u8, cbinput: u32, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn BCryptSetProperty<'a, P0>(hobject: *mut ::core::ffi::c_void, pszproperty: P0, pbinput: &[u8], dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2783,12 +2807,12 @@ where extern "system" { fn BCryptSetProperty(hobject: *mut ::core::ffi::c_void, pszproperty: ::windows::core::PCWSTR, pbinput: *const u8, cbinput: u32, dwflags: u32) -> super::super::Foundation::NTSTATUS; } - BCryptSetProperty(::core::mem::transmute(hobject), pszproperty.into(), ::core::mem::transmute(pbinput), cbinput, dwflags).ok() + BCryptSetProperty(::core::mem::transmute(hobject), pszproperty.into(), ::core::mem::transmute(pbinput.as_ptr()), pbinput.len() as _, dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptSignHash<'a, P0>(hkey: P0, ppaddinginfo: *const ::core::ffi::c_void, pbinput: &u8, cbinput: u32, pboutput: ::core::option::Option<&mut u8>, cboutput: u32, pcbresult: &mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> +pub unsafe fn BCryptSignHash<'a, P0>(hkey: P0, ppaddinginfo: *const ::core::ffi::c_void, pbinput: &[u8], pboutput: ::core::option::Option<&mut [u8]>, pcbresult: &mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2796,7 +2820,7 @@ where extern "system" { fn BCryptSignHash(hkey: BCRYPT_KEY_HANDLE, ppaddinginfo: *const ::core::ffi::c_void, pbinput: *const u8, cbinput: u32, pboutput: *mut u8, cboutput: u32, pcbresult: *mut u32, dwflags: NCRYPT_FLAGS) -> super::super::Foundation::NTSTATUS; } - BCryptSignHash(hkey.into(), ::core::mem::transmute(ppaddinginfo), ::core::mem::transmute(pbinput), cbinput, ::core::mem::transmute(pboutput), cboutput, ::core::mem::transmute(pcbresult), dwflags).ok() + BCryptSignHash(hkey.into(), ::core::mem::transmute(ppaddinginfo), ::core::mem::transmute(pbinput.as_ptr()), pbinput.len() as _, ::core::mem::transmute(pboutput.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pboutput.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbresult), dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2814,7 +2838,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BCryptVerifySignature<'a, P0>(hkey: P0, ppaddinginfo: *const ::core::ffi::c_void, pbhash: &u8, cbhash: u32, pbsignature: &u8, cbsignature: u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> +pub unsafe fn BCryptVerifySignature<'a, P0>(hkey: P0, ppaddinginfo: *const ::core::ffi::c_void, pbhash: &[u8], pbsignature: &[u8], dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2822,7 +2846,7 @@ where extern "system" { fn BCryptVerifySignature(hkey: BCRYPT_KEY_HANDLE, ppaddinginfo: *const ::core::ffi::c_void, pbhash: *const u8, cbhash: u32, pbsignature: *const u8, cbsignature: u32, dwflags: NCRYPT_FLAGS) -> super::super::Foundation::NTSTATUS; } - BCryptVerifySignature(hkey.into(), ::core::mem::transmute(ppaddinginfo), ::core::mem::transmute(pbhash), cbhash, ::core::mem::transmute(pbsignature), cbsignature, dwflags).ok() + BCryptVerifySignature(hkey.into(), ::core::mem::transmute(ppaddinginfo), ::core::mem::transmute(pbhash.as_ptr()), pbhash.len() as _, ::core::mem::transmute(pbsignature.as_ptr()), pbsignature.len() as _, dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] pub const CALG_OID_INFO_CNG_ONLY: u32 = 4294967295u32; @@ -18647,7 +18671,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertAddEncodedCRLToStore<'a, P0>(hcertstore: P0, dwcertencodingtype: u32, pbcrlencoded: &u8, cbcrlencoded: u32, dwadddisposition: u32, ppcrlcontext: ::core::option::Option<&mut *mut CRL_CONTEXT>) -> super::super::Foundation::BOOL +pub unsafe fn CertAddEncodedCRLToStore<'a, P0>(hcertstore: P0, dwcertencodingtype: u32, pbcrlencoded: &[u8], dwadddisposition: u32, ppcrlcontext: ::core::option::Option<&mut *mut CRL_CONTEXT>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -18655,12 +18679,12 @@ where extern "system" { fn CertAddEncodedCRLToStore(hcertstore: HCERTSTORE, dwcertencodingtype: u32, pbcrlencoded: *const u8, cbcrlencoded: u32, dwadddisposition: u32, ppcrlcontext: *mut *mut CRL_CONTEXT) -> super::super::Foundation::BOOL; } - CertAddEncodedCRLToStore(hcertstore.into(), dwcertencodingtype, ::core::mem::transmute(pbcrlencoded), cbcrlencoded, dwadddisposition, ::core::mem::transmute(ppcrlcontext)) + CertAddEncodedCRLToStore(hcertstore.into(), dwcertencodingtype, ::core::mem::transmute(pbcrlencoded.as_ptr()), pbcrlencoded.len() as _, dwadddisposition, ::core::mem::transmute(ppcrlcontext)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertAddEncodedCTLToStore<'a, P0>(hcertstore: P0, dwmsgandcertencodingtype: u32, pbctlencoded: &u8, cbctlencoded: u32, dwadddisposition: u32, ppctlcontext: ::core::option::Option<&mut *mut CTL_CONTEXT>) -> super::super::Foundation::BOOL +pub unsafe fn CertAddEncodedCTLToStore<'a, P0>(hcertstore: P0, dwmsgandcertencodingtype: u32, pbctlencoded: &[u8], dwadddisposition: u32, ppctlcontext: ::core::option::Option<&mut *mut CTL_CONTEXT>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -18668,12 +18692,12 @@ where extern "system" { fn CertAddEncodedCTLToStore(hcertstore: HCERTSTORE, dwmsgandcertencodingtype: u32, pbctlencoded: *const u8, cbctlencoded: u32, dwadddisposition: u32, ppctlcontext: *mut *mut CTL_CONTEXT) -> super::super::Foundation::BOOL; } - CertAddEncodedCTLToStore(hcertstore.into(), dwmsgandcertencodingtype, ::core::mem::transmute(pbctlencoded), cbctlencoded, dwadddisposition, ::core::mem::transmute(ppctlcontext)) + CertAddEncodedCTLToStore(hcertstore.into(), dwmsgandcertencodingtype, ::core::mem::transmute(pbctlencoded.as_ptr()), pbctlencoded.len() as _, dwadddisposition, ::core::mem::transmute(ppctlcontext)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertAddEncodedCertificateToStore<'a, P0>(hcertstore: P0, dwcertencodingtype: u32, pbcertencoded: &u8, cbcertencoded: u32, dwadddisposition: u32, ppcertcontext: ::core::option::Option<&mut *mut CERT_CONTEXT>) -> super::super::Foundation::BOOL +pub unsafe fn CertAddEncodedCertificateToStore<'a, P0>(hcertstore: P0, dwcertencodingtype: u32, pbcertencoded: &[u8], dwadddisposition: u32, ppcertcontext: ::core::option::Option<&mut *mut CERT_CONTEXT>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -18681,12 +18705,12 @@ where extern "system" { fn CertAddEncodedCertificateToStore(hcertstore: HCERTSTORE, dwcertencodingtype: u32, pbcertencoded: *const u8, cbcertencoded: u32, dwadddisposition: u32, ppcertcontext: *mut *mut CERT_CONTEXT) -> super::super::Foundation::BOOL; } - CertAddEncodedCertificateToStore(hcertstore.into(), dwcertencodingtype, ::core::mem::transmute(pbcertencoded), cbcertencoded, dwadddisposition, ::core::mem::transmute(ppcertcontext)) + CertAddEncodedCertificateToStore(hcertstore.into(), dwcertencodingtype, ::core::mem::transmute(pbcertencoded.as_ptr()), pbcertencoded.len() as _, dwadddisposition, ::core::mem::transmute(ppcertcontext)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertAddEncodedCertificateToSystemStoreA<'a, P0>(szcertstorename: P0, pbcertencoded: &u8, cbcertencoded: u32) -> super::super::Foundation::BOOL +pub unsafe fn CertAddEncodedCertificateToSystemStoreA<'a, P0>(szcertstorename: P0, pbcertencoded: &[u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -18694,12 +18718,12 @@ where extern "system" { fn CertAddEncodedCertificateToSystemStoreA(szcertstorename: ::windows::core::PCSTR, pbcertencoded: *const u8, cbcertencoded: u32) -> super::super::Foundation::BOOL; } - CertAddEncodedCertificateToSystemStoreA(szcertstorename.into(), ::core::mem::transmute(pbcertencoded), cbcertencoded) + CertAddEncodedCertificateToSystemStoreA(szcertstorename.into(), ::core::mem::transmute(pbcertencoded.as_ptr()), pbcertencoded.len() as _) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertAddEncodedCertificateToSystemStoreW<'a, P0>(szcertstorename: P0, pbcertencoded: &u8, cbcertencoded: u32) -> super::super::Foundation::BOOL +pub unsafe fn CertAddEncodedCertificateToSystemStoreW<'a, P0>(szcertstorename: P0, pbcertencoded: &[u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -18707,7 +18731,7 @@ where extern "system" { fn CertAddEncodedCertificateToSystemStoreW(szcertstorename: ::windows::core::PCWSTR, pbcertencoded: *const u8, cbcertencoded: u32) -> super::super::Foundation::BOOL; } - CertAddEncodedCertificateToSystemStoreW(szcertstorename.into(), ::core::mem::transmute(pbcertencoded), cbcertencoded) + CertAddEncodedCertificateToSystemStoreW(szcertstorename.into(), ::core::mem::transmute(pbcertencoded.as_ptr()), pbcertencoded.len() as _) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -18743,7 +18767,7 @@ pub unsafe fn CertAddRefServerOcspResponseContext(pserverocspresponsecontext: :: #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertAddSerializedElementToStore<'a, P0>(hcertstore: P0, pbelement: &u8, cbelement: u32, dwadddisposition: u32, dwflags: u32, dwcontexttypeflags: u32, pdwcontexttype: ::core::option::Option<&mut u32>, ppvcontext: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn CertAddSerializedElementToStore<'a, P0>(hcertstore: P0, pbelement: &[u8], dwadddisposition: u32, dwflags: u32, dwcontexttypeflags: u32, pdwcontexttype: ::core::option::Option<&mut u32>, ppvcontext: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -18751,7 +18775,7 @@ where extern "system" { fn CertAddSerializedElementToStore(hcertstore: HCERTSTORE, pbelement: *const u8, cbelement: u32, dwadddisposition: u32, dwflags: u32, dwcontexttypeflags: u32, pdwcontexttype: *mut u32, ppvcontext: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - CertAddSerializedElementToStore(hcertstore.into(), ::core::mem::transmute(pbelement), cbelement, dwadddisposition, dwflags, dwcontexttypeflags, ::core::mem::transmute(pdwcontexttype), ::core::mem::transmute(ppvcontext)) + CertAddSerializedElementToStore(hcertstore.into(), ::core::mem::transmute(pbelement.as_ptr()), pbelement.len() as _, dwadddisposition, dwflags, dwcontexttypeflags, ::core::mem::transmute(pdwcontexttype), ::core::mem::transmute(ppvcontext)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -18854,32 +18878,32 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertCreateCRLContext(dwcertencodingtype: u32, pbcrlencoded: &u8, cbcrlencoded: u32) -> *mut CRL_CONTEXT { +pub unsafe fn CertCreateCRLContext(dwcertencodingtype: u32, pbcrlencoded: &[u8]) -> *mut CRL_CONTEXT { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CertCreateCRLContext(dwcertencodingtype: u32, pbcrlencoded: *const u8, cbcrlencoded: u32) -> *mut CRL_CONTEXT; } - CertCreateCRLContext(dwcertencodingtype, ::core::mem::transmute(pbcrlencoded), cbcrlencoded) + CertCreateCRLContext(dwcertencodingtype, ::core::mem::transmute(pbcrlencoded.as_ptr()), pbcrlencoded.len() as _) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertCreateCTLContext(dwmsgandcertencodingtype: u32, pbctlencoded: &u8, cbctlencoded: u32) -> *mut CTL_CONTEXT { +pub unsafe fn CertCreateCTLContext(dwmsgandcertencodingtype: u32, pbctlencoded: &[u8]) -> *mut CTL_CONTEXT { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CertCreateCTLContext(dwmsgandcertencodingtype: u32, pbctlencoded: *const u8, cbctlencoded: u32) -> *mut CTL_CONTEXT; } - CertCreateCTLContext(dwmsgandcertencodingtype, ::core::mem::transmute(pbctlencoded), cbctlencoded) + CertCreateCTLContext(dwmsgandcertencodingtype, ::core::mem::transmute(pbctlencoded.as_ptr()), pbctlencoded.len() as _) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertCreateCTLEntryFromCertificateContextProperties(pcertcontext: &CERT_CONTEXT, rgoptattr: &[CRYPT_ATTRIBUTE], dwflags: u32, pvreserved: *mut ::core::ffi::c_void, pctlentry: ::core::option::Option<&mut CTL_ENTRY>, pcbctlentry: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CertCreateCTLEntryFromCertificateContextProperties(pcertcontext: &CERT_CONTEXT, rgoptattr: ::core::option::Option<&[CRYPT_ATTRIBUTE]>, dwflags: u32, pvreserved: *mut ::core::ffi::c_void, pctlentry: *mut CTL_ENTRY, pcbctlentry: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CertCreateCTLEntryFromCertificateContextProperties(pcertcontext: *const CERT_CONTEXT, coptattr: u32, rgoptattr: *const CRYPT_ATTRIBUTE, dwflags: u32, pvreserved: *mut ::core::ffi::c_void, pctlentry: *mut CTL_ENTRY, pcbctlentry: *mut u32) -> super::super::Foundation::BOOL; } - CertCreateCTLEntryFromCertificateContextProperties(::core::mem::transmute(pcertcontext), rgoptattr.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgoptattr)), dwflags, ::core::mem::transmute(pvreserved), ::core::mem::transmute(pctlentry), ::core::mem::transmute(pcbctlentry)) + CertCreateCTLEntryFromCertificateContextProperties(::core::mem::transmute(pcertcontext), rgoptattr.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgoptattr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dwflags, ::core::mem::transmute(pvreserved), ::core::mem::transmute(pctlentry), ::core::mem::transmute(pcbctlentry)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -18894,22 +18918,22 @@ pub unsafe fn CertCreateCertificateChainEngine(pconfig: &CERT_CHAIN_ENGINE_CONFI #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertCreateCertificateContext(dwcertencodingtype: u32, pbcertencoded: &u8, cbcertencoded: u32) -> *mut CERT_CONTEXT { +pub unsafe fn CertCreateCertificateContext(dwcertencodingtype: u32, pbcertencoded: &[u8]) -> *mut CERT_CONTEXT { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CertCreateCertificateContext(dwcertencodingtype: u32, pbcertencoded: *const u8, cbcertencoded: u32) -> *mut CERT_CONTEXT; } - CertCreateCertificateContext(dwcertencodingtype, ::core::mem::transmute(pbcertencoded), cbcertencoded) + CertCreateCertificateContext(dwcertencodingtype, ::core::mem::transmute(pbcertencoded.as_ptr()), pbcertencoded.len() as _) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertCreateContext(dwcontexttype: u32, dwencodingtype: u32, pbencoded: &u8, cbencoded: u32, dwflags: u32, pcreatepara: ::core::option::Option<&CERT_CREATE_CONTEXT_PARA>) -> *mut ::core::ffi::c_void { +pub unsafe fn CertCreateContext(dwcontexttype: u32, dwencodingtype: u32, pbencoded: &[u8], dwflags: u32, pcreatepara: ::core::option::Option<&CERT_CREATE_CONTEXT_PARA>) -> *mut ::core::ffi::c_void { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CertCreateContext(dwcontexttype: u32, dwencodingtype: u32, pbencoded: *const u8, cbencoded: u32, dwflags: u32, pcreatepara: *const CERT_CREATE_CONTEXT_PARA) -> *mut ::core::ffi::c_void; } - CertCreateContext(dwcontexttype, dwencodingtype, ::core::mem::transmute(pbencoded), cbencoded, dwflags, ::core::mem::transmute(pcreatepara)) + CertCreateContext(dwcontexttype, dwencodingtype, ::core::mem::transmute(pbencoded.as_ptr()), pbencoded.len() as _, dwflags, ::core::mem::transmute(pcreatepara)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -19125,7 +19149,7 @@ where extern "system" { fn CertFindAttribute(pszobjid: ::windows::core::PCSTR, cattr: u32, rgattr: *const CRYPT_ATTRIBUTE) -> *mut CRYPT_ATTRIBUTE; } - CertFindAttribute(pszobjid.into(), rgattr.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgattr))) + CertFindAttribute(pszobjid.into(), rgattr.len() as _, ::core::mem::transmute(rgattr.as_ptr())) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -19200,7 +19224,7 @@ where extern "system" { fn CertFindExtension(pszobjid: ::windows::core::PCSTR, cextensions: u32, rgextensions: *const CERT_EXTENSION) -> *mut CERT_EXTENSION; } - CertFindExtension(pszobjid.into(), rgextensions.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgextensions))) + CertFindExtension(pszobjid.into(), rgextensions.len() as _, ::core::mem::transmute(rgextensions.as_ptr())) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -19365,7 +19389,7 @@ pub unsafe fn CertGetCertificateContextProperty(pcertcontext: &CERT_CONTEXT, dwp #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertGetEnhancedKeyUsage(pcertcontext: &CERT_CONTEXT, dwflags: u32, pusage: ::core::option::Option<&mut CTL_USAGE>, pcbusage: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CertGetEnhancedKeyUsage(pcertcontext: &CERT_CONTEXT, dwflags: u32, pusage: *mut CTL_USAGE, pcbusage: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CertGetEnhancedKeyUsage(pcertcontext: *const CERT_CONTEXT, dwflags: u32, pusage: *mut CTL_USAGE, pcbusage: *mut u32) -> super::super::Foundation::BOOL; @@ -19398,22 +19422,22 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertGetNameStringA(pcertcontext: &CERT_CONTEXT, dwtype: u32, dwflags: u32, pvtypepara: *const ::core::ffi::c_void, psznamestring: &mut [u8]) -> u32 { +pub unsafe fn CertGetNameStringA(pcertcontext: &CERT_CONTEXT, dwtype: u32, dwflags: u32, pvtypepara: *const ::core::ffi::c_void, psznamestring: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CertGetNameStringA(pcertcontext: *const CERT_CONTEXT, dwtype: u32, dwflags: u32, pvtypepara: *const ::core::ffi::c_void, psznamestring: ::windows::core::PSTR, cchnamestring: u32) -> u32; } - CertGetNameStringA(::core::mem::transmute(pcertcontext), dwtype, dwflags, ::core::mem::transmute(pvtypepara), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psznamestring)), psznamestring.len() as _) + CertGetNameStringA(::core::mem::transmute(pcertcontext), dwtype, dwflags, ::core::mem::transmute(pvtypepara), ::core::mem::transmute(psznamestring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psznamestring.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertGetNameStringW(pcertcontext: &CERT_CONTEXT, dwtype: u32, dwflags: u32, pvtypepara: *const ::core::ffi::c_void, psznamestring: &mut [u16]) -> u32 { +pub unsafe fn CertGetNameStringW(pcertcontext: &CERT_CONTEXT, dwtype: u32, dwflags: u32, pvtypepara: *const ::core::ffi::c_void, psznamestring: ::core::option::Option<&mut [u16]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CertGetNameStringW(pcertcontext: *const CERT_CONTEXT, dwtype: u32, dwflags: u32, pvtypepara: *const ::core::ffi::c_void, psznamestring: ::windows::core::PWSTR, cchnamestring: u32) -> u32; } - CertGetNameStringW(::core::mem::transmute(pcertcontext), dwtype, dwflags, ::core::mem::transmute(pvtypepara), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psznamestring)), psznamestring.len() as _) + CertGetNameStringW(::core::mem::transmute(pcertcontext), dwtype, dwflags, ::core::mem::transmute(pvtypepara), ::core::mem::transmute(psznamestring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psznamestring.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -19462,12 +19486,12 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertGetValidUsages(rghcerts: &[*const CERT_CONTEXT], cnumoids: &mut i32, rghoids: ::core::option::Option<&mut ::windows::core::PSTR>, pcboids: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CertGetValidUsages(rghcerts: &[*const CERT_CONTEXT], cnumoids: &mut i32, rghoids: *mut ::windows::core::PSTR, pcboids: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CertGetValidUsages(ccerts: u32, rghcerts: *const *const CERT_CONTEXT, cnumoids: *mut i32, rghoids: *mut ::windows::core::PSTR, pcboids: *mut u32) -> super::super::Foundation::BOOL; } - CertGetValidUsages(rghcerts.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rghcerts)), ::core::mem::transmute(cnumoids), ::core::mem::transmute(rghoids), ::core::mem::transmute(pcboids)) + CertGetValidUsages(rghcerts.len() as _, ::core::mem::transmute(rghcerts.as_ptr()), ::core::mem::transmute(cnumoids), ::core::mem::transmute(rghoids), ::core::mem::transmute(pcboids)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -19559,21 +19583,21 @@ impl ::core::fmt::Debug for CertKeyType { } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn CertNameToStrA(dwcertencodingtype: u32, pname: &CRYPTOAPI_BLOB, dwstrtype: CERT_STRING_TYPE, psz: &mut [u8]) -> u32 { +pub unsafe fn CertNameToStrA(dwcertencodingtype: u32, pname: &CRYPTOAPI_BLOB, dwstrtype: CERT_STRING_TYPE, psz: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CertNameToStrA(dwcertencodingtype: u32, pname: *const CRYPTOAPI_BLOB, dwstrtype: CERT_STRING_TYPE, psz: ::windows::core::PSTR, csz: u32) -> u32; } - CertNameToStrA(dwcertencodingtype, ::core::mem::transmute(pname), dwstrtype, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psz)), psz.len() as _) + CertNameToStrA(dwcertencodingtype, ::core::mem::transmute(pname), dwstrtype, ::core::mem::transmute(psz.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psz.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn CertNameToStrW(dwcertencodingtype: u32, pname: &CRYPTOAPI_BLOB, dwstrtype: CERT_STRING_TYPE, psz: &mut [u16]) -> u32 { +pub unsafe fn CertNameToStrW(dwcertencodingtype: u32, pname: &CRYPTOAPI_BLOB, dwstrtype: CERT_STRING_TYPE, psz: ::core::option::Option<&mut [u16]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CertNameToStrW(dwcertencodingtype: u32, pname: *const CRYPTOAPI_BLOB, dwstrtype: CERT_STRING_TYPE, psz: ::windows::core::PWSTR, csz: u32) -> u32; } - CertNameToStrW(dwcertencodingtype, ::core::mem::transmute(pname), dwstrtype, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psz)), psz.len() as _) + CertNameToStrW(dwcertencodingtype, ::core::mem::transmute(pname), dwstrtype, ::core::mem::transmute(psz.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psz.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -19641,21 +19665,21 @@ where } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn CertRDNValueToStrA(dwvaluetype: u32, pvalue: &CRYPTOAPI_BLOB, psz: &mut [u8]) -> u32 { +pub unsafe fn CertRDNValueToStrA(dwvaluetype: u32, pvalue: &CRYPTOAPI_BLOB, psz: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CertRDNValueToStrA(dwvaluetype: u32, pvalue: *const CRYPTOAPI_BLOB, psz: ::windows::core::PSTR, csz: u32) -> u32; } - CertRDNValueToStrA(dwvaluetype, ::core::mem::transmute(pvalue), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psz)), psz.len() as _) + CertRDNValueToStrA(dwvaluetype, ::core::mem::transmute(pvalue), ::core::mem::transmute(psz.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psz.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn CertRDNValueToStrW(dwvaluetype: u32, pvalue: &CRYPTOAPI_BLOB, psz: &mut [u16]) -> u32 { +pub unsafe fn CertRDNValueToStrW(dwvaluetype: u32, pvalue: &CRYPTOAPI_BLOB, psz: ::core::option::Option<&mut [u16]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CertRDNValueToStrW(dwvaluetype: u32, pvalue: *const CRYPTOAPI_BLOB, psz: ::windows::core::PWSTR, csz: u32) -> u32; } - CertRDNValueToStrW(dwvaluetype, ::core::mem::transmute(pvalue), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psz)), psz.len() as _) + CertRDNValueToStrW(dwvaluetype, ::core::mem::transmute(pvalue), ::core::mem::transmute(psz.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psz.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -19748,7 +19772,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertSelectCertificateChains<'a, P0>(pselectioncontext: ::core::option::Option<&::windows::core::GUID>, dwflags: u32, pchainparameters: ::core::option::Option<&CERT_SELECT_CHAIN_PARA>, rgpcriteria: &[CERT_SELECT_CRITERIA], hstore: P0, pcselection: &mut u32, pprgpselection: &mut *mut *mut CERT_CHAIN_CONTEXT) -> super::super::Foundation::BOOL +pub unsafe fn CertSelectCertificateChains<'a, P0>(pselectioncontext: ::core::option::Option<&::windows::core::GUID>, dwflags: u32, pchainparameters: ::core::option::Option<&CERT_SELECT_CHAIN_PARA>, rgpcriteria: ::core::option::Option<&[CERT_SELECT_CRITERIA]>, hstore: P0, pcselection: &mut u32, pprgpselection: &mut *mut *mut CERT_CHAIN_CONTEXT) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -19756,12 +19780,12 @@ where extern "system" { fn CertSelectCertificateChains(pselectioncontext: *const ::windows::core::GUID, dwflags: u32, pchainparameters: *const CERT_SELECT_CHAIN_PARA, ccriteria: u32, rgpcriteria: *const CERT_SELECT_CRITERIA, hstore: HCERTSTORE, pcselection: *mut u32, pprgpselection: *mut *mut *mut CERT_CHAIN_CONTEXT) -> super::super::Foundation::BOOL; } - CertSelectCertificateChains(::core::mem::transmute(pselectioncontext), dwflags, ::core::mem::transmute(pchainparameters), rgpcriteria.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpcriteria)), hstore.into(), ::core::mem::transmute(pcselection), ::core::mem::transmute(pprgpselection)) + CertSelectCertificateChains(::core::mem::transmute(pselectioncontext), dwflags, ::core::mem::transmute(pchainparameters), rgpcriteria.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpcriteria.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), hstore.into(), ::core::mem::transmute(pcselection), ::core::mem::transmute(pprgpselection)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertSerializeCRLStoreElement(pcrlcontext: &CRL_CONTEXT, dwflags: u32, pbelement: ::core::option::Option<&mut u8>, pcbelement: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CertSerializeCRLStoreElement(pcrlcontext: &CRL_CONTEXT, dwflags: u32, pbelement: *mut u8, pcbelement: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CertSerializeCRLStoreElement(pcrlcontext: *const CRL_CONTEXT, dwflags: u32, pbelement: *mut u8, pcbelement: *mut u32) -> super::super::Foundation::BOOL; @@ -19771,7 +19795,7 @@ pub unsafe fn CertSerializeCRLStoreElement(pcrlcontext: &CRL_CONTEXT, dwflags: u #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertSerializeCTLStoreElement(pctlcontext: &CTL_CONTEXT, dwflags: u32, pbelement: ::core::option::Option<&mut u8>, pcbelement: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CertSerializeCTLStoreElement(pctlcontext: &CTL_CONTEXT, dwflags: u32, pbelement: *mut u8, pcbelement: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CertSerializeCTLStoreElement(pctlcontext: *const CTL_CONTEXT, dwflags: u32, pbelement: *mut u8, pcbelement: *mut u32) -> super::super::Foundation::BOOL; @@ -19781,7 +19805,7 @@ pub unsafe fn CertSerializeCTLStoreElement(pctlcontext: &CTL_CONTEXT, dwflags: u #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertSerializeCertificateStoreElement(pcertcontext: &CERT_CONTEXT, dwflags: u32, pbelement: ::core::option::Option<&mut u8>, pcbelement: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CertSerializeCertificateStoreElement(pcertcontext: &CERT_CONTEXT, dwflags: u32, pbelement: *mut u8, pcbelement: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CertSerializeCertificateStoreElement(pcertcontext: *const CERT_CONTEXT, dwflags: u32, pbelement: *mut u8, pcbelement: *mut u32) -> super::super::Foundation::BOOL; @@ -19854,7 +19878,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertStrToNameA<'a, P0>(dwcertencodingtype: u32, pszx500: P0, dwstrtype: CERT_STRING_TYPE, pvreserved: *mut ::core::ffi::c_void, pbencoded: ::core::option::Option<&mut u8>, pcbencoded: &mut u32, ppszerror: ::core::option::Option<&mut ::windows::core::PSTR>) -> super::super::Foundation::BOOL +pub unsafe fn CertStrToNameA<'a, P0>(dwcertencodingtype: u32, pszx500: P0, dwstrtype: CERT_STRING_TYPE, pvreserved: *mut ::core::ffi::c_void, pbencoded: *mut u8, pcbencoded: &mut u32, ppszerror: ::core::option::Option<&mut ::windows::core::PSTR>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -19867,7 +19891,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CertStrToNameW<'a, P0>(dwcertencodingtype: u32, pszx500: P0, dwstrtype: CERT_STRING_TYPE, pvreserved: *mut ::core::ffi::c_void, pbencoded: ::core::option::Option<&mut u8>, pcbencoded: &mut u32, ppszerror: ::core::option::Option<&mut ::windows::core::PWSTR>) -> super::super::Foundation::BOOL +pub unsafe fn CertStrToNameW<'a, P0>(dwcertencodingtype: u32, pszx500: P0, dwstrtype: CERT_STRING_TYPE, pvreserved: *mut ::core::ffi::c_void, pbencoded: *mut u8, pcbencoded: &mut u32, ppszerror: ::core::option::Option<&mut ::windows::core::PWSTR>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -19908,7 +19932,7 @@ pub unsafe fn CertVerifyCRLRevocation(dwcertencodingtype: u32, pcertid: &CERT_IN extern "system" { fn CertVerifyCRLRevocation(dwcertencodingtype: u32, pcertid: *const CERT_INFO, ccrlinfo: u32, rgpcrlinfo: *const *const CRL_INFO) -> super::super::Foundation::BOOL; } - CertVerifyCRLRevocation(dwcertencodingtype, ::core::mem::transmute(pcertid), rgpcrlinfo.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpcrlinfo))) + CertVerifyCRLRevocation(dwcertencodingtype, ::core::mem::transmute(pcertid), rgpcrlinfo.len() as _, ::core::mem::transmute(rgpcrlinfo.as_ptr())) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -19951,7 +19975,7 @@ pub unsafe fn CertVerifyRevocation(dwencodingtype: u32, dwrevtype: u32, rgpvcont extern "system" { fn CertVerifyRevocation(dwencodingtype: u32, dwrevtype: u32, ccontext: u32, rgpvcontext: *const *const ::core::ffi::c_void, dwflags: u32, prevpara: *const CERT_REVOCATION_PARA, prevstatus: *mut CERT_REVOCATION_STATUS) -> super::super::Foundation::BOOL; } - CertVerifyRevocation(dwencodingtype, dwrevtype, rgpvcontext.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpvcontext)), dwflags, ::core::mem::transmute(prevpara), ::core::mem::transmute(prevstatus)) + CertVerifyRevocation(dwencodingtype, dwrevtype, rgpvcontext.len() as _, ::core::mem::transmute(rgpvcontext.as_ptr()), dwflags, ::core::mem::transmute(prevpara), ::core::mem::transmute(prevstatus)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -20033,22 +20057,22 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptBinaryToStringA(pbbinary: &u8, cbbinary: u32, dwflags: CRYPT_STRING, pszstring: ::windows::core::PSTR, pcchstring: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CryptBinaryToStringA(pbbinary: &[u8], dwflags: CRYPT_STRING, pszstring: ::windows::core::PSTR, pcchstring: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptBinaryToStringA(pbbinary: *const u8, cbbinary: u32, dwflags: CRYPT_STRING, pszstring: ::windows::core::PSTR, pcchstring: *mut u32) -> super::super::Foundation::BOOL; } - CryptBinaryToStringA(::core::mem::transmute(pbbinary), cbbinary, dwflags, ::core::mem::transmute(pszstring), ::core::mem::transmute(pcchstring)) + CryptBinaryToStringA(::core::mem::transmute(pbbinary.as_ptr()), pbbinary.len() as _, dwflags, ::core::mem::transmute(pszstring), ::core::mem::transmute(pcchstring)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptBinaryToStringW(pbbinary: &u8, cbbinary: u32, dwflags: CRYPT_STRING, pszstring: ::windows::core::PWSTR, pcchstring: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CryptBinaryToStringW(pbbinary: &[u8], dwflags: CRYPT_STRING, pszstring: ::windows::core::PWSTR, pcchstring: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptBinaryToStringW(pbbinary: *const u8, cbbinary: u32, dwflags: CRYPT_STRING, pszstring: ::windows::core::PWSTR, pcchstring: *mut u32) -> super::super::Foundation::BOOL; } - CryptBinaryToStringW(::core::mem::transmute(pbbinary), cbbinary, dwflags, ::core::mem::transmute(pszstring), ::core::mem::transmute(pcchstring)) + CryptBinaryToStringW(::core::mem::transmute(pbbinary.as_ptr()), pbbinary.len() as _, dwflags, ::core::mem::transmute(pszstring), ::core::mem::transmute(pcchstring)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -20096,7 +20120,7 @@ pub unsafe fn CryptCreateHash(hprov: usize, algid: u32, hkey: usize, dwflags: u3 #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptCreateKeyIdentifierFromCSP<'a, P0>(dwcertencodingtype: u32, pszpubkeyoid: P0, ppubkeystruc: &PUBLICKEYSTRUC, cbpubkeystruc: u32, dwflags: u32, pvreserved: *mut ::core::ffi::c_void, pbhash: ::core::option::Option<&mut u8>, pcbhash: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptCreateKeyIdentifierFromCSP<'a, P0>(dwcertencodingtype: u32, pszpubkeyoid: P0, ppubkeystruc: &[u8], dwflags: u32, pvreserved: *mut ::core::ffi::c_void, pbhash: *mut u8, pcbhash: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -20104,22 +20128,22 @@ where extern "system" { fn CryptCreateKeyIdentifierFromCSP(dwcertencodingtype: u32, pszpubkeyoid: ::windows::core::PCSTR, ppubkeystruc: *const PUBLICKEYSTRUC, cbpubkeystruc: u32, dwflags: u32, pvreserved: *mut ::core::ffi::c_void, pbhash: *mut u8, pcbhash: *mut u32) -> super::super::Foundation::BOOL; } - CryptCreateKeyIdentifierFromCSP(dwcertencodingtype, pszpubkeyoid.into(), ::core::mem::transmute(ppubkeystruc), cbpubkeystruc, dwflags, ::core::mem::transmute(pvreserved), ::core::mem::transmute(pbhash), ::core::mem::transmute(pcbhash)) + CryptCreateKeyIdentifierFromCSP(dwcertencodingtype, pszpubkeyoid.into(), ::core::mem::transmute(ppubkeystruc.as_ptr()), ppubkeystruc.len() as _, dwflags, ::core::mem::transmute(pvreserved), ::core::mem::transmute(pbhash), ::core::mem::transmute(pcbhash)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptDecodeMessage(dwmsgtypeflags: u32, pdecryptpara: ::core::option::Option<&CRYPT_DECRYPT_MESSAGE_PARA>, pverifypara: ::core::option::Option<&CRYPT_VERIFY_MESSAGE_PARA>, dwsignerindex: u32, pbencodedblob: &u8, cbencodedblob: u32, dwprevinnercontenttype: u32, pdwmsgtype: ::core::option::Option<&mut u32>, pdwinnercontenttype: ::core::option::Option<&mut u32>, pbdecoded: ::core::option::Option<&mut u8>, pcbdecoded: ::core::option::Option<&mut u32>, ppxchgcert: ::core::option::Option<&mut *mut CERT_CONTEXT>, ppsignercert: ::core::option::Option<&mut *mut CERT_CONTEXT>) -> super::super::Foundation::BOOL { +pub unsafe fn CryptDecodeMessage(dwmsgtypeflags: u32, pdecryptpara: ::core::option::Option<&CRYPT_DECRYPT_MESSAGE_PARA>, pverifypara: ::core::option::Option<&CRYPT_VERIFY_MESSAGE_PARA>, dwsignerindex: u32, pbencodedblob: &[u8], dwprevinnercontenttype: u32, pdwmsgtype: ::core::option::Option<&mut u32>, pdwinnercontenttype: ::core::option::Option<&mut u32>, pbdecoded: *mut u8, pcbdecoded: ::core::option::Option<&mut u32>, ppxchgcert: ::core::option::Option<&mut *mut CERT_CONTEXT>, ppsignercert: ::core::option::Option<&mut *mut CERT_CONTEXT>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptDecodeMessage(dwmsgtypeflags: u32, pdecryptpara: *const CRYPT_DECRYPT_MESSAGE_PARA, pverifypara: *const CRYPT_VERIFY_MESSAGE_PARA, dwsignerindex: u32, pbencodedblob: *const u8, cbencodedblob: u32, dwprevinnercontenttype: u32, pdwmsgtype: *mut u32, pdwinnercontenttype: *mut u32, pbdecoded: *mut u8, pcbdecoded: *mut u32, ppxchgcert: *mut *mut CERT_CONTEXT, ppsignercert: *mut *mut CERT_CONTEXT) -> super::super::Foundation::BOOL; } - CryptDecodeMessage(dwmsgtypeflags, ::core::mem::transmute(pdecryptpara), ::core::mem::transmute(pverifypara), dwsignerindex, ::core::mem::transmute(pbencodedblob), cbencodedblob, dwprevinnercontenttype, ::core::mem::transmute(pdwmsgtype), ::core::mem::transmute(pdwinnercontenttype), ::core::mem::transmute(pbdecoded), ::core::mem::transmute(pcbdecoded), ::core::mem::transmute(ppxchgcert), ::core::mem::transmute(ppsignercert)) + CryptDecodeMessage(dwmsgtypeflags, ::core::mem::transmute(pdecryptpara), ::core::mem::transmute(pverifypara), dwsignerindex, ::core::mem::transmute(pbencodedblob.as_ptr()), pbencodedblob.len() as _, dwprevinnercontenttype, ::core::mem::transmute(pdwmsgtype), ::core::mem::transmute(pdwinnercontenttype), ::core::mem::transmute(pbdecoded), ::core::mem::transmute(pcbdecoded), ::core::mem::transmute(ppxchgcert), ::core::mem::transmute(ppsignercert)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptDecodeObject<'a, P0>(dwcertencodingtype: u32, lpszstructtype: P0, pbencoded: &u8, cbencoded: u32, dwflags: u32, pvstructinfo: *mut ::core::ffi::c_void, pcbstructinfo: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptDecodeObject<'a, P0>(dwcertencodingtype: u32, lpszstructtype: P0, pbencoded: &[u8], dwflags: u32, pvstructinfo: *mut ::core::ffi::c_void, pcbstructinfo: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -20127,12 +20151,12 @@ where extern "system" { fn CryptDecodeObject(dwcertencodingtype: u32, lpszstructtype: ::windows::core::PCSTR, pbencoded: *const u8, cbencoded: u32, dwflags: u32, pvstructinfo: *mut ::core::ffi::c_void, pcbstructinfo: *mut u32) -> super::super::Foundation::BOOL; } - CryptDecodeObject(dwcertencodingtype, lpszstructtype.into(), ::core::mem::transmute(pbencoded), cbencoded, dwflags, ::core::mem::transmute(pvstructinfo), ::core::mem::transmute(pcbstructinfo)) + CryptDecodeObject(dwcertencodingtype, lpszstructtype.into(), ::core::mem::transmute(pbencoded.as_ptr()), pbencoded.len() as _, dwflags, ::core::mem::transmute(pvstructinfo), ::core::mem::transmute(pcbstructinfo)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptDecodeObjectEx<'a, P0>(dwcertencodingtype: u32, lpszstructtype: P0, pbencoded: &u8, cbencoded: u32, dwflags: u32, pdecodepara: ::core::option::Option<&CRYPT_DECODE_PARA>, pvstructinfo: *mut ::core::ffi::c_void, pcbstructinfo: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptDecodeObjectEx<'a, P0>(dwcertencodingtype: u32, lpszstructtype: P0, pbencoded: &[u8], dwflags: u32, pdecodepara: ::core::option::Option<&CRYPT_DECODE_PARA>, pvstructinfo: *mut ::core::ffi::c_void, pcbstructinfo: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -20140,12 +20164,12 @@ where extern "system" { fn CryptDecodeObjectEx(dwcertencodingtype: u32, lpszstructtype: ::windows::core::PCSTR, pbencoded: *const u8, cbencoded: u32, dwflags: u32, pdecodepara: *const CRYPT_DECODE_PARA, pvstructinfo: *mut ::core::ffi::c_void, pcbstructinfo: *mut u32) -> super::super::Foundation::BOOL; } - CryptDecodeObjectEx(dwcertencodingtype, lpszstructtype.into(), ::core::mem::transmute(pbencoded), cbencoded, dwflags, ::core::mem::transmute(pdecodepara), ::core::mem::transmute(pvstructinfo), ::core::mem::transmute(pcbstructinfo)) + CryptDecodeObjectEx(dwcertencodingtype, lpszstructtype.into(), ::core::mem::transmute(pbencoded.as_ptr()), pbencoded.len() as _, dwflags, ::core::mem::transmute(pdecodepara), ::core::mem::transmute(pvstructinfo), ::core::mem::transmute(pcbstructinfo)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptDecrypt<'a, P0>(hkey: usize, hhash: usize, r#final: P0, dwflags: u32, pbdata: &mut u8, pdwdatalen: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptDecrypt<'a, P0>(hkey: usize, hhash: usize, r#final: P0, dwflags: u32, pbdata: *mut u8, pdwdatalen: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -20158,22 +20182,22 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptDecryptAndVerifyMessageSignature(pdecryptpara: &CRYPT_DECRYPT_MESSAGE_PARA, pverifypara: &CRYPT_VERIFY_MESSAGE_PARA, dwsignerindex: u32, pbencryptedblob: &u8, cbencryptedblob: u32, pbdecrypted: ::core::option::Option<&mut u8>, pcbdecrypted: ::core::option::Option<&mut u32>, ppxchgcert: ::core::option::Option<&mut *mut CERT_CONTEXT>, ppsignercert: ::core::option::Option<&mut *mut CERT_CONTEXT>) -> super::super::Foundation::BOOL { +pub unsafe fn CryptDecryptAndVerifyMessageSignature(pdecryptpara: &CRYPT_DECRYPT_MESSAGE_PARA, pverifypara: &CRYPT_VERIFY_MESSAGE_PARA, dwsignerindex: u32, pbencryptedblob: &[u8], pbdecrypted: *mut u8, pcbdecrypted: ::core::option::Option<&mut u32>, ppxchgcert: ::core::option::Option<&mut *mut CERT_CONTEXT>, ppsignercert: ::core::option::Option<&mut *mut CERT_CONTEXT>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptDecryptAndVerifyMessageSignature(pdecryptpara: *const CRYPT_DECRYPT_MESSAGE_PARA, pverifypara: *const CRYPT_VERIFY_MESSAGE_PARA, dwsignerindex: u32, pbencryptedblob: *const u8, cbencryptedblob: u32, pbdecrypted: *mut u8, pcbdecrypted: *mut u32, ppxchgcert: *mut *mut CERT_CONTEXT, ppsignercert: *mut *mut CERT_CONTEXT) -> super::super::Foundation::BOOL; } - CryptDecryptAndVerifyMessageSignature(::core::mem::transmute(pdecryptpara), ::core::mem::transmute(pverifypara), dwsignerindex, ::core::mem::transmute(pbencryptedblob), cbencryptedblob, ::core::mem::transmute(pbdecrypted), ::core::mem::transmute(pcbdecrypted), ::core::mem::transmute(ppxchgcert), ::core::mem::transmute(ppsignercert)) + CryptDecryptAndVerifyMessageSignature(::core::mem::transmute(pdecryptpara), ::core::mem::transmute(pverifypara), dwsignerindex, ::core::mem::transmute(pbencryptedblob.as_ptr()), pbencryptedblob.len() as _, ::core::mem::transmute(pbdecrypted), ::core::mem::transmute(pcbdecrypted), ::core::mem::transmute(ppxchgcert), ::core::mem::transmute(ppsignercert)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptDecryptMessage(pdecryptpara: &CRYPT_DECRYPT_MESSAGE_PARA, pbencryptedblob: &u8, cbencryptedblob: u32, pbdecrypted: ::core::option::Option<&mut u8>, pcbdecrypted: ::core::option::Option<&mut u32>, ppxchgcert: ::core::option::Option<&mut *mut CERT_CONTEXT>) -> super::super::Foundation::BOOL { +pub unsafe fn CryptDecryptMessage(pdecryptpara: &CRYPT_DECRYPT_MESSAGE_PARA, pbencryptedblob: &[u8], pbdecrypted: *mut u8, pcbdecrypted: ::core::option::Option<&mut u32>, ppxchgcert: ::core::option::Option<&mut *mut CERT_CONTEXT>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptDecryptMessage(pdecryptpara: *const CRYPT_DECRYPT_MESSAGE_PARA, pbencryptedblob: *const u8, cbencryptedblob: u32, pbdecrypted: *mut u8, pcbdecrypted: *mut u32, ppxchgcert: *mut *mut CERT_CONTEXT) -> super::super::Foundation::BOOL; } - CryptDecryptMessage(::core::mem::transmute(pdecryptpara), ::core::mem::transmute(pbencryptedblob), cbencryptedblob, ::core::mem::transmute(pbdecrypted), ::core::mem::transmute(pcbdecrypted), ::core::mem::transmute(ppxchgcert)) + CryptDecryptMessage(::core::mem::transmute(pdecryptpara), ::core::mem::transmute(pbencryptedblob.as_ptr()), pbencryptedblob.len() as _, ::core::mem::transmute(pbdecrypted), ::core::mem::transmute(pcbdecrypted), ::core::mem::transmute(ppxchgcert)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -20228,7 +20252,7 @@ pub unsafe fn CryptDuplicateKey(hkey: usize, pdwreserved: &mut u32, dwflags: u32 #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptEncodeObject<'a, P0>(dwcertencodingtype: u32, lpszstructtype: P0, pvstructinfo: *const ::core::ffi::c_void, pbencoded: ::core::option::Option<&mut u8>, pcbencoded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptEncodeObject<'a, P0>(dwcertencodingtype: u32, lpszstructtype: P0, pvstructinfo: *const ::core::ffi::c_void, pbencoded: *mut u8, pcbencoded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -20254,7 +20278,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptEncrypt<'a, P0>(hkey: usize, hhash: usize, r#final: P0, dwflags: u32, pbdata: ::core::option::Option<&mut u8>, pdwdatalen: &mut u32, dwbuflen: u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptEncrypt<'a, P0>(hkey: usize, hhash: usize, r#final: P0, dwflags: u32, pbdata: ::core::option::Option<&mut [u8]>, pdwdatalen: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -20262,17 +20286,17 @@ where extern "system" { fn CryptEncrypt(hkey: usize, hhash: usize, r#final: super::super::Foundation::BOOL, dwflags: u32, pbdata: *mut u8, pdwdatalen: *mut u32, dwbuflen: u32) -> super::super::Foundation::BOOL; } - CryptEncrypt(hkey, hhash, r#final.into(), dwflags, ::core::mem::transmute(pbdata), ::core::mem::transmute(pdwdatalen), dwbuflen) + CryptEncrypt(hkey, hhash, r#final.into(), dwflags, ::core::mem::transmute(pbdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pdwdatalen), pbdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptEncryptMessage(pencryptpara: &CRYPT_ENCRYPT_MESSAGE_PARA, rgprecipientcert: &[*const CERT_CONTEXT], pbtobeencrypted: ::core::option::Option<&u8>, cbtobeencrypted: u32, pbencryptedblob: ::core::option::Option<&mut u8>, pcbencryptedblob: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CryptEncryptMessage(pencryptpara: &CRYPT_ENCRYPT_MESSAGE_PARA, rgprecipientcert: &[*const CERT_CONTEXT], pbtobeencrypted: ::core::option::Option<&[u8]>, pbencryptedblob: *mut u8, pcbencryptedblob: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptEncryptMessage(pencryptpara: *const CRYPT_ENCRYPT_MESSAGE_PARA, crecipientcert: u32, rgprecipientcert: *const *const CERT_CONTEXT, pbtobeencrypted: *const u8, cbtobeencrypted: u32, pbencryptedblob: *mut u8, pcbencryptedblob: *mut u32) -> super::super::Foundation::BOOL; } - CryptEncryptMessage(::core::mem::transmute(pencryptpara), rgprecipientcert.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgprecipientcert)), ::core::mem::transmute(pbtobeencrypted), cbtobeencrypted, ::core::mem::transmute(pbencryptedblob), ::core::mem::transmute(pcbencryptedblob)) + CryptEncryptMessage(::core::mem::transmute(pencryptpara), rgprecipientcert.len() as _, ::core::mem::transmute(rgprecipientcert.as_ptr()), ::core::mem::transmute(pbtobeencrypted.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbtobeencrypted.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbencryptedblob), ::core::mem::transmute(pcbencryptedblob)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -20354,7 +20378,7 @@ pub unsafe fn CryptEnumProvidersW(dwindex: u32, pdwreserved: &mut u32, dwflags: #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptExportKey(hkey: usize, hexpkey: usize, dwblobtype: u32, dwflags: CRYPT_KEY_FLAGS, pbdata: ::core::option::Option<&mut u8>, pdwdatalen: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CryptExportKey(hkey: usize, hexpkey: usize, dwblobtype: u32, dwflags: CRYPT_KEY_FLAGS, pbdata: *mut u8, pdwdatalen: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptExportKey(hkey: usize, hexpkey: usize, dwblobtype: u32, dwflags: CRYPT_KEY_FLAGS, pbdata: *mut u8, pdwdatalen: *mut u32) -> super::super::Foundation::BOOL; @@ -20364,7 +20388,7 @@ pub unsafe fn CryptExportKey(hkey: usize, hexpkey: usize, dwblobtype: u32, dwfla #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptExportPKCS8<'a, P0>(hcryptprov: usize, dwkeyspec: u32, pszprivatekeyobjid: P0, dwflags: u32, pvauxinfo: *const ::core::ffi::c_void, pbprivatekeyblob: ::core::option::Option<&mut u8>, pcbprivatekeyblob: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptExportPKCS8<'a, P0>(hcryptprov: usize, dwkeyspec: u32, pszprivatekeyobjid: P0, dwflags: u32, pvauxinfo: *const ::core::ffi::c_void, pbprivatekeyblob: *mut u8, pcbprivatekeyblob: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -20377,7 +20401,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptExportPublicKeyInfo<'a, P0>(hcryptprovorncryptkey: P0, dwkeyspec: u32, dwcertencodingtype: u32, pinfo: ::core::option::Option<&mut CERT_PUBLIC_KEY_INFO>, pcbinfo: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptExportPublicKeyInfo<'a, P0>(hcryptprovorncryptkey: P0, dwkeyspec: u32, dwcertencodingtype: u32, pinfo: *mut CERT_PUBLIC_KEY_INFO, pcbinfo: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -20390,7 +20414,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptExportPublicKeyInfoEx<'a, P0, P1>(hcryptprovorncryptkey: P0, dwkeyspec: u32, dwcertencodingtype: u32, pszpublickeyobjid: P1, dwflags: u32, pvauxinfo: *const ::core::ffi::c_void, pinfo: ::core::option::Option<&mut CERT_PUBLIC_KEY_INFO>, pcbinfo: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptExportPublicKeyInfoEx<'a, P0, P1>(hcryptprovorncryptkey: P0, dwkeyspec: u32, dwcertencodingtype: u32, pszpublickeyobjid: P1, dwflags: u32, pvauxinfo: *const ::core::ffi::c_void, pinfo: *mut CERT_PUBLIC_KEY_INFO, pcbinfo: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -20404,7 +20428,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptExportPublicKeyInfoFromBCryptKeyHandle<'a, P0, P1>(hbcryptkey: P0, dwcertencodingtype: u32, pszpublickeyobjid: P1, dwflags: u32, pvauxinfo: *const ::core::ffi::c_void, pinfo: ::core::option::Option<&mut CERT_PUBLIC_KEY_INFO>, pcbinfo: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptExportPublicKeyInfoFromBCryptKeyHandle<'a, P0, P1>(hbcryptkey: P0, dwcertencodingtype: u32, pszpublickeyobjid: P1, dwflags: u32, pvauxinfo: *const ::core::ffi::c_void, pinfo: *mut CERT_PUBLIC_KEY_INFO, pcbinfo: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -20449,7 +20473,7 @@ pub unsafe fn CryptFindOIDInfo(dwkeytype: u32, pvkey: *const ::core::ffi::c_void #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptFormatObject<'a, P0>(dwcertencodingtype: u32, dwformattype: u32, dwformatstrtype: u32, pformatstruct: *const ::core::ffi::c_void, lpszstructtype: P0, pbencoded: &u8, cbencoded: u32, pbformat: *mut ::core::ffi::c_void, pcbformat: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptFormatObject<'a, P0>(dwcertencodingtype: u32, dwformattype: u32, dwformatstrtype: u32, pformatstruct: *const ::core::ffi::c_void, lpszstructtype: P0, pbencoded: &[u8], pbformat: *mut ::core::ffi::c_void, pcbformat: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -20457,7 +20481,7 @@ where extern "system" { fn CryptFormatObject(dwcertencodingtype: u32, dwformattype: u32, dwformatstrtype: u32, pformatstruct: *const ::core::ffi::c_void, lpszstructtype: ::windows::core::PCSTR, pbencoded: *const u8, cbencoded: u32, pbformat: *mut ::core::ffi::c_void, pcbformat: *mut u32) -> super::super::Foundation::BOOL; } - CryptFormatObject(dwcertencodingtype, dwformattype, dwformatstrtype, ::core::mem::transmute(pformatstruct), lpszstructtype.into(), ::core::mem::transmute(pbencoded), cbencoded, ::core::mem::transmute(pbformat), ::core::mem::transmute(pcbformat)) + CryptFormatObject(dwcertencodingtype, dwformattype, dwformatstrtype, ::core::mem::transmute(pformatstruct), lpszstructtype.into(), ::core::mem::transmute(pbencoded.as_ptr()), pbencoded.len() as _, ::core::mem::transmute(pbformat), ::core::mem::transmute(pcbformat)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -20482,12 +20506,12 @@ pub unsafe fn CryptGenKey(hprov: usize, algid: u32, dwflags: CRYPT_KEY_FLAGS, ph #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptGenRandom(hprov: usize, dwlen: u32, pbbuffer: &mut u8) -> super::super::Foundation::BOOL { +pub unsafe fn CryptGenRandom(hprov: usize, pbbuffer: &mut [u8]) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptGenRandom(hprov: usize, dwlen: u32, pbbuffer: *mut u8) -> super::super::Foundation::BOOL; } - CryptGenRandom(hprov, dwlen, ::core::mem::transmute(pbbuffer)) + CryptGenRandom(hprov, pbbuffer.len() as _, ::core::mem::transmute(pbbuffer.as_ptr())) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -20549,7 +20573,7 @@ pub unsafe fn CryptGetDefaultProviderW(dwprovtype: u32, pdwreserved: &mut u32, d #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptGetHashParam(hhash: usize, dwparam: u32, pbdata: ::core::option::Option<&mut u8>, pdwdatalen: &mut u32, dwflags: u32) -> super::super::Foundation::BOOL { +pub unsafe fn CryptGetHashParam(hhash: usize, dwparam: u32, pbdata: *mut u8, pdwdatalen: &mut u32, dwflags: u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptGetHashParam(hhash: usize, dwparam: u32, pbdata: *mut u8, pdwdatalen: *mut u32, dwflags: u32) -> super::super::Foundation::BOOL; @@ -20572,7 +20596,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptGetKeyParam(hkey: usize, dwparam: CRYPT_KEY_PARAM_ID, pbdata: ::core::option::Option<&mut u8>, pdwdatalen: &mut u32, dwflags: u32) -> super::super::Foundation::BOOL { +pub unsafe fn CryptGetKeyParam(hkey: usize, dwparam: CRYPT_KEY_PARAM_ID, pbdata: *mut u8, pdwdatalen: &mut u32, dwflags: u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptGetKeyParam(hkey: usize, dwparam: CRYPT_KEY_PARAM_ID, pbdata: *mut u8, pdwdatalen: *mut u32, dwflags: u32) -> super::super::Foundation::BOOL; @@ -20581,7 +20605,7 @@ pub unsafe fn CryptGetKeyParam(hkey: usize, dwparam: CRYPT_KEY_PARAM_ID, pbdata: } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn CryptGetMessageCertificates<'a, P0>(dwmsgandcertencodingtype: u32, hcryptprov: P0, dwflags: u32, pbsignedblob: &u8, cbsignedblob: u32) -> ::windows::core::Result +pub unsafe fn CryptGetMessageCertificates<'a, P0>(dwmsgandcertencodingtype: u32, hcryptprov: P0, dwflags: u32, pbsignedblob: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into, { @@ -20589,17 +20613,17 @@ where extern "system" { fn CryptGetMessageCertificates(dwmsgandcertencodingtype: u32, hcryptprov: HCRYPTPROV_LEGACY, dwflags: u32, pbsignedblob: *const u8, cbsignedblob: u32) -> HCERTSTORE; } - let result__ = CryptGetMessageCertificates(dwmsgandcertencodingtype, hcryptprov.into(), dwflags, ::core::mem::transmute(pbsignedblob), cbsignedblob); + let result__ = CryptGetMessageCertificates(dwmsgandcertencodingtype, hcryptprov.into(), dwflags, ::core::mem::transmute(pbsignedblob.as_ptr()), pbsignedblob.len() as _); (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn CryptGetMessageSignerCount(dwmsgencodingtype: u32, pbsignedblob: &u8, cbsignedblob: u32) -> i32 { +pub unsafe fn CryptGetMessageSignerCount(dwmsgencodingtype: u32, pbsignedblob: &[u8]) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptGetMessageSignerCount(dwmsgencodingtype: u32, pbsignedblob: *const u8, cbsignedblob: u32) -> i32; } - CryptGetMessageSignerCount(dwmsgencodingtype, ::core::mem::transmute(pbsignedblob), cbsignedblob) + CryptGetMessageSignerCount(dwmsgencodingtype, ::core::mem::transmute(pbsignedblob.as_ptr()), pbsignedblob.len() as _) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -20617,7 +20641,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptGetOIDFunctionValue<'a, P0, P1, P2>(dwencodingtype: u32, pszfuncname: P0, pszoid: P1, pwszvaluename: P2, pdwvaluetype: ::core::option::Option<&mut u32>, pbvaluedata: ::core::option::Option<&mut u8>, pcbvaluedata: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn CryptGetOIDFunctionValue<'a, P0, P1, P2>(dwencodingtype: u32, pszfuncname: P0, pszoid: P1, pwszvaluename: P2, pdwvaluetype: ::core::option::Option<&mut u32>, pbvaluedata: *mut u8, pcbvaluedata: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -20632,7 +20656,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptGetObjectUrl<'a, P0>(pszurloid: P0, pvpara: *const ::core::ffi::c_void, dwflags: CRYPT_GET_URL_FLAGS, purlarray: ::core::option::Option<&mut CRYPT_URL_ARRAY>, pcburlarray: &mut u32, purlinfo: ::core::option::Option<&mut CRYPT_URL_INFO>, pcburlinfo: ::core::option::Option<&mut u32>, pvreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn CryptGetObjectUrl<'a, P0>(pszurloid: P0, pvpara: *const ::core::ffi::c_void, dwflags: CRYPT_GET_URL_FLAGS, purlarray: *mut CRYPT_URL_ARRAY, pcburlarray: &mut u32, purlinfo: *mut CRYPT_URL_INFO, pcburlinfo: ::core::option::Option<&mut u32>, pvreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -20645,7 +20669,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptGetProvParam(hprov: usize, dwparam: u32, pbdata: ::core::option::Option<&mut u8>, pdwdatalen: &mut u32, dwflags: u32) -> super::super::Foundation::BOOL { +pub unsafe fn CryptGetProvParam(hprov: usize, dwparam: u32, pbdata: *mut u8, pdwdatalen: &mut u32, dwflags: u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptGetProvParam(hprov: usize, dwparam: u32, pbdata: *mut u8, pdwdatalen: *mut u32, dwflags: u32) -> super::super::Foundation::BOOL; @@ -20665,7 +20689,7 @@ pub unsafe fn CryptGetUserKey(hprov: usize, dwkeyspec: u32, phuserkey: &mut usiz #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptHashCertificate<'a, P0>(hcryptprov: P0, algid: u32, dwflags: u32, pbencoded: &u8, cbencoded: u32, pbcomputedhash: ::core::option::Option<&mut u8>, pcbcomputedhash: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptHashCertificate<'a, P0>(hcryptprov: P0, algid: u32, dwflags: u32, pbencoded: &[u8], pbcomputedhash: *mut u8, pcbcomputedhash: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -20673,12 +20697,12 @@ where extern "system" { fn CryptHashCertificate(hcryptprov: HCRYPTPROV_LEGACY, algid: u32, dwflags: u32, pbencoded: *const u8, cbencoded: u32, pbcomputedhash: *mut u8, pcbcomputedhash: *mut u32) -> super::super::Foundation::BOOL; } - CryptHashCertificate(hcryptprov.into(), algid, dwflags, ::core::mem::transmute(pbencoded), cbencoded, ::core::mem::transmute(pbcomputedhash), ::core::mem::transmute(pcbcomputedhash)) + CryptHashCertificate(hcryptprov.into(), algid, dwflags, ::core::mem::transmute(pbencoded.as_ptr()), pbencoded.len() as _, ::core::mem::transmute(pbcomputedhash), ::core::mem::transmute(pcbcomputedhash)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptHashCertificate2<'a, P0>(pwszcnghashalgid: P0, dwflags: u32, pvreserved: *mut ::core::ffi::c_void, pbencoded: ::core::option::Option<&u8>, cbencoded: u32, pbcomputedhash: ::core::option::Option<&mut u8>, pcbcomputedhash: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptHashCertificate2<'a, P0>(pwszcnghashalgid: P0, dwflags: u32, pvreserved: *mut ::core::ffi::c_void, pbencoded: ::core::option::Option<&[u8]>, pbcomputedhash: *mut u8, pcbcomputedhash: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -20686,22 +20710,22 @@ where extern "system" { fn CryptHashCertificate2(pwszcnghashalgid: ::windows::core::PCWSTR, dwflags: u32, pvreserved: *mut ::core::ffi::c_void, pbencoded: *const u8, cbencoded: u32, pbcomputedhash: *mut u8, pcbcomputedhash: *mut u32) -> super::super::Foundation::BOOL; } - CryptHashCertificate2(pwszcnghashalgid.into(), dwflags, ::core::mem::transmute(pvreserved), ::core::mem::transmute(pbencoded), cbencoded, ::core::mem::transmute(pbcomputedhash), ::core::mem::transmute(pcbcomputedhash)) + CryptHashCertificate2(pwszcnghashalgid.into(), dwflags, ::core::mem::transmute(pvreserved), ::core::mem::transmute(pbencoded.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbencoded.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbcomputedhash), ::core::mem::transmute(pcbcomputedhash)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptHashData(hhash: usize, pbdata: &u8, dwdatalen: u32, dwflags: u32) -> super::super::Foundation::BOOL { +pub unsafe fn CryptHashData(hhash: usize, pbdata: &[u8], dwflags: u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptHashData(hhash: usize, pbdata: *const u8, dwdatalen: u32, dwflags: u32) -> super::super::Foundation::BOOL; } - CryptHashData(hhash, ::core::mem::transmute(pbdata), dwdatalen, dwflags) + CryptHashData(hhash, ::core::mem::transmute(pbdata.as_ptr()), pbdata.len() as _, dwflags) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptHashMessage<'a, P0>(phashpara: &CRYPT_HASH_MESSAGE_PARA, fdetachedhash: P0, ctobehashed: u32, rgpbtobehashed: &*const u8, rgcbtobehashed: &u32, pbhashedblob: ::core::option::Option<&mut u8>, pcbhashedblob: ::core::option::Option<&mut u32>, pbcomputedhash: ::core::option::Option<&mut u8>, pcbcomputedhash: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn CryptHashMessage<'a, P0>(phashpara: &CRYPT_HASH_MESSAGE_PARA, fdetachedhash: P0, ctobehashed: u32, rgpbtobehashed: *const *const u8, rgcbtobehashed: *const u32, pbhashedblob: *mut u8, pcbhashedblob: ::core::option::Option<&mut u32>, pbcomputedhash: *mut u8, pcbcomputedhash: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -20714,7 +20738,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptHashPublicKeyInfo<'a, P0>(hcryptprov: P0, algid: u32, dwflags: u32, dwcertencodingtype: u32, pinfo: &CERT_PUBLIC_KEY_INFO, pbcomputedhash: ::core::option::Option<&mut u8>, pcbcomputedhash: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptHashPublicKeyInfo<'a, P0>(hcryptprov: P0, algid: u32, dwflags: u32, dwcertencodingtype: u32, pinfo: &CERT_PUBLIC_KEY_INFO, pbcomputedhash: *mut u8, pcbcomputedhash: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -20737,7 +20761,7 @@ pub unsafe fn CryptHashSessionKey(hhash: usize, hkey: usize, dwflags: u32) -> su #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptHashToBeSigned<'a, P0>(hcryptprov: P0, dwcertencodingtype: u32, pbencoded: &u8, cbencoded: u32, pbcomputedhash: ::core::option::Option<&mut u8>, pcbcomputedhash: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptHashToBeSigned<'a, P0>(hcryptprov: P0, dwcertencodingtype: u32, pbencoded: &[u8], pbcomputedhash: *mut u8, pcbcomputedhash: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -20745,17 +20769,17 @@ where extern "system" { fn CryptHashToBeSigned(hcryptprov: HCRYPTPROV_LEGACY, dwcertencodingtype: u32, pbencoded: *const u8, cbencoded: u32, pbcomputedhash: *mut u8, pcbcomputedhash: *mut u32) -> super::super::Foundation::BOOL; } - CryptHashToBeSigned(hcryptprov.into(), dwcertencodingtype, ::core::mem::transmute(pbencoded), cbencoded, ::core::mem::transmute(pbcomputedhash), ::core::mem::transmute(pcbcomputedhash)) + CryptHashToBeSigned(hcryptprov.into(), dwcertencodingtype, ::core::mem::transmute(pbencoded.as_ptr()), pbencoded.len() as _, ::core::mem::transmute(pbcomputedhash), ::core::mem::transmute(pcbcomputedhash)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptImportKey(hprov: usize, pbdata: &u8, dwdatalen: u32, hpubkey: usize, dwflags: CRYPT_KEY_FLAGS, phkey: &mut usize) -> super::super::Foundation::BOOL { +pub unsafe fn CryptImportKey(hprov: usize, pbdata: &[u8], hpubkey: usize, dwflags: CRYPT_KEY_FLAGS, phkey: &mut usize) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptImportKey(hprov: usize, pbdata: *const u8, dwdatalen: u32, hpubkey: usize, dwflags: CRYPT_KEY_FLAGS, phkey: *mut usize) -> super::super::Foundation::BOOL; } - CryptImportKey(hprov, ::core::mem::transmute(pbdata), dwdatalen, hpubkey, dwflags, ::core::mem::transmute(phkey)) + CryptImportKey(hprov, ::core::mem::transmute(pbdata.as_ptr()), pbdata.len() as _, hpubkey, dwflags, ::core::mem::transmute(phkey)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -20841,7 +20865,7 @@ where extern "system" { fn CryptInstallOIDFunctionAddress(hmodule: super::super::Foundation::HINSTANCE, dwencodingtype: u32, pszfuncname: ::windows::core::PCSTR, cfuncentry: u32, rgfuncentry: *const CRYPT_OID_FUNC_ENTRY, dwflags: u32) -> super::super::Foundation::BOOL; } - CryptInstallOIDFunctionAddress(hmodule.into(), dwencodingtype, pszfuncname.into(), rgfuncentry.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgfuncentry)), dwflags) + CryptInstallOIDFunctionAddress(hmodule.into(), dwencodingtype, pszfuncname.into(), rgfuncentry.len() as _, ::core::mem::transmute(rgfuncentry.as_ptr()), dwflags) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -20910,17 +20934,17 @@ pub unsafe fn CryptMsgCountersign(hcryptmsg: *const ::core::ffi::c_void, dwindex extern "system" { fn CryptMsgCountersign(hcryptmsg: *const ::core::ffi::c_void, dwindex: u32, ccountersigners: u32, rgcountersigners: *const CMSG_SIGNER_ENCODE_INFO) -> super::super::Foundation::BOOL; } - CryptMsgCountersign(::core::mem::transmute(hcryptmsg), dwindex, rgcountersigners.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcountersigners))) + CryptMsgCountersign(::core::mem::transmute(hcryptmsg), dwindex, rgcountersigners.len() as _, ::core::mem::transmute(rgcountersigners.as_ptr())) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptMsgCountersignEncoded(dwencodingtype: u32, pbsignerinfo: &u8, cbsignerinfo: u32, rgcountersigners: &[CMSG_SIGNER_ENCODE_INFO], pbcountersignature: ::core::option::Option<&mut u8>, pcbcountersignature: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CryptMsgCountersignEncoded(dwencodingtype: u32, pbsignerinfo: &[u8], rgcountersigners: &[CMSG_SIGNER_ENCODE_INFO], pbcountersignature: *mut u8, pcbcountersignature: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptMsgCountersignEncoded(dwencodingtype: u32, pbsignerinfo: *const u8, cbsignerinfo: u32, ccountersigners: u32, rgcountersigners: *const CMSG_SIGNER_ENCODE_INFO, pbcountersignature: *mut u8, pcbcountersignature: *mut u32) -> super::super::Foundation::BOOL; } - CryptMsgCountersignEncoded(dwencodingtype, ::core::mem::transmute(pbsignerinfo), cbsignerinfo, rgcountersigners.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcountersigners)), ::core::mem::transmute(pbcountersignature), ::core::mem::transmute(pcbcountersignature)) + CryptMsgCountersignEncoded(dwencodingtype, ::core::mem::transmute(pbsignerinfo.as_ptr()), pbsignerinfo.len() as _, rgcountersigners.len() as _, ::core::mem::transmute(rgcountersigners.as_ptr()), ::core::mem::transmute(pbcountersignature), ::core::mem::transmute(pcbcountersignature)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -20934,7 +20958,7 @@ pub unsafe fn CryptMsgDuplicate(hcryptmsg: *const ::core::ffi::c_void) -> *mut : #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptMsgEncodeAndSignCTL(dwmsgencodingtype: u32, pctlinfo: &CTL_INFO, psigninfo: &CMSG_SIGNED_ENCODE_INFO, dwflags: u32, pbencoded: ::core::option::Option<&mut u8>, pcbencoded: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CryptMsgEncodeAndSignCTL(dwmsgencodingtype: u32, pctlinfo: &CTL_INFO, psigninfo: &CMSG_SIGNED_ENCODE_INFO, dwflags: u32, pbencoded: *mut u8, pcbencoded: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptMsgEncodeAndSignCTL(dwmsgencodingtype: u32, pctlinfo: *const CTL_INFO, psigninfo: *const CMSG_SIGNED_ENCODE_INFO, dwflags: u32, pbencoded: *mut u8, pcbencoded: *mut u32) -> super::super::Foundation::BOOL; @@ -20944,12 +20968,12 @@ pub unsafe fn CryptMsgEncodeAndSignCTL(dwmsgencodingtype: u32, pctlinfo: &CTL_IN #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptMsgGetAndVerifySigner(hcryptmsg: *const ::core::ffi::c_void, rghsignerstore: &[HCERTSTORE], dwflags: u32, ppsigner: ::core::option::Option<&mut *mut CERT_CONTEXT>, pdwsignerindex: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn CryptMsgGetAndVerifySigner(hcryptmsg: *const ::core::ffi::c_void, rghsignerstore: ::core::option::Option<&[HCERTSTORE]>, dwflags: u32, ppsigner: ::core::option::Option<&mut *mut CERT_CONTEXT>, pdwsignerindex: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptMsgGetAndVerifySigner(hcryptmsg: *const ::core::ffi::c_void, csignerstore: u32, rghsignerstore: *const HCERTSTORE, dwflags: u32, ppsigner: *mut *mut CERT_CONTEXT, pdwsignerindex: *mut u32) -> super::super::Foundation::BOOL; } - CryptMsgGetAndVerifySigner(::core::mem::transmute(hcryptmsg), rghsignerstore.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rghsignerstore)), dwflags, ::core::mem::transmute(ppsigner), ::core::mem::transmute(pdwsignerindex)) + CryptMsgGetAndVerifySigner(::core::mem::transmute(hcryptmsg), rghsignerstore.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rghsignerstore.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dwflags, ::core::mem::transmute(ppsigner), ::core::mem::transmute(pdwsignerindex)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -20990,17 +21014,17 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptMsgSignCTL(dwmsgencodingtype: u32, pbctlcontent: &u8, cbctlcontent: u32, psigninfo: &CMSG_SIGNED_ENCODE_INFO, dwflags: u32, pbencoded: ::core::option::Option<&mut u8>, pcbencoded: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CryptMsgSignCTL(dwmsgencodingtype: u32, pbctlcontent: &[u8], psigninfo: &CMSG_SIGNED_ENCODE_INFO, dwflags: u32, pbencoded: *mut u8, pcbencoded: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptMsgSignCTL(dwmsgencodingtype: u32, pbctlcontent: *const u8, cbctlcontent: u32, psigninfo: *const CMSG_SIGNED_ENCODE_INFO, dwflags: u32, pbencoded: *mut u8, pcbencoded: *mut u32) -> super::super::Foundation::BOOL; } - CryptMsgSignCTL(dwmsgencodingtype, ::core::mem::transmute(pbctlcontent), cbctlcontent, ::core::mem::transmute(psigninfo), dwflags, ::core::mem::transmute(pbencoded), ::core::mem::transmute(pcbencoded)) + CryptMsgSignCTL(dwmsgencodingtype, ::core::mem::transmute(pbctlcontent.as_ptr()), pbctlcontent.len() as _, ::core::mem::transmute(psigninfo), dwflags, ::core::mem::transmute(pbencoded), ::core::mem::transmute(pcbencoded)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptMsgUpdate<'a, P0>(hcryptmsg: *const ::core::ffi::c_void, pbdata: ::core::option::Option<&u8>, cbdata: u32, ffinal: P0) -> super::super::Foundation::BOOL +pub unsafe fn CryptMsgUpdate<'a, P0>(hcryptmsg: *const ::core::ffi::c_void, pbdata: ::core::option::Option<&[u8]>, ffinal: P0) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -21008,12 +21032,12 @@ where extern "system" { fn CryptMsgUpdate(hcryptmsg: *const ::core::ffi::c_void, pbdata: *const u8, cbdata: u32, ffinal: super::super::Foundation::BOOL) -> super::super::Foundation::BOOL; } - CryptMsgUpdate(::core::mem::transmute(hcryptmsg), ::core::mem::transmute(pbdata), cbdata, ffinal.into()) + CryptMsgUpdate(::core::mem::transmute(hcryptmsg), ::core::mem::transmute(pbdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbdata.as_deref().map_or(0, |slice| slice.len() as _), ffinal.into()) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptMsgVerifyCountersignatureEncoded<'a, P0>(hcryptprov: P0, dwencodingtype: u32, pbsignerinfo: &u8, cbsignerinfo: u32, pbsignerinfocountersignature: &u8, cbsignerinfocountersignature: u32, pcicountersigner: &CERT_INFO) -> super::super::Foundation::BOOL +pub unsafe fn CryptMsgVerifyCountersignatureEncoded<'a, P0>(hcryptprov: P0, dwencodingtype: u32, pbsignerinfo: &[u8], pbsignerinfocountersignature: &[u8], pcicountersigner: &CERT_INFO) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -21021,12 +21045,12 @@ where extern "system" { fn CryptMsgVerifyCountersignatureEncoded(hcryptprov: HCRYPTPROV_LEGACY, dwencodingtype: u32, pbsignerinfo: *const u8, cbsignerinfo: u32, pbsignerinfocountersignature: *const u8, cbsignerinfocountersignature: u32, pcicountersigner: *const CERT_INFO) -> super::super::Foundation::BOOL; } - CryptMsgVerifyCountersignatureEncoded(hcryptprov.into(), dwencodingtype, ::core::mem::transmute(pbsignerinfo), cbsignerinfo, ::core::mem::transmute(pbsignerinfocountersignature), cbsignerinfocountersignature, ::core::mem::transmute(pcicountersigner)) + CryptMsgVerifyCountersignatureEncoded(hcryptprov.into(), dwencodingtype, ::core::mem::transmute(pbsignerinfo.as_ptr()), pbsignerinfo.len() as _, ::core::mem::transmute(pbsignerinfocountersignature.as_ptr()), pbsignerinfocountersignature.len() as _, ::core::mem::transmute(pcicountersigner)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptMsgVerifyCountersignatureEncodedEx<'a, P0>(hcryptprov: P0, dwencodingtype: u32, pbsignerinfo: &u8, cbsignerinfo: u32, pbsignerinfocountersignature: &u8, cbsignerinfocountersignature: u32, dwsignertype: u32, pvsigner: *const ::core::ffi::c_void, dwflags: u32, pvextra: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn CryptMsgVerifyCountersignatureEncodedEx<'a, P0>(hcryptprov: P0, dwencodingtype: u32, pbsignerinfo: &[u8], pbsignerinfocountersignature: &[u8], dwsignertype: u32, pvsigner: *const ::core::ffi::c_void, dwflags: u32, pvextra: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -21034,7 +21058,7 @@ where extern "system" { fn CryptMsgVerifyCountersignatureEncodedEx(hcryptprov: HCRYPTPROV_LEGACY, dwencodingtype: u32, pbsignerinfo: *const u8, cbsignerinfo: u32, pbsignerinfocountersignature: *const u8, cbsignerinfocountersignature: u32, dwsignertype: u32, pvsigner: *const ::core::ffi::c_void, dwflags: u32, pvextra: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - CryptMsgVerifyCountersignatureEncodedEx(hcryptprov.into(), dwencodingtype, ::core::mem::transmute(pbsignerinfo), cbsignerinfo, ::core::mem::transmute(pbsignerinfocountersignature), cbsignerinfocountersignature, dwsignertype, ::core::mem::transmute(pvsigner), dwflags, ::core::mem::transmute(pvextra)) + CryptMsgVerifyCountersignatureEncodedEx(hcryptprov.into(), dwencodingtype, ::core::mem::transmute(pbsignerinfo.as_ptr()), pbsignerinfo.len() as _, ::core::mem::transmute(pbsignerinfocountersignature.as_ptr()), pbsignerinfocountersignature.len() as _, dwsignertype, ::core::mem::transmute(pvsigner), dwflags, ::core::mem::transmute(pvextra)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -21152,7 +21176,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptRetrieveTimeStamp<'a, P0, P1>(wszurl: P0, dwretrievalflags: u32, dwtimeout: u32, pszhashid: P1, ppara: ::core::option::Option<&CRYPT_TIMESTAMP_PARA>, pbdata: &u8, cbdata: u32, pptscontext: &mut *mut CRYPT_TIMESTAMP_CONTEXT, pptssigner: ::core::option::Option<&mut *mut CERT_CONTEXT>, phstore: ::core::option::Option<&mut HCERTSTORE>) -> super::super::Foundation::BOOL +pub unsafe fn CryptRetrieveTimeStamp<'a, P0, P1>(wszurl: P0, dwretrievalflags: u32, dwtimeout: u32, pszhashid: P1, ppara: ::core::option::Option<&CRYPT_TIMESTAMP_PARA>, pbdata: &[u8], pptscontext: &mut *mut CRYPT_TIMESTAMP_CONTEXT, pptssigner: ::core::option::Option<&mut *mut CERT_CONTEXT>, phstore: ::core::option::Option<&mut HCERTSTORE>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -21161,7 +21185,7 @@ where extern "system" { fn CryptRetrieveTimeStamp(wszurl: ::windows::core::PCWSTR, dwretrievalflags: u32, dwtimeout: u32, pszhashid: ::windows::core::PCSTR, ppara: *const CRYPT_TIMESTAMP_PARA, pbdata: *const u8, cbdata: u32, pptscontext: *mut *mut CRYPT_TIMESTAMP_CONTEXT, pptssigner: *mut *mut CERT_CONTEXT, phstore: *mut HCERTSTORE) -> super::super::Foundation::BOOL; } - CryptRetrieveTimeStamp(wszurl.into(), dwretrievalflags, dwtimeout, pszhashid.into(), ::core::mem::transmute(ppara), ::core::mem::transmute(pbdata), cbdata, ::core::mem::transmute(pptscontext), ::core::mem::transmute(pptssigner), ::core::mem::transmute(phstore)) + CryptRetrieveTimeStamp(wszurl.into(), dwretrievalflags, dwtimeout, pszhashid.into(), ::core::mem::transmute(ppara), ::core::mem::transmute(pbdata.as_ptr()), pbdata.len() as _, ::core::mem::transmute(pptscontext), ::core::mem::transmute(pptssigner), ::core::mem::transmute(phstore)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -21213,7 +21237,7 @@ pub unsafe fn CryptSetKeyParam(hkey: usize, dwparam: CRYPT_KEY_PARAM_ID, pbdata: #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] #[inline] -pub unsafe fn CryptSetOIDFunctionValue<'a, P0, P1, P2>(dwencodingtype: u32, pszfuncname: P0, pszoid: P1, pwszvaluename: P2, dwvaluetype: super::super::System::Registry::REG_VALUE_TYPE, pbvaluedata: ::core::option::Option<&u8>, cbvaluedata: u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptSetOIDFunctionValue<'a, P0, P1, P2>(dwencodingtype: u32, pszfuncname: P0, pszoid: P1, pwszvaluename: P2, dwvaluetype: super::super::System::Registry::REG_VALUE_TYPE, pbvaluedata: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -21223,7 +21247,7 @@ where extern "system" { fn CryptSetOIDFunctionValue(dwencodingtype: u32, pszfuncname: ::windows::core::PCSTR, pszoid: ::windows::core::PCSTR, pwszvaluename: ::windows::core::PCWSTR, dwvaluetype: super::super::System::Registry::REG_VALUE_TYPE, pbvaluedata: *const u8, cbvaluedata: u32) -> super::super::Foundation::BOOL; } - CryptSetOIDFunctionValue(dwencodingtype, pszfuncname.into(), pszoid.into(), pwszvaluename.into(), dwvaluetype, ::core::mem::transmute(pbvaluedata), cbvaluedata) + CryptSetOIDFunctionValue(dwencodingtype, pszfuncname.into(), pszoid.into(), pwszvaluename.into(), dwvaluetype, ::core::mem::transmute(pbvaluedata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbvaluedata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -21290,7 +21314,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptSignAndEncodeCertificate<'a, P0, P1>(hcryptprovorncryptkey: P0, dwkeyspec: CERT_KEY_SPEC, dwcertencodingtype: u32, lpszstructtype: P1, pvstructinfo: *const ::core::ffi::c_void, psignaturealgorithm: &CRYPT_ALGORITHM_IDENTIFIER, pvhashauxinfo: *const ::core::ffi::c_void, pbencoded: ::core::option::Option<&mut u8>, pcbencoded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptSignAndEncodeCertificate<'a, P0, P1>(hcryptprovorncryptkey: P0, dwkeyspec: CERT_KEY_SPEC, dwcertencodingtype: u32, lpszstructtype: P1, pvstructinfo: *const ::core::ffi::c_void, psignaturealgorithm: &CRYPT_ALGORITHM_IDENTIFIER, pvhashauxinfo: *const ::core::ffi::c_void, pbencoded: *mut u8, pcbencoded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -21304,17 +21328,17 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptSignAndEncryptMessage(psignpara: &CRYPT_SIGN_MESSAGE_PARA, pencryptpara: &CRYPT_ENCRYPT_MESSAGE_PARA, rgprecipientcert: &[*const CERT_CONTEXT], pbtobesignedandencrypted: &u8, cbtobesignedandencrypted: u32, pbsignedandencryptedblob: ::core::option::Option<&mut u8>, pcbsignedandencryptedblob: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CryptSignAndEncryptMessage(psignpara: &CRYPT_SIGN_MESSAGE_PARA, pencryptpara: &CRYPT_ENCRYPT_MESSAGE_PARA, rgprecipientcert: &[*const CERT_CONTEXT], pbtobesignedandencrypted: &[u8], pbsignedandencryptedblob: *mut u8, pcbsignedandencryptedblob: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptSignAndEncryptMessage(psignpara: *const CRYPT_SIGN_MESSAGE_PARA, pencryptpara: *const CRYPT_ENCRYPT_MESSAGE_PARA, crecipientcert: u32, rgprecipientcert: *const *const CERT_CONTEXT, pbtobesignedandencrypted: *const u8, cbtobesignedandencrypted: u32, pbsignedandencryptedblob: *mut u8, pcbsignedandencryptedblob: *mut u32) -> super::super::Foundation::BOOL; } - CryptSignAndEncryptMessage(::core::mem::transmute(psignpara), ::core::mem::transmute(pencryptpara), rgprecipientcert.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgprecipientcert)), ::core::mem::transmute(pbtobesignedandencrypted), cbtobesignedandencrypted, ::core::mem::transmute(pbsignedandencryptedblob), ::core::mem::transmute(pcbsignedandencryptedblob)) + CryptSignAndEncryptMessage(::core::mem::transmute(psignpara), ::core::mem::transmute(pencryptpara), rgprecipientcert.len() as _, ::core::mem::transmute(rgprecipientcert.as_ptr()), ::core::mem::transmute(pbtobesignedandencrypted.as_ptr()), pbtobesignedandencrypted.len() as _, ::core::mem::transmute(pbsignedandencryptedblob), ::core::mem::transmute(pcbsignedandencryptedblob)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptSignCertificate<'a, P0>(hcryptprovorncryptkey: P0, dwkeyspec: u32, dwcertencodingtype: u32, pbencodedtobesigned: &u8, cbencodedtobesigned: u32, psignaturealgorithm: &CRYPT_ALGORITHM_IDENTIFIER, pvhashauxinfo: *const ::core::ffi::c_void, pbsignature: ::core::option::Option<&mut u8>, pcbsignature: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptSignCertificate<'a, P0>(hcryptprovorncryptkey: P0, dwkeyspec: u32, dwcertencodingtype: u32, pbencodedtobesigned: &[u8], psignaturealgorithm: &CRYPT_ALGORITHM_IDENTIFIER, pvhashauxinfo: *const ::core::ffi::c_void, pbsignature: *mut u8, pcbsignature: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -21322,12 +21346,12 @@ where extern "system" { fn CryptSignCertificate(hcryptprovorncryptkey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwkeyspec: u32, dwcertencodingtype: u32, pbencodedtobesigned: *const u8, cbencodedtobesigned: u32, psignaturealgorithm: *const CRYPT_ALGORITHM_IDENTIFIER, pvhashauxinfo: *const ::core::ffi::c_void, pbsignature: *mut u8, pcbsignature: *mut u32) -> super::super::Foundation::BOOL; } - CryptSignCertificate(hcryptprovorncryptkey.into(), dwkeyspec, dwcertencodingtype, ::core::mem::transmute(pbencodedtobesigned), cbencodedtobesigned, ::core::mem::transmute(psignaturealgorithm), ::core::mem::transmute(pvhashauxinfo), ::core::mem::transmute(pbsignature), ::core::mem::transmute(pcbsignature)) + CryptSignCertificate(hcryptprovorncryptkey.into(), dwkeyspec, dwcertencodingtype, ::core::mem::transmute(pbencodedtobesigned.as_ptr()), pbencodedtobesigned.len() as _, ::core::mem::transmute(psignaturealgorithm), ::core::mem::transmute(pvhashauxinfo), ::core::mem::transmute(pbsignature), ::core::mem::transmute(pcbsignature)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptSignHashA<'a, P0>(hhash: usize, dwkeyspec: u32, szdescription: P0, dwflags: u32, pbsignature: ::core::option::Option<&mut u8>, pdwsiglen: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptSignHashA<'a, P0>(hhash: usize, dwkeyspec: u32, szdescription: P0, dwflags: u32, pbsignature: *mut u8, pdwsiglen: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -21340,7 +21364,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptSignHashW<'a, P0>(hhash: usize, dwkeyspec: u32, szdescription: P0, dwflags: u32, pbsignature: ::core::option::Option<&mut u8>, pdwsiglen: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptSignHashW<'a, P0>(hhash: usize, dwkeyspec: u32, szdescription: P0, dwflags: u32, pbsignature: *mut u8, pdwsiglen: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -21353,7 +21377,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptSignMessage<'a, P0>(psignpara: &CRYPT_SIGN_MESSAGE_PARA, fdetachedsignature: P0, ctobesigned: u32, rgpbtobesigned: ::core::option::Option<&*const u8>, rgcbtobesigned: &u32, pbsignedblob: ::core::option::Option<&mut u8>, pcbsignedblob: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptSignMessage<'a, P0>(psignpara: &CRYPT_SIGN_MESSAGE_PARA, fdetachedsignature: P0, ctobesigned: u32, rgpbtobesigned: *const *const u8, rgcbtobesigned: *const u32, pbsignedblob: *mut u8, pcbsignedblob: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -21366,32 +21390,32 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptSignMessageWithKey(psignpara: &CRYPT_KEY_SIGN_MESSAGE_PARA, pbtobesigned: &u8, cbtobesigned: u32, pbsignedblob: ::core::option::Option<&mut u8>, pcbsignedblob: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn CryptSignMessageWithKey(psignpara: &CRYPT_KEY_SIGN_MESSAGE_PARA, pbtobesigned: &[u8], pbsignedblob: *mut u8, pcbsignedblob: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptSignMessageWithKey(psignpara: *const CRYPT_KEY_SIGN_MESSAGE_PARA, pbtobesigned: *const u8, cbtobesigned: u32, pbsignedblob: *mut u8, pcbsignedblob: *mut u32) -> super::super::Foundation::BOOL; } - CryptSignMessageWithKey(::core::mem::transmute(psignpara), ::core::mem::transmute(pbtobesigned), cbtobesigned, ::core::mem::transmute(pbsignedblob), ::core::mem::transmute(pcbsignedblob)) + CryptSignMessageWithKey(::core::mem::transmute(psignpara), ::core::mem::transmute(pbtobesigned.as_ptr()), pbtobesigned.len() as _, ::core::mem::transmute(pbsignedblob), ::core::mem::transmute(pcbsignedblob)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptStringToBinaryA(pszstring: &[u8], dwflags: CRYPT_STRING, pbbinary: ::core::option::Option<&mut u8>, pcbbinary: &mut u32, pdwskip: ::core::option::Option<&mut u32>, pdwflags: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn CryptStringToBinaryA(pszstring: &[u8], dwflags: CRYPT_STRING, pbbinary: *mut u8, pcbbinary: &mut u32, pdwskip: ::core::option::Option<&mut u32>, pdwflags: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptStringToBinaryA(pszstring: ::windows::core::PCSTR, cchstring: u32, dwflags: CRYPT_STRING, pbbinary: *mut u8, pcbbinary: *mut u32, pdwskip: *mut u32, pdwflags: *mut u32) -> super::super::Foundation::BOOL; } - CryptStringToBinaryA(::core::mem::transmute(::windows::core::as_ptr_or_null(pszstring)), pszstring.len() as _, dwflags, ::core::mem::transmute(pbbinary), ::core::mem::transmute(pcbbinary), ::core::mem::transmute(pdwskip), ::core::mem::transmute(pdwflags)) + CryptStringToBinaryA(::core::mem::transmute(pszstring.as_ptr()), pszstring.len() as _, dwflags, ::core::mem::transmute(pbbinary), ::core::mem::transmute(pcbbinary), ::core::mem::transmute(pdwskip), ::core::mem::transmute(pdwflags)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptStringToBinaryW(pszstring: &[u16], dwflags: CRYPT_STRING, pbbinary: ::core::option::Option<&mut u8>, pcbbinary: &mut u32, pdwskip: ::core::option::Option<&mut u32>, pdwflags: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn CryptStringToBinaryW(pszstring: &[u16], dwflags: CRYPT_STRING, pbbinary: *mut u8, pcbbinary: &mut u32, pdwskip: ::core::option::Option<&mut u32>, pdwflags: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptStringToBinaryW(pszstring: ::windows::core::PCWSTR, cchstring: u32, dwflags: CRYPT_STRING, pbbinary: *mut u8, pcbbinary: *mut u32, pdwskip: *mut u32, pdwflags: *mut u32) -> super::super::Foundation::BOOL; } - CryptStringToBinaryW(::core::mem::transmute(::windows::core::as_ptr_or_null(pszstring)), pszstring.len() as _, dwflags, ::core::mem::transmute(pbbinary), ::core::mem::transmute(pcbbinary), ::core::mem::transmute(pdwskip), ::core::mem::transmute(pdwflags)) + CryptStringToBinaryW(::core::mem::transmute(pszstring.as_ptr()), pszstring.len() as _, dwflags, ::core::mem::transmute(pbbinary), ::core::mem::transmute(pcbbinary), ::core::mem::transmute(pdwskip), ::core::mem::transmute(pdwflags)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -21488,7 +21512,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptVerifyCertificateSignature<'a, P0>(hcryptprov: P0, dwcertencodingtype: u32, pbencoded: &u8, cbencoded: u32, ppublickey: &CERT_PUBLIC_KEY_INFO) -> super::super::Foundation::BOOL +pub unsafe fn CryptVerifyCertificateSignature<'a, P0>(hcryptprov: P0, dwcertencodingtype: u32, pbencoded: &[u8], ppublickey: &CERT_PUBLIC_KEY_INFO) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -21496,7 +21520,7 @@ where extern "system" { fn CryptVerifyCertificateSignature(hcryptprov: HCRYPTPROV_LEGACY, dwcertencodingtype: u32, pbencoded: *const u8, cbencoded: u32, ppublickey: *const CERT_PUBLIC_KEY_INFO) -> super::super::Foundation::BOOL; } - CryptVerifyCertificateSignature(hcryptprov.into(), dwcertencodingtype, ::core::mem::transmute(pbencoded), cbencoded, ::core::mem::transmute(ppublickey)) + CryptVerifyCertificateSignature(hcryptprov.into(), dwcertencodingtype, ::core::mem::transmute(pbencoded.as_ptr()), pbencoded.len() as _, ::core::mem::transmute(ppublickey)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -21514,57 +21538,57 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptVerifyDetachedMessageHash(phashpara: &CRYPT_HASH_MESSAGE_PARA, pbdetachedhashblob: &u8, cbdetachedhashblob: u32, ctobehashed: u32, rgpbtobehashed: &*const u8, rgcbtobehashed: &u32, pbcomputedhash: ::core::option::Option<&mut u8>, pcbcomputedhash: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn CryptVerifyDetachedMessageHash(phashpara: &CRYPT_HASH_MESSAGE_PARA, pbdetachedhashblob: &[u8], ctobehashed: u32, rgpbtobehashed: *const *const u8, rgcbtobehashed: *const u32, pbcomputedhash: *mut u8, pcbcomputedhash: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptVerifyDetachedMessageHash(phashpara: *const CRYPT_HASH_MESSAGE_PARA, pbdetachedhashblob: *const u8, cbdetachedhashblob: u32, ctobehashed: u32, rgpbtobehashed: *const *const u8, rgcbtobehashed: *const u32, pbcomputedhash: *mut u8, pcbcomputedhash: *mut u32) -> super::super::Foundation::BOOL; } - CryptVerifyDetachedMessageHash(::core::mem::transmute(phashpara), ::core::mem::transmute(pbdetachedhashblob), cbdetachedhashblob, ::core::mem::transmute(ctobehashed), ::core::mem::transmute(rgpbtobehashed), ::core::mem::transmute(rgcbtobehashed), ::core::mem::transmute(pbcomputedhash), ::core::mem::transmute(pcbcomputedhash)) + CryptVerifyDetachedMessageHash(::core::mem::transmute(phashpara), ::core::mem::transmute(pbdetachedhashblob.as_ptr()), pbdetachedhashblob.len() as _, ::core::mem::transmute(ctobehashed), ::core::mem::transmute(rgpbtobehashed), ::core::mem::transmute(rgcbtobehashed), ::core::mem::transmute(pbcomputedhash), ::core::mem::transmute(pcbcomputedhash)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptVerifyDetachedMessageSignature(pverifypara: &CRYPT_VERIFY_MESSAGE_PARA, dwsignerindex: u32, pbdetachedsignblob: &u8, cbdetachedsignblob: u32, ctobesigned: u32, rgpbtobesigned: &*const u8, rgcbtobesigned: &u32, ppsignercert: ::core::option::Option<&mut *mut CERT_CONTEXT>) -> super::super::Foundation::BOOL { +pub unsafe fn CryptVerifyDetachedMessageSignature(pverifypara: &CRYPT_VERIFY_MESSAGE_PARA, dwsignerindex: u32, pbdetachedsignblob: &[u8], ctobesigned: u32, rgpbtobesigned: *const *const u8, rgcbtobesigned: *const u32, ppsignercert: ::core::option::Option<&mut *mut CERT_CONTEXT>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptVerifyDetachedMessageSignature(pverifypara: *const CRYPT_VERIFY_MESSAGE_PARA, dwsignerindex: u32, pbdetachedsignblob: *const u8, cbdetachedsignblob: u32, ctobesigned: u32, rgpbtobesigned: *const *const u8, rgcbtobesigned: *const u32, ppsignercert: *mut *mut CERT_CONTEXT) -> super::super::Foundation::BOOL; } - CryptVerifyDetachedMessageSignature(::core::mem::transmute(pverifypara), dwsignerindex, ::core::mem::transmute(pbdetachedsignblob), cbdetachedsignblob, ::core::mem::transmute(ctobesigned), ::core::mem::transmute(rgpbtobesigned), ::core::mem::transmute(rgcbtobesigned), ::core::mem::transmute(ppsignercert)) + CryptVerifyDetachedMessageSignature(::core::mem::transmute(pverifypara), dwsignerindex, ::core::mem::transmute(pbdetachedsignblob.as_ptr()), pbdetachedsignblob.len() as _, ::core::mem::transmute(ctobesigned), ::core::mem::transmute(rgpbtobesigned), ::core::mem::transmute(rgcbtobesigned), ::core::mem::transmute(ppsignercert)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptVerifyMessageHash(phashpara: &CRYPT_HASH_MESSAGE_PARA, pbhashedblob: &u8, cbhashedblob: u32, pbtobehashed: ::core::option::Option<&mut u8>, pcbtobehashed: ::core::option::Option<&mut u32>, pbcomputedhash: ::core::option::Option<&mut u8>, pcbcomputedhash: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn CryptVerifyMessageHash(phashpara: &CRYPT_HASH_MESSAGE_PARA, pbhashedblob: &[u8], pbtobehashed: *mut u8, pcbtobehashed: ::core::option::Option<&mut u32>, pbcomputedhash: *mut u8, pcbcomputedhash: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptVerifyMessageHash(phashpara: *const CRYPT_HASH_MESSAGE_PARA, pbhashedblob: *const u8, cbhashedblob: u32, pbtobehashed: *mut u8, pcbtobehashed: *mut u32, pbcomputedhash: *mut u8, pcbcomputedhash: *mut u32) -> super::super::Foundation::BOOL; } - CryptVerifyMessageHash(::core::mem::transmute(phashpara), ::core::mem::transmute(pbhashedblob), cbhashedblob, ::core::mem::transmute(pbtobehashed), ::core::mem::transmute(pcbtobehashed), ::core::mem::transmute(pbcomputedhash), ::core::mem::transmute(pcbcomputedhash)) + CryptVerifyMessageHash(::core::mem::transmute(phashpara), ::core::mem::transmute(pbhashedblob.as_ptr()), pbhashedblob.len() as _, ::core::mem::transmute(pbtobehashed), ::core::mem::transmute(pcbtobehashed), ::core::mem::transmute(pbcomputedhash), ::core::mem::transmute(pcbcomputedhash)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptVerifyMessageSignature(pverifypara: &CRYPT_VERIFY_MESSAGE_PARA, dwsignerindex: u32, pbsignedblob: &u8, cbsignedblob: u32, pbdecoded: ::core::option::Option<&mut u8>, pcbdecoded: ::core::option::Option<&mut u32>, ppsignercert: ::core::option::Option<&mut *mut CERT_CONTEXT>) -> super::super::Foundation::BOOL { +pub unsafe fn CryptVerifyMessageSignature(pverifypara: &CRYPT_VERIFY_MESSAGE_PARA, dwsignerindex: u32, pbsignedblob: &[u8], pbdecoded: *mut u8, pcbdecoded: ::core::option::Option<&mut u32>, ppsignercert: ::core::option::Option<&mut *mut CERT_CONTEXT>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptVerifyMessageSignature(pverifypara: *const CRYPT_VERIFY_MESSAGE_PARA, dwsignerindex: u32, pbsignedblob: *const u8, cbsignedblob: u32, pbdecoded: *mut u8, pcbdecoded: *mut u32, ppsignercert: *mut *mut CERT_CONTEXT) -> super::super::Foundation::BOOL; } - CryptVerifyMessageSignature(::core::mem::transmute(pverifypara), dwsignerindex, ::core::mem::transmute(pbsignedblob), cbsignedblob, ::core::mem::transmute(pbdecoded), ::core::mem::transmute(pcbdecoded), ::core::mem::transmute(ppsignercert)) + CryptVerifyMessageSignature(::core::mem::transmute(pverifypara), dwsignerindex, ::core::mem::transmute(pbsignedblob.as_ptr()), pbsignedblob.len() as _, ::core::mem::transmute(pbdecoded), ::core::mem::transmute(pcbdecoded), ::core::mem::transmute(ppsignercert)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptVerifyMessageSignatureWithKey(pverifypara: &CRYPT_KEY_VERIFY_MESSAGE_PARA, ppublickeyinfo: ::core::option::Option<&CERT_PUBLIC_KEY_INFO>, pbsignedblob: &u8, cbsignedblob: u32, pbdecoded: ::core::option::Option<&mut u8>, pcbdecoded: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn CryptVerifyMessageSignatureWithKey(pverifypara: &CRYPT_KEY_VERIFY_MESSAGE_PARA, ppublickeyinfo: ::core::option::Option<&CERT_PUBLIC_KEY_INFO>, pbsignedblob: &[u8], pbdecoded: *mut u8, pcbdecoded: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptVerifyMessageSignatureWithKey(pverifypara: *const CRYPT_KEY_VERIFY_MESSAGE_PARA, ppublickeyinfo: *const CERT_PUBLIC_KEY_INFO, pbsignedblob: *const u8, cbsignedblob: u32, pbdecoded: *mut u8, pcbdecoded: *mut u32) -> super::super::Foundation::BOOL; } - CryptVerifyMessageSignatureWithKey(::core::mem::transmute(pverifypara), ::core::mem::transmute(ppublickeyinfo), ::core::mem::transmute(pbsignedblob), cbsignedblob, ::core::mem::transmute(pbdecoded), ::core::mem::transmute(pcbdecoded)) + CryptVerifyMessageSignatureWithKey(::core::mem::transmute(pverifypara), ::core::mem::transmute(ppublickeyinfo), ::core::mem::transmute(pbsignedblob.as_ptr()), pbsignedblob.len() as _, ::core::mem::transmute(pbdecoded), ::core::mem::transmute(pcbdecoded)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptVerifySignatureA<'a, P0>(hhash: usize, pbsignature: &u8, dwsiglen: u32, hpubkey: usize, szdescription: P0, dwflags: u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptVerifySignatureA<'a, P0>(hhash: usize, pbsignature: &[u8], hpubkey: usize, szdescription: P0, dwflags: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -21572,12 +21596,12 @@ where extern "system" { fn CryptVerifySignatureA(hhash: usize, pbsignature: *const u8, dwsiglen: u32, hpubkey: usize, szdescription: ::windows::core::PCSTR, dwflags: u32) -> super::super::Foundation::BOOL; } - CryptVerifySignatureA(hhash, ::core::mem::transmute(pbsignature), dwsiglen, hpubkey, szdescription.into(), dwflags) + CryptVerifySignatureA(hhash, ::core::mem::transmute(pbsignature.as_ptr()), pbsignature.len() as _, hpubkey, szdescription.into(), dwflags) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptVerifySignatureW<'a, P0>(hhash: usize, pbsignature: &u8, dwsiglen: u32, hpubkey: usize, szdescription: P0, dwflags: u32) -> super::super::Foundation::BOOL +pub unsafe fn CryptVerifySignatureW<'a, P0>(hhash: usize, pbsignature: &[u8], hpubkey: usize, szdescription: P0, dwflags: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -21585,12 +21609,12 @@ where extern "system" { fn CryptVerifySignatureW(hhash: usize, pbsignature: *const u8, dwsiglen: u32, hpubkey: usize, szdescription: ::windows::core::PCWSTR, dwflags: u32) -> super::super::Foundation::BOOL; } - CryptVerifySignatureW(hhash, ::core::mem::transmute(pbsignature), dwsiglen, hpubkey, szdescription.into(), dwflags) + CryptVerifySignatureW(hhash, ::core::mem::transmute(pbsignature.as_ptr()), pbsignature.len() as _, hpubkey, szdescription.into(), dwflags) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CryptVerifyTimeStampSignature<'a, P0>(pbtscontentinfo: &u8, cbtscontentinfo: u32, pbdata: ::core::option::Option<&u8>, cbdata: u32, hadditionalstore: P0, pptscontext: &mut *mut CRYPT_TIMESTAMP_CONTEXT, pptssigner: ::core::option::Option<&mut *mut CERT_CONTEXT>, phstore: ::core::option::Option<&mut HCERTSTORE>) -> super::super::Foundation::BOOL +pub unsafe fn CryptVerifyTimeStampSignature<'a, P0>(pbtscontentinfo: &[u8], pbdata: ::core::option::Option<&[u8]>, hadditionalstore: P0, pptscontext: &mut *mut CRYPT_TIMESTAMP_CONTEXT, pptssigner: ::core::option::Option<&mut *mut CERT_CONTEXT>, phstore: ::core::option::Option<&mut HCERTSTORE>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -21598,17 +21622,17 @@ where extern "system" { fn CryptVerifyTimeStampSignature(pbtscontentinfo: *const u8, cbtscontentinfo: u32, pbdata: *const u8, cbdata: u32, hadditionalstore: HCERTSTORE, pptscontext: *mut *mut CRYPT_TIMESTAMP_CONTEXT, pptssigner: *mut *mut CERT_CONTEXT, phstore: *mut HCERTSTORE) -> super::super::Foundation::BOOL; } - CryptVerifyTimeStampSignature(::core::mem::transmute(pbtscontentinfo), cbtscontentinfo, ::core::mem::transmute(pbdata), cbdata, hadditionalstore.into(), ::core::mem::transmute(pptscontext), ::core::mem::transmute(pptssigner), ::core::mem::transmute(phstore)) + CryptVerifyTimeStampSignature(::core::mem::transmute(pbtscontentinfo.as_ptr()), pbtscontentinfo.len() as _, ::core::mem::transmute(pbdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbdata.as_deref().map_or(0, |slice| slice.len() as _), hadditionalstore.into(), ::core::mem::transmute(pptscontext), ::core::mem::transmute(pptssigner), ::core::mem::transmute(phstore)) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn CryptXmlAddObject(hsignatureorobject: *const ::core::ffi::c_void, dwflags: u32, rgproperty: &[CRYPT_XML_PROPERTY], pencoded: &CRYPT_XML_BLOB) -> ::windows::core::Result<*mut CRYPT_XML_OBJECT> { +pub unsafe fn CryptXmlAddObject(hsignatureorobject: *const ::core::ffi::c_void, dwflags: u32, rgproperty: ::core::option::Option<&[CRYPT_XML_PROPERTY]>, pencoded: &CRYPT_XML_BLOB) -> ::windows::core::Result<*mut CRYPT_XML_OBJECT> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptXmlAddObject(hsignatureorobject: *const ::core::ffi::c_void, dwflags: u32, rgproperty: *const CRYPT_XML_PROPERTY, cproperty: u32, pencoded: *const CRYPT_XML_BLOB, ppobject: *mut *mut CRYPT_XML_OBJECT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - CryptXmlAddObject(::core::mem::transmute(hsignatureorobject), dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgproperty)), rgproperty.len() as _, ::core::mem::transmute(pencoded), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut CRYPT_XML_OBJECT>(result__) + CryptXmlAddObject(::core::mem::transmute(hsignatureorobject), dwflags, ::core::mem::transmute(rgproperty.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rgproperty.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pencoded), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut CRYPT_XML_OBJECT>(result__) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -21621,7 +21645,7 @@ pub unsafe fn CryptXmlClose(hcryptxml: *const ::core::ffi::c_void) -> ::windows: } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn CryptXmlCreateReference<'a, P0, P1, P2>(hcryptxml: *const ::core::ffi::c_void, dwflags: u32, wszid: P0, wszuri: P1, wsztype: P2, pdigestmethod: &CRYPT_XML_ALGORITHM, rgtransform: &[CRYPT_XML_ALGORITHM], phreference: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> +pub unsafe fn CryptXmlCreateReference<'a, P0, P1, P2>(hcryptxml: *const ::core::ffi::c_void, dwflags: u32, wszid: P0, wszuri: P1, wsztype: P2, pdigestmethod: &CRYPT_XML_ALGORITHM, rgtransform: ::core::option::Option<&[CRYPT_XML_ALGORITHM]>, phreference: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -21631,7 +21655,7 @@ where extern "system" { fn CryptXmlCreateReference(hcryptxml: *const ::core::ffi::c_void, dwflags: u32, wszid: ::windows::core::PCWSTR, wszuri: ::windows::core::PCWSTR, wsztype: ::windows::core::PCWSTR, pdigestmethod: *const CRYPT_XML_ALGORITHM, ctransform: u32, rgtransform: *const CRYPT_XML_ALGORITHM, phreference: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - CryptXmlCreateReference(::core::mem::transmute(hcryptxml), dwflags, wszid.into(), wszuri.into(), wsztype.into(), ::core::mem::transmute(pdigestmethod), rgtransform.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgtransform)), ::core::mem::transmute(phreference)).ok() + CryptXmlCreateReference(::core::mem::transmute(hcryptxml), dwflags, wszid.into(), wszuri.into(), wsztype.into(), ::core::mem::transmute(pdigestmethod), rgtransform.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgtransform.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(phreference)).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -21666,12 +21690,12 @@ pub type CryptXmlDllSignData = ::core::option::Option ::windows::core::HRESULT>; #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn CryptXmlEncode(hcryptxml: *const ::core::ffi::c_void, dwcharset: CRYPT_XML_CHARSET, rgproperty: &[CRYPT_XML_PROPERTY], pvcallbackstate: *mut ::core::ffi::c_void, pfnwrite: PFN_CRYPT_XML_WRITE_CALLBACK) -> ::windows::core::Result<()> { +pub unsafe fn CryptXmlEncode(hcryptxml: *const ::core::ffi::c_void, dwcharset: CRYPT_XML_CHARSET, rgproperty: ::core::option::Option<&[CRYPT_XML_PROPERTY]>, pvcallbackstate: *mut ::core::ffi::c_void, pfnwrite: PFN_CRYPT_XML_WRITE_CALLBACK) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptXmlEncode(hcryptxml: *const ::core::ffi::c_void, dwcharset: CRYPT_XML_CHARSET, rgproperty: *const CRYPT_XML_PROPERTY, cproperty: u32, pvcallbackstate: *mut ::core::ffi::c_void, pfnwrite: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - CryptXmlEncode(::core::mem::transmute(hcryptxml), dwcharset, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgproperty)), rgproperty.len() as _, ::core::mem::transmute(pvcallbackstate), ::core::mem::transmute(pfnwrite)).ok() + CryptXmlEncode(::core::mem::transmute(hcryptxml), dwcharset, ::core::mem::transmute(rgproperty.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rgproperty.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pvcallbackstate), ::core::mem::transmute(pfnwrite)).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -21764,16 +21788,16 @@ pub unsafe fn CryptXmlImportPublicKey(dwflags: CRYPT_XML_FLAGS, pkeyvalue: &CRYP } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn CryptXmlOpenToDecode(pconfig: ::core::option::Option<&CRYPT_XML_TRANSFORM_CHAIN_CONFIG>, dwflags: CRYPT_XML_FLAGS, rgproperty: &[CRYPT_XML_PROPERTY], pencoded: &CRYPT_XML_BLOB, phcryptxml: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { +pub unsafe fn CryptXmlOpenToDecode(pconfig: ::core::option::Option<&CRYPT_XML_TRANSFORM_CHAIN_CONFIG>, dwflags: CRYPT_XML_FLAGS, rgproperty: ::core::option::Option<&[CRYPT_XML_PROPERTY]>, pencoded: &CRYPT_XML_BLOB, phcryptxml: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptXmlOpenToDecode(pconfig: *const CRYPT_XML_TRANSFORM_CHAIN_CONFIG, dwflags: CRYPT_XML_FLAGS, rgproperty: *const CRYPT_XML_PROPERTY, cproperty: u32, pencoded: *const CRYPT_XML_BLOB, phcryptxml: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - CryptXmlOpenToDecode(::core::mem::transmute(pconfig), dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgproperty)), rgproperty.len() as _, ::core::mem::transmute(pencoded), ::core::mem::transmute(phcryptxml)).ok() + CryptXmlOpenToDecode(::core::mem::transmute(pconfig), dwflags, ::core::mem::transmute(rgproperty.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rgproperty.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pencoded), ::core::mem::transmute(phcryptxml)).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn CryptXmlOpenToEncode<'a, P0>(pconfig: ::core::option::Option<&CRYPT_XML_TRANSFORM_CHAIN_CONFIG>, dwflags: CRYPT_XML_FLAGS, wszid: P0, rgproperty: &[CRYPT_XML_PROPERTY], pencoded: ::core::option::Option<&CRYPT_XML_BLOB>, phsignature: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> +pub unsafe fn CryptXmlOpenToEncode<'a, P0>(pconfig: ::core::option::Option<&CRYPT_XML_TRANSFORM_CHAIN_CONFIG>, dwflags: CRYPT_XML_FLAGS, wszid: P0, rgproperty: ::core::option::Option<&[CRYPT_XML_PROPERTY]>, pencoded: ::core::option::Option<&CRYPT_XML_BLOB>, phsignature: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -21781,16 +21805,16 @@ where extern "system" { fn CryptXmlOpenToEncode(pconfig: *const CRYPT_XML_TRANSFORM_CHAIN_CONFIG, dwflags: CRYPT_XML_FLAGS, wszid: ::windows::core::PCWSTR, rgproperty: *const CRYPT_XML_PROPERTY, cproperty: u32, pencoded: *const CRYPT_XML_BLOB, phsignature: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - CryptXmlOpenToEncode(::core::mem::transmute(pconfig), dwflags, wszid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgproperty)), rgproperty.len() as _, ::core::mem::transmute(pencoded), ::core::mem::transmute(phsignature)).ok() + CryptXmlOpenToEncode(::core::mem::transmute(pconfig), dwflags, wszid.into(), ::core::mem::transmute(rgproperty.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rgproperty.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pencoded), ::core::mem::transmute(phsignature)).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn CryptXmlSetHMACSecret(hsignature: *const ::core::ffi::c_void, pbsecret: &u8, cbsecret: u32) -> ::windows::core::Result<()> { +pub unsafe fn CryptXmlSetHMACSecret(hsignature: *const ::core::ffi::c_void, pbsecret: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CryptXmlSetHMACSecret(hsignature: *const ::core::ffi::c_void, pbsecret: *const u8, cbsecret: u32) -> ::windows::core::HRESULT; } - CryptXmlSetHMACSecret(::core::mem::transmute(hsignature), ::core::mem::transmute(pbsecret), cbsecret).ok() + CryptXmlSetHMACSecret(::core::mem::transmute(hsignature), ::core::mem::transmute(pbsecret.as_ptr()), pbsecret.len() as _).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -21877,7 +21901,7 @@ impl ::core::default::Default for DSSSEED { #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn Decrypt<'a, P0>(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, foaep: P0, cbindata: u32, pindata: &u8, pcboutdata: &mut u32, ppoutdata: &mut *mut u8) -> ::windows::core::Result<()> +pub unsafe fn Decrypt<'a, P0>(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, foaep: P0, pindata: &[u8], pcboutdata: &mut u32, ppoutdata: *mut *mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -21885,7 +21909,7 @@ where extern "system" { fn Decrypt(hcrypto: *const INFORMATIONCARD_CRYPTO_HANDLE, foaep: super::super::Foundation::BOOL, cbindata: u32, pindata: *const u8, pcboutdata: *mut u32, ppoutdata: *mut *mut u8) -> ::windows::core::HRESULT; } - Decrypt(::core::mem::transmute(hcrypto), foaep.into(), cbindata, ::core::mem::transmute(pindata), ::core::mem::transmute(pcboutdata), ::core::mem::transmute(ppoutdata)).ok() + Decrypt(::core::mem::transmute(hcrypto), foaep.into(), pindata.len() as _, ::core::mem::transmute(pindata.as_ptr()), ::core::mem::transmute(pcboutdata), ::core::mem::transmute(ppoutdata)).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[repr(transparent)] @@ -22163,7 +22187,7 @@ pub const E_ICARD_USERCANCELLED: ::windows::core::HRESULT = ::windows::core::HRE #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn Encrypt<'a, P0>(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, foaep: P0, cbindata: u32, pindata: &u8, pcboutdata: &mut u32, ppoutdata: &mut *mut u8) -> ::windows::core::Result<()> +pub unsafe fn Encrypt<'a, P0>(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, foaep: P0, pindata: &[u8], pcboutdata: &mut u32, ppoutdata: *mut *mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -22171,11 +22195,11 @@ where extern "system" { fn Encrypt(hcrypto: *const INFORMATIONCARD_CRYPTO_HANDLE, foaep: super::super::Foundation::BOOL, cbindata: u32, pindata: *const u8, pcboutdata: *mut u32, ppoutdata: *mut *mut u8) -> ::windows::core::HRESULT; } - Encrypt(::core::mem::transmute(hcrypto), foaep.into(), cbindata, ::core::mem::transmute(pindata), ::core::mem::transmute(pcboutdata), ::core::mem::transmute(ppoutdata)).ok() + Encrypt(::core::mem::transmute(hcrypto), foaep.into(), pindata.len() as _, ::core::mem::transmute(pindata.as_ptr()), ::core::mem::transmute(pcboutdata), ::core::mem::transmute(ppoutdata)).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn FindCertsByIssuer<'a, P0>(pcertchains: ::core::option::Option<&mut CERT_CHAIN>, pcbcertchains: &mut u32, pccertchains: &mut u32, pbencodedissuername: ::core::option::Option<&u8>, cbencodedissuername: u32, pwszpurpose: P0, dwkeyspec: u32) -> ::windows::core::Result<()> +pub unsafe fn FindCertsByIssuer<'a, P0>(pcertchains: *mut CERT_CHAIN, pcbcertchains: &mut u32, pccertchains: &mut u32, pbencodedissuername: ::core::option::Option<&[u8]>, pwszpurpose: P0, dwkeyspec: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -22183,7 +22207,7 @@ where extern "system" { fn FindCertsByIssuer(pcertchains: *mut CERT_CHAIN, pcbcertchains: *mut u32, pccertchains: *mut u32, pbencodedissuername: *const u8, cbencodedissuername: u32, pwszpurpose: ::windows::core::PCWSTR, dwkeyspec: u32) -> ::windows::core::HRESULT; } - FindCertsByIssuer(::core::mem::transmute(pcertchains), ::core::mem::transmute(pcbcertchains), ::core::mem::transmute(pccertchains), ::core::mem::transmute(pbencodedissuername), cbencodedissuername, pwszpurpose.into(), dwkeyspec).ok() + FindCertsByIssuer(::core::mem::transmute(pcertchains), ::core::mem::transmute(pcbcertchains), ::core::mem::transmute(pccertchains), ::core::mem::transmute(pbencodedissuername.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbencodedissuername.as_deref().map_or(0, |slice| slice.len() as _), pwszpurpose.into(), dwkeyspec).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -22233,7 +22257,7 @@ impl ::core::default::Default for GENERIC_XML_TOKEN { } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn GenerateDerivedKey<'a, P0>(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, cblabel: u32, plabel: &u8, cbnonce: u32, pnonce: &u8, derivedkeylength: u32, offset: u32, algid: P0, pcbkey: &mut u32, ppkey: &mut *mut u8) -> ::windows::core::Result<()> +pub unsafe fn GenerateDerivedKey<'a, P0>(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, plabel: &[u8], pnonce: &[u8], derivedkeylength: u32, offset: u32, algid: P0, pcbkey: &mut u32, ppkey: *mut *mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -22241,11 +22265,11 @@ where extern "system" { fn GenerateDerivedKey(hcrypto: *const INFORMATIONCARD_CRYPTO_HANDLE, cblabel: u32, plabel: *const u8, cbnonce: u32, pnonce: *const u8, derivedkeylength: u32, offset: u32, algid: ::windows::core::PCWSTR, pcbkey: *mut u32, ppkey: *mut *mut u8) -> ::windows::core::HRESULT; } - GenerateDerivedKey(::core::mem::transmute(hcrypto), cblabel, ::core::mem::transmute(plabel), cbnonce, ::core::mem::transmute(pnonce), derivedkeylength, offset, algid.into(), ::core::mem::transmute(pcbkey), ::core::mem::transmute(ppkey)).ok() + GenerateDerivedKey(::core::mem::transmute(hcrypto), plabel.len() as _, ::core::mem::transmute(plabel.as_ptr()), pnonce.len() as _, ::core::mem::transmute(pnonce.as_ptr()), derivedkeylength, offset, algid.into(), ::core::mem::transmute(pcbkey), ::core::mem::transmute(ppkey)).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn GetBrowserToken(dwparamtype: u32, pparam: *const ::core::ffi::c_void, pcbtoken: ::core::option::Option<&mut u32>, pptoken: ::core::option::Option<&mut *mut u8>) -> ::windows::core::Result<()> { +pub unsafe fn GetBrowserToken(dwparamtype: u32, pparam: *const ::core::ffi::c_void, pcbtoken: ::core::option::Option<&mut u32>, pptoken: *mut *mut u8) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetBrowserToken(dwparamtype: u32, pparam: *const ::core::ffi::c_void, pcbtoken: *mut u32, pptoken: *mut *mut u8) -> ::windows::core::HRESULT; @@ -22254,13 +22278,13 @@ pub unsafe fn GetBrowserToken(dwparamtype: u32, pparam: *const ::core::ffi::c_vo } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn GetCryptoTransform(hsymmetriccrypto: &INFORMATIONCARD_CRYPTO_HANDLE, mode: u32, padding: PaddingMode, feedbacksize: u32, direction: Direction, cbiv: u32, piv: &u8) -> ::windows::core::Result<*mut INFORMATIONCARD_CRYPTO_HANDLE> { +pub unsafe fn GetCryptoTransform(hsymmetriccrypto: &INFORMATIONCARD_CRYPTO_HANDLE, mode: u32, padding: PaddingMode, feedbacksize: u32, direction: Direction, piv: &[u8]) -> ::windows::core::Result<*mut INFORMATIONCARD_CRYPTO_HANDLE> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetCryptoTransform(hsymmetriccrypto: *const INFORMATIONCARD_CRYPTO_HANDLE, mode: u32, padding: PaddingMode, feedbacksize: u32, direction: Direction, cbiv: u32, piv: *const u8, pphtransform: *mut *mut INFORMATIONCARD_CRYPTO_HANDLE) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - GetCryptoTransform(::core::mem::transmute(hsymmetriccrypto), mode, padding, feedbacksize, direction, cbiv, ::core::mem::transmute(piv), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut INFORMATIONCARD_CRYPTO_HANDLE>(result__) + GetCryptoTransform(::core::mem::transmute(hsymmetriccrypto), mode, padding, feedbacksize, direction, piv.len() as _, ::core::mem::transmute(piv.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut INFORMATIONCARD_CRYPTO_HANDLE>(result__) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -22280,7 +22304,7 @@ pub unsafe fn GetToken(ppolicychain: &[POLICY_ELEMENT], securitytoken: &mut *mut extern "system" { fn GetToken(cpolicychain: u32, ppolicychain: *const POLICY_ELEMENT, securitytoken: *mut *mut GENERIC_XML_TOKEN, phprooftokencrypto: *mut *mut INFORMATIONCARD_CRYPTO_HANDLE) -> ::windows::core::HRESULT; } - GetToken(ppolicychain.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppolicychain)), ::core::mem::transmute(securitytoken), ::core::mem::transmute(phprooftokencrypto)).ok() + GetToken(ppolicychain.len() as _, ::core::mem::transmute(ppolicychain.as_ptr()), ::core::mem::transmute(securitytoken), ::core::mem::transmute(phprooftokencrypto)).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[repr(transparent)] @@ -22657,21 +22681,21 @@ impl ::core::fmt::Debug for HandleType { } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn HashCore(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, cbindata: u32, pindata: &u8) -> ::windows::core::Result<()> { +pub unsafe fn HashCore(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, pindata: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HashCore(hcrypto: *const INFORMATIONCARD_CRYPTO_HANDLE, cbindata: u32, pindata: *const u8) -> ::windows::core::HRESULT; } - HashCore(::core::mem::transmute(hcrypto), cbindata, ::core::mem::transmute(pindata)).ok() + HashCore(::core::mem::transmute(hcrypto), pindata.len() as _, ::core::mem::transmute(pindata.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn HashFinal(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, cbindata: u32, pindata: &u8, pcboutdata: &mut u32, ppoutdata: &mut *mut u8) -> ::windows::core::Result<()> { +pub unsafe fn HashFinal(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, pindata: &[u8], pcboutdata: &mut u32, ppoutdata: *mut *mut u8) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HashFinal(hcrypto: *const INFORMATIONCARD_CRYPTO_HANDLE, cbindata: u32, pindata: *const u8, pcboutdata: *mut u32, ppoutdata: *mut *mut u8) -> ::windows::core::HRESULT; } - HashFinal(::core::mem::transmute(hcrypto), cbindata, ::core::mem::transmute(pindata), ::core::mem::transmute(pcboutdata), ::core::mem::transmute(ppoutdata)).ok() + HashFinal(::core::mem::transmute(hcrypto), pindata.len() as _, ::core::mem::transmute(pindata.as_ptr()), ::core::mem::transmute(pcboutdata), ::core::mem::transmute(ppoutdata)).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -25840,7 +25864,7 @@ where } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn NCryptCreateClaim<'a, P0, P1>(hsubjectkey: P0, hauthoritykey: P1, dwclaimtype: u32, pparameterlist: ::core::option::Option<&BCryptBufferDesc>, pbclaimblob: ::core::option::Option<&mut u8>, cbclaimblob: u32, pcbresult: &mut u32, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn NCryptCreateClaim<'a, P0, P1>(hsubjectkey: P0, hauthoritykey: P1, dwclaimtype: u32, pparameterlist: ::core::option::Option<&BCryptBufferDesc>, pbclaimblob: ::core::option::Option<&mut [u8]>, pcbresult: &mut u32, dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -25849,7 +25873,7 @@ where extern "system" { fn NCryptCreateClaim(hsubjectkey: NCRYPT_KEY_HANDLE, hauthoritykey: NCRYPT_KEY_HANDLE, dwclaimtype: u32, pparameterlist: *const BCryptBufferDesc, pbclaimblob: *mut u8, cbclaimblob: u32, pcbresult: *mut u32, dwflags: u32) -> ::windows::core::HRESULT; } - NCryptCreateClaim(hsubjectkey.into(), hauthoritykey.into(), dwclaimtype, ::core::mem::transmute(pparameterlist), ::core::mem::transmute(pbclaimblob), cbclaimblob, ::core::mem::transmute(pcbresult), dwflags).ok() + NCryptCreateClaim(hsubjectkey.into(), hauthoritykey.into(), dwclaimtype, ::core::mem::transmute(pparameterlist), ::core::mem::transmute(pbclaimblob.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbclaimblob.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbresult), dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -25880,7 +25904,7 @@ where } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn NCryptDecrypt<'a, P0>(hkey: P0, pbinput: ::core::option::Option<&u8>, cbinput: u32, ppaddinginfo: *const ::core::ffi::c_void, pboutput: ::core::option::Option<&mut u8>, cboutput: u32, pcbresult: &mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> +pub unsafe fn NCryptDecrypt<'a, P0>(hkey: P0, pbinput: ::core::option::Option<&[u8]>, ppaddinginfo: *const ::core::ffi::c_void, pboutput: ::core::option::Option<&mut [u8]>, pcbresult: &mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -25888,7 +25912,7 @@ where extern "system" { fn NCryptDecrypt(hkey: NCRYPT_KEY_HANDLE, pbinput: *const u8, cbinput: u32, ppaddinginfo: *const ::core::ffi::c_void, pboutput: *mut u8, cboutput: u32, pcbresult: *mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::HRESULT; } - NCryptDecrypt(hkey.into(), ::core::mem::transmute(pbinput), cbinput, ::core::mem::transmute(ppaddinginfo), ::core::mem::transmute(pboutput), cboutput, ::core::mem::transmute(pcbresult), dwflags).ok() + NCryptDecrypt(hkey.into(), ::core::mem::transmute(pbinput.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbinput.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppaddinginfo), ::core::mem::transmute(pboutput.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pboutput.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbresult), dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -25904,7 +25928,7 @@ where } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn NCryptDeriveKey<'a, P0, P1>(hsharedsecret: P0, pwszkdf: P1, pparameterlist: ::core::option::Option<&BCryptBufferDesc>, pbderivedkey: ::core::option::Option<&mut u8>, cbderivedkey: u32, pcbresult: &mut u32, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn NCryptDeriveKey<'a, P0, P1>(hsharedsecret: P0, pwszkdf: P1, pparameterlist: ::core::option::Option<&BCryptBufferDesc>, pbderivedkey: ::core::option::Option<&mut [u8]>, pcbresult: &mut u32, dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -25913,11 +25937,11 @@ where extern "system" { fn NCryptDeriveKey(hsharedsecret: NCRYPT_SECRET_HANDLE, pwszkdf: ::windows::core::PCWSTR, pparameterlist: *const BCryptBufferDesc, pbderivedkey: *mut u8, cbderivedkey: u32, pcbresult: *mut u32, dwflags: u32) -> ::windows::core::HRESULT; } - NCryptDeriveKey(hsharedsecret.into(), pwszkdf.into(), ::core::mem::transmute(pparameterlist), ::core::mem::transmute(pbderivedkey), cbderivedkey, ::core::mem::transmute(pcbresult), dwflags).ok() + NCryptDeriveKey(hsharedsecret.into(), pwszkdf.into(), ::core::mem::transmute(pparameterlist), ::core::mem::transmute(pbderivedkey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbderivedkey.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbresult), dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn NCryptEncrypt<'a, P0>(hkey: P0, pbinput: ::core::option::Option<&u8>, cbinput: u32, ppaddinginfo: *const ::core::ffi::c_void, pboutput: ::core::option::Option<&mut u8>, cboutput: u32, pcbresult: &mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> +pub unsafe fn NCryptEncrypt<'a, P0>(hkey: P0, pbinput: ::core::option::Option<&[u8]>, ppaddinginfo: *const ::core::ffi::c_void, pboutput: ::core::option::Option<&mut [u8]>, pcbresult: &mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -25925,7 +25949,7 @@ where extern "system" { fn NCryptEncrypt(hkey: NCRYPT_KEY_HANDLE, pbinput: *const u8, cbinput: u32, ppaddinginfo: *const ::core::ffi::c_void, pboutput: *mut u8, cboutput: u32, pcbresult: *mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::HRESULT; } - NCryptEncrypt(hkey.into(), ::core::mem::transmute(pbinput), cbinput, ::core::mem::transmute(ppaddinginfo), ::core::mem::transmute(pboutput), cboutput, ::core::mem::transmute(pcbresult), dwflags).ok() + NCryptEncrypt(hkey.into(), ::core::mem::transmute(pbinput.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbinput.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppaddinginfo), ::core::mem::transmute(pboutput.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pboutput.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbresult), dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -25963,7 +25987,7 @@ pub unsafe fn NCryptEnumStorageProviders(pdwprovidercount: &mut u32, ppproviderl } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn NCryptExportKey<'a, P0, P1, P2>(hkey: P0, hexportkey: P1, pszblobtype: P2, pparameterlist: ::core::option::Option<&BCryptBufferDesc>, pboutput: ::core::option::Option<&mut u8>, cboutput: u32, pcbresult: &mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> +pub unsafe fn NCryptExportKey<'a, P0, P1, P2>(hkey: P0, hexportkey: P1, pszblobtype: P2, pparameterlist: ::core::option::Option<&BCryptBufferDesc>, pboutput: ::core::option::Option<&mut [u8]>, pcbresult: &mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -25973,7 +25997,7 @@ where extern "system" { fn NCryptExportKey(hkey: NCRYPT_KEY_HANDLE, hexportkey: NCRYPT_KEY_HANDLE, pszblobtype: ::windows::core::PCWSTR, pparameterlist: *const BCryptBufferDesc, pboutput: *mut u8, cboutput: u32, pcbresult: *mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::HRESULT; } - NCryptExportKey(hkey.into(), hexportkey.into(), pszblobtype.into(), ::core::mem::transmute(pparameterlist), ::core::mem::transmute(pboutput), cboutput, ::core::mem::transmute(pcbresult), dwflags).ok() + NCryptExportKey(hkey.into(), hexportkey.into(), pszblobtype.into(), ::core::mem::transmute(pparameterlist), ::core::mem::transmute(pboutput.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pboutput.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbresult), dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -26010,7 +26034,7 @@ where } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn NCryptGetProperty<'a, P0, P1>(hobject: P0, pszproperty: P1, pboutput: ::core::option::Option<&mut u8>, cboutput: u32, pcbresult: &mut u32, dwflags: super::OBJECT_SECURITY_INFORMATION) -> ::windows::core::Result<()> +pub unsafe fn NCryptGetProperty<'a, P0, P1>(hobject: P0, pszproperty: P1, pboutput: ::core::option::Option<&mut [u8]>, pcbresult: &mut u32, dwflags: super::OBJECT_SECURITY_INFORMATION) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -26019,7 +26043,7 @@ where extern "system" { fn NCryptGetProperty(hobject: NCRYPT_HANDLE, pszproperty: ::windows::core::PCWSTR, pboutput: *mut u8, cboutput: u32, pcbresult: *mut u32, dwflags: super::OBJECT_SECURITY_INFORMATION) -> ::windows::core::HRESULT; } - NCryptGetProperty(hobject.into(), pszproperty.into(), ::core::mem::transmute(pboutput), cboutput, ::core::mem::transmute(pcbresult), dwflags).ok() + NCryptGetProperty(hobject.into(), pszproperty.into(), ::core::mem::transmute(pboutput.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pboutput.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbresult), dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -26035,7 +26059,7 @@ where } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn NCryptImportKey<'a, P0, P1, P2>(hprovider: P0, himportkey: P1, pszblobtype: P2, pparameterlist: ::core::option::Option<&BCryptBufferDesc>, phkey: &mut NCRYPT_KEY_HANDLE, pbdata: &u8, cbdata: u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> +pub unsafe fn NCryptImportKey<'a, P0, P1, P2>(hprovider: P0, himportkey: P1, pszblobtype: P2, pparameterlist: ::core::option::Option<&BCryptBufferDesc>, phkey: &mut NCRYPT_KEY_HANDLE, pbdata: &[u8], dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -26045,7 +26069,7 @@ where extern "system" { fn NCryptImportKey(hprovider: NCRYPT_PROV_HANDLE, himportkey: NCRYPT_KEY_HANDLE, pszblobtype: ::windows::core::PCWSTR, pparameterlist: *const BCryptBufferDesc, phkey: *mut NCRYPT_KEY_HANDLE, pbdata: *const u8, cbdata: u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::HRESULT; } - NCryptImportKey(hprovider.into(), himportkey.into(), pszblobtype.into(), ::core::mem::transmute(pparameterlist), ::core::mem::transmute(phkey), ::core::mem::transmute(pbdata), cbdata, dwflags).ok() + NCryptImportKey(hprovider.into(), himportkey.into(), pszblobtype.into(), ::core::mem::transmute(pparameterlist), ::core::mem::transmute(phkey), ::core::mem::transmute(pbdata.as_ptr()), pbdata.len() as _, dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -26075,7 +26099,7 @@ where } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn NCryptKeyDerivation<'a, P0>(hkey: P0, pparameterlist: ::core::option::Option<&BCryptBufferDesc>, pbderivedkey: &mut u8, cbderivedkey: u32, pcbresult: &mut u32, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn NCryptKeyDerivation<'a, P0>(hkey: P0, pparameterlist: ::core::option::Option<&BCryptBufferDesc>, pbderivedkey: &mut [u8], pcbresult: &mut u32, dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -26083,7 +26107,7 @@ where extern "system" { fn NCryptKeyDerivation(hkey: NCRYPT_KEY_HANDLE, pparameterlist: *const BCryptBufferDesc, pbderivedkey: *mut u8, cbderivedkey: u32, pcbresult: *mut u32, dwflags: u32) -> ::windows::core::HRESULT; } - NCryptKeyDerivation(hkey.into(), ::core::mem::transmute(pparameterlist), ::core::mem::transmute(pbderivedkey), cbderivedkey, ::core::mem::transmute(pcbresult), dwflags).ok() + NCryptKeyDerivation(hkey.into(), ::core::mem::transmute(pparameterlist), ::core::mem::transmute(pbderivedkey.as_ptr()), pbderivedkey.len() as _, ::core::mem::transmute(pcbresult), dwflags).ok() } #[repr(C)] #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] @@ -26159,7 +26183,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn NCryptProtectSecret<'a, P0, P1>(hdescriptor: P0, dwflags: u32, pbdata: &u8, cbdata: u32, pmempara: ::core::option::Option<&NCRYPT_ALLOC_PARA>, hwnd: P1, ppbprotectedblob: &mut *mut u8, pcbprotectedblob: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn NCryptProtectSecret<'a, P0, P1>(hdescriptor: P0, dwflags: u32, pbdata: &[u8], pmempara: ::core::option::Option<&NCRYPT_ALLOC_PARA>, hwnd: P1, ppbprotectedblob: &mut *mut u8, pcbprotectedblob: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -26168,7 +26192,7 @@ where extern "system" { fn NCryptProtectSecret(hdescriptor: super::NCRYPT_DESCRIPTOR_HANDLE, dwflags: u32, pbdata: *const u8, cbdata: u32, pmempara: *const NCRYPT_ALLOC_PARA, hwnd: super::super::Foundation::HWND, ppbprotectedblob: *mut *mut u8, pcbprotectedblob: *mut u32) -> ::windows::core::HRESULT; } - NCryptProtectSecret(hdescriptor.into(), dwflags, ::core::mem::transmute(pbdata), cbdata, ::core::mem::transmute(pmempara), hwnd.into(), ::core::mem::transmute(ppbprotectedblob), ::core::mem::transmute(pcbprotectedblob)).ok() + NCryptProtectSecret(hdescriptor.into(), dwflags, ::core::mem::transmute(pbdata.as_ptr()), pbdata.len() as _, ::core::mem::transmute(pmempara), hwnd.into(), ::core::mem::transmute(ppbprotectedblob), ::core::mem::transmute(pcbprotectedblob)).ok() } #[repr(C)] #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] @@ -26241,7 +26265,7 @@ where } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn NCryptSetProperty<'a, P0, P1>(hobject: P0, pszproperty: P1, pbinput: &u8, cbinput: u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> +pub unsafe fn NCryptSetProperty<'a, P0, P1>(hobject: P0, pszproperty: P1, pbinput: &[u8], dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -26250,11 +26274,11 @@ where extern "system" { fn NCryptSetProperty(hobject: NCRYPT_HANDLE, pszproperty: ::windows::core::PCWSTR, pbinput: *const u8, cbinput: u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::HRESULT; } - NCryptSetProperty(hobject.into(), pszproperty.into(), ::core::mem::transmute(pbinput), cbinput, dwflags).ok() + NCryptSetProperty(hobject.into(), pszproperty.into(), ::core::mem::transmute(pbinput.as_ptr()), pbinput.len() as _, dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn NCryptSignHash<'a, P0>(hkey: P0, ppaddinginfo: *const ::core::ffi::c_void, pbhashvalue: &u8, cbhashvalue: u32, pbsignature: ::core::option::Option<&mut u8>, cbsignature: u32, pcbresult: &mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> +pub unsafe fn NCryptSignHash<'a, P0>(hkey: P0, ppaddinginfo: *const ::core::ffi::c_void, pbhashvalue: &[u8], pbsignature: ::core::option::Option<&mut [u8]>, pcbresult: &mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -26262,7 +26286,7 @@ where extern "system" { fn NCryptSignHash(hkey: NCRYPT_KEY_HANDLE, ppaddinginfo: *const ::core::ffi::c_void, pbhashvalue: *const u8, cbhashvalue: u32, pbsignature: *mut u8, cbsignature: u32, pcbresult: *mut u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::HRESULT; } - NCryptSignHash(hkey.into(), ::core::mem::transmute(ppaddinginfo), ::core::mem::transmute(pbhashvalue), cbhashvalue, ::core::mem::transmute(pbsignature), cbsignature, ::core::mem::transmute(pcbresult), dwflags).ok() + NCryptSignHash(hkey.into(), ::core::mem::transmute(ppaddinginfo), ::core::mem::transmute(pbhashvalue.as_ptr()), pbhashvalue.len() as _, ::core::mem::transmute(pbsignature.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbsignature.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbresult), dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -26322,7 +26346,7 @@ where #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn NCryptStreamUpdate<'a, P0, P1>(hstream: P0, pbdata: &u8, cbdata: usize, ffinal: P1) -> ::windows::core::Result<()> +pub unsafe fn NCryptStreamUpdate<'a, P0, P1>(hstream: P0, pbdata: &[u8], ffinal: P1) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -26331,7 +26355,7 @@ where extern "system" { fn NCryptStreamUpdate(hstream: super::NCRYPT_STREAM_HANDLE, pbdata: *const u8, cbdata: usize, ffinal: super::super::Foundation::BOOL) -> ::windows::core::HRESULT; } - NCryptStreamUpdate(hstream.into(), ::core::mem::transmute(pbdata), cbdata, ffinal.into()).ok() + NCryptStreamUpdate(hstream.into(), ::core::mem::transmute(pbdata.as_ptr()), pbdata.len() as _, ffinal.into()).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] @@ -26345,7 +26369,7 @@ pub unsafe fn NCryptTranslateHandle(phprovider: ::core::option::Option<&mut NCRY #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn NCryptUnprotectSecret<'a, P0>(phdescriptor: ::core::option::Option<&mut super::NCRYPT_DESCRIPTOR_HANDLE>, dwflags: NCRYPT_FLAGS, pbprotectedblob: &u8, cbprotectedblob: u32, pmempara: ::core::option::Option<&NCRYPT_ALLOC_PARA>, hwnd: P0, ppbdata: &mut *mut u8, pcbdata: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn NCryptUnprotectSecret<'a, P0>(phdescriptor: ::core::option::Option<&mut super::NCRYPT_DESCRIPTOR_HANDLE>, dwflags: NCRYPT_FLAGS, pbprotectedblob: &[u8], pmempara: ::core::option::Option<&NCRYPT_ALLOC_PARA>, hwnd: P0, ppbdata: &mut *mut u8, pcbdata: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -26353,11 +26377,11 @@ where extern "system" { fn NCryptUnprotectSecret(phdescriptor: *mut super::NCRYPT_DESCRIPTOR_HANDLE, dwflags: NCRYPT_FLAGS, pbprotectedblob: *const u8, cbprotectedblob: u32, pmempara: *const NCRYPT_ALLOC_PARA, hwnd: super::super::Foundation::HWND, ppbdata: *mut *mut u8, pcbdata: *mut u32) -> ::windows::core::HRESULT; } - NCryptUnprotectSecret(::core::mem::transmute(phdescriptor), dwflags, ::core::mem::transmute(pbprotectedblob), cbprotectedblob, ::core::mem::transmute(pmempara), hwnd.into(), ::core::mem::transmute(ppbdata), ::core::mem::transmute(pcbdata)).ok() + NCryptUnprotectSecret(::core::mem::transmute(phdescriptor), dwflags, ::core::mem::transmute(pbprotectedblob.as_ptr()), pbprotectedblob.len() as _, ::core::mem::transmute(pmempara), hwnd.into(), ::core::mem::transmute(ppbdata), ::core::mem::transmute(pcbdata)).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn NCryptVerifyClaim<'a, P0, P1>(hsubjectkey: P0, hauthoritykey: P1, dwclaimtype: u32, pparameterlist: ::core::option::Option<&BCryptBufferDesc>, pbclaimblob: &u8, cbclaimblob: u32, poutput: &mut BCryptBufferDesc, dwflags: u32) -> ::windows::core::Result<()> +pub unsafe fn NCryptVerifyClaim<'a, P0, P1>(hsubjectkey: P0, hauthoritykey: P1, dwclaimtype: u32, pparameterlist: ::core::option::Option<&BCryptBufferDesc>, pbclaimblob: &[u8], poutput: &mut BCryptBufferDesc, dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -26366,11 +26390,11 @@ where extern "system" { fn NCryptVerifyClaim(hsubjectkey: NCRYPT_KEY_HANDLE, hauthoritykey: NCRYPT_KEY_HANDLE, dwclaimtype: u32, pparameterlist: *const BCryptBufferDesc, pbclaimblob: *const u8, cbclaimblob: u32, poutput: *mut BCryptBufferDesc, dwflags: u32) -> ::windows::core::HRESULT; } - NCryptVerifyClaim(hsubjectkey.into(), hauthoritykey.into(), dwclaimtype, ::core::mem::transmute(pparameterlist), ::core::mem::transmute(pbclaimblob), cbclaimblob, ::core::mem::transmute(poutput), dwflags).ok() + NCryptVerifyClaim(hsubjectkey.into(), hauthoritykey.into(), dwclaimtype, ::core::mem::transmute(pparameterlist), ::core::mem::transmute(pbclaimblob.as_ptr()), pbclaimblob.len() as _, ::core::mem::transmute(poutput), dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn NCryptVerifySignature<'a, P0>(hkey: P0, ppaddinginfo: *const ::core::ffi::c_void, pbhashvalue: &u8, cbhashvalue: u32, pbsignature: &u8, cbsignature: u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> +pub unsafe fn NCryptVerifySignature<'a, P0>(hkey: P0, ppaddinginfo: *const ::core::ffi::c_void, pbhashvalue: &[u8], pbsignature: &[u8], dwflags: NCRYPT_FLAGS) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -26378,7 +26402,7 @@ where extern "system" { fn NCryptVerifySignature(hkey: NCRYPT_KEY_HANDLE, ppaddinginfo: *const ::core::ffi::c_void, pbhashvalue: *const u8, cbhashvalue: u32, pbsignature: *const u8, cbsignature: u32, dwflags: NCRYPT_FLAGS) -> ::windows::core::HRESULT; } - NCryptVerifySignature(hkey.into(), ::core::mem::transmute(ppaddinginfo), ::core::mem::transmute(pbhashvalue), cbhashvalue, ::core::mem::transmute(pbsignature), cbsignature, dwflags).ok() + NCryptVerifySignature(hkey.into(), ::core::mem::transmute(ppaddinginfo), ::core::mem::transmute(pbhashvalue.as_ptr()), pbhashvalue.len() as _, ::core::mem::transmute(pbsignature.as_ptr()), pbsignature.len() as _, dwflags).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] pub const NETSCAPE_SIGN_CA_CERT_TYPE: u32 = 1u32; @@ -28065,7 +28089,7 @@ pub const SSL_OBJECT_LOCATOR_PFX_FUNC: &str = "SslObjectLocatorInitializePfx"; pub const SYMMETRICWRAPKEYBLOB: u32 = 11u32; #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn SignHash<'a, P0>(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, cbhash: u32, phash: &u8, hashalgoid: P0, pcbsig: &mut u32, ppsig: &mut *mut u8) -> ::windows::core::Result<()> +pub unsafe fn SignHash<'a, P0>(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, phash: &[u8], hashalgoid: P0, pcbsig: &mut u32, ppsig: *mut *mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -28073,7 +28097,7 @@ where extern "system" { fn SignHash(hcrypto: *const INFORMATIONCARD_CRYPTO_HANDLE, cbhash: u32, phash: *const u8, hashalgoid: ::windows::core::PCWSTR, pcbsig: *mut u32, ppsig: *mut *mut u8) -> ::windows::core::HRESULT; } - SignHash(::core::mem::transmute(hcrypto), cbhash, ::core::mem::transmute(phash), hashalgoid.into(), ::core::mem::transmute(pcbsig), ::core::mem::transmute(ppsig)).ok() + SignHash(::core::mem::transmute(hcrypto), phash.len() as _, ::core::mem::transmute(phash.as_ptr()), hashalgoid.into(), ::core::mem::transmute(pcbsig), ::core::mem::transmute(ppsig)).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] pub const TIMESTAMP_DONT_HASH_DATA: u32 = 1u32; @@ -28131,21 +28155,21 @@ pub const TIME_VALID_OID_GET_OBJECT_FUNC: &str = "TimeValidDllGetObject"; pub const TPM_RSA_SRK_SEAL_KEY: &str = "MICROSOFT_PCP_KSP_RSA_SEAL_KEY_3BD1C4BF-004E-4E2F-8A4D-0BF633DCB074"; #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn TransformBlock(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, cbindata: u32, pindata: &u8, pcboutdata: &mut u32, ppoutdata: &mut *mut u8) -> ::windows::core::Result<()> { +pub unsafe fn TransformBlock(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, pindata: &[u8], pcboutdata: &mut u32, ppoutdata: *mut *mut u8) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TransformBlock(hcrypto: *const INFORMATIONCARD_CRYPTO_HANDLE, cbindata: u32, pindata: *const u8, pcboutdata: *mut u32, ppoutdata: *mut *mut u8) -> ::windows::core::HRESULT; } - TransformBlock(::core::mem::transmute(hcrypto), cbindata, ::core::mem::transmute(pindata), ::core::mem::transmute(pcboutdata), ::core::mem::transmute(ppoutdata)).ok() + TransformBlock(::core::mem::transmute(hcrypto), pindata.len() as _, ::core::mem::transmute(pindata.as_ptr()), ::core::mem::transmute(pcboutdata), ::core::mem::transmute(ppoutdata)).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] #[inline] -pub unsafe fn TransformFinalBlock(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, cbindata: u32, pindata: &u8, pcboutdata: &mut u32, ppoutdata: &mut *mut u8) -> ::windows::core::Result<()> { +pub unsafe fn TransformFinalBlock(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, pindata: &[u8], pcboutdata: &mut u32, ppoutdata: *mut *mut u8) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TransformFinalBlock(hcrypto: *const INFORMATIONCARD_CRYPTO_HANDLE, cbindata: u32, pindata: *const u8, pcboutdata: *mut u32, ppoutdata: *mut *mut u8) -> ::windows::core::HRESULT; } - TransformFinalBlock(::core::mem::transmute(hcrypto), cbindata, ::core::mem::transmute(pindata), ::core::mem::transmute(pcboutdata), ::core::mem::transmute(ppoutdata)).ok() + TransformFinalBlock(::core::mem::transmute(hcrypto), pindata.len() as _, ::core::mem::transmute(pindata.as_ptr()), ::core::mem::transmute(pcboutdata), ::core::mem::transmute(ppoutdata)).ok() } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] pub const URL_OID_CERTIFICATE_CRL_DIST_POINT: ::windows::core::PCSTR = ::windows::core::PCSTR(2i32 as _); @@ -28182,7 +28206,7 @@ pub const USAGE_MATCH_TYPE_OR: u32 = 1u32; #[doc = "*Required features: `\"Win32_Security_Cryptography\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn VerifyHash<'a, P0>(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, cbhash: u32, phash: &u8, hashalgoid: P0, cbsig: u32, psig: &u8) -> ::windows::core::Result +pub unsafe fn VerifyHash<'a, P0>(hcrypto: &INFORMATIONCARD_CRYPTO_HANDLE, phash: &[u8], hashalgoid: P0, psig: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -28191,7 +28215,7 @@ where fn VerifyHash(hcrypto: *const INFORMATIONCARD_CRYPTO_HANDLE, cbhash: u32, phash: *const u8, hashalgoid: ::windows::core::PCWSTR, cbsig: u32, psig: *const u8, pfverified: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - VerifyHash(::core::mem::transmute(hcrypto), cbhash, ::core::mem::transmute(phash), hashalgoid.into(), cbsig, ::core::mem::transmute(psig), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + VerifyHash(::core::mem::transmute(hcrypto), phash.len() as _, ::core::mem::transmute(phash.as_ptr()), hashalgoid.into(), psig.len() as _, ::core::mem::transmute(psig.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Security_Cryptography\"`*"] pub const X509_ALGORITHM_IDENTIFIER: ::windows::core::PCSTR = ::windows::core::PCSTR(74i32 as _); diff --git a/crates/libs/windows/src/Windows/Win32/Security/DiagnosticDataQuery/mod.rs b/crates/libs/windows/src/Windows/Win32/Security/DiagnosticDataQuery/mod.rs index 1b12e2e562..e8a10b07bb 100644 --- a/crates/libs/windows/src/Windows/Win32/Security/DiagnosticDataQuery/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Security/DiagnosticDataQuery/mod.rs @@ -629,7 +629,7 @@ where } #[doc = "*Required features: `\"Win32_Security_DiagnosticDataQuery\"`*"] #[inline] -pub unsafe fn DdqGetDiagnosticRecordBinaryDistribution<'a, P0>(hsession: P0, producernames: &[::windows::core::PWSTR], topnbinaries: u32, binarystats: &mut *mut DIAGNOSTIC_DATA_EVENT_BINARY_STATS, statcount: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn DdqGetDiagnosticRecordBinaryDistribution<'a, P0>(hsession: P0, producernames: &[::windows::core::PWSTR], topnbinaries: u32, binarystats: *mut *mut DIAGNOSTIC_DATA_EVENT_BINARY_STATS, statcount: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -637,7 +637,7 @@ where extern "system" { fn DdqGetDiagnosticRecordBinaryDistribution(hsession: super::HDIAGNOSTIC_DATA_QUERY_SESSION, producernames: *const ::windows::core::PWSTR, producernamecount: u32, topnbinaries: u32, binarystats: *mut *mut DIAGNOSTIC_DATA_EVENT_BINARY_STATS, statcount: *mut u32) -> ::windows::core::HRESULT; } - DdqGetDiagnosticRecordBinaryDistribution(hsession.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(producernames)), producernames.len() as _, topnbinaries, ::core::mem::transmute(binarystats), ::core::mem::transmute(statcount)).ok() + DdqGetDiagnosticRecordBinaryDistribution(hsession.into(), ::core::mem::transmute(producernames.as_ptr()), producernames.len() as _, topnbinaries, ::core::mem::transmute(binarystats), ::core::mem::transmute(statcount)).ok() } #[doc = "*Required features: `\"Win32_Security_DiagnosticDataQuery\"`*"] #[inline] @@ -822,11 +822,11 @@ where fn DdqGetDiagnosticRecordSummary(hsession: super::HDIAGNOSTIC_DATA_QUERY_SESSION, producernames: *const ::windows::core::PWSTR, producernamecount: u32, generalstats: *mut DIAGNOSTIC_DATA_GENERAL_STATS) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - DdqGetDiagnosticRecordSummary(hsession.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(producernames)), producernames.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + DdqGetDiagnosticRecordSummary(hsession.into(), ::core::mem::transmute(producernames.as_ptr()), producernames.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Security_DiagnosticDataQuery\"`*"] #[inline] -pub unsafe fn DdqGetDiagnosticRecordTagDistribution<'a, P0>(hsession: P0, producernames: &[::windows::core::PWSTR], tagstats: &mut *mut DIAGNOSTIC_DATA_EVENT_TAG_STATS, statcount: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn DdqGetDiagnosticRecordTagDistribution<'a, P0>(hsession: P0, producernames: &[::windows::core::PWSTR], tagstats: *mut *mut DIAGNOSTIC_DATA_EVENT_TAG_STATS, statcount: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -834,7 +834,7 @@ where extern "system" { fn DdqGetDiagnosticRecordTagDistribution(hsession: super::HDIAGNOSTIC_DATA_QUERY_SESSION, producernames: *const ::windows::core::PWSTR, producernamecount: u32, tagstats: *mut *mut DIAGNOSTIC_DATA_EVENT_TAG_STATS, statcount: *mut u32) -> ::windows::core::HRESULT; } - DdqGetDiagnosticRecordTagDistribution(hsession.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(producernames)), producernames.len() as _, ::core::mem::transmute(tagstats), ::core::mem::transmute(statcount)).ok() + DdqGetDiagnosticRecordTagDistribution(hsession.into(), ::core::mem::transmute(producernames.as_ptr()), producernames.len() as _, ::core::mem::transmute(tagstats), ::core::mem::transmute(statcount)).ok() } #[doc = "*Required features: `\"Win32_Security_DiagnosticDataQuery\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/Security/EnterpriseData/mod.rs b/crates/libs/windows/src/Windows/Win32/Security/EnterpriseData/mod.rs index 4a94b3d47b..12f501024b 100644 --- a/crates/libs/windows/src/Windows/Win32/Security/EnterpriseData/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Security/EnterpriseData/mod.rs @@ -628,7 +628,7 @@ where #[doc = "*Required features: `\"Win32_Security_EnterpriseData\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SrpGetEnterpriseIds<'a, P0>(tokenhandle: P0, numberofbytes: ::core::option::Option<&mut u32>, enterpriseids: ::core::option::Option<&mut ::windows::core::PWSTR>, enterpriseidcount: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn SrpGetEnterpriseIds<'a, P0>(tokenhandle: P0, numberofbytes: ::core::option::Option<&mut u32>, enterpriseids: *mut ::windows::core::PWSTR, enterpriseidcount: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { diff --git a/crates/libs/windows/src/Windows/Win32/Security/ExtensibleAuthenticationProtocol/mod.rs b/crates/libs/windows/src/Windows/Win32/Security/ExtensibleAuthenticationProtocol/mod.rs index bf439bfda8..5aad9d637d 100644 --- a/crates/libs/windows/src/Windows/Win32/Security/ExtensibleAuthenticationProtocol/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Security/ExtensibleAuthenticationProtocol/mod.rs @@ -1868,7 +1868,7 @@ pub unsafe fn EapHostPeerConfigBlob2Xml(dwflags: u32, eapmethodtype: EAP_METHOD_ extern "system" { fn EapHostPeerConfigBlob2Xml(dwflags: u32, eapmethodtype: EAP_METHOD_TYPE, dwsizeofconfigin: u32, pconfigin: *const u8, ppconfigdoc: *mut *mut ::core::ffi::c_void, ppeaperror: *mut *mut EAP_ERROR) -> u32; } - EapHostPeerConfigBlob2Xml(dwflags, ::core::mem::transmute(eapmethodtype), pconfigin.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pconfigin)), ::core::mem::transmute(ppconfigdoc), ::core::mem::transmute(ppeaperror)) + EapHostPeerConfigBlob2Xml(dwflags, ::core::mem::transmute(eapmethodtype), pconfigin.len() as _, ::core::mem::transmute(pconfigin.as_ptr()), ::core::mem::transmute(ppconfigdoc), ::core::mem::transmute(ppeaperror)) } #[doc = "*Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`, `\"Win32_Data_Xml_MsXml\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Data_Xml_MsXml", feature = "Win32_System_Com"))] @@ -1894,7 +1894,7 @@ where extern "system" { fn EapHostPeerCredentialsXml2Blob(dwflags: u32, pcredentialsdoc: *mut ::core::ffi::c_void, dwsizeofconfigin: u32, pconfigin: *const u8, pdwsizeofcredentialsout: *mut u32, ppcredentialsout: *mut *mut u8, peapmethodtype: *mut EAP_METHOD_TYPE, ppeaperror: *mut *mut EAP_ERROR) -> u32; } - EapHostPeerCredentialsXml2Blob(dwflags, pcredentialsdoc.into().abi(), pconfigin.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pconfigin)), ::core::mem::transmute(pdwsizeofcredentialsout), ::core::mem::transmute(ppcredentialsout), ::core::mem::transmute(peapmethodtype), ::core::mem::transmute(ppeaperror)) + EapHostPeerCredentialsXml2Blob(dwflags, pcredentialsdoc.into().abi(), pconfigin.len() as _, ::core::mem::transmute(pconfigin.as_ptr()), ::core::mem::transmute(pdwsizeofcredentialsout), ::core::mem::transmute(ppcredentialsout), ::core::mem::transmute(peapmethodtype), ::core::mem::transmute(ppeaperror)) } #[doc = "*Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`*"] #[inline] @@ -1962,20 +1962,17 @@ pub unsafe fn EapHostPeerGetDataToUnplumbCredentials(pconnectionidthatlastsavedc } #[doc = "*Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`*"] #[inline] -pub unsafe fn EapHostPeerGetEncryptedPassword<'a, P0>(dwsizeofpassword: u32, szpassword: P0, ppszencpassword: &mut ::windows::core::PWSTR) -> u32 -where - P0: ::std::convert::Into<::windows::core::PCWSTR>, -{ +pub unsafe fn EapHostPeerGetEncryptedPassword(szpassword: &[u8], ppszencpassword: &mut ::windows::core::PWSTR) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EapHostPeerGetEncryptedPassword(dwsizeofpassword: u32, szpassword: ::windows::core::PCWSTR, ppszencpassword: *mut ::windows::core::PWSTR) -> u32; } - EapHostPeerGetEncryptedPassword(dwsizeofpassword, szpassword.into(), ::core::mem::transmute(ppszencpassword)) + EapHostPeerGetEncryptedPassword(szpassword.len() as _, ::core::mem::transmute(szpassword.as_ptr()), ::core::mem::transmute(ppszencpassword)) } #[doc = "*Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EapHostPeerGetIdentity<'a, P0>(dwversion: u32, dwflags: u32, eapmethodtype: EAP_METHOD_TYPE, pconnectiondata: &[u8], puserdata: &[u8], htokenimpersonateuser: P0, pfinvokeui: &mut super::super::Foundation::BOOL, pdwsizeofuserdataout: &mut u32, ppuserdataout: &mut *mut u8, ppwszidentity: &mut ::windows::core::PWSTR, ppeaperror: &mut *mut EAP_ERROR, ppvreserved: &mut *mut u8) -> u32 +pub unsafe fn EapHostPeerGetIdentity<'a, P0>(dwversion: u32, dwflags: u32, eapmethodtype: EAP_METHOD_TYPE, pconnectiondata: &[u8], puserdata: ::core::option::Option<&[u8]>, htokenimpersonateuser: P0, pfinvokeui: &mut super::super::Foundation::BOOL, pdwsizeofuserdataout: &mut u32, ppuserdataout: &mut *mut u8, ppwszidentity: &mut ::windows::core::PWSTR, ppeaperror: &mut *mut EAP_ERROR, ppvreserved: &mut *mut u8) -> u32 where P0: ::std::convert::Into, { @@ -1988,9 +1985,9 @@ where dwflags, ::core::mem::transmute(eapmethodtype), pconnectiondata.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pconnectiondata)), - puserdata.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(puserdata)), + ::core::mem::transmute(pconnectiondata.as_ptr()), + puserdata.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(puserdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), htokenimpersonateuser.into(), ::core::mem::transmute(pfinvokeui), ::core::mem::transmute(pdwsizeofuserdataout), @@ -2011,7 +2008,7 @@ where extern "system" { fn EapHostPeerGetMethodProperties(dwversion: u32, dwflags: u32, eapmethodtype: EAP_METHOD_TYPE, huserimpersonationtoken: super::super::Foundation::HANDLE, dweapconndatasize: u32, pbeapconndata: *const u8, dwuserdatasize: u32, pbuserdata: *const u8, pmethodpropertyarray: *mut EAP_METHOD_PROPERTY_ARRAY, ppeaperror: *mut *mut EAP_ERROR) -> u32; } - EapHostPeerGetMethodProperties(dwversion, dwflags, ::core::mem::transmute(eapmethodtype), huserimpersonationtoken.into(), pbeapconndata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbeapconndata)), pbuserdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuserdata)), ::core::mem::transmute(pmethodpropertyarray), ::core::mem::transmute(ppeaperror)) + EapHostPeerGetMethodProperties(dwversion, dwflags, ::core::mem::transmute(eapmethodtype), huserimpersonationtoken.into(), pbeapconndata.len() as _, ::core::mem::transmute(pbeapconndata.as_ptr()), pbuserdata.len() as _, ::core::mem::transmute(pbuserdata.as_ptr()), ::core::mem::transmute(pmethodpropertyarray), ::core::mem::transmute(ppeaperror)) } #[doc = "*Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`*"] #[inline] @@ -2071,7 +2068,7 @@ pub unsafe fn EapHostPeerInitialize() -> u32 { #[doc = "*Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EapHostPeerInvokeConfigUI<'a, P0>(hwndparent: P0, dwflags: u32, eapmethodtype: EAP_METHOD_TYPE, pconfigin: &[u8], pdwsizeofconfigout: &mut u32, ppconfigout: &mut *mut u8, ppeaperror: &mut *mut EAP_ERROR) -> u32 +pub unsafe fn EapHostPeerInvokeConfigUI<'a, P0>(hwndparent: P0, dwflags: u32, eapmethodtype: EAP_METHOD_TYPE, pconfigin: ::core::option::Option<&[u8]>, pdwsizeofconfigout: &mut u32, ppconfigout: &mut *mut u8, ppeaperror: &mut *mut EAP_ERROR) -> u32 where P0: ::std::convert::Into, { @@ -2079,12 +2076,12 @@ where extern "system" { fn EapHostPeerInvokeConfigUI(hwndparent: super::super::Foundation::HWND, dwflags: u32, eapmethodtype: EAP_METHOD_TYPE, dwsizeofconfigin: u32, pconfigin: *const u8, pdwsizeofconfigout: *mut u32, ppconfigout: *mut *mut u8, ppeaperror: *mut *mut EAP_ERROR) -> u32; } - EapHostPeerInvokeConfigUI(hwndparent.into(), dwflags, ::core::mem::transmute(eapmethodtype), pconfigin.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pconfigin)), ::core::mem::transmute(pdwsizeofconfigout), ::core::mem::transmute(ppconfigout), ::core::mem::transmute(ppeaperror)) + EapHostPeerInvokeConfigUI(hwndparent.into(), dwflags, ::core::mem::transmute(eapmethodtype), pconfigin.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pconfigin.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pdwsizeofconfigout), ::core::mem::transmute(ppconfigout), ::core::mem::transmute(ppeaperror)) } #[doc = "*Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EapHostPeerInvokeIdentityUI<'a, P0>(dwversion: u32, eapmethodtype: EAP_METHOD_TYPE, dwflags: u32, hwndparent: P0, pconnectiondata: &[u8], puserdata: &[u8], pdwsizeofuserdataout: &mut u32, ppuserdataout: &mut *mut u8, ppwszidentity: &mut ::windows::core::PWSTR, ppeaperror: &mut *mut EAP_ERROR, ppvreserved: *mut *mut ::core::ffi::c_void) -> u32 +pub unsafe fn EapHostPeerInvokeIdentityUI<'a, P0>(dwversion: u32, eapmethodtype: EAP_METHOD_TYPE, dwflags: u32, hwndparent: P0, pconnectiondata: &[u8], puserdata: ::core::option::Option<&[u8]>, pdwsizeofuserdataout: &mut u32, ppuserdataout: &mut *mut u8, ppwszidentity: &mut ::windows::core::PWSTR, ppeaperror: &mut *mut EAP_ERROR, ppvreserved: *mut *mut ::core::ffi::c_void) -> u32 where P0: ::std::convert::Into, { @@ -2092,12 +2089,26 @@ where extern "system" { fn EapHostPeerInvokeIdentityUI(dwversion: u32, eapmethodtype: EAP_METHOD_TYPE, dwflags: u32, hwndparent: super::super::Foundation::HWND, dwsizeofconnectiondata: u32, pconnectiondata: *const u8, dwsizeofuserdata: u32, puserdata: *const u8, pdwsizeofuserdataout: *mut u32, ppuserdataout: *mut *mut u8, ppwszidentity: *mut ::windows::core::PWSTR, ppeaperror: *mut *mut EAP_ERROR, ppvreserved: *mut *mut ::core::ffi::c_void) -> u32; } - EapHostPeerInvokeIdentityUI(dwversion, ::core::mem::transmute(eapmethodtype), dwflags, hwndparent.into(), pconnectiondata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pconnectiondata)), puserdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(puserdata)), ::core::mem::transmute(pdwsizeofuserdataout), ::core::mem::transmute(ppuserdataout), ::core::mem::transmute(ppwszidentity), ::core::mem::transmute(ppeaperror), ::core::mem::transmute(ppvreserved)) + EapHostPeerInvokeIdentityUI( + dwversion, + ::core::mem::transmute(eapmethodtype), + dwflags, + hwndparent.into(), + pconnectiondata.len() as _, + ::core::mem::transmute(pconnectiondata.as_ptr()), + puserdata.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(puserdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ::core::mem::transmute(pdwsizeofuserdataout), + ::core::mem::transmute(ppuserdataout), + ::core::mem::transmute(ppwszidentity), + ::core::mem::transmute(ppeaperror), + ::core::mem::transmute(ppvreserved), + ) } #[doc = "*Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EapHostPeerInvokeInteractiveUI<'a, P0>(hwndparent: P0, puicontextdata: &[u8], pdwsizeofdatafrominteractiveui: &mut u32, ppdatafrominteractiveui: &mut *mut u8, ppeaperror: &mut *mut EAP_ERROR) -> u32 +pub unsafe fn EapHostPeerInvokeInteractiveUI<'a, P0>(hwndparent: P0, puicontextdata: ::core::option::Option<&[u8]>, pdwsizeofdatafrominteractiveui: &mut u32, ppdatafrominteractiveui: &mut *mut u8, ppeaperror: &mut *mut EAP_ERROR) -> u32 where P0: ::std::convert::Into, { @@ -2105,7 +2116,7 @@ where extern "system" { fn EapHostPeerInvokeInteractiveUI(hwndparent: super::super::Foundation::HWND, dwsizeofuicontextdata: u32, puicontextdata: *const u8, pdwsizeofdatafrominteractiveui: *mut u32, ppdatafrominteractiveui: *mut *mut u8, ppeaperror: *mut *mut EAP_ERROR) -> u32; } - EapHostPeerInvokeInteractiveUI(hwndparent.into(), puicontextdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(puicontextdata)), ::core::mem::transmute(pdwsizeofdatafrominteractiveui), ::core::mem::transmute(ppdatafrominteractiveui), ::core::mem::transmute(ppeaperror)) + EapHostPeerInvokeInteractiveUI(hwndparent.into(), puicontextdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(puicontextdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pdwsizeofdatafrominteractiveui), ::core::mem::transmute(ppdatafrominteractiveui), ::core::mem::transmute(ppeaperror)) } #[repr(C)] #[doc = "*Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`, `\"Win32_Foundation\"`*"] @@ -2218,7 +2229,7 @@ where extern "system" { fn EapHostPeerQueryCredentialInputFields(huserimpersonationtoken: super::super::Foundation::HANDLE, eapmethodtype: EAP_METHOD_TYPE, dwflags: u32, dweapconndatasize: u32, pbeapconndata: *const u8, peapconfiginputfieldarray: *mut EAP_CONFIG_INPUT_FIELD_ARRAY, ppeaperror: *mut *mut EAP_ERROR) -> u32; } - EapHostPeerQueryCredentialInputFields(huserimpersonationtoken.into(), ::core::mem::transmute(eapmethodtype), dwflags, pbeapconndata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbeapconndata)), ::core::mem::transmute(peapconfiginputfieldarray), ::core::mem::transmute(ppeaperror)) + EapHostPeerQueryCredentialInputFields(huserimpersonationtoken.into(), ::core::mem::transmute(eapmethodtype), dwflags, pbeapconndata.len() as _, ::core::mem::transmute(pbeapconndata.as_ptr()), ::core::mem::transmute(peapconfiginputfieldarray), ::core::mem::transmute(ppeaperror)) } #[doc = "*Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`*"] #[inline] @@ -2227,7 +2238,7 @@ pub unsafe fn EapHostPeerQueryInteractiveUIInputFields(dwversion: u32, dwflags: extern "system" { fn EapHostPeerQueryInteractiveUIInputFields(dwversion: u32, dwflags: u32, dwsizeofuicontextdata: u32, puicontextdata: *const u8, peapinteractiveuidata: *mut EAP_INTERACTIVE_UI_DATA, ppeaperror: *mut *mut EAP_ERROR, ppvreserved: *mut *mut ::core::ffi::c_void) -> u32; } - EapHostPeerQueryInteractiveUIInputFields(dwversion, dwflags, puicontextdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(puicontextdata)), ::core::mem::transmute(peapinteractiveuidata), ::core::mem::transmute(ppeaperror), ::core::mem::transmute(ppvreserved)) + EapHostPeerQueryInteractiveUIInputFields(dwversion, dwflags, puicontextdata.len() as _, ::core::mem::transmute(puicontextdata.as_ptr()), ::core::mem::transmute(peapinteractiveuidata), ::core::mem::transmute(ppeaperror), ::core::mem::transmute(ppvreserved)) } #[doc = "*Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`*"] #[inline] @@ -2236,12 +2247,12 @@ pub unsafe fn EapHostPeerQueryUIBlobFromInteractiveUIInputFields(dwversion: u32, extern "system" { fn EapHostPeerQueryUIBlobFromInteractiveUIInputFields(dwversion: u32, dwflags: u32, dwsizeofuicontextdata: u32, puicontextdata: *const u8, peapinteractiveuidata: *const EAP_INTERACTIVE_UI_DATA, pdwsizeofdatafrominteractiveui: *mut u32, ppdatafrominteractiveui: *mut *mut u8, ppeaperror: *mut *mut EAP_ERROR, ppvreserved: *mut *mut ::core::ffi::c_void) -> u32; } - EapHostPeerQueryUIBlobFromInteractiveUIInputFields(dwversion, dwflags, puicontextdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(puicontextdata)), ::core::mem::transmute(peapinteractiveuidata), ::core::mem::transmute(pdwsizeofdatafrominteractiveui), ::core::mem::transmute(ppdatafrominteractiveui), ::core::mem::transmute(ppeaperror), ::core::mem::transmute(ppvreserved)) + EapHostPeerQueryUIBlobFromInteractiveUIInputFields(dwversion, dwflags, puicontextdata.len() as _, ::core::mem::transmute(puicontextdata.as_ptr()), ::core::mem::transmute(peapinteractiveuidata), ::core::mem::transmute(pdwsizeofdatafrominteractiveui), ::core::mem::transmute(ppdatafrominteractiveui), ::core::mem::transmute(ppeaperror), ::core::mem::transmute(ppvreserved)) } #[doc = "*Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EapHostPeerQueryUserBlobFromCredentialInputFields<'a, P0>(huserimpersonationtoken: P0, eapmethodtype: EAP_METHOD_TYPE, dwflags: u32, pbeapconndata: &[u8], peapconfiginputfieldarray: &EAP_CONFIG_INPUT_FIELD_ARRAY, pdwuserblobsize: &mut u32, ppbuserblob: &mut *mut u8, ppeaperror: &mut *mut EAP_ERROR) -> u32 +pub unsafe fn EapHostPeerQueryUserBlobFromCredentialInputFields<'a, P0>(huserimpersonationtoken: P0, eapmethodtype: EAP_METHOD_TYPE, dwflags: u32, pbeapconndata: &[u8], peapconfiginputfieldarray: &EAP_CONFIG_INPUT_FIELD_ARRAY, pdwuserblobsize: &mut u32, ppbuserblob: *mut *mut u8, ppeaperror: &mut *mut EAP_ERROR) -> u32 where P0: ::std::convert::Into, { @@ -2249,7 +2260,7 @@ where extern "system" { fn EapHostPeerQueryUserBlobFromCredentialInputFields(huserimpersonationtoken: super::super::Foundation::HANDLE, eapmethodtype: EAP_METHOD_TYPE, dwflags: u32, dweapconndatasize: u32, pbeapconndata: *const u8, peapconfiginputfieldarray: *const EAP_CONFIG_INPUT_FIELD_ARRAY, pdwuserblobsize: *mut u32, ppbuserblob: *mut *mut u8, ppeaperror: *mut *mut EAP_ERROR) -> u32; } - EapHostPeerQueryUserBlobFromCredentialInputFields(huserimpersonationtoken.into(), ::core::mem::transmute(eapmethodtype), dwflags, pbeapconndata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbeapconndata)), ::core::mem::transmute(peapconfiginputfieldarray), ::core::mem::transmute(pdwuserblobsize), ::core::mem::transmute(ppbuserblob), ::core::mem::transmute(ppeaperror)) + EapHostPeerQueryUserBlobFromCredentialInputFields(huserimpersonationtoken.into(), ::core::mem::transmute(eapmethodtype), dwflags, pbeapconndata.len() as _, ::core::mem::transmute(pbeapconndata.as_ptr()), ::core::mem::transmute(peapconfiginputfieldarray), ::core::mem::transmute(pdwuserblobsize), ::core::mem::transmute(ppbuserblob), ::core::mem::transmute(ppeaperror)) } #[doc = "*Required features: `\"Win32_Security_ExtensibleAuthenticationProtocol\"`*"] #[repr(transparent)] @@ -2808,19 +2819,19 @@ impl IEAPProviderConfig { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RouterInvokeConfigUI<'a, P0>(&self, dweaptypeid: u32, uconnectionparam: usize, hwndparent: P0, dwflags: u32, pconnectiondatain: &[u8], ppconnectiondataout: &mut *mut u8, pdwsizeofconnectiondataout: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn RouterInvokeConfigUI<'a, P0>(&self, dweaptypeid: u32, uconnectionparam: usize, hwndparent: P0, dwflags: u32, pconnectiondatain: &[u8], ppconnectiondataout: *mut *mut u8, pdwsizeofconnectiondataout: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).RouterInvokeConfigUI)(::windows::core::Interface::as_raw(self), dweaptypeid, uconnectionparam, hwndparent.into(), dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pconnectiondatain)), pconnectiondatain.len() as _, ::core::mem::transmute(ppconnectiondataout), ::core::mem::transmute(pdwsizeofconnectiondataout)).ok() + (::windows::core::Interface::vtable(self).RouterInvokeConfigUI)(::windows::core::Interface::as_raw(self), dweaptypeid, uconnectionparam, hwndparent.into(), dwflags, ::core::mem::transmute(pconnectiondatain.as_ptr()), pconnectiondatain.len() as _, ::core::mem::transmute(ppconnectiondataout), ::core::mem::transmute(pdwsizeofconnectiondataout)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RouterInvokeCredentialsUI<'a, P0>(&self, dweaptypeid: u32, uconnectionparam: usize, hwndparent: P0, dwflags: u32, pconnectiondatain: &[u8], puserdatain: &[u8], ppuserdataout: &mut *mut u8, pdwsizeofuserdataout: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn RouterInvokeCredentialsUI<'a, P0>(&self, dweaptypeid: u32, uconnectionparam: usize, hwndparent: P0, dwflags: u32, pconnectiondatain: &[u8], puserdatain: &[u8], ppuserdataout: *mut *mut u8, pdwsizeofuserdataout: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).RouterInvokeCredentialsUI)(::windows::core::Interface::as_raw(self), dweaptypeid, uconnectionparam, hwndparent.into(), dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pconnectiondatain)), pconnectiondatain.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(puserdatain)), puserdatain.len() as _, ::core::mem::transmute(ppuserdataout), ::core::mem::transmute(pdwsizeofuserdataout)).ok() + (::windows::core::Interface::vtable(self).RouterInvokeCredentialsUI)(::windows::core::Interface::as_raw(self), dweaptypeid, uconnectionparam, hwndparent.into(), dwflags, ::core::mem::transmute(pconnectiondatain.as_ptr()), pconnectiondatain.len() as _, ::core::mem::transmute(puserdatain.as_ptr()), puserdatain.len() as _, ::core::mem::transmute(ppuserdataout), ::core::mem::transmute(pdwsizeofuserdataout)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2901,19 +2912,19 @@ impl IEAPProviderConfig2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RouterInvokeConfigUI<'a, P0>(&self, dweaptypeid: u32, uconnectionparam: usize, hwndparent: P0, dwflags: u32, pconnectiondatain: &[u8], ppconnectiondataout: &mut *mut u8, pdwsizeofconnectiondataout: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn RouterInvokeConfigUI<'a, P0>(&self, dweaptypeid: u32, uconnectionparam: usize, hwndparent: P0, dwflags: u32, pconnectiondatain: &[u8], ppconnectiondataout: *mut *mut u8, pdwsizeofconnectiondataout: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).base__.RouterInvokeConfigUI)(::windows::core::Interface::as_raw(self), dweaptypeid, uconnectionparam, hwndparent.into(), dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pconnectiondatain)), pconnectiondatain.len() as _, ::core::mem::transmute(ppconnectiondataout), ::core::mem::transmute(pdwsizeofconnectiondataout)).ok() + (::windows::core::Interface::vtable(self).base__.RouterInvokeConfigUI)(::windows::core::Interface::as_raw(self), dweaptypeid, uconnectionparam, hwndparent.into(), dwflags, ::core::mem::transmute(pconnectiondatain.as_ptr()), pconnectiondatain.len() as _, ::core::mem::transmute(ppconnectiondataout), ::core::mem::transmute(pdwsizeofconnectiondataout)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RouterInvokeCredentialsUI<'a, P0>(&self, dweaptypeid: u32, uconnectionparam: usize, hwndparent: P0, dwflags: u32, pconnectiondatain: &[u8], puserdatain: &[u8], ppuserdataout: &mut *mut u8, pdwsizeofuserdataout: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn RouterInvokeCredentialsUI<'a, P0>(&self, dweaptypeid: u32, uconnectionparam: usize, hwndparent: P0, dwflags: u32, pconnectiondatain: &[u8], puserdatain: &[u8], ppuserdataout: *mut *mut u8, pdwsizeofuserdataout: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).base__.RouterInvokeCredentialsUI)(::windows::core::Interface::as_raw(self), dweaptypeid, uconnectionparam, hwndparent.into(), dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pconnectiondatain)), pconnectiondatain.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(puserdatain)), puserdatain.len() as _, ::core::mem::transmute(ppuserdataout), ::core::mem::transmute(pdwsizeofuserdataout)).ok() + (::windows::core::Interface::vtable(self).base__.RouterInvokeCredentialsUI)(::windows::core::Interface::as_raw(self), dweaptypeid, uconnectionparam, hwndparent.into(), dwflags, ::core::mem::transmute(pconnectiondatain.as_ptr()), pconnectiondatain.len() as _, ::core::mem::transmute(puserdatain.as_ptr()), puserdatain.len() as _, ::core::mem::transmute(ppuserdataout), ::core::mem::transmute(pdwsizeofuserdataout)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3011,19 +3022,19 @@ impl IEAPProviderConfig3 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RouterInvokeConfigUI<'a, P0>(&self, dweaptypeid: u32, uconnectionparam: usize, hwndparent: P0, dwflags: u32, pconnectiondatain: &[u8], ppconnectiondataout: &mut *mut u8, pdwsizeofconnectiondataout: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn RouterInvokeConfigUI<'a, P0>(&self, dweaptypeid: u32, uconnectionparam: usize, hwndparent: P0, dwflags: u32, pconnectiondatain: &[u8], ppconnectiondataout: *mut *mut u8, pdwsizeofconnectiondataout: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).base__.base__.RouterInvokeConfigUI)(::windows::core::Interface::as_raw(self), dweaptypeid, uconnectionparam, hwndparent.into(), dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pconnectiondatain)), pconnectiondatain.len() as _, ::core::mem::transmute(ppconnectiondataout), ::core::mem::transmute(pdwsizeofconnectiondataout)).ok() + (::windows::core::Interface::vtable(self).base__.base__.RouterInvokeConfigUI)(::windows::core::Interface::as_raw(self), dweaptypeid, uconnectionparam, hwndparent.into(), dwflags, ::core::mem::transmute(pconnectiondatain.as_ptr()), pconnectiondatain.len() as _, ::core::mem::transmute(ppconnectiondataout), ::core::mem::transmute(pdwsizeofconnectiondataout)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RouterInvokeCredentialsUI<'a, P0>(&self, dweaptypeid: u32, uconnectionparam: usize, hwndparent: P0, dwflags: u32, pconnectiondatain: &[u8], puserdatain: &[u8], ppuserdataout: &mut *mut u8, pdwsizeofuserdataout: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn RouterInvokeCredentialsUI<'a, P0>(&self, dweaptypeid: u32, uconnectionparam: usize, hwndparent: P0, dwflags: u32, pconnectiondatain: &[u8], puserdatain: &[u8], ppuserdataout: *mut *mut u8, pdwsizeofuserdataout: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).base__.base__.RouterInvokeCredentialsUI)(::windows::core::Interface::as_raw(self), dweaptypeid, uconnectionparam, hwndparent.into(), dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pconnectiondatain)), pconnectiondatain.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(puserdatain)), puserdatain.len() as _, ::core::mem::transmute(ppuserdataout), ::core::mem::transmute(pdwsizeofuserdataout)).ok() + (::windows::core::Interface::vtable(self).base__.base__.RouterInvokeCredentialsUI)(::windows::core::Interface::as_raw(self), dweaptypeid, uconnectionparam, hwndparent.into(), dwflags, ::core::mem::transmute(pconnectiondatain.as_ptr()), pconnectiondatain.len() as _, ::core::mem::transmute(puserdatain.as_ptr()), puserdatain.len() as _, ::core::mem::transmute(ppuserdataout), ::core::mem::transmute(pdwsizeofuserdataout)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Security/Isolation/mod.rs b/crates/libs/windows/src/Windows/Win32/Security/Isolation/mod.rs index 721115ec92..aa49a73671 100644 --- a/crates/libs/windows/src/Windows/Win32/Security/Isolation/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Security/Isolation/mod.rs @@ -1,7 +1,7 @@ #[doc = "*Required features: `\"Win32_Security_Isolation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CreateAppContainerProfile<'a, P0, P1, P2>(pszappcontainername: P0, pszdisplayname: P1, pszdescription: P2, pcapabilities: &[super::SID_AND_ATTRIBUTES]) -> ::windows::core::Result +pub unsafe fn CreateAppContainerProfile<'a, P0, P1, P2>(pszappcontainername: P0, pszdisplayname: P1, pszdescription: P2, pcapabilities: ::core::option::Option<&[super::SID_AND_ATTRIBUTES]>) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -12,7 +12,7 @@ where fn CreateAppContainerProfile(pszappcontainername: ::windows::core::PCWSTR, pszdisplayname: ::windows::core::PCWSTR, pszdescription: ::windows::core::PCWSTR, pcapabilities: *const super::SID_AND_ATTRIBUTES, dwcapabilitycount: u32, ppsidappcontainersid: *mut super::super::Foundation::PSID) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - CreateAppContainerProfile(pszappcontainername.into(), pszdisplayname.into(), pszdescription.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pcapabilities)), pcapabilities.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + CreateAppContainerProfile(pszappcontainername.into(), pszdisplayname.into(), pszdescription.into(), ::core::mem::transmute(pcapabilities.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pcapabilities.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Security_Isolation\"`*"] #[inline] @@ -71,7 +71,7 @@ where #[doc = "*Required features: `\"Win32_Security_Isolation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetAppContainerNamedObjectPath<'a, P0, P1>(token: P0, appcontainersid: P1, objectpath: &mut [u16], returnlength: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetAppContainerNamedObjectPath<'a, P0, P1>(token: P0, appcontainersid: P1, objectpath: ::core::option::Option<&mut [u16]>, returnlength: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -80,7 +80,7 @@ where extern "system" { fn GetAppContainerNamedObjectPath(token: super::super::Foundation::HANDLE, appcontainersid: super::super::Foundation::PSID, objectpathlength: u32, objectpath: ::windows::core::PWSTR, returnlength: *mut u32) -> super::super::Foundation::BOOL; } - GetAppContainerNamedObjectPath(token.into(), appcontainersid.into(), objectpath.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(objectpath)), ::core::mem::transmute(returnlength)) + GetAppContainerNamedObjectPath(token.into(), appcontainersid.into(), objectpath.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(objectpath.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(returnlength)) } #[doc = "*Required features: `\"Win32_Security_Isolation\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] diff --git a/crates/libs/windows/src/Windows/Win32/Security/Tpm/mod.rs b/crates/libs/windows/src/Windows/Win32/Security/Tpm/mod.rs index c6f2d9f9f2..4ebb9604c1 100644 --- a/crates/libs/windows/src/Windows/Win32/Security/Tpm/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Security/Tpm/mod.rs @@ -10,24 +10,7 @@ impl ITpmVirtualSmartCardManager { P1: ::std::convert::Into, P2: ::std::convert::Into<::windows::core::InParam<'a, ITpmVirtualSmartCardManagerStatusCallback>>, { - (::windows::core::Interface::vtable(self).CreateVirtualSmartCard)( - ::windows::core::Interface::as_raw(self), - pszfriendlyname.into(), - badminalgid, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbadminkey)), - pbadminkey.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbadminkcv)), - pbadminkcv.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpuk)), - pbpuk.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpin)), - pbpin.len() as _, - fgenerate.into(), - pstatuscallback.into().abi(), - ::core::mem::transmute(ppszinstanceid), - ::core::mem::transmute(pfneedreboot), - ) - .ok() + (::windows::core::Interface::vtable(self).CreateVirtualSmartCard)(::windows::core::Interface::as_raw(self), pszfriendlyname.into(), badminalgid, ::core::mem::transmute(pbadminkey.as_ptr()), pbadminkey.len() as _, ::core::mem::transmute(pbadminkcv.as_ptr()), pbadminkcv.len() as _, ::core::mem::transmute(pbpuk.as_ptr()), pbpuk.len() as _, ::core::mem::transmute(pbpin.as_ptr()), pbpin.len() as _, fgenerate.into(), pstatuscallback.into().abi(), ::core::mem::transmute(ppszinstanceid), ::core::mem::transmute(pfneedreboot)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -100,24 +83,7 @@ impl ITpmVirtualSmartCardManager2 { P1: ::std::convert::Into, P2: ::std::convert::Into<::windows::core::InParam<'a, ITpmVirtualSmartCardManagerStatusCallback>>, { - (::windows::core::Interface::vtable(self).base__.CreateVirtualSmartCard)( - ::windows::core::Interface::as_raw(self), - pszfriendlyname.into(), - badminalgid, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbadminkey)), - pbadminkey.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbadminkcv)), - pbadminkcv.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpuk)), - pbpuk.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpin)), - pbpin.len() as _, - fgenerate.into(), - pstatuscallback.into().abi(), - ::core::mem::transmute(ppszinstanceid), - ::core::mem::transmute(pfneedreboot), - ) - .ok() + (::windows::core::Interface::vtable(self).base__.CreateVirtualSmartCard)(::windows::core::Interface::as_raw(self), pszfriendlyname.into(), badminalgid, ::core::mem::transmute(pbadminkey.as_ptr()), pbadminkey.len() as _, ::core::mem::transmute(pbadminkcv.as_ptr()), pbadminkcv.len() as _, ::core::mem::transmute(pbpuk.as_ptr()), pbpuk.len() as _, ::core::mem::transmute(pbpin.as_ptr()), pbpin.len() as _, fgenerate.into(), pstatuscallback.into().abi(), ::core::mem::transmute(ppszinstanceid), ::core::mem::transmute(pfneedreboot)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -141,15 +107,15 @@ impl ITpmVirtualSmartCardManager2 { ::windows::core::Interface::as_raw(self), pszfriendlyname.into(), badminalgid, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbadminkey)), + ::core::mem::transmute(pbadminkey.as_ptr()), pbadminkey.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbadminkcv)), + ::core::mem::transmute(pbadminkcv.as_ptr()), pbadminkcv.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpuk)), + ::core::mem::transmute(pbpuk.as_ptr()), pbpuk.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpin)), + ::core::mem::transmute(pbpin.as_ptr()), pbpin.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpinpolicy)), + ::core::mem::transmute(pbpinpolicy.as_ptr()), pbpinpolicy.len() as _, fgenerate.into(), pstatuscallback.into().abi(), @@ -230,24 +196,7 @@ impl ITpmVirtualSmartCardManager3 { P1: ::std::convert::Into, P2: ::std::convert::Into<::windows::core::InParam<'a, ITpmVirtualSmartCardManagerStatusCallback>>, { - (::windows::core::Interface::vtable(self).base__.base__.CreateVirtualSmartCard)( - ::windows::core::Interface::as_raw(self), - pszfriendlyname.into(), - badminalgid, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbadminkey)), - pbadminkey.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbadminkcv)), - pbadminkcv.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpuk)), - pbpuk.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpin)), - pbpin.len() as _, - fgenerate.into(), - pstatuscallback.into().abi(), - ::core::mem::transmute(ppszinstanceid), - ::core::mem::transmute(pfneedreboot), - ) - .ok() + (::windows::core::Interface::vtable(self).base__.base__.CreateVirtualSmartCard)(::windows::core::Interface::as_raw(self), pszfriendlyname.into(), badminalgid, ::core::mem::transmute(pbadminkey.as_ptr()), pbadminkey.len() as _, ::core::mem::transmute(pbadminkcv.as_ptr()), pbadminkcv.len() as _, ::core::mem::transmute(pbpuk.as_ptr()), pbpuk.len() as _, ::core::mem::transmute(pbpin.as_ptr()), pbpin.len() as _, fgenerate.into(), pstatuscallback.into().abi(), ::core::mem::transmute(ppszinstanceid), ::core::mem::transmute(pfneedreboot)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -271,15 +220,15 @@ impl ITpmVirtualSmartCardManager3 { ::windows::core::Interface::as_raw(self), pszfriendlyname.into(), badminalgid, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbadminkey)), + ::core::mem::transmute(pbadminkey.as_ptr()), pbadminkey.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbadminkcv)), + ::core::mem::transmute(pbadminkcv.as_ptr()), pbadminkcv.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpuk)), + ::core::mem::transmute(pbpuk.as_ptr()), pbpuk.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpin)), + ::core::mem::transmute(pbpin.as_ptr()), pbpin.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpinpolicy)), + ::core::mem::transmute(pbpinpolicy.as_ptr()), pbpinpolicy.len() as _, fgenerate.into(), pstatuscallback.into().abi(), @@ -301,15 +250,15 @@ impl ITpmVirtualSmartCardManager3 { ::windows::core::Interface::as_raw(self), pszfriendlyname.into(), badminalgid, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbadminkey)), + ::core::mem::transmute(pbadminkey.as_ptr()), pbadminkey.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbadminkcv)), + ::core::mem::transmute(pbadminkcv.as_ptr()), pbadminkcv.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpuk)), + ::core::mem::transmute(pbpuk.as_ptr()), pbpuk.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpin)), + ::core::mem::transmute(pbpin.as_ptr()), pbpin.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(pbpinpolicy)), + ::core::mem::transmute(pbpinpolicy.as_ptr()), pbpinpolicy.len() as _, attestationtype, fgenerate.into(), diff --git a/crates/libs/windows/src/Windows/Win32/Security/mod.rs b/crates/libs/windows/src/Windows/Win32/Security/mod.rs index 6133eba2be..00499288a8 100644 --- a/crates/libs/windows/src/Windows/Win32/Security/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Security/mod.rs @@ -617,7 +617,7 @@ impl ::core::fmt::Debug for AUDIT_EVENT_TYPE { #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AccessCheck<'a, P0, P1>(psecuritydescriptor: P0, clienttoken: P1, desiredaccess: u32, genericmapping: &GENERIC_MAPPING, privilegeset: ::core::option::Option<&mut PRIVILEGE_SET>, privilegesetlength: &mut u32, grantedaccess: &mut u32, accessstatus: &mut i32) -> super::Foundation::BOOL +pub unsafe fn AccessCheck<'a, P0, P1>(psecuritydescriptor: P0, clienttoken: P1, desiredaccess: u32, genericmapping: &GENERIC_MAPPING, privilegeset: *mut PRIVILEGE_SET, privilegesetlength: &mut u32, grantedaccess: &mut u32, accessstatus: &mut i32) -> super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -665,7 +665,7 @@ where #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AccessCheckByType<'a, P0, P1, P2>(psecuritydescriptor: P0, principalselfsid: P1, clienttoken: P2, desiredaccess: u32, objecttypelist: &mut [OBJECT_TYPE_LIST], genericmapping: &GENERIC_MAPPING, privilegeset: ::core::option::Option<&mut PRIVILEGE_SET>, privilegesetlength: &mut u32, grantedaccess: &mut u32, accessstatus: &mut i32) -> super::Foundation::BOOL +pub unsafe fn AccessCheckByType<'a, P0, P1, P2>(psecuritydescriptor: P0, principalselfsid: P1, clienttoken: P2, desiredaccess: u32, objecttypelist: ::core::option::Option<&mut [OBJECT_TYPE_LIST]>, genericmapping: &GENERIC_MAPPING, privilegeset: *mut PRIVILEGE_SET, privilegesetlength: &mut u32, grantedaccess: &mut u32, accessstatus: &mut i32) -> super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -675,12 +675,12 @@ where extern "system" { fn AccessCheckByType(psecuritydescriptor: PSECURITY_DESCRIPTOR, principalselfsid: super::Foundation::PSID, clienttoken: super::Foundation::HANDLE, desiredaccess: u32, objecttypelist: *mut OBJECT_TYPE_LIST, objecttypelistlength: u32, genericmapping: *const GENERIC_MAPPING, privilegeset: *mut PRIVILEGE_SET, privilegesetlength: *mut u32, grantedaccess: *mut u32, accessstatus: *mut i32) -> super::Foundation::BOOL; } - AccessCheckByType(psecuritydescriptor.into(), principalselfsid.into(), clienttoken.into(), desiredaccess, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(objecttypelist)), objecttypelist.len() as _, ::core::mem::transmute(genericmapping), ::core::mem::transmute(privilegeset), ::core::mem::transmute(privilegesetlength), ::core::mem::transmute(grantedaccess), ::core::mem::transmute(accessstatus)) + AccessCheckByType(psecuritydescriptor.into(), principalselfsid.into(), clienttoken.into(), desiredaccess, ::core::mem::transmute(objecttypelist.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), objecttypelist.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(genericmapping), ::core::mem::transmute(privilegeset), ::core::mem::transmute(privilegesetlength), ::core::mem::transmute(grantedaccess), ::core::mem::transmute(accessstatus)) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AccessCheckByTypeAndAuditAlarmA<'a, P0, P1, P2, P3, P4, P5>(subsystemname: P0, handleid: *const ::core::ffi::c_void, objecttypename: P1, objectname: P2, securitydescriptor: P3, principalselfsid: P4, desiredaccess: u32, audittype: AUDIT_EVENT_TYPE, flags: u32, objecttypelist: &mut [OBJECT_TYPE_LIST], genericmapping: &GENERIC_MAPPING, objectcreation: P5, grantedaccess: &mut u32, accessstatus: &mut i32, pfgenerateonclose: &mut i32) -> super::Foundation::BOOL +pub unsafe fn AccessCheckByTypeAndAuditAlarmA<'a, P0, P1, P2, P3, P4, P5>(subsystemname: P0, handleid: *const ::core::ffi::c_void, objecttypename: P1, objectname: P2, securitydescriptor: P3, principalselfsid: P4, desiredaccess: u32, audittype: AUDIT_EVENT_TYPE, flags: u32, objecttypelist: ::core::option::Option<&mut [OBJECT_TYPE_LIST]>, genericmapping: &GENERIC_MAPPING, objectcreation: P5, grantedaccess: &mut u32, accessstatus: &mut i32, pfgenerateonclose: &mut i32) -> super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -693,12 +693,29 @@ where extern "system" { fn AccessCheckByTypeAndAuditAlarmA(subsystemname: ::windows::core::PCSTR, handleid: *const ::core::ffi::c_void, objecttypename: ::windows::core::PCSTR, objectname: ::windows::core::PCSTR, securitydescriptor: PSECURITY_DESCRIPTOR, principalselfsid: super::Foundation::PSID, desiredaccess: u32, audittype: AUDIT_EVENT_TYPE, flags: u32, objecttypelist: *mut OBJECT_TYPE_LIST, objecttypelistlength: u32, genericmapping: *const GENERIC_MAPPING, objectcreation: super::Foundation::BOOL, grantedaccess: *mut u32, accessstatus: *mut i32, pfgenerateonclose: *mut i32) -> super::Foundation::BOOL; } - AccessCheckByTypeAndAuditAlarmA(subsystemname.into(), ::core::mem::transmute(handleid), objecttypename.into(), objectname.into(), securitydescriptor.into(), principalselfsid.into(), desiredaccess, audittype, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(objecttypelist)), objecttypelist.len() as _, ::core::mem::transmute(genericmapping), objectcreation.into(), ::core::mem::transmute(grantedaccess), ::core::mem::transmute(accessstatus), ::core::mem::transmute(pfgenerateonclose)) -} -#[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] -#[cfg(feature = "Win32_Foundation")] -#[inline] -pub unsafe fn AccessCheckByTypeAndAuditAlarmW<'a, P0, P1, P2, P3, P4, P5>(subsystemname: P0, handleid: *const ::core::ffi::c_void, objecttypename: P1, objectname: P2, securitydescriptor: P3, principalselfsid: P4, desiredaccess: u32, audittype: AUDIT_EVENT_TYPE, flags: u32, objecttypelist: &mut [OBJECT_TYPE_LIST], genericmapping: &GENERIC_MAPPING, objectcreation: P5, grantedaccess: &mut u32, accessstatus: &mut i32, pfgenerateonclose: &mut i32) -> super::Foundation::BOOL + AccessCheckByTypeAndAuditAlarmA( + subsystemname.into(), + ::core::mem::transmute(handleid), + objecttypename.into(), + objectname.into(), + securitydescriptor.into(), + principalselfsid.into(), + desiredaccess, + audittype, + flags, + ::core::mem::transmute(objecttypelist.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + objecttypelist.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(genericmapping), + objectcreation.into(), + ::core::mem::transmute(grantedaccess), + ::core::mem::transmute(accessstatus), + ::core::mem::transmute(pfgenerateonclose), + ) +} +#[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] +#[cfg(feature = "Win32_Foundation")] +#[inline] +pub unsafe fn AccessCheckByTypeAndAuditAlarmW<'a, P0, P1, P2, P3, P4, P5>(subsystemname: P0, handleid: *const ::core::ffi::c_void, objecttypename: P1, objectname: P2, securitydescriptor: P3, principalselfsid: P4, desiredaccess: u32, audittype: AUDIT_EVENT_TYPE, flags: u32, objecttypelist: ::core::option::Option<&mut [OBJECT_TYPE_LIST]>, genericmapping: &GENERIC_MAPPING, objectcreation: P5, grantedaccess: &mut u32, accessstatus: &mut i32, pfgenerateonclose: &mut i32) -> super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -711,12 +728,29 @@ where extern "system" { fn AccessCheckByTypeAndAuditAlarmW(subsystemname: ::windows::core::PCWSTR, handleid: *const ::core::ffi::c_void, objecttypename: ::windows::core::PCWSTR, objectname: ::windows::core::PCWSTR, securitydescriptor: PSECURITY_DESCRIPTOR, principalselfsid: super::Foundation::PSID, desiredaccess: u32, audittype: AUDIT_EVENT_TYPE, flags: u32, objecttypelist: *mut OBJECT_TYPE_LIST, objecttypelistlength: u32, genericmapping: *const GENERIC_MAPPING, objectcreation: super::Foundation::BOOL, grantedaccess: *mut u32, accessstatus: *mut i32, pfgenerateonclose: *mut i32) -> super::Foundation::BOOL; } - AccessCheckByTypeAndAuditAlarmW(subsystemname.into(), ::core::mem::transmute(handleid), objecttypename.into(), objectname.into(), securitydescriptor.into(), principalselfsid.into(), desiredaccess, audittype, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(objecttypelist)), objecttypelist.len() as _, ::core::mem::transmute(genericmapping), objectcreation.into(), ::core::mem::transmute(grantedaccess), ::core::mem::transmute(accessstatus), ::core::mem::transmute(pfgenerateonclose)) -} -#[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] -#[cfg(feature = "Win32_Foundation")] -#[inline] -pub unsafe fn AccessCheckByTypeResultList<'a, P0, P1, P2>(psecuritydescriptor: P0, principalselfsid: P1, clienttoken: P2, desiredaccess: u32, objecttypelist: ::core::option::Option<&mut OBJECT_TYPE_LIST>, objecttypelistlength: u32, genericmapping: &GENERIC_MAPPING, privilegeset: ::core::option::Option<&mut PRIVILEGE_SET>, privilegesetlength: &mut u32, grantedaccesslist: &mut u32, accessstatuslist: &mut u32) -> super::Foundation::BOOL + AccessCheckByTypeAndAuditAlarmW( + subsystemname.into(), + ::core::mem::transmute(handleid), + objecttypename.into(), + objectname.into(), + securitydescriptor.into(), + principalselfsid.into(), + desiredaccess, + audittype, + flags, + ::core::mem::transmute(objecttypelist.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + objecttypelist.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(genericmapping), + objectcreation.into(), + ::core::mem::transmute(grantedaccess), + ::core::mem::transmute(accessstatus), + ::core::mem::transmute(pfgenerateonclose), + ) +} +#[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] +#[cfg(feature = "Win32_Foundation")] +#[inline] +pub unsafe fn AccessCheckByTypeResultList<'a, P0, P1, P2>(psecuritydescriptor: P0, principalselfsid: P1, clienttoken: P2, desiredaccess: u32, objecttypelist: *mut OBJECT_TYPE_LIST, objecttypelistlength: u32, genericmapping: &GENERIC_MAPPING, privilegeset: *mut PRIVILEGE_SET, privilegesetlength: &mut u32, grantedaccesslist: *mut u32, accessstatuslist: *mut u32) -> super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -731,7 +765,7 @@ where #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AccessCheckByTypeResultListAndAuditAlarmA<'a, P0, P1, P2, P3, P4, P5>(subsystemname: P0, handleid: *const ::core::ffi::c_void, objecttypename: P1, objectname: P2, securitydescriptor: P3, principalselfsid: P4, desiredaccess: u32, audittype: AUDIT_EVENT_TYPE, flags: u32, objecttypelist: ::core::option::Option<&mut OBJECT_TYPE_LIST>, objecttypelistlength: u32, genericmapping: &GENERIC_MAPPING, objectcreation: P5, grantedaccess: &mut u32, accessstatuslist: &mut u32, pfgenerateonclose: &mut i32) -> super::Foundation::BOOL +pub unsafe fn AccessCheckByTypeResultListAndAuditAlarmA<'a, P0, P1, P2, P3, P4, P5>(subsystemname: P0, handleid: *const ::core::ffi::c_void, objecttypename: P1, objectname: P2, securitydescriptor: P3, principalselfsid: P4, desiredaccess: u32, audittype: AUDIT_EVENT_TYPE, flags: u32, objecttypelist: *mut OBJECT_TYPE_LIST, objecttypelistlength: u32, genericmapping: &GENERIC_MAPPING, objectcreation: P5, grantedaccess: *mut u32, accessstatuslist: *mut u32, pfgenerateonclose: &mut i32) -> super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -749,7 +783,7 @@ where #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AccessCheckByTypeResultListAndAuditAlarmByHandleA<'a, P0, P1, P2, P3, P4, P5, P6>(subsystemname: P0, handleid: *const ::core::ffi::c_void, clienttoken: P1, objecttypename: P2, objectname: P3, securitydescriptor: P4, principalselfsid: P5, desiredaccess: u32, audittype: AUDIT_EVENT_TYPE, flags: u32, objecttypelist: ::core::option::Option<&mut OBJECT_TYPE_LIST>, objecttypelistlength: u32, genericmapping: &GENERIC_MAPPING, objectcreation: P6, grantedaccess: &mut u32, accessstatuslist: &mut u32, pfgenerateonclose: &mut i32) -> super::Foundation::BOOL +pub unsafe fn AccessCheckByTypeResultListAndAuditAlarmByHandleA<'a, P0, P1, P2, P3, P4, P5, P6>(subsystemname: P0, handleid: *const ::core::ffi::c_void, clienttoken: P1, objecttypename: P2, objectname: P3, securitydescriptor: P4, principalselfsid: P5, desiredaccess: u32, audittype: AUDIT_EVENT_TYPE, flags: u32, objecttypelist: *mut OBJECT_TYPE_LIST, objecttypelistlength: u32, genericmapping: &GENERIC_MAPPING, objectcreation: P6, grantedaccess: *mut u32, accessstatuslist: *mut u32, pfgenerateonclose: &mut i32) -> super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into, @@ -768,7 +802,7 @@ where #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AccessCheckByTypeResultListAndAuditAlarmByHandleW<'a, P0, P1, P2, P3, P4, P5, P6>(subsystemname: P0, handleid: *const ::core::ffi::c_void, clienttoken: P1, objecttypename: P2, objectname: P3, securitydescriptor: P4, principalselfsid: P5, desiredaccess: u32, audittype: AUDIT_EVENT_TYPE, flags: u32, objecttypelist: ::core::option::Option<&mut OBJECT_TYPE_LIST>, objecttypelistlength: u32, genericmapping: &GENERIC_MAPPING, objectcreation: P6, grantedaccesslist: &mut u32, accessstatuslist: &mut u32, pfgenerateonclose: &mut i32) -> super::Foundation::BOOL +pub unsafe fn AccessCheckByTypeResultListAndAuditAlarmByHandleW<'a, P0, P1, P2, P3, P4, P5, P6>(subsystemname: P0, handleid: *const ::core::ffi::c_void, clienttoken: P1, objecttypename: P2, objectname: P3, securitydescriptor: P4, principalselfsid: P5, desiredaccess: u32, audittype: AUDIT_EVENT_TYPE, flags: u32, objecttypelist: *mut OBJECT_TYPE_LIST, objecttypelistlength: u32, genericmapping: &GENERIC_MAPPING, objectcreation: P6, grantedaccesslist: *mut u32, accessstatuslist: *mut u32, pfgenerateonclose: &mut i32) -> super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into, @@ -787,7 +821,7 @@ where #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AccessCheckByTypeResultListAndAuditAlarmW<'a, P0, P1, P2, P3, P4, P5>(subsystemname: P0, handleid: *const ::core::ffi::c_void, objecttypename: P1, objectname: P2, securitydescriptor: P3, principalselfsid: P4, desiredaccess: u32, audittype: AUDIT_EVENT_TYPE, flags: u32, objecttypelist: ::core::option::Option<&mut OBJECT_TYPE_LIST>, objecttypelistlength: u32, genericmapping: &GENERIC_MAPPING, objectcreation: P5, grantedaccesslist: &mut u32, accessstatuslist: &mut u32, pfgenerateonclose: &mut i32) -> super::Foundation::BOOL +pub unsafe fn AccessCheckByTypeResultListAndAuditAlarmW<'a, P0, P1, P2, P3, P4, P5>(subsystemname: P0, handleid: *const ::core::ffi::c_void, objecttypename: P1, objectname: P2, securitydescriptor: P3, principalselfsid: P4, desiredaccess: u32, audittype: AUDIT_EVENT_TYPE, flags: u32, objecttypelist: *mut OBJECT_TYPE_LIST, objecttypelistlength: u32, genericmapping: &GENERIC_MAPPING, objectcreation: P5, grantedaccesslist: *mut u32, accessstatuslist: *mut u32, pfgenerateonclose: &mut i32) -> super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -883,12 +917,12 @@ where #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AddAce(pacl: &mut ACL, dwacerevision: u32, dwstartingaceindex: u32, pacelist: *const ::core::ffi::c_void, nacelistlength: u32) -> super::Foundation::BOOL { +pub unsafe fn AddAce(pacl: &mut ACL, dwacerevision: u32, dwstartingaceindex: u32, pacelist: &[u8]) -> super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn AddAce(pacl: *mut ACL, dwacerevision: u32, dwstartingaceindex: u32, pacelist: *const ::core::ffi::c_void, nacelistlength: u32) -> super::Foundation::BOOL; } - AddAce(::core::mem::transmute(pacl), dwacerevision, dwstartingaceindex, ::core::mem::transmute(pacelist), nacelistlength) + AddAce(::core::mem::transmute(pacl), dwacerevision, dwstartingaceindex, ::core::mem::transmute(pacelist.as_ptr()), pacelist.len() as _) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -991,7 +1025,7 @@ where #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AdjustTokenGroups<'a, P0, P1>(tokenhandle: P0, resettodefault: P1, newstate: ::core::option::Option<&TOKEN_GROUPS>, bufferlength: u32, previousstate: ::core::option::Option<&mut TOKEN_GROUPS>, returnlength: ::core::option::Option<&mut u32>) -> super::Foundation::BOOL +pub unsafe fn AdjustTokenGroups<'a, P0, P1>(tokenhandle: P0, resettodefault: P1, newstate: ::core::option::Option<&TOKEN_GROUPS>, previousstate: ::core::option::Option<&mut [u8]>, returnlength: ::core::option::Option<&mut u32>) -> super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -1000,12 +1034,12 @@ where extern "system" { fn AdjustTokenGroups(tokenhandle: super::Foundation::HANDLE, resettodefault: super::Foundation::BOOL, newstate: *const TOKEN_GROUPS, bufferlength: u32, previousstate: *mut TOKEN_GROUPS, returnlength: *mut u32) -> super::Foundation::BOOL; } - AdjustTokenGroups(tokenhandle.into(), resettodefault.into(), ::core::mem::transmute(newstate), bufferlength, ::core::mem::transmute(previousstate), ::core::mem::transmute(returnlength)) + AdjustTokenGroups(tokenhandle.into(), resettodefault.into(), ::core::mem::transmute(newstate), previousstate.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(previousstate.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(returnlength)) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AdjustTokenPrivileges<'a, P0, P1>(tokenhandle: P0, disableallprivileges: P1, newstate: ::core::option::Option<&TOKEN_PRIVILEGES>, bufferlength: u32, previousstate: ::core::option::Option<&mut TOKEN_PRIVILEGES>, returnlength: ::core::option::Option<&mut u32>) -> super::Foundation::BOOL +pub unsafe fn AdjustTokenPrivileges<'a, P0, P1>(tokenhandle: P0, disableallprivileges: P1, newstate: ::core::option::Option<&TOKEN_PRIVILEGES>, previousstate: ::core::option::Option<&mut [u8]>, returnlength: ::core::option::Option<&mut u32>) -> super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -1014,7 +1048,7 @@ where extern "system" { fn AdjustTokenPrivileges(tokenhandle: super::Foundation::HANDLE, disableallprivileges: super::Foundation::BOOL, newstate: *const TOKEN_PRIVILEGES, bufferlength: u32, previousstate: *mut TOKEN_PRIVILEGES, returnlength: *mut u32) -> super::Foundation::BOOL; } - AdjustTokenPrivileges(tokenhandle.into(), disableallprivileges.into(), ::core::mem::transmute(newstate), bufferlength, ::core::mem::transmute(previousstate), ::core::mem::transmute(returnlength)) + AdjustTokenPrivileges(tokenhandle.into(), disableallprivileges.into(), ::core::mem::transmute(newstate), previousstate.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(previousstate.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(returnlength)) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1510,7 +1544,7 @@ where #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CopySid<'a, P0>(ndestinationsidlength: u32, pdestinationsid: super::Foundation::PSID, psourcesid: P0) -> super::Foundation::BOOL +pub unsafe fn CopySid<'a, P0>(pdestinationsid: &mut [u8], psourcesid: P0) -> super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1518,7 +1552,7 @@ where extern "system" { fn CopySid(ndestinationsidlength: u32, pdestinationsid: super::Foundation::PSID, psourcesid: super::Foundation::PSID) -> super::Foundation::BOOL; } - CopySid(ndestinationsidlength, ::core::mem::transmute(pdestinationsid), psourcesid.into()) + CopySid(pdestinationsid.len() as _, ::core::mem::transmute(pdestinationsid.as_ptr()), psourcesid.into()) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1555,7 +1589,7 @@ where #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CreatePrivateObjectSecurityWithMultipleInheritance<'a, P0, P1, P2, P3>(parentdescriptor: P0, creatordescriptor: P1, newdescriptor: &mut PSECURITY_DESCRIPTOR, objecttypes: &[*const ::windows::core::GUID], iscontainerobject: P2, autoinheritflags: SECURITY_AUTO_INHERIT_FLAGS, token: P3, genericmapping: &GENERIC_MAPPING) -> super::Foundation::BOOL +pub unsafe fn CreatePrivateObjectSecurityWithMultipleInheritance<'a, P0, P1, P2, P3>(parentdescriptor: P0, creatordescriptor: P1, newdescriptor: &mut PSECURITY_DESCRIPTOR, objecttypes: ::core::option::Option<&[*const ::windows::core::GUID]>, iscontainerobject: P2, autoinheritflags: SECURITY_AUTO_INHERIT_FLAGS, token: P3, genericmapping: &GENERIC_MAPPING) -> super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -1566,12 +1600,12 @@ where extern "system" { fn CreatePrivateObjectSecurityWithMultipleInheritance(parentdescriptor: PSECURITY_DESCRIPTOR, creatordescriptor: PSECURITY_DESCRIPTOR, newdescriptor: *mut PSECURITY_DESCRIPTOR, objecttypes: *const *const ::windows::core::GUID, guidcount: u32, iscontainerobject: super::Foundation::BOOL, autoinheritflags: SECURITY_AUTO_INHERIT_FLAGS, token: super::Foundation::HANDLE, genericmapping: *const GENERIC_MAPPING) -> super::Foundation::BOOL; } - CreatePrivateObjectSecurityWithMultipleInheritance(parentdescriptor.into(), creatordescriptor.into(), ::core::mem::transmute(newdescriptor), ::core::mem::transmute(::windows::core::as_ptr_or_null(objecttypes)), objecttypes.len() as _, iscontainerobject.into(), autoinheritflags, token.into(), ::core::mem::transmute(genericmapping)) + CreatePrivateObjectSecurityWithMultipleInheritance(parentdescriptor.into(), creatordescriptor.into(), ::core::mem::transmute(newdescriptor), ::core::mem::transmute(objecttypes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), objecttypes.as_deref().map_or(0, |slice| slice.len() as _), iscontainerobject.into(), autoinheritflags, token.into(), ::core::mem::transmute(genericmapping)) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CreateRestrictedToken<'a, P0>(existingtokenhandle: P0, flags: CREATE_RESTRICTED_TOKEN_FLAGS, sidstodisable: &[SID_AND_ATTRIBUTES], privilegestodelete: &[LUID_AND_ATTRIBUTES], sidstorestrict: &[SID_AND_ATTRIBUTES], newtokenhandle: &mut super::Foundation::HANDLE) -> super::Foundation::BOOL +pub unsafe fn CreateRestrictedToken<'a, P0>(existingtokenhandle: P0, flags: CREATE_RESTRICTED_TOKEN_FLAGS, sidstodisable: ::core::option::Option<&[SID_AND_ATTRIBUTES]>, privilegestodelete: ::core::option::Option<&[LUID_AND_ATTRIBUTES]>, sidstorestrict: ::core::option::Option<&[SID_AND_ATTRIBUTES]>, newtokenhandle: &mut super::Foundation::HANDLE) -> super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1579,7 +1613,17 @@ where extern "system" { fn CreateRestrictedToken(existingtokenhandle: super::Foundation::HANDLE, flags: CREATE_RESTRICTED_TOKEN_FLAGS, disablesidcount: u32, sidstodisable: *const SID_AND_ATTRIBUTES, deleteprivilegecount: u32, privilegestodelete: *const LUID_AND_ATTRIBUTES, restrictedsidcount: u32, sidstorestrict: *const SID_AND_ATTRIBUTES, newtokenhandle: *mut super::Foundation::HANDLE) -> super::Foundation::BOOL; } - CreateRestrictedToken(existingtokenhandle.into(), flags, sidstodisable.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sidstodisable)), privilegestodelete.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(privilegestodelete)), sidstorestrict.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sidstorestrict)), ::core::mem::transmute(newtokenhandle)) + CreateRestrictedToken( + existingtokenhandle.into(), + flags, + sidstodisable.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sidstodisable.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + privilegestodelete.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(privilegestodelete.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sidstorestrict.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sidstorestrict.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ::core::mem::transmute(newtokenhandle), + ) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1803,12 +1847,12 @@ pub unsafe fn GetAce(pacl: &ACL, dwaceindex: u32, pace: *mut *mut ::core::ffi::c #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetAclInformation(pacl: &ACL, paclinformation: *mut ::core::ffi::c_void, naclinformationlength: u32, dwaclinformationclass: ACL_INFORMATION_CLASS) -> super::Foundation::BOOL { +pub unsafe fn GetAclInformation(pacl: &ACL, paclinformation: &mut [u8], dwaclinformationclass: ACL_INFORMATION_CLASS) -> super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetAclInformation(pacl: *const ACL, paclinformation: *mut ::core::ffi::c_void, naclinformationlength: u32, dwaclinformationclass: ACL_INFORMATION_CLASS) -> super::Foundation::BOOL; } - GetAclInformation(::core::mem::transmute(pacl), ::core::mem::transmute(paclinformation), naclinformationlength, dwaclinformationclass) + GetAclInformation(::core::mem::transmute(pacl), ::core::mem::transmute(paclinformation.as_ptr()), paclinformation.len() as _, dwaclinformationclass) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1823,7 +1867,7 @@ pub unsafe fn GetAppContainerAce(acl: &ACL, startingaceindex: u32, appcontainera #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetCachedSigningLevel<'a, P0>(file: P0, flags: &mut u32, signinglevel: &mut u32, thumbprint: ::core::option::Option<&mut u8>, thumbprintsize: ::core::option::Option<&mut u32>, thumbprintalgorithm: ::core::option::Option<&mut u32>) -> super::Foundation::BOOL +pub unsafe fn GetCachedSigningLevel<'a, P0>(file: P0, flags: &mut u32, signinglevel: &mut u32, thumbprint: *mut u8, thumbprintsize: ::core::option::Option<&mut u32>, thumbprintalgorithm: ::core::option::Option<&mut u32>) -> super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1836,7 +1880,7 @@ where #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetFileSecurityA<'a, P0>(lpfilename: P0, requestedinformation: u32, psecuritydescriptor: PSECURITY_DESCRIPTOR, nlength: u32, lpnlengthneeded: &mut u32) -> super::Foundation::BOOL +pub unsafe fn GetFileSecurityA<'a, P0>(lpfilename: P0, requestedinformation: u32, psecuritydescriptor: ::core::option::Option<&mut [u8]>, lpnlengthneeded: &mut u32) -> super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -1844,12 +1888,12 @@ where extern "system" { fn GetFileSecurityA(lpfilename: ::windows::core::PCSTR, requestedinformation: u32, psecuritydescriptor: PSECURITY_DESCRIPTOR, nlength: u32, lpnlengthneeded: *mut u32) -> super::Foundation::BOOL; } - GetFileSecurityA(lpfilename.into(), requestedinformation, ::core::mem::transmute(psecuritydescriptor), nlength, ::core::mem::transmute(lpnlengthneeded)) + GetFileSecurityA(lpfilename.into(), requestedinformation, ::core::mem::transmute(psecuritydescriptor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psecuritydescriptor.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpnlengthneeded)) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetFileSecurityW<'a, P0>(lpfilename: P0, requestedinformation: u32, psecuritydescriptor: PSECURITY_DESCRIPTOR, nlength: u32, lpnlengthneeded: &mut u32) -> super::Foundation::BOOL +pub unsafe fn GetFileSecurityW<'a, P0>(lpfilename: P0, requestedinformation: u32, psecuritydescriptor: ::core::option::Option<&mut [u8]>, lpnlengthneeded: &mut u32) -> super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1857,12 +1901,12 @@ where extern "system" { fn GetFileSecurityW(lpfilename: ::windows::core::PCWSTR, requestedinformation: u32, psecuritydescriptor: PSECURITY_DESCRIPTOR, nlength: u32, lpnlengthneeded: *mut u32) -> super::Foundation::BOOL; } - GetFileSecurityW(lpfilename.into(), requestedinformation, ::core::mem::transmute(psecuritydescriptor), nlength, ::core::mem::transmute(lpnlengthneeded)) + GetFileSecurityW(lpfilename.into(), requestedinformation, ::core::mem::transmute(psecuritydescriptor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psecuritydescriptor.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpnlengthneeded)) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetKernelObjectSecurity<'a, P0>(handle: P0, requestedinformation: u32, psecuritydescriptor: PSECURITY_DESCRIPTOR, nlength: u32, lpnlengthneeded: &mut u32) -> super::Foundation::BOOL +pub unsafe fn GetKernelObjectSecurity<'a, P0>(handle: P0, requestedinformation: u32, psecuritydescriptor: ::core::option::Option<&mut [u8]>, lpnlengthneeded: &mut u32) -> super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1870,7 +1914,7 @@ where extern "system" { fn GetKernelObjectSecurity(handle: super::Foundation::HANDLE, requestedinformation: u32, psecuritydescriptor: PSECURITY_DESCRIPTOR, nlength: u32, lpnlengthneeded: *mut u32) -> super::Foundation::BOOL; } - GetKernelObjectSecurity(handle.into(), requestedinformation, ::core::mem::transmute(psecuritydescriptor), nlength, ::core::mem::transmute(lpnlengthneeded)) + GetKernelObjectSecurity(handle.into(), requestedinformation, ::core::mem::transmute(psecuritydescriptor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psecuritydescriptor.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpnlengthneeded)) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1888,7 +1932,7 @@ where #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrivateObjectSecurity<'a, P0>(objectdescriptor: P0, securityinformation: u32, resultantdescriptor: PSECURITY_DESCRIPTOR, descriptorlength: u32, returnlength: &mut u32) -> super::Foundation::BOOL +pub unsafe fn GetPrivateObjectSecurity<'a, P0>(objectdescriptor: P0, securityinformation: u32, resultantdescriptor: ::core::option::Option<&mut [u8]>, returnlength: &mut u32) -> super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1896,7 +1940,7 @@ where extern "system" { fn GetPrivateObjectSecurity(objectdescriptor: PSECURITY_DESCRIPTOR, securityinformation: u32, resultantdescriptor: PSECURITY_DESCRIPTOR, descriptorlength: u32, returnlength: *mut u32) -> super::Foundation::BOOL; } - GetPrivateObjectSecurity(objectdescriptor.into(), securityinformation, ::core::mem::transmute(resultantdescriptor), descriptorlength, ::core::mem::transmute(returnlength)) + GetPrivateObjectSecurity(objectdescriptor.into(), securityinformation, ::core::mem::transmute(resultantdescriptor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), resultantdescriptor.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(returnlength)) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2038,7 +2082,7 @@ where #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetTokenInformation<'a, P0>(tokenhandle: P0, tokeninformationclass: TOKEN_INFORMATION_CLASS, tokeninformation: *mut ::core::ffi::c_void, tokeninformationlength: u32, returnlength: &mut u32) -> super::Foundation::BOOL +pub unsafe fn GetTokenInformation<'a, P0>(tokenhandle: P0, tokeninformationclass: TOKEN_INFORMATION_CLASS, tokeninformation: ::core::option::Option<&mut [u8]>, returnlength: &mut u32) -> super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -2046,12 +2090,12 @@ where extern "system" { fn GetTokenInformation(tokenhandle: super::Foundation::HANDLE, tokeninformationclass: TOKEN_INFORMATION_CLASS, tokeninformation: *mut ::core::ffi::c_void, tokeninformationlength: u32, returnlength: *mut u32) -> super::Foundation::BOOL; } - GetTokenInformation(tokenhandle.into(), tokeninformationclass, ::core::mem::transmute(tokeninformation), tokeninformationlength, ::core::mem::transmute(returnlength)) + GetTokenInformation(tokenhandle.into(), tokeninformationclass, ::core::mem::transmute(tokeninformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), tokeninformation.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(returnlength)) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetUserObjectSecurity<'a, P0>(hobj: P0, psirequested: &u32, psid: PSECURITY_DESCRIPTOR, nlength: u32, lpnlengthneeded: &mut u32) -> super::Foundation::BOOL +pub unsafe fn GetUserObjectSecurity<'a, P0>(hobj: P0, psirequested: &u32, psid: ::core::option::Option<&mut [u8]>, lpnlengthneeded: &mut u32) -> super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -2059,7 +2103,7 @@ where extern "system" { fn GetUserObjectSecurity(hobj: super::Foundation::HANDLE, psirequested: *const u32, psid: PSECURITY_DESCRIPTOR, nlength: u32, lpnlengthneeded: *mut u32) -> super::Foundation::BOOL; } - GetUserObjectSecurity(hobj.into(), ::core::mem::transmute(psirequested), ::core::mem::transmute(psid), nlength, ::core::mem::transmute(lpnlengthneeded)) + GetUserObjectSecurity(hobj.into(), ::core::mem::transmute(psirequested), ::core::mem::transmute(psid.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psid.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpnlengthneeded)) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2305,12 +2349,12 @@ pub unsafe fn ImpersonateSelf(impersonationlevel: SECURITY_IMPERSONATION_LEVEL) #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn InitializeAcl(pacl: &mut ACL, nacllength: u32, dwaclrevision: u32) -> super::Foundation::BOOL { +pub unsafe fn InitializeAcl(pacl: &mut [u8], dwaclrevision: u32) -> super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InitializeAcl(pacl: *mut ACL, nacllength: u32, dwaclrevision: u32) -> super::Foundation::BOOL; } - InitializeAcl(::core::mem::transmute(pacl), nacllength, dwaclrevision) + InitializeAcl(::core::mem::transmute(pacl.as_ptr()), pacl.len() as _, dwaclrevision) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2802,7 +2846,7 @@ impl ::core::fmt::Debug for MANDATORY_LEVEL { #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn MakeAbsoluteSD<'a, P0>(pselfrelativesecuritydescriptor: P0, pabsolutesecuritydescriptor: PSECURITY_DESCRIPTOR, lpdwabsolutesecuritydescriptorsize: &mut u32, pdacl: ::core::option::Option<&mut ACL>, lpdwdaclsize: &mut u32, psacl: ::core::option::Option<&mut ACL>, lpdwsaclsize: &mut u32, powner: super::Foundation::PSID, lpdwownersize: &mut u32, pprimarygroup: super::Foundation::PSID, lpdwprimarygroupsize: &mut u32) -> super::Foundation::BOOL +pub unsafe fn MakeAbsoluteSD<'a, P0>(pselfrelativesecuritydescriptor: P0, pabsolutesecuritydescriptor: PSECURITY_DESCRIPTOR, lpdwabsolutesecuritydescriptorsize: &mut u32, pdacl: *mut ACL, lpdwdaclsize: &mut u32, psacl: *mut ACL, lpdwsaclsize: &mut u32, powner: super::Foundation::PSID, lpdwownersize: &mut u32, pprimarygroup: super::Foundation::PSID, lpdwprimarygroupsize: &mut u32) -> super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -4526,12 +4570,12 @@ impl ::core::default::Default for SYSTEM_SCOPED_POLICY_ID_ACE { #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetAclInformation(pacl: &mut ACL, paclinformation: *const ::core::ffi::c_void, naclinformationlength: u32, dwaclinformationclass: ACL_INFORMATION_CLASS) -> super::Foundation::BOOL { +pub unsafe fn SetAclInformation(pacl: &mut ACL, paclinformation: &[u8], dwaclinformationclass: ACL_INFORMATION_CLASS) -> super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetAclInformation(pacl: *mut ACL, paclinformation: *const ::core::ffi::c_void, naclinformationlength: u32, dwaclinformationclass: ACL_INFORMATION_CLASS) -> super::Foundation::BOOL; } - SetAclInformation(::core::mem::transmute(pacl), ::core::mem::transmute(paclinformation), naclinformationlength, dwaclinformationclass) + SetAclInformation(::core::mem::transmute(pacl), ::core::mem::transmute(paclinformation.as_ptr()), paclinformation.len() as _, dwaclinformationclass) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4544,7 +4588,7 @@ where extern "system" { fn SetCachedSigningLevel(sourcefiles: *const super::Foundation::HANDLE, sourcefilecount: u32, flags: u32, targetfile: super::Foundation::HANDLE) -> super::Foundation::BOOL; } - SetCachedSigningLevel(::core::mem::transmute(::windows::core::as_ptr_or_null(sourcefiles)), sourcefiles.len() as _, flags, targetfile.into()) + SetCachedSigningLevel(::core::mem::transmute(sourcefiles.as_ptr()), sourcefiles.len() as _, flags, targetfile.into()) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4713,7 +4757,7 @@ where #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetTokenInformation<'a, P0>(tokenhandle: P0, tokeninformationclass: TOKEN_INFORMATION_CLASS, tokeninformation: *const ::core::ffi::c_void, tokeninformationlength: u32) -> super::Foundation::BOOL +pub unsafe fn SetTokenInformation<'a, P0>(tokenhandle: P0, tokeninformationclass: TOKEN_INFORMATION_CLASS, tokeninformation: &[u8]) -> super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -4721,7 +4765,7 @@ where extern "system" { fn SetTokenInformation(tokenhandle: super::Foundation::HANDLE, tokeninformationclass: TOKEN_INFORMATION_CLASS, tokeninformation: *const ::core::ffi::c_void, tokeninformationlength: u32) -> super::Foundation::BOOL; } - SetTokenInformation(tokenhandle.into(), tokeninformationclass, ::core::mem::transmute(tokeninformation), tokeninformationlength) + SetTokenInformation(tokenhandle.into(), tokeninformationclass, ::core::mem::transmute(tokeninformation.as_ptr()), tokeninformation.len() as _) } #[doc = "*Required features: `\"Win32_Security\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Storage/CloudFilters/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/CloudFilters/mod.rs index be7e0e0576..dd00463c5c 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/CloudFilters/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/CloudFilters/mod.rs @@ -4340,7 +4340,7 @@ where #[doc = "*Required features: `\"Win32_Storage_CloudFilters\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn CfConvertToPlaceholder<'a, P0>(filehandle: P0, fileidentity: *const ::core::ffi::c_void, fileidentitylength: u32, convertflags: CF_CONVERT_FLAGS, convertusn: ::core::option::Option<&mut i64>, overlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>) -> ::windows::core::Result<()> +pub unsafe fn CfConvertToPlaceholder<'a, P0>(filehandle: P0, fileidentity: ::core::option::Option<&[u8]>, convertflags: CF_CONVERT_FLAGS, convertusn: ::core::option::Option<&mut i64>, overlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -4348,7 +4348,7 @@ where extern "system" { fn CfConvertToPlaceholder(filehandle: super::super::Foundation::HANDLE, fileidentity: *const ::core::ffi::c_void, fileidentitylength: u32, convertflags: CF_CONVERT_FLAGS, convertusn: *mut i64, overlapped: *mut super::super::System::IO::OVERLAPPED) -> ::windows::core::HRESULT; } - CfConvertToPlaceholder(filehandle.into(), ::core::mem::transmute(fileidentity), fileidentitylength, convertflags, ::core::mem::transmute(convertusn), ::core::mem::transmute(overlapped)).ok() + CfConvertToPlaceholder(filehandle.into(), ::core::mem::transmute(fileidentity.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fileidentity.as_deref().map_or(0, |slice| slice.len() as _), convertflags, ::core::mem::transmute(convertusn), ::core::mem::transmute(overlapped)).ok() } #[doc = "*Required features: `\"Win32_Storage_CloudFilters\"`, `\"Win32_Storage_FileSystem\"`*"] #[cfg(feature = "Win32_Storage_FileSystem")] @@ -4361,7 +4361,7 @@ where extern "system" { fn CfCreatePlaceholders(basedirectorypath: ::windows::core::PCWSTR, placeholderarray: *mut CF_PLACEHOLDER_CREATE_INFO, placeholdercount: u32, createflags: CF_CREATE_FLAGS, entriesprocessed: *mut u32) -> ::windows::core::HRESULT; } - CfCreatePlaceholders(basedirectorypath.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(placeholderarray)), placeholderarray.len() as _, createflags, ::core::mem::transmute(entriesprocessed)).ok() + CfCreatePlaceholders(basedirectorypath.into(), ::core::mem::transmute(placeholderarray.as_ptr()), placeholderarray.len() as _, createflags, ::core::mem::transmute(entriesprocessed)).ok() } #[doc = "*Required features: `\"Win32_Storage_CloudFilters\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] @@ -4415,7 +4415,7 @@ where #[doc = "*Required features: `\"Win32_Storage_CloudFilters\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CfGetPlaceholderInfo<'a, P0>(filehandle: P0, infoclass: CF_PLACEHOLDER_INFO_CLASS, infobuffer: *mut ::core::ffi::c_void, infobufferlength: u32, returnedlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> +pub unsafe fn CfGetPlaceholderInfo<'a, P0>(filehandle: P0, infoclass: CF_PLACEHOLDER_INFO_CLASS, infobuffer: &mut [u8], returnedlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -4423,12 +4423,12 @@ where extern "system" { fn CfGetPlaceholderInfo(filehandle: super::super::Foundation::HANDLE, infoclass: CF_PLACEHOLDER_INFO_CLASS, infobuffer: *mut ::core::ffi::c_void, infobufferlength: u32, returnedlength: *mut u32) -> ::windows::core::HRESULT; } - CfGetPlaceholderInfo(filehandle.into(), infoclass, ::core::mem::transmute(infobuffer), infobufferlength, ::core::mem::transmute(returnedlength)).ok() + CfGetPlaceholderInfo(filehandle.into(), infoclass, ::core::mem::transmute(infobuffer.as_ptr()), infobuffer.len() as _, ::core::mem::transmute(returnedlength)).ok() } #[doc = "*Required features: `\"Win32_Storage_CloudFilters\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CfGetPlaceholderRangeInfo<'a, P0>(filehandle: P0, infoclass: CF_PLACEHOLDER_RANGE_INFO_CLASS, startingoffset: i64, length: i64, infobuffer: *mut ::core::ffi::c_void, infobufferlength: u32, returnedlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> +pub unsafe fn CfGetPlaceholderRangeInfo<'a, P0>(filehandle: P0, infoclass: CF_PLACEHOLDER_RANGE_INFO_CLASS, startingoffset: i64, length: i64, infobuffer: &mut [u8], returnedlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -4436,7 +4436,7 @@ where extern "system" { fn CfGetPlaceholderRangeInfo(filehandle: super::super::Foundation::HANDLE, infoclass: CF_PLACEHOLDER_RANGE_INFO_CLASS, startingoffset: i64, length: i64, infobuffer: *mut ::core::ffi::c_void, infobufferlength: u32, returnedlength: *mut u32) -> ::windows::core::HRESULT; } - CfGetPlaceholderRangeInfo(filehandle.into(), infoclass, startingoffset, length, ::core::mem::transmute(infobuffer), infobufferlength, ::core::mem::transmute(returnedlength)).ok() + CfGetPlaceholderRangeInfo(filehandle.into(), infoclass, startingoffset, length, ::core::mem::transmute(infobuffer.as_ptr()), infobuffer.len() as _, ::core::mem::transmute(returnedlength)).ok() } #[doc = "*Required features: `\"Win32_Storage_CloudFilters\"`*"] #[inline] @@ -4723,7 +4723,7 @@ where #[doc = "*Required features: `\"Win32_Storage_CloudFilters\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn CfUpdatePlaceholder<'a, P0>(filehandle: P0, fsmetadata: ::core::option::Option<&CF_FS_METADATA>, fileidentity: *const ::core::ffi::c_void, fileidentitylength: u32, dehydraterangearray: &[CF_FILE_RANGE], updateflags: CF_UPDATE_FLAGS, updateusn: ::core::option::Option<&mut i64>, overlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>) -> ::windows::core::Result<()> +pub unsafe fn CfUpdatePlaceholder<'a, P0>(filehandle: P0, fsmetadata: ::core::option::Option<&CF_FS_METADATA>, fileidentity: ::core::option::Option<&[u8]>, dehydraterangearray: ::core::option::Option<&[CF_FILE_RANGE]>, updateflags: CF_UPDATE_FLAGS, updateusn: ::core::option::Option<&mut i64>, overlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -4731,7 +4731,7 @@ where extern "system" { fn CfUpdatePlaceholder(filehandle: super::super::Foundation::HANDLE, fsmetadata: *const CF_FS_METADATA, fileidentity: *const ::core::ffi::c_void, fileidentitylength: u32, dehydraterangearray: *const CF_FILE_RANGE, dehydraterangecount: u32, updateflags: CF_UPDATE_FLAGS, updateusn: *mut i64, overlapped: *mut super::super::System::IO::OVERLAPPED) -> ::windows::core::HRESULT; } - CfUpdatePlaceholder(filehandle.into(), ::core::mem::transmute(fsmetadata), ::core::mem::transmute(fileidentity), fileidentitylength, ::core::mem::transmute(::windows::core::as_ptr_or_null(dehydraterangearray)), dehydraterangearray.len() as _, updateflags, ::core::mem::transmute(updateusn), ::core::mem::transmute(overlapped)).ok() + CfUpdatePlaceholder(filehandle.into(), ::core::mem::transmute(fsmetadata), ::core::mem::transmute(fileidentity.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fileidentity.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(dehydraterangearray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dehydraterangearray.as_deref().map_or(0, |slice| slice.len() as _), updateflags, ::core::mem::transmute(updateusn), ::core::mem::transmute(overlapped)).ok() } #[doc = "*Required features: `\"Win32_Storage_CloudFilters\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/Storage/Compression/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/Compression/mod.rs index 99c529c51b..fee72273ed 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/Compression/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/Compression/mod.rs @@ -156,7 +156,7 @@ pub unsafe fn CloseDecompressor(decompressorhandle: isize) -> super::super::Foun #[doc = "*Required features: `\"Win32_Storage_Compression\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn Compress<'a, P0>(compressorhandle: P0, uncompresseddata: *const ::core::ffi::c_void, uncompresseddatasize: usize, compressedbuffer: *mut ::core::ffi::c_void, compressedbuffersize: usize, compresseddatasize: &mut usize) -> super::super::Foundation::BOOL +pub unsafe fn Compress<'a, P0>(compressorhandle: P0, uncompresseddata: ::core::option::Option<&[u8]>, compressedbuffer: ::core::option::Option<&mut [u8]>, compresseddatasize: &mut usize) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -164,7 +164,7 @@ where extern "system" { fn Compress(compressorhandle: COMPRESSOR_HANDLE, uncompresseddata: *const ::core::ffi::c_void, uncompresseddatasize: usize, compressedbuffer: *mut ::core::ffi::c_void, compressedbuffersize: usize, compresseddatasize: *mut usize) -> super::super::Foundation::BOOL; } - Compress(compressorhandle.into(), ::core::mem::transmute(uncompresseddata), uncompresseddatasize, ::core::mem::transmute(compressedbuffer), compressedbuffersize, ::core::mem::transmute(compresseddatasize)) + Compress(compressorhandle.into(), ::core::mem::transmute(uncompresseddata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), uncompresseddata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(compressedbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), compressedbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(compresseddatasize)) } #[doc = "*Required features: `\"Win32_Storage_Compression\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -189,12 +189,12 @@ pub unsafe fn CreateDecompressor(algorithm: COMPRESS_ALGORITHM, allocationroutin #[doc = "*Required features: `\"Win32_Storage_Compression\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn Decompress(decompressorhandle: isize, compresseddata: *const ::core::ffi::c_void, compresseddatasize: usize, uncompressedbuffer: *mut ::core::ffi::c_void, uncompressedbuffersize: usize, uncompresseddatasize: ::core::option::Option<&mut usize>) -> super::super::Foundation::BOOL { +pub unsafe fn Decompress(decompressorhandle: isize, compresseddata: ::core::option::Option<&[u8]>, uncompressedbuffer: ::core::option::Option<&mut [u8]>, uncompresseddatasize: ::core::option::Option<&mut usize>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn Decompress(decompressorhandle: isize, compresseddata: *const ::core::ffi::c_void, compresseddatasize: usize, uncompressedbuffer: *mut ::core::ffi::c_void, uncompressedbuffersize: usize, uncompresseddatasize: *mut usize) -> super::super::Foundation::BOOL; } - Decompress(decompressorhandle, ::core::mem::transmute(compresseddata), compresseddatasize, ::core::mem::transmute(uncompressedbuffer), uncompressedbuffersize, ::core::mem::transmute(uncompresseddatasize)) + Decompress(decompressorhandle, ::core::mem::transmute(compresseddata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), compresseddata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(uncompressedbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), uncompressedbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(uncompresseddatasize)) } #[doc = "*Required features: `\"Win32_Storage_Compression\"`*"] pub type PFN_COMPRESS_ALLOCATE = ::core::option::Option *mut ::core::ffi::c_void>; @@ -203,7 +203,7 @@ pub type PFN_COMPRESS_FREE = ::core::option::Option(compressorhandle: P0, compressinformationclass: COMPRESS_INFORMATION_CLASS, compressinformation: *mut ::core::ffi::c_void, compressinformationsize: usize) -> super::super::Foundation::BOOL +pub unsafe fn QueryCompressorInformation<'a, P0>(compressorhandle: P0, compressinformationclass: COMPRESS_INFORMATION_CLASS, compressinformation: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -211,17 +211,17 @@ where extern "system" { fn QueryCompressorInformation(compressorhandle: COMPRESSOR_HANDLE, compressinformationclass: COMPRESS_INFORMATION_CLASS, compressinformation: *mut ::core::ffi::c_void, compressinformationsize: usize) -> super::super::Foundation::BOOL; } - QueryCompressorInformation(compressorhandle.into(), compressinformationclass, ::core::mem::transmute(compressinformation), compressinformationsize) + QueryCompressorInformation(compressorhandle.into(), compressinformationclass, ::core::mem::transmute(compressinformation.as_ptr()), compressinformation.len() as _) } #[doc = "*Required features: `\"Win32_Storage_Compression\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn QueryDecompressorInformation(decompressorhandle: isize, compressinformationclass: COMPRESS_INFORMATION_CLASS, compressinformation: *mut ::core::ffi::c_void, compressinformationsize: usize) -> super::super::Foundation::BOOL { +pub unsafe fn QueryDecompressorInformation(decompressorhandle: isize, compressinformationclass: COMPRESS_INFORMATION_CLASS, compressinformation: &mut [u8]) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn QueryDecompressorInformation(decompressorhandle: isize, compressinformationclass: COMPRESS_INFORMATION_CLASS, compressinformation: *mut ::core::ffi::c_void, compressinformationsize: usize) -> super::super::Foundation::BOOL; } - QueryDecompressorInformation(decompressorhandle, compressinformationclass, ::core::mem::transmute(compressinformation), compressinformationsize) + QueryDecompressorInformation(decompressorhandle, compressinformationclass, ::core::mem::transmute(compressinformation.as_ptr()), compressinformation.len() as _) } #[doc = "*Required features: `\"Win32_Storage_Compression\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -249,7 +249,7 @@ pub unsafe fn ResetDecompressor(decompressorhandle: isize) -> super::super::Foun #[doc = "*Required features: `\"Win32_Storage_Compression\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetCompressorInformation<'a, P0>(compressorhandle: P0, compressinformationclass: COMPRESS_INFORMATION_CLASS, compressinformation: *const ::core::ffi::c_void, compressinformationsize: usize) -> super::super::Foundation::BOOL +pub unsafe fn SetCompressorInformation<'a, P0>(compressorhandle: P0, compressinformationclass: COMPRESS_INFORMATION_CLASS, compressinformation: &[u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -257,17 +257,17 @@ where extern "system" { fn SetCompressorInformation(compressorhandle: COMPRESSOR_HANDLE, compressinformationclass: COMPRESS_INFORMATION_CLASS, compressinformation: *const ::core::ffi::c_void, compressinformationsize: usize) -> super::super::Foundation::BOOL; } - SetCompressorInformation(compressorhandle.into(), compressinformationclass, ::core::mem::transmute(compressinformation), compressinformationsize) + SetCompressorInformation(compressorhandle.into(), compressinformationclass, ::core::mem::transmute(compressinformation.as_ptr()), compressinformation.len() as _) } #[doc = "*Required features: `\"Win32_Storage_Compression\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetDecompressorInformation(decompressorhandle: isize, compressinformationclass: COMPRESS_INFORMATION_CLASS, compressinformation: *const ::core::ffi::c_void, compressinformationsize: usize) -> super::super::Foundation::BOOL { +pub unsafe fn SetDecompressorInformation(decompressorhandle: isize, compressinformationclass: COMPRESS_INFORMATION_CLASS, compressinformation: &[u8]) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetDecompressorInformation(decompressorhandle: isize, compressinformationclass: COMPRESS_INFORMATION_CLASS, compressinformation: *const ::core::ffi::c_void, compressinformationsize: usize) -> super::super::Foundation::BOOL; } - SetDecompressorInformation(decompressorhandle, compressinformationclass, ::core::mem::transmute(compressinformation), compressinformationsize) + SetDecompressorInformation(decompressorhandle, compressinformationclass, ::core::mem::transmute(compressinformation.as_ptr()), compressinformation.len() as _) } #[cfg(feature = "implement")] ::core::include!("impl.rs"); diff --git a/crates/libs/windows/src/Windows/Win32/Storage/DataDeduplication/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/DataDeduplication/mod.rs index 3afa71fd47..713186ffbf 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/DataDeduplication/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/DataDeduplication/mod.rs @@ -507,7 +507,7 @@ pub struct IDedupBackupSupport(::windows::core::IUnknown); impl IDedupBackupSupport { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RestoreFiles<'a, P0>(&self, numberoffiles: u32, filefullpaths: &super::super::Foundation::BSTR, store: P0, flags: u32, fileresults: &mut ::windows::core::HRESULT) -> ::windows::core::Result<()> + pub unsafe fn RestoreFiles<'a, P0>(&self, numberoffiles: u32, filefullpaths: *const super::super::Foundation::BSTR, store: P0, flags: u32, fileresults: *mut ::windows::core::HRESULT) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDedupReadFileCallback>>, { @@ -637,11 +637,11 @@ impl IDedupDataPort { } pub unsafe fn LookupChunks(&self, phashes: &[DedupHash]) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).LookupChunks)(::windows::core::Interface::as_raw(self), phashes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(phashes)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) + (::windows::core::Interface::vtable(self).LookupChunks)(::windows::core::Interface::as_raw(self), phashes.len() as _, ::core::mem::transmute(phashes.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } pub unsafe fn InsertChunks(&self, pchunkmetadata: &[DedupChunk], pchunkdata: &[u8]) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).InsertChunks)(::windows::core::Interface::as_raw(self), pchunkmetadata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pchunkmetadata)), pchunkdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pchunkdata)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) + (::windows::core::Interface::vtable(self).InsertChunks)(::windows::core::Interface::as_raw(self), pchunkmetadata.len() as _, ::core::mem::transmute(pchunkmetadata.as_ptr()), pchunkdata.len() as _, ::core::mem::transmute(pchunkdata.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -650,13 +650,13 @@ impl IDedupDataPort { P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::System::Com::IStream>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).InsertChunksWithStream)(::windows::core::Interface::as_raw(self), pchunkmetadata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pchunkmetadata)), databytecount, pchunkdatastream.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) + (::windows::core::Interface::vtable(self).InsertChunksWithStream)(::windows::core::Interface::as_raw(self), pchunkmetadata.len() as _, ::core::mem::transmute(pchunkmetadata.as_ptr()), databytecount, pchunkdatastream.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn CommitStreams(&self, pstreams: &[DedupStream], pentries: &[DedupStreamEntry]) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CommitStreams)(::windows::core::Interface::as_raw(self), pstreams.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pstreams)), pentries.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pentries)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) + (::windows::core::Interface::vtable(self).CommitStreams)(::windows::core::Interface::as_raw(self), pstreams.len() as _, ::core::mem::transmute(pstreams.as_ptr()), pentries.len() as _, ::core::mem::transmute(pentries.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] @@ -665,31 +665,31 @@ impl IDedupDataPort { P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::System::Com::IStream>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CommitStreamsWithStream)(::windows::core::Interface::as_raw(self), pstreams.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pstreams)), entrycount, pentriesstream.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) + (::windows::core::Interface::vtable(self).CommitStreamsWithStream)(::windows::core::Interface::as_raw(self), pstreams.len() as _, ::core::mem::transmute(pstreams.as_ptr()), entrycount, pentriesstream.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetStreams(&self, pstreampaths: &[super::super::Foundation::BSTR]) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetStreams)(::windows::core::Interface::as_raw(self), pstreampaths.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pstreampaths)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) + (::windows::core::Interface::vtable(self).GetStreams)(::windows::core::Interface::as_raw(self), pstreampaths.len() as _, ::core::mem::transmute(pstreampaths.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetStreamsResults(&self, requestid: ::windows::core::GUID, maxwaitms: u32, streamentryindex: u32, pstreamcount: &mut u32, ppstreams: &mut *mut DedupStream, pentrycount: &mut u32, ppentries: &mut *mut DedupStreamEntry, pstatus: &mut DedupDataPortRequestStatus, ppitemresults: &mut *mut ::windows::core::HRESULT) -> ::windows::core::Result<()> { + pub unsafe fn GetStreamsResults(&self, requestid: ::windows::core::GUID, maxwaitms: u32, streamentryindex: u32, pstreamcount: &mut u32, ppstreams: *mut *mut DedupStream, pentrycount: &mut u32, ppentries: *mut *mut DedupStreamEntry, pstatus: &mut DedupDataPortRequestStatus, ppitemresults: *mut *mut ::windows::core::HRESULT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetStreamsResults)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(requestid), maxwaitms, streamentryindex, ::core::mem::transmute(pstreamcount), ::core::mem::transmute(ppstreams), ::core::mem::transmute(pentrycount), ::core::mem::transmute(ppentries), ::core::mem::transmute(pstatus), ::core::mem::transmute(ppitemresults)).ok() } pub unsafe fn GetChunks(&self, phashes: &[DedupHash]) -> ::windows::core::Result<::windows::core::GUID> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetChunks)(::windows::core::Interface::as_raw(self), phashes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(phashes)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) + (::windows::core::Interface::vtable(self).GetChunks)(::windows::core::Interface::as_raw(self), phashes.len() as _, ::core::mem::transmute(phashes.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } - pub unsafe fn GetChunksResults(&self, requestid: ::windows::core::GUID, maxwaitms: u32, chunkindex: u32, pchunkcount: &mut u32, ppchunkmetadata: &mut *mut DedupChunk, pdatabytecount: &mut u32, ppchunkdata: &mut *mut u8, pstatus: &mut DedupDataPortRequestStatus, ppitemresults: &mut *mut ::windows::core::HRESULT) -> ::windows::core::Result<()> { + pub unsafe fn GetChunksResults(&self, requestid: ::windows::core::GUID, maxwaitms: u32, chunkindex: u32, pchunkcount: &mut u32, ppchunkmetadata: *mut *mut DedupChunk, pdatabytecount: &mut u32, ppchunkdata: *mut *mut u8, pstatus: &mut DedupDataPortRequestStatus, ppitemresults: *mut *mut ::windows::core::HRESULT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetChunksResults)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(requestid), maxwaitms, chunkindex, ::core::mem::transmute(pchunkcount), ::core::mem::transmute(ppchunkmetadata), ::core::mem::transmute(pdatabytecount), ::core::mem::transmute(ppchunkdata), ::core::mem::transmute(pstatus), ::core::mem::transmute(ppitemresults)).ok() } pub unsafe fn GetRequestStatus(&self, requestid: ::windows::core::GUID) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetRequestStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(requestid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetRequestResults(&self, requestid: ::windows::core::GUID, maxwaitms: u32, pbatchresult: &mut ::windows::core::HRESULT, pbatchcount: &mut u32, pstatus: &mut DedupDataPortRequestStatus, ppitemresults: &mut *mut ::windows::core::HRESULT) -> ::windows::core::Result<()> { + pub unsafe fn GetRequestResults(&self, requestid: ::windows::core::GUID, maxwaitms: u32, pbatchresult: &mut ::windows::core::HRESULT, pbatchcount: &mut u32, pstatus: &mut DedupDataPortRequestStatus, ppitemresults: *mut *mut ::windows::core::HRESULT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetRequestResults)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(requestid), maxwaitms, ::core::mem::transmute(pbatchresult), ::core::mem::transmute(pbatchcount), ::core::mem::transmute(pstatus), ::core::mem::transmute(ppitemresults)).ok() } } @@ -840,10 +840,10 @@ pub struct IDedupDataPortManager_Vtbl { pub struct IDedupIterateChunksHash32(::windows::core::IUnknown); impl IDedupIterateChunksHash32 { pub unsafe fn PushBuffer(&self, pbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).PushBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuffer)), pbuffer.len() as _).ok() + (::windows::core::Interface::vtable(self).PushBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _).ok() } pub unsafe fn Next(&self, parrchunks: &mut [DEDUP_CHUNK_INFO_HASH32], pulfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), parrchunks.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(parrchunks)), ::core::mem::transmute(pulfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), parrchunks.len() as _, ::core::mem::transmute(parrchunks.as_ptr()), ::core::mem::transmute(pulfetched)).ok() } pub unsafe fn Drain(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Drain)(::windows::core::Interface::as_raw(self)).ok() @@ -906,12 +906,12 @@ impl IDedupReadFileCallback { where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { - (::windows::core::Interface::vtable(self).ReadBackupFile)(::windows::core::Interface::as_raw(self), filefullpath.into().abi(), fileoffset, filebuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filebuffer)), ::core::mem::transmute(returnedsize), flags).ok() + (::windows::core::Interface::vtable(self).ReadBackupFile)(::windows::core::Interface::as_raw(self), filefullpath.into().abi(), fileoffset, filebuffer.len() as _, ::core::mem::transmute(filebuffer.as_ptr()), ::core::mem::transmute(returnedsize), flags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OrderContainersRestore(&self, containerpaths: &[super::super::Foundation::BSTR], readplanentries: &mut u32, readplan: &mut *mut DEDUP_CONTAINER_EXTENT) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OrderContainersRestore)(::windows::core::Interface::as_raw(self), containerpaths.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(containerpaths)), ::core::mem::transmute(readplanentries), ::core::mem::transmute(readplan)).ok() + pub unsafe fn OrderContainersRestore(&self, containerpaths: &[super::super::Foundation::BSTR], readplanentries: &mut u32, readplan: *mut *mut DEDUP_CONTAINER_EXTENT) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OrderContainersRestore)(::windows::core::Interface::as_raw(self), containerpaths.len() as _, ::core::mem::transmute(containerpaths.as_ptr()), ::core::mem::transmute(readplanentries), ::core::mem::transmute(readplan)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -919,7 +919,7 @@ impl IDedupReadFileCallback { where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { - (::windows::core::Interface::vtable(self).PreviewContainerRead)(::windows::core::Interface::as_raw(self), filefullpath.into().abi(), readoffsets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(readoffsets))).ok() + (::windows::core::Interface::vtable(self).PreviewContainerRead)(::windows::core::Interface::as_raw(self), filefullpath.into().abi(), readoffsets.len() as _, ::core::mem::transmute(readoffsets.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/Storage/EnhancedStorage/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/EnhancedStorage/mod.rs index 61ee36b303..37088dad58 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/EnhancedStorage/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/EnhancedStorage/mod.rs @@ -500,7 +500,7 @@ impl IEnhancedStorageACT { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetUniqueIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) } - pub unsafe fn GetSilos(&self, pppienhancedstoragesilos: &mut *mut ::core::option::Option, pcenhancedstoragesilos: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetSilos(&self, pppienhancedstoragesilos: *mut *mut ::core::option::Option, pcenhancedstoragesilos: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSilos)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppienhancedstoragesilos), ::core::mem::transmute(pcenhancedstoragesilos)).ok() } } @@ -572,7 +572,7 @@ impl IEnhancedStorageACT2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetUniqueIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) } - pub unsafe fn GetSilos(&self, pppienhancedstoragesilos: &mut *mut ::core::option::Option, pcenhancedstoragesilos: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetSilos(&self, pppienhancedstoragesilos: *mut *mut ::core::option::Option, pcenhancedstoragesilos: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetSilos)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppienhancedstoragesilos), ::core::mem::transmute(pcenhancedstoragesilos)).ok() } pub unsafe fn GetDeviceName(&self) -> ::windows::core::Result<::windows::core::PWSTR> { @@ -668,7 +668,7 @@ impl IEnhancedStorageACT3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.GetUniqueIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) } - pub unsafe fn GetSilos(&self, pppienhancedstoragesilos: &mut *mut ::core::option::Option, pcenhancedstoragesilos: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetSilos(&self, pppienhancedstoragesilos: *mut *mut ::core::option::Option, pcenhancedstoragesilos: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetSilos)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppienhancedstoragesilos), ::core::mem::transmute(pcenhancedstoragesilos)).ok() } pub unsafe fn GetDeviceName(&self) -> ::windows::core::Result<::windows::core::PWSTR> { @@ -784,11 +784,11 @@ impl IEnhancedStorageSilo { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetActions(&self, pppienhancedstoragesiloactions: &mut *mut ::core::option::Option, pcenhancedstoragesiloactions: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetActions(&self, pppienhancedstoragesiloactions: *mut *mut ::core::option::Option, pcenhancedstoragesiloactions: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetActions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppienhancedstoragesiloactions), ::core::mem::transmute(pcenhancedstoragesiloactions)).ok() } - pub unsafe fn SendCommand(&self, command: u8, pbcommandbuffer: &[u8], pbresponsebuffer: &mut u8, pcbresponsebuffer: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SendCommand)(::windows::core::Interface::as_raw(self), command, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbcommandbuffer)), pbcommandbuffer.len() as _, ::core::mem::transmute(pbresponsebuffer), ::core::mem::transmute(pcbresponsebuffer)).ok() + pub unsafe fn SendCommand(&self, command: u8, pbcommandbuffer: &[u8], pbresponsebuffer: *mut u8, pcbresponsebuffer: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SendCommand)(::windows::core::Interface::as_raw(self), command, ::core::mem::transmute(pbcommandbuffer.as_ptr()), pbcommandbuffer.len() as _, ::core::mem::transmute(pbresponsebuffer), ::core::mem::transmute(pcbresponsebuffer)).ok() } #[doc = "*Required features: `\"Win32_Devices_PortableDevices\"`*"] #[cfg(feature = "Win32_Devices_PortableDevices")] @@ -912,7 +912,7 @@ pub struct IEnhancedStorageSiloAction_Vtbl { #[repr(transparent)] pub struct IEnumEnhancedStorageACT(::windows::core::IUnknown); impl IEnumEnhancedStorageACT { - pub unsafe fn GetACTs(&self, pppienhancedstorageacts: &mut *mut ::core::option::Option, pcenhancedstorageacts: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetACTs(&self, pppienhancedstorageacts: *mut *mut ::core::option::Option, pcenhancedstorageacts: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetACTs)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppienhancedstorageacts), ::core::mem::transmute(pcenhancedstorageacts)).ok() } pub unsafe fn GetMatchingACT<'a, P0>(&self, szvolume: P0) -> ::windows::core::Result diff --git a/crates/libs/windows/src/Windows/Win32/Storage/FileSystem/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/FileSystem/mod.rs index bd1c9a30e9..26af34eb11 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/FileSystem/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/FileSystem/mod.rs @@ -23,7 +23,7 @@ where extern "system" { fn AddLogContainerSet(hlog: super::super::Foundation::HANDLE, ccontainer: u16, pcbcontainer: *const u64, rgwszcontainerpath: *const ::windows::core::PWSTR, preserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - AddLogContainerSet(hlog.into(), rgwszcontainerpath.len() as _, ::core::mem::transmute(pcbcontainer), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgwszcontainerpath)), ::core::mem::transmute(preserved)) + AddLogContainerSet(hlog.into(), rgwszcontainerpath.len() as _, ::core::mem::transmute(pcbcontainer), ::core::mem::transmute(rgwszcontainerpath.as_ptr()), ::core::mem::transmute(preserved)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Security\"`*"] #[cfg(feature = "Win32_Security")] @@ -152,7 +152,7 @@ impl ::core::default::Default for BY_HANDLE_FILE_INFORMATION { #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BackupRead<'a, P0, P1, P2>(hfile: P0, lpbuffer: &mut u8, nnumberofbytestoread: u32, lpnumberofbytesread: &mut u32, babort: P1, bprocesssecurity: P2, lpcontext: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn BackupRead<'a, P0, P1, P2>(hfile: P0, lpbuffer: &mut [u8], lpnumberofbytesread: &mut u32, babort: P1, bprocesssecurity: P2, lpcontext: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -162,7 +162,7 @@ where extern "system" { fn BackupRead(hfile: super::super::Foundation::HANDLE, lpbuffer: *mut u8, nnumberofbytestoread: u32, lpnumberofbytesread: *mut u32, babort: super::super::Foundation::BOOL, bprocesssecurity: super::super::Foundation::BOOL, lpcontext: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - BackupRead(hfile.into(), ::core::mem::transmute(lpbuffer), nnumberofbytestoread, ::core::mem::transmute(lpnumberofbytesread), babort.into(), bprocesssecurity.into(), ::core::mem::transmute(lpcontext)) + BackupRead(hfile.into(), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofbytesread), babort.into(), bprocesssecurity.into(), ::core::mem::transmute(lpcontext)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -180,7 +180,7 @@ where #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BackupWrite<'a, P0, P1, P2>(hfile: P0, lpbuffer: &u8, nnumberofbytestowrite: u32, lpnumberofbyteswritten: &mut u32, babort: P1, bprocesssecurity: P2, lpcontext: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn BackupWrite<'a, P0, P1, P2>(hfile: P0, lpbuffer: &[u8], lpnumberofbyteswritten: &mut u32, babort: P1, bprocesssecurity: P2, lpcontext: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -190,7 +190,7 @@ where extern "system" { fn BackupWrite(hfile: super::super::Foundation::HANDLE, lpbuffer: *const u8, nnumberofbytestowrite: u32, lpnumberofbyteswritten: *mut u32, babort: super::super::Foundation::BOOL, bprocesssecurity: super::super::Foundation::BOOL, lpcontext: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - BackupWrite(hfile.into(), ::core::mem::transmute(lpbuffer), nnumberofbytestowrite, ::core::mem::transmute(lpnumberofbyteswritten), babort.into(), bprocesssecurity.into(), ::core::mem::transmute(lpcontext)) + BackupWrite(hfile.into(), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofbyteswritten), babort.into(), bprocesssecurity.into(), ::core::mem::transmute(lpcontext)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -219,7 +219,7 @@ pub unsafe fn BuildIoRingRegisterBuffers(ioring: &HIORING__, buffers: &[IORING_B extern "system" { fn BuildIoRingRegisterBuffers(ioring: *const HIORING__, count: u32, buffers: *const IORING_BUFFER_INFO, userdata: usize) -> ::windows::core::HRESULT; } - BuildIoRingRegisterBuffers(::core::mem::transmute(ioring), buffers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(buffers)), userdata).ok() + BuildIoRingRegisterBuffers(::core::mem::transmute(ioring), buffers.len() as _, ::core::mem::transmute(buffers.as_ptr()), userdata).ok() } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -229,7 +229,7 @@ pub unsafe fn BuildIoRingRegisterFileHandles(ioring: &HIORING__, handles: &[supe extern "system" { fn BuildIoRingRegisterFileHandles(ioring: *const HIORING__, count: u32, handles: *const super::super::Foundation::HANDLE, userdata: usize) -> ::windows::core::HRESULT; } - BuildIoRingRegisterFileHandles(::core::mem::transmute(ioring), handles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(handles)), userdata).ok() + BuildIoRingRegisterFileHandles(::core::mem::transmute(ioring), handles.len() as _, ::core::mem::transmute(handles.as_ptr()), userdata).ok() } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] @@ -2163,7 +2163,7 @@ pub const CSV_BLOCK_CACHE_CALLBACK_VERSION: u32 = 1u32; #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CheckNameLegalDOS8Dot3A<'a, P0>(lpname: P0, lpoemname: &mut [u8], pbnamecontainsspaces: ::core::option::Option<&mut super::super::Foundation::BOOL>, pbnamelegal: &mut super::super::Foundation::BOOL) -> super::super::Foundation::BOOL +pub unsafe fn CheckNameLegalDOS8Dot3A<'a, P0>(lpname: P0, lpoemname: ::core::option::Option<&mut [u8]>, pbnamecontainsspaces: ::core::option::Option<&mut super::super::Foundation::BOOL>, pbnamelegal: &mut super::super::Foundation::BOOL) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -2171,12 +2171,12 @@ where extern "system" { fn CheckNameLegalDOS8Dot3A(lpname: ::windows::core::PCSTR, lpoemname: ::windows::core::PSTR, oemnamesize: u32, pbnamecontainsspaces: *mut super::super::Foundation::BOOL, pbnamelegal: *mut super::super::Foundation::BOOL) -> super::super::Foundation::BOOL; } - CheckNameLegalDOS8Dot3A(lpname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpoemname)), lpoemname.len() as _, ::core::mem::transmute(pbnamecontainsspaces), ::core::mem::transmute(pbnamelegal)) + CheckNameLegalDOS8Dot3A(lpname.into(), ::core::mem::transmute(lpoemname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoemname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbnamecontainsspaces), ::core::mem::transmute(pbnamelegal)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CheckNameLegalDOS8Dot3W<'a, P0>(lpname: P0, lpoemname: &mut [u8], pbnamecontainsspaces: ::core::option::Option<&mut super::super::Foundation::BOOL>, pbnamelegal: &mut super::super::Foundation::BOOL) -> super::super::Foundation::BOOL +pub unsafe fn CheckNameLegalDOS8Dot3W<'a, P0>(lpname: P0, lpoemname: ::core::option::Option<&mut [u8]>, pbnamecontainsspaces: ::core::option::Option<&mut super::super::Foundation::BOOL>, pbnamelegal: &mut super::super::Foundation::BOOL) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2184,7 +2184,7 @@ where extern "system" { fn CheckNameLegalDOS8Dot3W(lpname: ::windows::core::PCWSTR, lpoemname: ::windows::core::PSTR, oemnamesize: u32, pbnamecontainsspaces: *mut super::super::Foundation::BOOL, pbnamelegal: *mut super::super::Foundation::BOOL) -> super::super::Foundation::BOOL; } - CheckNameLegalDOS8Dot3W(lpname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpoemname)), lpoemname.len() as _, ::core::mem::transmute(pbnamecontainsspaces), ::core::mem::transmute(pbnamelegal)) + CheckNameLegalDOS8Dot3W(lpname.into(), ::core::mem::transmute(lpoemname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoemname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbnamecontainsspaces), ::core::mem::transmute(pbnamelegal)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] pub const ClfsClientRecord: u8 = 3u8; @@ -6356,7 +6356,7 @@ pub unsafe fn FindFirstVolumeA(lpszvolumename: &mut [u8]) -> ::windows::core::Re extern "system" { fn FindFirstVolumeA(lpszvolumename: ::windows::core::PSTR, cchbufferlength: u32) -> FindVolumeHandle; } - let result__ = FindFirstVolumeA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszvolumename)), lpszvolumename.len() as _); + let result__ = FindFirstVolumeA(::core::mem::transmute(lpszvolumename.as_ptr()), lpszvolumename.len() as _); (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] @@ -6369,7 +6369,7 @@ where extern "system" { fn FindFirstVolumeMountPointA(lpszrootpathname: ::windows::core::PCSTR, lpszvolumemountpoint: ::windows::core::PSTR, cchbufferlength: u32) -> FindVolumeMointPointHandle; } - let result__ = FindFirstVolumeMountPointA(lpszrootpathname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszvolumemountpoint)), lpszvolumemountpoint.len() as _); + let result__ = FindFirstVolumeMountPointA(lpszrootpathname.into(), ::core::mem::transmute(lpszvolumemountpoint.as_ptr()), lpszvolumemountpoint.len() as _); (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] @@ -6382,7 +6382,7 @@ where extern "system" { fn FindFirstVolumeMountPointW(lpszrootpathname: ::windows::core::PCWSTR, lpszvolumemountpoint: ::windows::core::PWSTR, cchbufferlength: u32) -> FindVolumeMointPointHandle; } - let result__ = FindFirstVolumeMountPointW(lpszrootpathname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszvolumemountpoint)), lpszvolumemountpoint.len() as _); + let result__ = FindFirstVolumeMountPointW(lpszrootpathname.into(), ::core::mem::transmute(lpszvolumemountpoint.as_ptr()), lpszvolumemountpoint.len() as _); (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] @@ -6392,7 +6392,7 @@ pub unsafe fn FindFirstVolumeW(lpszvolumename: &mut [u16]) -> ::windows::core::R extern "system" { fn FindFirstVolumeW(lpszvolumename: ::windows::core::PWSTR, cchbufferlength: u32) -> FindVolumeHandle; } - let result__ = FindFirstVolumeW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszvolumename)), lpszvolumename.len() as _); + let result__ = FindFirstVolumeW(::core::mem::transmute(lpszvolumename.as_ptr()), lpszvolumename.len() as _); (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] @@ -6471,7 +6471,7 @@ where extern "system" { fn FindNextVolumeA(hfindvolume: FindVolumeHandle, lpszvolumename: ::windows::core::PSTR, cchbufferlength: u32) -> super::super::Foundation::BOOL; } - FindNextVolumeA(hfindvolume.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszvolumename)), lpszvolumename.len() as _) + FindNextVolumeA(hfindvolume.into(), ::core::mem::transmute(lpszvolumename.as_ptr()), lpszvolumename.len() as _) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6484,7 +6484,7 @@ where extern "system" { fn FindNextVolumeMountPointA(hfindvolumemountpoint: FindVolumeMointPointHandle, lpszvolumemountpoint: ::windows::core::PSTR, cchbufferlength: u32) -> super::super::Foundation::BOOL; } - FindNextVolumeMountPointA(hfindvolumemountpoint.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszvolumemountpoint)), lpszvolumemountpoint.len() as _) + FindNextVolumeMountPointA(hfindvolumemountpoint.into(), ::core::mem::transmute(lpszvolumemountpoint.as_ptr()), lpszvolumemountpoint.len() as _) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6497,7 +6497,7 @@ where extern "system" { fn FindNextVolumeMountPointW(hfindvolumemountpoint: FindVolumeMointPointHandle, lpszvolumemountpoint: ::windows::core::PWSTR, cchbufferlength: u32) -> super::super::Foundation::BOOL; } - FindNextVolumeMountPointW(hfindvolumemountpoint.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszvolumemountpoint)), lpszvolumemountpoint.len() as _) + FindNextVolumeMountPointW(hfindvolumemountpoint.into(), ::core::mem::transmute(lpszvolumemountpoint.as_ptr()), lpszvolumemountpoint.len() as _) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6510,7 +6510,7 @@ where extern "system" { fn FindNextVolumeW(hfindvolume: FindVolumeHandle, lpszvolumename: ::windows::core::PWSTR, cchbufferlength: u32) -> super::super::Foundation::BOOL; } - FindNextVolumeW(hfindvolume.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszvolumename)), lpszvolumename.len() as _) + FindNextVolumeW(hfindvolume.into(), ::core::mem::transmute(lpszvolumename.as_ptr()), lpszvolumename.len() as _) } #[repr(transparent)] #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] @@ -7048,7 +7048,7 @@ where extern "system" { fn GetExpandedNameA(lpszsource: ::windows::core::PCSTR, lpszbuffer: ::windows::core::PSTR) -> i32; } - GetExpandedNameA(lpszsource.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszbuffer))) + GetExpandedNameA(lpszsource.into(), ::core::mem::transmute(lpszbuffer.as_ptr())) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] @@ -7060,7 +7060,7 @@ where extern "system" { fn GetExpandedNameW(lpszsource: ::windows::core::PCWSTR, lpszbuffer: ::windows::core::PWSTR) -> i32; } - GetExpandedNameW(lpszsource.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszbuffer))) + GetExpandedNameW(lpszsource.into(), ::core::mem::transmute(lpszbuffer.as_ptr())) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] @@ -7182,7 +7182,7 @@ where #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetFileInformationByHandleEx<'a, P0>(hfile: P0, fileinformationclass: FILE_INFO_BY_HANDLE_CLASS, lpfileinformation: *mut ::core::ffi::c_void, dwbuffersize: u32) -> super::super::Foundation::BOOL +pub unsafe fn GetFileInformationByHandleEx<'a, P0>(hfile: P0, fileinformationclass: FILE_INFO_BY_HANDLE_CLASS, lpfileinformation: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -7190,7 +7190,7 @@ where extern "system" { fn GetFileInformationByHandleEx(hfile: super::super::Foundation::HANDLE, fileinformationclass: FILE_INFO_BY_HANDLE_CLASS, lpfileinformation: *mut ::core::ffi::c_void, dwbuffersize: u32) -> super::super::Foundation::BOOL; } - GetFileInformationByHandleEx(hfile.into(), fileinformationclass, ::core::mem::transmute(lpfileinformation), dwbuffersize) + GetFileInformationByHandleEx(hfile.into(), fileinformationclass, ::core::mem::transmute(lpfileinformation.as_ptr()), lpfileinformation.len() as _) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7247,7 +7247,7 @@ where #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetFileVersionInfoA<'a, P0>(lptstrfilename: P0, dwhandle: u32, dwlen: u32, lpdata: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn GetFileVersionInfoA<'a, P0>(lptstrfilename: P0, dwhandle: u32, lpdata: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -7255,12 +7255,12 @@ where extern "system" { fn GetFileVersionInfoA(lptstrfilename: ::windows::core::PCSTR, dwhandle: u32, dwlen: u32, lpdata: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - GetFileVersionInfoA(lptstrfilename.into(), dwhandle, dwlen, ::core::mem::transmute(lpdata)) + GetFileVersionInfoA(lptstrfilename.into(), dwhandle, lpdata.len() as _, ::core::mem::transmute(lpdata.as_ptr())) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetFileVersionInfoExA<'a, P0>(dwflags: GET_FILE_VERSION_INFO_FLAGS, lpwstrfilename: P0, dwhandle: u32, dwlen: u32, lpdata: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn GetFileVersionInfoExA<'a, P0>(dwflags: GET_FILE_VERSION_INFO_FLAGS, lpwstrfilename: P0, dwhandle: u32, lpdata: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -7268,12 +7268,12 @@ where extern "system" { fn GetFileVersionInfoExA(dwflags: GET_FILE_VERSION_INFO_FLAGS, lpwstrfilename: ::windows::core::PCSTR, dwhandle: u32, dwlen: u32, lpdata: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - GetFileVersionInfoExA(dwflags, lpwstrfilename.into(), dwhandle, dwlen, ::core::mem::transmute(lpdata)) + GetFileVersionInfoExA(dwflags, lpwstrfilename.into(), dwhandle, lpdata.len() as _, ::core::mem::transmute(lpdata.as_ptr())) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetFileVersionInfoExW<'a, P0>(dwflags: GET_FILE_VERSION_INFO_FLAGS, lpwstrfilename: P0, dwhandle: u32, dwlen: u32, lpdata: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn GetFileVersionInfoExW<'a, P0>(dwflags: GET_FILE_VERSION_INFO_FLAGS, lpwstrfilename: P0, dwhandle: u32, lpdata: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -7281,7 +7281,7 @@ where extern "system" { fn GetFileVersionInfoExW(dwflags: GET_FILE_VERSION_INFO_FLAGS, lpwstrfilename: ::windows::core::PCWSTR, dwhandle: u32, dwlen: u32, lpdata: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - GetFileVersionInfoExW(dwflags, lpwstrfilename.into(), dwhandle, dwlen, ::core::mem::transmute(lpdata)) + GetFileVersionInfoExW(dwflags, lpwstrfilename.into(), dwhandle, lpdata.len() as _, ::core::mem::transmute(lpdata.as_ptr())) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] @@ -7334,7 +7334,7 @@ where #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetFileVersionInfoW<'a, P0>(lptstrfilename: P0, dwhandle: u32, dwlen: u32, lpdata: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn GetFileVersionInfoW<'a, P0>(lptstrfilename: P0, dwhandle: u32, lpdata: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -7342,7 +7342,7 @@ where extern "system" { fn GetFileVersionInfoW(lptstrfilename: ::windows::core::PCWSTR, dwhandle: u32, dwlen: u32, lpdata: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - GetFileVersionInfoW(lptstrfilename.into(), dwhandle, dwlen, ::core::mem::transmute(lpdata)) + GetFileVersionInfoW(lptstrfilename.into(), dwhandle, lpdata.len() as _, ::core::mem::transmute(lpdata.as_ptr())) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7355,7 +7355,7 @@ where extern "system" { fn GetFinalPathNameByHandleA(hfile: super::super::Foundation::HANDLE, lpszfilepath: ::windows::core::PSTR, cchfilepath: u32, dwflags: FILE_NAME) -> u32; } - GetFinalPathNameByHandleA(hfile.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszfilepath)), lpszfilepath.len() as _, dwflags) + GetFinalPathNameByHandleA(hfile.into(), ::core::mem::transmute(lpszfilepath.as_ptr()), lpszfilepath.len() as _, dwflags) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7368,11 +7368,11 @@ where extern "system" { fn GetFinalPathNameByHandleW(hfile: super::super::Foundation::HANDLE, lpszfilepath: ::windows::core::PWSTR, cchfilepath: u32, dwflags: FILE_NAME) -> u32; } - GetFinalPathNameByHandleW(hfile.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszfilepath)), lpszfilepath.len() as _, dwflags) + GetFinalPathNameByHandleW(hfile.into(), ::core::mem::transmute(lpszfilepath.as_ptr()), lpszfilepath.len() as _, dwflags) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn GetFullPathNameA<'a, P0>(lpfilename: P0, lpbuffer: &mut [u8], lpfilepart: ::core::option::Option<&mut ::windows::core::PSTR>) -> u32 +pub unsafe fn GetFullPathNameA<'a, P0>(lpfilename: P0, lpbuffer: ::core::option::Option<&mut [u8]>, lpfilepart: ::core::option::Option<&mut ::windows::core::PSTR>) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -7380,12 +7380,12 @@ where extern "system" { fn GetFullPathNameA(lpfilename: ::windows::core::PCSTR, nbufferlength: u32, lpbuffer: ::windows::core::PSTR, lpfilepart: *mut ::windows::core::PSTR) -> u32; } - GetFullPathNameA(lpfilename.into(), lpbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), ::core::mem::transmute(lpfilepart)) + GetFullPathNameA(lpfilename.into(), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(lpfilepart)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetFullPathNameTransactedA<'a, P0, P1>(lpfilename: P0, lpbuffer: &mut [u8], lpfilepart: ::core::option::Option<&mut ::windows::core::PSTR>, htransaction: P1) -> u32 +pub unsafe fn GetFullPathNameTransactedA<'a, P0, P1>(lpfilename: P0, lpbuffer: ::core::option::Option<&mut [u8]>, lpfilepart: ::core::option::Option<&mut ::windows::core::PSTR>, htransaction: P1) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into, @@ -7394,12 +7394,12 @@ where extern "system" { fn GetFullPathNameTransactedA(lpfilename: ::windows::core::PCSTR, nbufferlength: u32, lpbuffer: ::windows::core::PSTR, lpfilepart: *mut ::windows::core::PSTR, htransaction: super::super::Foundation::HANDLE) -> u32; } - GetFullPathNameTransactedA(lpfilename.into(), lpbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), ::core::mem::transmute(lpfilepart), htransaction.into()) + GetFullPathNameTransactedA(lpfilename.into(), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(lpfilepart), htransaction.into()) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetFullPathNameTransactedW<'a, P0, P1>(lpfilename: P0, lpbuffer: &mut [u16], lpfilepart: ::core::option::Option<&mut ::windows::core::PWSTR>, htransaction: P1) -> u32 +pub unsafe fn GetFullPathNameTransactedW<'a, P0, P1>(lpfilename: P0, lpbuffer: ::core::option::Option<&mut [u16]>, lpfilepart: ::core::option::Option<&mut ::windows::core::PWSTR>, htransaction: P1) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into, @@ -7408,11 +7408,11 @@ where extern "system" { fn GetFullPathNameTransactedW(lpfilename: ::windows::core::PCWSTR, nbufferlength: u32, lpbuffer: ::windows::core::PWSTR, lpfilepart: *mut ::windows::core::PWSTR, htransaction: super::super::Foundation::HANDLE) -> u32; } - GetFullPathNameTransactedW(lpfilename.into(), lpbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), ::core::mem::transmute(lpfilepart), htransaction.into()) + GetFullPathNameTransactedW(lpfilename.into(), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(lpfilepart), htransaction.into()) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn GetFullPathNameW<'a, P0>(lpfilename: P0, lpbuffer: &mut [u16], lpfilepart: ::core::option::Option<&mut ::windows::core::PWSTR>) -> u32 +pub unsafe fn GetFullPathNameW<'a, P0>(lpfilename: P0, lpbuffer: ::core::option::Option<&mut [u16]>, lpfilepart: ::core::option::Option<&mut ::windows::core::PWSTR>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -7420,7 +7420,7 @@ where extern "system" { fn GetFullPathNameW(lpfilename: ::windows::core::PCWSTR, nbufferlength: u32, lpbuffer: ::windows::core::PWSTR, lpfilepart: *mut ::windows::core::PWSTR) -> u32; } - GetFullPathNameW(lpfilename.into(), lpbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), ::core::mem::transmute(lpfilepart)) + GetFullPathNameW(lpfilename.into(), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(lpfilepart)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] @@ -7484,21 +7484,21 @@ pub unsafe fn GetLogReservationInfo(pvmarshal: *const ::core::ffi::c_void, pcbre } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn GetLogicalDriveStringsA(lpbuffer: &mut [u8]) -> u32 { +pub unsafe fn GetLogicalDriveStringsA(lpbuffer: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetLogicalDriveStringsA(nbufferlength: u32, lpbuffer: ::windows::core::PSTR) -> u32; } - GetLogicalDriveStringsA(lpbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer))) + GetLogicalDriveStringsA(lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn GetLogicalDriveStringsW(lpbuffer: &mut [u16]) -> u32 { +pub unsafe fn GetLogicalDriveStringsW(lpbuffer: ::core::option::Option<&mut [u16]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetLogicalDriveStringsW(nbufferlength: u32, lpbuffer: ::windows::core::PWSTR) -> u32; } - GetLogicalDriveStringsW(lpbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer))) + GetLogicalDriveStringsW(lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] @@ -7511,7 +7511,7 @@ pub unsafe fn GetLogicalDrives() -> u32 { } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn GetLongPathNameA<'a, P0>(lpszshortpath: P0, lpszlongpath: &mut [u8]) -> u32 +pub unsafe fn GetLongPathNameA<'a, P0>(lpszshortpath: P0, lpszlongpath: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -7519,12 +7519,12 @@ where extern "system" { fn GetLongPathNameA(lpszshortpath: ::windows::core::PCSTR, lpszlongpath: ::windows::core::PSTR, cchbuffer: u32) -> u32; } - GetLongPathNameA(lpszshortpath.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszlongpath)), lpszlongpath.len() as _) + GetLongPathNameA(lpszshortpath.into(), ::core::mem::transmute(lpszlongpath.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszlongpath.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetLongPathNameTransactedA<'a, P0, P1>(lpszshortpath: P0, lpszlongpath: &mut [u8], htransaction: P1) -> u32 +pub unsafe fn GetLongPathNameTransactedA<'a, P0, P1>(lpszshortpath: P0, lpszlongpath: ::core::option::Option<&mut [u8]>, htransaction: P1) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into, @@ -7533,12 +7533,12 @@ where extern "system" { fn GetLongPathNameTransactedA(lpszshortpath: ::windows::core::PCSTR, lpszlongpath: ::windows::core::PSTR, cchbuffer: u32, htransaction: super::super::Foundation::HANDLE) -> u32; } - GetLongPathNameTransactedA(lpszshortpath.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszlongpath)), lpszlongpath.len() as _, htransaction.into()) + GetLongPathNameTransactedA(lpszshortpath.into(), ::core::mem::transmute(lpszlongpath.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszlongpath.as_deref().map_or(0, |slice| slice.len() as _), htransaction.into()) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetLongPathNameTransactedW<'a, P0, P1>(lpszshortpath: P0, lpszlongpath: &mut [u16], htransaction: P1) -> u32 +pub unsafe fn GetLongPathNameTransactedW<'a, P0, P1>(lpszshortpath: P0, lpszlongpath: ::core::option::Option<&mut [u16]>, htransaction: P1) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into, @@ -7547,11 +7547,11 @@ where extern "system" { fn GetLongPathNameTransactedW(lpszshortpath: ::windows::core::PCWSTR, lpszlongpath: ::windows::core::PWSTR, cchbuffer: u32, htransaction: super::super::Foundation::HANDLE) -> u32; } - GetLongPathNameTransactedW(lpszshortpath.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszlongpath)), lpszlongpath.len() as _, htransaction.into()) + GetLongPathNameTransactedW(lpszshortpath.into(), ::core::mem::transmute(lpszlongpath.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszlongpath.as_deref().map_or(0, |slice| slice.len() as _), htransaction.into()) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn GetLongPathNameW<'a, P0>(lpszshortpath: P0, lpszlongpath: &mut [u16]) -> u32 +pub unsafe fn GetLongPathNameW<'a, P0>(lpszshortpath: P0, lpszlongpath: ::core::option::Option<&mut [u16]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -7559,7 +7559,7 @@ where extern "system" { fn GetLongPathNameW(lpszshortpath: ::windows::core::PCWSTR, lpszlongpath: ::windows::core::PWSTR, cchbuffer: u32) -> u32; } - GetLongPathNameW(lpszshortpath.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszlongpath)), lpszlongpath.len() as _) + GetLongPathNameW(lpszshortpath.into(), ::core::mem::transmute(lpszlongpath.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszlongpath.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7599,7 +7599,7 @@ where } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn GetShortPathNameA<'a, P0>(lpszlongpath: P0, lpszshortpath: &mut [u8]) -> u32 +pub unsafe fn GetShortPathNameA<'a, P0>(lpszlongpath: P0, lpszshortpath: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -7607,11 +7607,11 @@ where extern "system" { fn GetShortPathNameA(lpszlongpath: ::windows::core::PCSTR, lpszshortpath: ::windows::core::PSTR, cchbuffer: u32) -> u32; } - GetShortPathNameA(lpszlongpath.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszshortpath)), lpszshortpath.len() as _) + GetShortPathNameA(lpszlongpath.into(), ::core::mem::transmute(lpszshortpath.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszshortpath.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn GetShortPathNameW<'a, P0>(lpszlongpath: P0, lpszshortpath: &mut [u16]) -> u32 +pub unsafe fn GetShortPathNameW<'a, P0>(lpszlongpath: P0, lpszshortpath: ::core::option::Option<&mut [u16]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -7619,7 +7619,7 @@ where extern "system" { fn GetShortPathNameW(lpszlongpath: ::windows::core::PCWSTR, lpszshortpath: ::windows::core::PWSTR, cchbuffer: u32) -> u32; } - GetShortPathNameW(lpszlongpath.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszshortpath)), lpszshortpath.len() as _) + GetShortPathNameW(lpszlongpath.into(), ::core::mem::transmute(lpszshortpath.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszshortpath.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7671,7 +7671,7 @@ where extern "system" { fn GetTempFileNameA(lppathname: ::windows::core::PCSTR, lpprefixstring: ::windows::core::PCSTR, uunique: u32, lptempfilename: ::windows::core::PSTR) -> u32; } - GetTempFileNameA(lppathname.into(), lpprefixstring.into(), uunique, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lptempfilename))) + GetTempFileNameA(lppathname.into(), lpprefixstring.into(), uunique, ::core::mem::transmute(lptempfilename.as_ptr())) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] @@ -7684,43 +7684,43 @@ where extern "system" { fn GetTempFileNameW(lppathname: ::windows::core::PCWSTR, lpprefixstring: ::windows::core::PCWSTR, uunique: u32, lptempfilename: ::windows::core::PWSTR) -> u32; } - GetTempFileNameW(lppathname.into(), lpprefixstring.into(), uunique, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lptempfilename))) + GetTempFileNameW(lppathname.into(), lpprefixstring.into(), uunique, ::core::mem::transmute(lptempfilename.as_ptr())) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn GetTempPath2A(buffer: &mut [u8]) -> u32 { +pub unsafe fn GetTempPath2A(buffer: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetTempPath2A(bufferlength: u32, buffer: ::windows::core::PSTR) -> u32; } - GetTempPath2A(buffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer))) + GetTempPath2A(buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn GetTempPath2W(buffer: &mut [u16]) -> u32 { +pub unsafe fn GetTempPath2W(buffer: ::core::option::Option<&mut [u16]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetTempPath2W(bufferlength: u32, buffer: ::windows::core::PWSTR) -> u32; } - GetTempPath2W(buffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer))) + GetTempPath2W(buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn GetTempPathA(lpbuffer: &mut [u8]) -> u32 { +pub unsafe fn GetTempPathA(lpbuffer: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetTempPathA(nbufferlength: u32, lpbuffer: ::windows::core::PSTR) -> u32; } - GetTempPathA(lpbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer))) + GetTempPathA(lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn GetTempPathW(lpbuffer: &mut [u16]) -> u32 { +pub unsafe fn GetTempPathW(lpbuffer: ::core::option::Option<&mut [u16]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetTempPathW(nbufferlength: u32, lpbuffer: ::windows::core::PWSTR) -> u32; } - GetTempPathW(lpbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer))) + GetTempPathW(lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7738,7 +7738,7 @@ where #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetTransactionInformation<'a, P0>(transactionhandle: P0, outcome: &mut u32, isolationlevel: &mut u32, isolationflags: &mut u32, timeout: &mut u32, description: &mut [u16]) -> super::super::Foundation::BOOL +pub unsafe fn GetTransactionInformation<'a, P0>(transactionhandle: P0, outcome: &mut u32, isolationlevel: &mut u32, isolationflags: &mut u32, timeout: &mut u32, description: ::core::option::Option<&mut [u16]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -7746,7 +7746,7 @@ where extern "system" { fn GetTransactionInformation(transactionhandle: super::super::Foundation::HANDLE, outcome: *mut u32, isolationlevel: *mut u32, isolationflags: *mut u32, timeout: *mut u32, bufferlength: u32, description: ::windows::core::PWSTR) -> super::super::Foundation::BOOL; } - GetTransactionInformation(transactionhandle.into(), ::core::mem::transmute(outcome), ::core::mem::transmute(isolationlevel), ::core::mem::transmute(isolationflags), ::core::mem::transmute(timeout), description.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description))) + GetTransactionInformation(transactionhandle.into(), ::core::mem::transmute(outcome), ::core::mem::transmute(isolationlevel), ::core::mem::transmute(isolationflags), ::core::mem::transmute(timeout), description.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7764,7 +7764,7 @@ where #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetVolumeInformationA<'a, P0>(lprootpathname: P0, lpvolumenamebuffer: &mut [u8], lpvolumeserialnumber: ::core::option::Option<&mut u32>, lpmaximumcomponentlength: ::core::option::Option<&mut u32>, lpfilesystemflags: ::core::option::Option<&mut u32>, lpfilesystemnamebuffer: &mut [u8]) -> super::super::Foundation::BOOL +pub unsafe fn GetVolumeInformationA<'a, P0>(lprootpathname: P0, lpvolumenamebuffer: ::core::option::Option<&mut [u8]>, lpvolumeserialnumber: ::core::option::Option<&mut u32>, lpmaximumcomponentlength: ::core::option::Option<&mut u32>, lpfilesystemflags: ::core::option::Option<&mut u32>, lpfilesystemnamebuffer: ::core::option::Option<&mut [u8]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -7772,12 +7772,21 @@ where extern "system" { fn GetVolumeInformationA(lprootpathname: ::windows::core::PCSTR, lpvolumenamebuffer: ::windows::core::PSTR, nvolumenamesize: u32, lpvolumeserialnumber: *mut u32, lpmaximumcomponentlength: *mut u32, lpfilesystemflags: *mut u32, lpfilesystemnamebuffer: ::windows::core::PSTR, nfilesystemnamesize: u32) -> super::super::Foundation::BOOL; } - GetVolumeInformationA(lprootpathname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpvolumenamebuffer)), lpvolumenamebuffer.len() as _, ::core::mem::transmute(lpvolumeserialnumber), ::core::mem::transmute(lpmaximumcomponentlength), ::core::mem::transmute(lpfilesystemflags), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpfilesystemnamebuffer)), lpfilesystemnamebuffer.len() as _) + GetVolumeInformationA( + lprootpathname.into(), + ::core::mem::transmute(lpvolumenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + lpvolumenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(lpvolumeserialnumber), + ::core::mem::transmute(lpmaximumcomponentlength), + ::core::mem::transmute(lpfilesystemflags), + ::core::mem::transmute(lpfilesystemnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + lpfilesystemnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetVolumeInformationByHandleW<'a, P0>(hfile: P0, lpvolumenamebuffer: &mut [u16], lpvolumeserialnumber: ::core::option::Option<&mut u32>, lpmaximumcomponentlength: ::core::option::Option<&mut u32>, lpfilesystemflags: ::core::option::Option<&mut u32>, lpfilesystemnamebuffer: &mut [u16]) -> super::super::Foundation::BOOL +pub unsafe fn GetVolumeInformationByHandleW<'a, P0>(hfile: P0, lpvolumenamebuffer: ::core::option::Option<&mut [u16]>, lpvolumeserialnumber: ::core::option::Option<&mut u32>, lpmaximumcomponentlength: ::core::option::Option<&mut u32>, lpfilesystemflags: ::core::option::Option<&mut u32>, lpfilesystemnamebuffer: ::core::option::Option<&mut [u16]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -7785,12 +7794,21 @@ where extern "system" { fn GetVolumeInformationByHandleW(hfile: super::super::Foundation::HANDLE, lpvolumenamebuffer: ::windows::core::PWSTR, nvolumenamesize: u32, lpvolumeserialnumber: *mut u32, lpmaximumcomponentlength: *mut u32, lpfilesystemflags: *mut u32, lpfilesystemnamebuffer: ::windows::core::PWSTR, nfilesystemnamesize: u32) -> super::super::Foundation::BOOL; } - GetVolumeInformationByHandleW(hfile.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpvolumenamebuffer)), lpvolumenamebuffer.len() as _, ::core::mem::transmute(lpvolumeserialnumber), ::core::mem::transmute(lpmaximumcomponentlength), ::core::mem::transmute(lpfilesystemflags), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpfilesystemnamebuffer)), lpfilesystemnamebuffer.len() as _) + GetVolumeInformationByHandleW( + hfile.into(), + ::core::mem::transmute(lpvolumenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + lpvolumenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(lpvolumeserialnumber), + ::core::mem::transmute(lpmaximumcomponentlength), + ::core::mem::transmute(lpfilesystemflags), + ::core::mem::transmute(lpfilesystemnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + lpfilesystemnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetVolumeInformationW<'a, P0>(lprootpathname: P0, lpvolumenamebuffer: &mut [u16], lpvolumeserialnumber: ::core::option::Option<&mut u32>, lpmaximumcomponentlength: ::core::option::Option<&mut u32>, lpfilesystemflags: ::core::option::Option<&mut u32>, lpfilesystemnamebuffer: &mut [u16]) -> super::super::Foundation::BOOL +pub unsafe fn GetVolumeInformationW<'a, P0>(lprootpathname: P0, lpvolumenamebuffer: ::core::option::Option<&mut [u16]>, lpvolumeserialnumber: ::core::option::Option<&mut u32>, lpmaximumcomponentlength: ::core::option::Option<&mut u32>, lpfilesystemflags: ::core::option::Option<&mut u32>, lpfilesystemnamebuffer: ::core::option::Option<&mut [u16]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -7798,7 +7816,16 @@ where extern "system" { fn GetVolumeInformationW(lprootpathname: ::windows::core::PCWSTR, lpvolumenamebuffer: ::windows::core::PWSTR, nvolumenamesize: u32, lpvolumeserialnumber: *mut u32, lpmaximumcomponentlength: *mut u32, lpfilesystemflags: *mut u32, lpfilesystemnamebuffer: ::windows::core::PWSTR, nfilesystemnamesize: u32) -> super::super::Foundation::BOOL; } - GetVolumeInformationW(lprootpathname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpvolumenamebuffer)), lpvolumenamebuffer.len() as _, ::core::mem::transmute(lpvolumeserialnumber), ::core::mem::transmute(lpmaximumcomponentlength), ::core::mem::transmute(lpfilesystemflags), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpfilesystemnamebuffer)), lpfilesystemnamebuffer.len() as _) + GetVolumeInformationW( + lprootpathname.into(), + ::core::mem::transmute(lpvolumenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + lpvolumenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(lpvolumeserialnumber), + ::core::mem::transmute(lpmaximumcomponentlength), + ::core::mem::transmute(lpfilesystemflags), + ::core::mem::transmute(lpfilesystemnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + lpfilesystemnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7811,7 +7838,7 @@ where extern "system" { fn GetVolumeNameForVolumeMountPointA(lpszvolumemountpoint: ::windows::core::PCSTR, lpszvolumename: ::windows::core::PSTR, cchbufferlength: u32) -> super::super::Foundation::BOOL; } - GetVolumeNameForVolumeMountPointA(lpszvolumemountpoint.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszvolumename)), lpszvolumename.len() as _) + GetVolumeNameForVolumeMountPointA(lpszvolumemountpoint.into(), ::core::mem::transmute(lpszvolumename.as_ptr()), lpszvolumename.len() as _) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7824,7 +7851,7 @@ where extern "system" { fn GetVolumeNameForVolumeMountPointW(lpszvolumemountpoint: ::windows::core::PCWSTR, lpszvolumename: ::windows::core::PWSTR, cchbufferlength: u32) -> super::super::Foundation::BOOL; } - GetVolumeNameForVolumeMountPointW(lpszvolumemountpoint.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszvolumename)), lpszvolumename.len() as _) + GetVolumeNameForVolumeMountPointW(lpszvolumemountpoint.into(), ::core::mem::transmute(lpszvolumename.as_ptr()), lpszvolumename.len() as _) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7837,7 +7864,7 @@ where extern "system" { fn GetVolumePathNameA(lpszfilename: ::windows::core::PCSTR, lpszvolumepathname: ::windows::core::PSTR, cchbufferlength: u32) -> super::super::Foundation::BOOL; } - GetVolumePathNameA(lpszfilename.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszvolumepathname)), lpszvolumepathname.len() as _) + GetVolumePathNameA(lpszfilename.into(), ::core::mem::transmute(lpszvolumepathname.as_ptr()), lpszvolumepathname.len() as _) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7850,12 +7877,12 @@ where extern "system" { fn GetVolumePathNameW(lpszfilename: ::windows::core::PCWSTR, lpszvolumepathname: ::windows::core::PWSTR, cchbufferlength: u32) -> super::super::Foundation::BOOL; } - GetVolumePathNameW(lpszfilename.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszvolumepathname)), lpszvolumepathname.len() as _) + GetVolumePathNameW(lpszfilename.into(), ::core::mem::transmute(lpszvolumepathname.as_ptr()), lpszvolumepathname.len() as _) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetVolumePathNamesForVolumeNameA<'a, P0>(lpszvolumename: P0, lpszvolumepathnames: &mut [u8], lpcchreturnlength: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetVolumePathNamesForVolumeNameA<'a, P0>(lpszvolumename: P0, lpszvolumepathnames: ::core::option::Option<&mut [u8]>, lpcchreturnlength: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -7863,12 +7890,12 @@ where extern "system" { fn GetVolumePathNamesForVolumeNameA(lpszvolumename: ::windows::core::PCSTR, lpszvolumepathnames: ::windows::core::PSTR, cchbufferlength: u32, lpcchreturnlength: *mut u32) -> super::super::Foundation::BOOL; } - GetVolumePathNamesForVolumeNameA(lpszvolumename.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszvolumepathnames)), lpszvolumepathnames.len() as _, ::core::mem::transmute(lpcchreturnlength)) + GetVolumePathNamesForVolumeNameA(lpszvolumename.into(), ::core::mem::transmute(lpszvolumepathnames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszvolumepathnames.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpcchreturnlength)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetVolumePathNamesForVolumeNameW<'a, P0>(lpszvolumename: P0, lpszvolumepathnames: &mut [u16], lpcchreturnlength: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetVolumePathNamesForVolumeNameW<'a, P0>(lpszvolumename: P0, lpszvolumepathnames: ::core::option::Option<&mut [u16]>, lpcchreturnlength: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -7876,7 +7903,7 @@ where extern "system" { fn GetVolumePathNamesForVolumeNameW(lpszvolumename: ::windows::core::PCWSTR, lpszvolumepathnames: ::windows::core::PWSTR, cchbufferlength: u32, lpcchreturnlength: *mut u32) -> super::super::Foundation::BOOL; } - GetVolumePathNamesForVolumeNameW(lpszvolumename.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszvolumepathnames)), lpszvolumepathnames.len() as _, ::core::mem::transmute(lpcchreturnlength)) + GetVolumePathNamesForVolumeNameW(lpszvolumename.into(), ::core::mem::transmute(lpszvolumepathnames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszvolumepathnames.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpcchreturnlength)) } #[repr(C)] #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] @@ -9444,12 +9471,12 @@ where } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn LZRead(hfile: i32, lpbuffer: ::windows::core::PSTR, cbread: i32) -> i32 { +pub unsafe fn LZRead(hfile: i32, lpbuffer: &mut [u8]) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn LZRead(hfile: i32, lpbuffer: ::windows::core::PSTR, cbread: i32) -> i32; } - LZRead(hfile, ::core::mem::transmute(lpbuffer), cbread) + LZRead(hfile, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] @@ -14136,7 +14163,7 @@ where extern "system" { fn PrepareLogArchive(hlog: super::super::Foundation::HANDLE, pszbaselogfilename: ::windows::core::PWSTR, clen: u32, plsnlow: *const CLS_LSN, plsnhigh: *const CLS_LSN, pcactuallength: *mut u32, poffbaselogfiledata: *mut u64, pcbbaselogfilelength: *mut u64, plsnbase: *mut CLS_LSN, plsnlast: *mut CLS_LSN, plsncurrentarchivetail: *mut CLS_LSN, ppvarchivecontext: *mut *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - PrepareLogArchive(hlog.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbaselogfilename)), pszbaselogfilename.len() as _, ::core::mem::transmute(plsnlow), ::core::mem::transmute(plsnhigh), ::core::mem::transmute(pcactuallength), ::core::mem::transmute(poffbaselogfiledata), ::core::mem::transmute(pcbbaselogfilelength), ::core::mem::transmute(plsnbase), ::core::mem::transmute(plsnlast), ::core::mem::transmute(plsncurrentarchivetail), ::core::mem::transmute(ppvarchivecontext)) + PrepareLogArchive(hlog.into(), ::core::mem::transmute(pszbaselogfilename.as_ptr()), pszbaselogfilename.len() as _, ::core::mem::transmute(plsnlow), ::core::mem::transmute(plsnhigh), ::core::mem::transmute(pcactuallength), ::core::mem::transmute(poffbaselogfiledata), ::core::mem::transmute(pcbbaselogfilelength), ::core::mem::transmute(plsnbase), ::core::mem::transmute(plsnlast), ::core::mem::transmute(plsncurrentarchivetail), ::core::mem::transmute(ppvarchivecontext)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -14154,7 +14181,7 @@ where } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn QueryDosDeviceA<'a, P0>(lpdevicename: P0, lptargetpath: &mut [u8]) -> u32 +pub unsafe fn QueryDosDeviceA<'a, P0>(lpdevicename: P0, lptargetpath: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -14162,11 +14189,11 @@ where extern "system" { fn QueryDosDeviceA(lpdevicename: ::windows::core::PCSTR, lptargetpath: ::windows::core::PSTR, ucchmax: u32) -> u32; } - QueryDosDeviceA(lpdevicename.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lptargetpath)), lptargetpath.len() as _) + QueryDosDeviceA(lpdevicename.into(), ::core::mem::transmute(lptargetpath.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lptargetpath.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn QueryDosDeviceW<'a, P0>(lpdevicename: P0, lptargetpath: &mut [u16]) -> u32 +pub unsafe fn QueryDosDeviceW<'a, P0>(lpdevicename: P0, lptargetpath: ::core::option::Option<&mut [u16]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -14174,7 +14201,7 @@ where extern "system" { fn QueryDosDeviceW(lpdevicename: ::windows::core::PCWSTR, lptargetpath: ::windows::core::PWSTR, ucchmax: u32) -> u32; } - QueryDosDeviceW(lpdevicename.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lptargetpath)), lptargetpath.len() as _) + QueryDosDeviceW(lpdevicename.into(), ::core::mem::transmute(lptargetpath.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lptargetpath.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] @@ -14398,7 +14425,7 @@ where #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn ReadDirectoryChangesExW<'a, P0, P1>(hdirectory: P0, lpbuffer: *mut ::core::ffi::c_void, nbufferlength: u32, bwatchsubtree: P1, dwnotifyfilter: FILE_NOTIFY_CHANGE, lpbytesreturned: ::core::option::Option<&mut u32>, lpoverlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>, lpcompletionroutine: super::super::System::IO::LPOVERLAPPED_COMPLETION_ROUTINE, readdirectorynotifyinformationclass: READ_DIRECTORY_NOTIFY_INFORMATION_CLASS) -> super::super::Foundation::BOOL +pub unsafe fn ReadDirectoryChangesExW<'a, P0, P1>(hdirectory: P0, lpbuffer: &mut [u8], bwatchsubtree: P1, dwnotifyfilter: FILE_NOTIFY_CHANGE, lpbytesreturned: ::core::option::Option<&mut u32>, lpoverlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>, lpcompletionroutine: super::super::System::IO::LPOVERLAPPED_COMPLETION_ROUTINE, readdirectorynotifyinformationclass: READ_DIRECTORY_NOTIFY_INFORMATION_CLASS) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -14407,12 +14434,12 @@ where extern "system" { fn ReadDirectoryChangesExW(hdirectory: super::super::Foundation::HANDLE, lpbuffer: *mut ::core::ffi::c_void, nbufferlength: u32, bwatchsubtree: super::super::Foundation::BOOL, dwnotifyfilter: FILE_NOTIFY_CHANGE, lpbytesreturned: *mut u32, lpoverlapped: *mut super::super::System::IO::OVERLAPPED, lpcompletionroutine: *mut ::core::ffi::c_void, readdirectorynotifyinformationclass: READ_DIRECTORY_NOTIFY_INFORMATION_CLASS) -> super::super::Foundation::BOOL; } - ReadDirectoryChangesExW(hdirectory.into(), ::core::mem::transmute(lpbuffer), nbufferlength, bwatchsubtree.into(), dwnotifyfilter, ::core::mem::transmute(lpbytesreturned), ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine), readdirectorynotifyinformationclass) + ReadDirectoryChangesExW(hdirectory.into(), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, bwatchsubtree.into(), dwnotifyfilter, ::core::mem::transmute(lpbytesreturned), ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine), readdirectorynotifyinformationclass) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn ReadDirectoryChangesW<'a, P0, P1>(hdirectory: P0, lpbuffer: *mut ::core::ffi::c_void, nbufferlength: u32, bwatchsubtree: P1, dwnotifyfilter: FILE_NOTIFY_CHANGE, lpbytesreturned: ::core::option::Option<&mut u32>, lpoverlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>, lpcompletionroutine: super::super::System::IO::LPOVERLAPPED_COMPLETION_ROUTINE) -> super::super::Foundation::BOOL +pub unsafe fn ReadDirectoryChangesW<'a, P0, P1>(hdirectory: P0, lpbuffer: &mut [u8], bwatchsubtree: P1, dwnotifyfilter: FILE_NOTIFY_CHANGE, lpbytesreturned: ::core::option::Option<&mut u32>, lpoverlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>, lpcompletionroutine: super::super::System::IO::LPOVERLAPPED_COMPLETION_ROUTINE) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -14421,7 +14448,7 @@ where extern "system" { fn ReadDirectoryChangesW(hdirectory: super::super::Foundation::HANDLE, lpbuffer: *mut ::core::ffi::c_void, nbufferlength: u32, bwatchsubtree: super::super::Foundation::BOOL, dwnotifyfilter: FILE_NOTIFY_CHANGE, lpbytesreturned: *mut u32, lpoverlapped: *mut super::super::System::IO::OVERLAPPED, lpcompletionroutine: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - ReadDirectoryChangesW(hdirectory.into(), ::core::mem::transmute(lpbuffer), nbufferlength, bwatchsubtree.into(), dwnotifyfilter, ::core::mem::transmute(lpbytesreturned), ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine)) + ReadDirectoryChangesW(hdirectory.into(), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, bwatchsubtree.into(), dwnotifyfilter, ::core::mem::transmute(lpbytesreturned), ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] @@ -14435,7 +14462,7 @@ pub unsafe fn ReadEncryptedFileRaw(pfexportcallback: PFE_EXPORT_FUNC, pvcallback #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn ReadFile<'a, P0>(hfile: P0, lpbuffer: *mut ::core::ffi::c_void, nnumberofbytestoread: u32, lpnumberofbytesread: ::core::option::Option<&mut u32>, lpoverlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>) -> super::super::Foundation::BOOL +pub unsafe fn ReadFile<'a, P0>(hfile: P0, lpbuffer: ::core::option::Option<&mut [u8]>, lpnumberofbytesread: ::core::option::Option<&mut u32>, lpoverlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -14443,12 +14470,12 @@ where extern "system" { fn ReadFile(hfile: super::super::Foundation::HANDLE, lpbuffer: *mut ::core::ffi::c_void, nnumberofbytestoread: u32, lpnumberofbytesread: *mut u32, lpoverlapped: *mut super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL; } - ReadFile(hfile.into(), ::core::mem::transmute(lpbuffer), nnumberofbytestoread, ::core::mem::transmute(lpnumberofbytesread), ::core::mem::transmute(lpoverlapped)) + ReadFile(hfile.into(), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpnumberofbytesread), ::core::mem::transmute(lpoverlapped)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn ReadFileEx<'a, P0>(hfile: P0, lpbuffer: *mut ::core::ffi::c_void, nnumberofbytestoread: u32, lpoverlapped: &mut super::super::System::IO::OVERLAPPED, lpcompletionroutine: super::super::System::IO::LPOVERLAPPED_COMPLETION_ROUTINE) -> super::super::Foundation::BOOL +pub unsafe fn ReadFileEx<'a, P0>(hfile: P0, lpbuffer: ::core::option::Option<&mut [u8]>, lpoverlapped: &mut super::super::System::IO::OVERLAPPED, lpcompletionroutine: super::super::System::IO::LPOVERLAPPED_COMPLETION_ROUTINE) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -14456,7 +14483,7 @@ where extern "system" { fn ReadFileEx(hfile: super::super::Foundation::HANDLE, lpbuffer: *mut ::core::ffi::c_void, nnumberofbytestoread: u32, lpoverlapped: *mut super::super::System::IO::OVERLAPPED, lpcompletionroutine: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - ReadFileEx(hfile.into(), ::core::mem::transmute(lpbuffer), nnumberofbytestoread, ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine)) + ReadFileEx(hfile.into(), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] @@ -14707,7 +14734,7 @@ where extern "system" { fn RemoveLogContainerSet(hlog: super::super::Foundation::HANDLE, ccontainer: u16, rgwszcontainerpath: *const ::windows::core::PWSTR, fforce: super::super::Foundation::BOOL, preserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - RemoveLogContainerSet(hlog.into(), rgwszcontainerpath.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgwszcontainerpath)), fforce.into(), ::core::mem::transmute(preserved)) + RemoveLogContainerSet(hlog.into(), rgwszcontainerpath.len() as _, ::core::mem::transmute(rgwszcontainerpath.as_ptr()), fforce.into(), ::core::mem::transmute(preserved)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -16147,7 +16174,7 @@ pub unsafe fn ScanLogContainers(pcxscan: &mut CLS_SCAN_CONTEXT, escanmode: u8, p } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn SearchPathA<'a, P0, P1, P2>(lppath: P0, lpfilename: P1, lpextension: P2, lpbuffer: &mut [u8], lpfilepart: ::core::option::Option<&mut ::windows::core::PSTR>) -> u32 +pub unsafe fn SearchPathA<'a, P0, P1, P2>(lppath: P0, lpfilename: P1, lpextension: P2, lpbuffer: ::core::option::Option<&mut [u8]>, lpfilepart: ::core::option::Option<&mut ::windows::core::PSTR>) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -16157,11 +16184,11 @@ where extern "system" { fn SearchPathA(lppath: ::windows::core::PCSTR, lpfilename: ::windows::core::PCSTR, lpextension: ::windows::core::PCSTR, nbufferlength: u32, lpbuffer: ::windows::core::PSTR, lpfilepart: *mut ::windows::core::PSTR) -> u32; } - SearchPathA(lppath.into(), lpfilename.into(), lpextension.into(), lpbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), ::core::mem::transmute(lpfilepart)) + SearchPathA(lppath.into(), lpfilename.into(), lpextension.into(), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(lpfilepart)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] -pub unsafe fn SearchPathW<'a, P0, P1, P2>(lppath: P0, lpfilename: P1, lpextension: P2, lpbuffer: &mut [u16], lpfilepart: ::core::option::Option<&mut ::windows::core::PWSTR>) -> u32 +pub unsafe fn SearchPathW<'a, P0, P1, P2>(lppath: P0, lpfilename: P1, lpextension: P2, lpbuffer: ::core::option::Option<&mut [u16]>, lpfilepart: ::core::option::Option<&mut ::windows::core::PWSTR>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -16171,7 +16198,7 @@ where extern "system" { fn SearchPathW(lppath: ::windows::core::PCWSTR, lpfilename: ::windows::core::PCWSTR, lpextension: ::windows::core::PCWSTR, nbufferlength: u32, lpbuffer: ::windows::core::PWSTR, lpfilepart: *mut ::windows::core::PWSTR) -> u32; } - SearchPathW(lppath.into(), lpfilename.into(), lpextension.into(), lpbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), ::core::mem::transmute(lpfilepart)) + SearchPathW(lppath.into(), lpfilename.into(), lpextension.into(), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(lpfilepart)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Security\"`*"] #[cfg(feature = "Win32_Security")] @@ -16340,7 +16367,7 @@ where #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetFileInformationByHandle<'a, P0>(hfile: P0, fileinformationclass: FILE_INFO_BY_HANDLE_CLASS, lpfileinformation: *const ::core::ffi::c_void, dwbuffersize: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetFileInformationByHandle<'a, P0>(hfile: P0, fileinformationclass: FILE_INFO_BY_HANDLE_CLASS, lpfileinformation: &[u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -16348,7 +16375,7 @@ where extern "system" { fn SetFileInformationByHandle(hfile: super::super::Foundation::HANDLE, fileinformationclass: FILE_INFO_BY_HANDLE_CLASS, lpfileinformation: *const ::core::ffi::c_void, dwbuffersize: u32) -> super::super::Foundation::BOOL; } - SetFileInformationByHandle(hfile.into(), fileinformationclass, ::core::mem::transmute(lpfileinformation), dwbuffersize) + SetFileInformationByHandle(hfile.into(), fileinformationclass, ::core::mem::transmute(lpfileinformation.as_ptr()), lpfileinformation.len() as _) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -17600,22 +17627,22 @@ pub unsafe fn TxfLogDestroyReadContext(txflogcontext: *const ::core::ffi::c_void #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn TxfLogReadRecords(txflogcontext: *const ::core::ffi::c_void, bufferlength: u32, buffer: *mut ::core::ffi::c_void, bytesused: &mut u32, recordcount: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn TxfLogReadRecords(txflogcontext: *const ::core::ffi::c_void, buffer: &mut [u8], bytesused: &mut u32, recordcount: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TxfLogReadRecords(txflogcontext: *const ::core::ffi::c_void, bufferlength: u32, buffer: *mut ::core::ffi::c_void, bytesused: *mut u32, recordcount: *mut u32) -> super::super::Foundation::BOOL; } - TxfLogReadRecords(::core::mem::transmute(txflogcontext), bufferlength, ::core::mem::transmute(buffer), ::core::mem::transmute(bytesused), ::core::mem::transmute(recordcount)) + TxfLogReadRecords(::core::mem::transmute(txflogcontext), buffer.len() as _, ::core::mem::transmute(buffer.as_ptr()), ::core::mem::transmute(bytesused), ::core::mem::transmute(recordcount)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn TxfLogRecordGetFileName(recordbuffer: *const ::core::ffi::c_void, recordbufferlengthinbytes: u32, namebuffer: ::windows::core::PWSTR, namebufferlengthinbytes: &mut u32, txfid: ::core::option::Option<&mut TXF_ID>) -> super::super::Foundation::BOOL { +pub unsafe fn TxfLogRecordGetFileName(recordbuffer: &[u8], namebuffer: ::windows::core::PWSTR, namebufferlengthinbytes: &mut u32, txfid: ::core::option::Option<&mut TXF_ID>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TxfLogRecordGetFileName(recordbuffer: *const ::core::ffi::c_void, recordbufferlengthinbytes: u32, namebuffer: ::windows::core::PWSTR, namebufferlengthinbytes: *mut u32, txfid: *mut TXF_ID) -> super::super::Foundation::BOOL; } - TxfLogRecordGetFileName(::core::mem::transmute(recordbuffer), recordbufferlengthinbytes, ::core::mem::transmute(namebuffer), ::core::mem::transmute(namebufferlengthinbytes), ::core::mem::transmute(txfid)) + TxfLogRecordGetFileName(::core::mem::transmute(recordbuffer.as_ptr()), recordbuffer.len() as _, ::core::mem::transmute(namebuffer), ::core::mem::transmute(namebufferlengthinbytes), ::core::mem::transmute(txfid)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -18733,7 +18760,7 @@ pub unsafe fn VerLanguageNameA(wlang: u32, szlang: &mut [u8]) -> u32 { extern "system" { fn VerLanguageNameA(wlang: u32, szlang: ::windows::core::PSTR, cchlang: u32) -> u32; } - VerLanguageNameA(wlang, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szlang)), szlang.len() as _) + VerLanguageNameA(wlang, ::core::mem::transmute(szlang.as_ptr()), szlang.len() as _) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`*"] #[inline] @@ -18742,7 +18769,7 @@ pub unsafe fn VerLanguageNameW(wlang: u32, szlang: &mut [u16]) -> u32 { extern "system" { fn VerLanguageNameW(wlang: u32, szlang: ::windows::core::PWSTR, cchlang: u32) -> u32; } - VerLanguageNameW(wlang, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szlang)), szlang.len() as _) + VerLanguageNameW(wlang, ::core::mem::transmute(szlang.as_ptr()), szlang.len() as _) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -19380,7 +19407,7 @@ pub unsafe fn WriteEncryptedFileRaw(pfimportcallback: PFE_IMPORT_FUNC, pvcallbac #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn WriteFile<'a, P0>(hfile: P0, lpbuffer: *const ::core::ffi::c_void, nnumberofbytestowrite: u32, lpnumberofbyteswritten: ::core::option::Option<&mut u32>, lpoverlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>) -> super::super::Foundation::BOOL +pub unsafe fn WriteFile<'a, P0>(hfile: P0, lpbuffer: ::core::option::Option<&[u8]>, lpnumberofbyteswritten: ::core::option::Option<&mut u32>, lpoverlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -19388,12 +19415,12 @@ where extern "system" { fn WriteFile(hfile: super::super::Foundation::HANDLE, lpbuffer: *const ::core::ffi::c_void, nnumberofbytestowrite: u32, lpnumberofbyteswritten: *mut u32, lpoverlapped: *mut super::super::System::IO::OVERLAPPED) -> super::super::Foundation::BOOL; } - WriteFile(hfile.into(), ::core::mem::transmute(lpbuffer), nnumberofbytestowrite, ::core::mem::transmute(lpnumberofbyteswritten), ::core::mem::transmute(lpoverlapped)) + WriteFile(hfile.into(), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpnumberofbyteswritten), ::core::mem::transmute(lpoverlapped)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn WriteFileEx<'a, P0>(hfile: P0, lpbuffer: *const ::core::ffi::c_void, nnumberofbytestowrite: u32, lpoverlapped: &mut super::super::System::IO::OVERLAPPED, lpcompletionroutine: super::super::System::IO::LPOVERLAPPED_COMPLETION_ROUTINE) -> super::super::Foundation::BOOL +pub unsafe fn WriteFileEx<'a, P0>(hfile: P0, lpbuffer: ::core::option::Option<&[u8]>, lpoverlapped: &mut super::super::System::IO::OVERLAPPED, lpcompletionroutine: super::super::System::IO::LPOVERLAPPED_COMPLETION_ROUTINE) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -19401,7 +19428,7 @@ where extern "system" { fn WriteFileEx(hfile: super::super::Foundation::HANDLE, lpbuffer: *const ::core::ffi::c_void, nnumberofbytestowrite: u32, lpoverlapped: *mut super::super::System::IO::OVERLAPPED, lpcompletionroutine: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - WriteFileEx(hfile.into(), ::core::mem::transmute(lpbuffer), nnumberofbytestowrite, ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine)) + WriteFileEx(hfile.into(), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoverlapped), ::core::mem::transmute(lpcompletionroutine)) } #[doc = "*Required features: `\"Win32_Storage_FileSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] diff --git a/crates/libs/windows/src/Windows/Win32/Storage/Imapi/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/Imapi/mod.rs index f8a09e372c..847da017e1 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/Imapi/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/Imapi/mod.rs @@ -3507,10 +3507,10 @@ pub struct IDiscMasterProgressEvents_Vtbl { pub struct IDiscRecorder(::windows::core::IUnknown); impl IDiscRecorder { pub unsafe fn Init(&self, pbyuniqueid: &[u8], nuldrivenumber: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Init)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbyuniqueid)), pbyuniqueid.len() as _, nuldrivenumber).ok() + (::windows::core::Interface::vtable(self).Init)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbyuniqueid.as_ptr()), pbyuniqueid.len() as _, nuldrivenumber).ok() } - pub unsafe fn GetRecorderGUID(&self, pbyuniqueid: &mut [u8], pulreturnsizerequired: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRecorderGUID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbyuniqueid)), pbyuniqueid.len() as _, ::core::mem::transmute(pulreturnsizerequired)).ok() + pub unsafe fn GetRecorderGUID(&self, pbyuniqueid: ::core::option::Option<&mut [u8]>, pulreturnsizerequired: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRecorderGUID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbyuniqueid.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbyuniqueid.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pulreturnsizerequired)).ok() } pub unsafe fn GetRecorderType(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -3893,49 +3893,49 @@ pub struct IDiscRecorder2_Vtbl { pub struct IDiscRecorder2Ex(::windows::core::IUnknown); impl IDiscRecorder2Ex { pub unsafe fn SendCommandNoData(&self, cdb: &[u8], sensebuffer: &mut [u8; 18], timeout: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SendCommandNoData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(cdb)), cdb.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(sensebuffer)), timeout).ok() + (::windows::core::Interface::vtable(self).SendCommandNoData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cdb.as_ptr()), cdb.len() as _, ::core::mem::transmute(sensebuffer.as_ptr()), timeout).ok() } pub unsafe fn SendCommandSendDataToDevice(&self, cdb: &[u8], sensebuffer: &mut [u8; 18], timeout: u32, buffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SendCommandSendDataToDevice)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(cdb)), cdb.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(sensebuffer)), timeout, ::core::mem::transmute(::windows::core::as_ptr_or_null(buffer)), buffer.len() as _).ok() + (::windows::core::Interface::vtable(self).SendCommandSendDataToDevice)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cdb.as_ptr()), cdb.len() as _, ::core::mem::transmute(sensebuffer.as_ptr()), timeout, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _).ok() } - pub unsafe fn SendCommandGetDataFromDevice(&self, cdb: &[u8], sensebuffer: &mut [u8; 18], timeout: u32, buffer: &mut u8, buffersize: u32, bufferfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SendCommandGetDataFromDevice)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(cdb)), cdb.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(sensebuffer)), timeout, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bufferfetched)).ok() + pub unsafe fn SendCommandGetDataFromDevice(&self, cdb: &[u8], sensebuffer: &mut [u8; 18], timeout: u32, buffer: *mut u8, buffersize: u32, bufferfetched: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SendCommandGetDataFromDevice)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cdb.as_ptr()), cdb.len() as _, ::core::mem::transmute(sensebuffer.as_ptr()), timeout, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bufferfetched)).ok() } - pub unsafe fn ReadDvdStructure(&self, format: u32, address: u32, layer: u32, agid: u32, data: &mut *mut u8, count: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn ReadDvdStructure(&self, format: u32, address: u32, layer: u32, agid: u32, data: *mut *mut u8, count: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReadDvdStructure)(::windows::core::Interface::as_raw(self), format, address, layer, agid, ::core::mem::transmute(data), ::core::mem::transmute(count)).ok() } pub unsafe fn SendDvdStructure(&self, format: u32, data: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SendDvdStructure)(::windows::core::Interface::as_raw(self), format, ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _).ok() + (::windows::core::Interface::vtable(self).SendDvdStructure)(::windows::core::Interface::as_raw(self), format, ::core::mem::transmute(data.as_ptr()), data.len() as _).ok() } - pub unsafe fn GetAdapterDescriptor(&self, data: &mut *mut u8, bytesize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAdapterDescriptor(&self, data: *mut *mut u8, bytesize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetAdapterDescriptor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(data), ::core::mem::transmute(bytesize)).ok() } - pub unsafe fn GetDeviceDescriptor(&self, data: &mut *mut u8, bytesize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetDeviceDescriptor(&self, data: *mut *mut u8, bytesize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDeviceDescriptor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(data), ::core::mem::transmute(bytesize)).ok() } - pub unsafe fn GetDiscInformation(&self, discinformation: &mut *mut u8, bytesize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetDiscInformation(&self, discinformation: *mut *mut u8, bytesize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDiscInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(discinformation), ::core::mem::transmute(bytesize)).ok() } - pub unsafe fn GetTrackInformation(&self, address: u32, addresstype: IMAPI_READ_TRACK_ADDRESS_TYPE, trackinformation: &mut *mut u8, bytesize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetTrackInformation(&self, address: u32, addresstype: IMAPI_READ_TRACK_ADDRESS_TYPE, trackinformation: *mut *mut u8, bytesize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetTrackInformation)(::windows::core::Interface::as_raw(self), address, addresstype, ::core::mem::transmute(trackinformation), ::core::mem::transmute(bytesize)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetFeaturePage<'a, P0>(&self, requestedfeature: IMAPI_FEATURE_PAGE_TYPE, currentfeatureonly: P0, featuredata: &mut *mut u8, bytesize: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetFeaturePage<'a, P0>(&self, requestedfeature: IMAPI_FEATURE_PAGE_TYPE, currentfeatureonly: P0, featuredata: *mut *mut u8, bytesize: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).GetFeaturePage)(::windows::core::Interface::as_raw(self), requestedfeature, currentfeatureonly.into(), ::core::mem::transmute(featuredata), ::core::mem::transmute(bytesize)).ok() } - pub unsafe fn GetModePage(&self, requestedmodepage: IMAPI_MODE_PAGE_TYPE, requesttype: IMAPI_MODE_PAGE_REQUEST_TYPE, modepagedata: &mut *mut u8, bytesize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetModePage(&self, requestedmodepage: IMAPI_MODE_PAGE_TYPE, requesttype: IMAPI_MODE_PAGE_REQUEST_TYPE, modepagedata: *mut *mut u8, bytesize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetModePage)(::windows::core::Interface::as_raw(self), requestedmodepage, requesttype, ::core::mem::transmute(modepagedata), ::core::mem::transmute(bytesize)).ok() } pub unsafe fn SetModePage(&self, requesttype: IMAPI_MODE_PAGE_REQUEST_TYPE, data: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetModePage)(::windows::core::Interface::as_raw(self), requesttype, ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _).ok() + (::windows::core::Interface::vtable(self).SetModePage)(::windows::core::Interface::as_raw(self), requesttype, ::core::mem::transmute(data.as_ptr()), data.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetSupportedFeaturePages<'a, P0>(&self, currentfeatureonly: P0, featuredata: &mut *mut IMAPI_FEATURE_PAGE_TYPE, bytesize: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetSupportedFeaturePages<'a, P0>(&self, currentfeatureonly: P0, featuredata: *mut *mut IMAPI_FEATURE_PAGE_TYPE, bytesize: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -3943,13 +3943,13 @@ impl IDiscRecorder2Ex { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetSupportedProfiles<'a, P0>(&self, currentonly: P0, profiletypes: &mut *mut IMAPI_PROFILE_TYPE, validprofiles: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn GetSupportedProfiles<'a, P0>(&self, currentonly: P0, profiletypes: *mut *mut IMAPI_PROFILE_TYPE, validprofiles: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { (::windows::core::Interface::vtable(self).GetSupportedProfiles)(::windows::core::Interface::as_raw(self), currentonly.into(), ::core::mem::transmute(profiletypes), ::core::mem::transmute(validprofiles)).ok() } - pub unsafe fn GetSupportedModePages(&self, requesttype: IMAPI_MODE_PAGE_REQUEST_TYPE, modepagetypes: &mut *mut IMAPI_MODE_PAGE_TYPE, validpages: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetSupportedModePages(&self, requesttype: IMAPI_MODE_PAGE_REQUEST_TYPE, modepagetypes: *mut *mut IMAPI_MODE_PAGE_TYPE, validpages: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSupportedModePages)(::windows::core::Interface::as_raw(self), requesttype, ::core::mem::transmute(modepagetypes), ::core::mem::transmute(validpages)).ok() } pub unsafe fn GetByteAlignmentMask(&self) -> ::windows::core::Result { @@ -4036,7 +4036,7 @@ pub struct IDiscRecorder2Ex_Vtbl { #[repr(transparent)] pub struct IEnumDiscMasterFormats(::windows::core::IUnknown); impl IEnumDiscMasterFormats { - pub unsafe fn Next(&self, cformats: u32, lpiidformatid: &mut ::windows::core::GUID, pcfetched: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Next(&self, cformats: u32, lpiidformatid: *mut ::windows::core::GUID, pcfetched: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), cformats, ::core::mem::transmute(lpiidformatid), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Skip(&self, cformats: u32) -> ::windows::core::Result<()> { @@ -4098,7 +4098,7 @@ pub struct IEnumDiscMasterFormats_Vtbl { #[repr(transparent)] pub struct IEnumDiscRecorders(::windows::core::IUnknown); impl IEnumDiscRecorders { - pub unsafe fn Next(&self, crecorders: u32, pprecorder: &mut ::core::option::Option, pcfetched: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Next(&self, crecorders: u32, pprecorder: *mut ::core::option::Option, pcfetched: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), crecorders, ::core::mem::transmute(pprecorder), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Skip(&self, crecorders: u32) -> ::windows::core::Result<()> { @@ -4163,7 +4163,7 @@ impl IEnumFsiItems { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -4230,7 +4230,7 @@ impl IEnumProgressItems { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -9427,7 +9427,7 @@ impl IRedbookDiscMaster { (::windows::core::Interface::vtable(self).CreateAudioTrack)(::windows::core::Interface::as_raw(self), nblocks).ok() } pub unsafe fn AddAudioTrackBlocks(&self, pby: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddAudioTrackBlocks)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pby)), pby.len() as _).ok() + (::windows::core::Interface::vtable(self).AddAudioTrackBlocks)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pby.as_ptr()), pby.len() as _).ok() } pub unsafe fn CloseAudioTrack(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CloseAudioTrack)(::windows::core::Interface::as_raw(self)).ok() @@ -9489,13 +9489,13 @@ pub struct IStreamConcatenate(::windows::core::IUnknown); impl IStreamConcatenate { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Read(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread)) + pub unsafe fn Read(&self, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Write(&self, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbwritten)) + pub unsafe fn Write(&self, pv: &[u8], pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbwritten)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -9559,7 +9559,7 @@ impl IStreamConcatenate { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Initialize2(&self, streams: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Initialize2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(streams)), streams.len() as _).ok() + (::windows::core::Interface::vtable(self).Initialize2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(streams.as_ptr()), streams.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -9572,7 +9572,7 @@ impl IStreamConcatenate { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Append2(&self, streams: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Append2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(streams)), streams.len() as _).ok() + (::windows::core::Interface::vtable(self).Append2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(streams.as_ptr()), streams.len() as _).ok() } } #[cfg(feature = "Win32_System_Com")] @@ -9684,13 +9684,13 @@ pub struct IStreamInterleave(::windows::core::IUnknown); impl IStreamInterleave { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Read(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread)) + pub unsafe fn Read(&self, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Write(&self, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbwritten)) + pub unsafe fn Write(&self, pv: &[u8], pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbwritten)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -9744,7 +9744,7 @@ impl IStreamInterleave { } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Initialize(&self, streams: &::core::option::Option, interleavesizes: &u32, streamcount: u32) -> ::windows::core::Result<()> { + pub unsafe fn Initialize(&self, streams: *const ::core::option::Option, interleavesizes: *const u32, streamcount: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Initialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(streams), ::core::mem::transmute(interleavesizes), ::core::mem::transmute(streamcount)).ok() } } @@ -9845,13 +9845,13 @@ pub struct IStreamPseudoRandomBased(::windows::core::IUnknown); impl IStreamPseudoRandomBased { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Read(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread)) + pub unsafe fn Read(&self, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Write(&self, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbwritten)) + pub unsafe fn Write(&self, pv: &[u8], pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbwritten)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -9911,9 +9911,9 @@ impl IStreamPseudoRandomBased { (::windows::core::Interface::vtable(self).Seed)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn put_ExtendedSeed(&self, values: &[u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).put_ExtendedSeed)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(values)), values.len() as _).ok() + (::windows::core::Interface::vtable(self).put_ExtendedSeed)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(values.as_ptr()), values.len() as _).ok() } - pub unsafe fn get_ExtendedSeed(&self, values: &mut *mut u32, ecount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn get_ExtendedSeed(&self, values: *mut *mut u32, ecount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).get_ExtendedSeed)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(values), ::core::mem::transmute(ecount)).ok() } } diff --git a/crates/libs/windows/src/Windows/Win32/Storage/IndexServer/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/IndexServer/mod.rs index f003e0c916..15cb85db14 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/IndexServer/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/IndexServer/mod.rs @@ -687,7 +687,7 @@ impl IFilter { #[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(feature = "Win32_System_Com_StructuredStorage")] pub unsafe fn Init(&self, grfflags: u32, aattributes: &[FULLPROPSPEC], pflags: &mut u32) -> i32 { - (::windows::core::Interface::vtable(self).Init)(::windows::core::Interface::as_raw(self), grfflags, aattributes.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(aattributes)), ::core::mem::transmute(pflags)) + (::windows::core::Interface::vtable(self).Init)(::windows::core::Interface::as_raw(self), grfflags, aattributes.len() as _, ::core::mem::transmute(aattributes.as_ptr()), ::core::mem::transmute(pflags)) } #[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(feature = "Win32_System_Com_StructuredStorage")] diff --git a/crates/libs/windows/src/Windows/Win32/Storage/InstallableFileSystems/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/InstallableFileSystems/mod.rs index 83a20b5a7f..1f59793fd6 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/InstallableFileSystems/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/InstallableFileSystems/mod.rs @@ -575,7 +575,7 @@ impl ::core::fmt::Debug for FLT_FILESYSTEM_TYPE { pub const FLT_PORT_FLAG_SYNC_HANDLE: u32 = 1u32; #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`*"] #[inline] -pub unsafe fn FilterAttach<'a, P0, P1, P2>(lpfiltername: P0, lpvolumename: P1, lpinstancename: P2, dwcreatedinstancenamelength: u32, lpcreatedinstancename: ::windows::core::PWSTR) -> ::windows::core::Result<()> +pub unsafe fn FilterAttach<'a, P0, P1, P2>(lpfiltername: P0, lpvolumename: P1, lpinstancename: P2, lpcreatedinstancename: ::core::option::Option<&mut [u8]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -585,11 +585,11 @@ where extern "system" { fn FilterAttach(lpfiltername: ::windows::core::PCWSTR, lpvolumename: ::windows::core::PCWSTR, lpinstancename: ::windows::core::PCWSTR, dwcreatedinstancenamelength: u32, lpcreatedinstancename: ::windows::core::PWSTR) -> ::windows::core::HRESULT; } - FilterAttach(lpfiltername.into(), lpvolumename.into(), lpinstancename.into(), dwcreatedinstancenamelength, ::core::mem::transmute(lpcreatedinstancename)).ok() + FilterAttach(lpfiltername.into(), lpvolumename.into(), lpinstancename.into(), lpcreatedinstancename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpcreatedinstancename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`*"] #[inline] -pub unsafe fn FilterAttachAtAltitude<'a, P0, P1, P2, P3>(lpfiltername: P0, lpvolumename: P1, lpaltitude: P2, lpinstancename: P3, dwcreatedinstancenamelength: u32, lpcreatedinstancename: ::windows::core::PWSTR) -> ::windows::core::Result<()> +pub unsafe fn FilterAttachAtAltitude<'a, P0, P1, P2, P3>(lpfiltername: P0, lpvolumename: P1, lpaltitude: P2, lpinstancename: P3, lpcreatedinstancename: ::core::option::Option<&mut [u8]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -600,7 +600,7 @@ where extern "system" { fn FilterAttachAtAltitude(lpfiltername: ::windows::core::PCWSTR, lpvolumename: ::windows::core::PCWSTR, lpaltitude: ::windows::core::PCWSTR, lpinstancename: ::windows::core::PCWSTR, dwcreatedinstancenamelength: u32, lpcreatedinstancename: ::windows::core::PWSTR) -> ::windows::core::HRESULT; } - FilterAttachAtAltitude(lpfiltername.into(), lpvolumename.into(), lpaltitude.into(), lpinstancename.into(), dwcreatedinstancenamelength, ::core::mem::transmute(lpcreatedinstancename)).ok() + FilterAttachAtAltitude(lpfiltername.into(), lpvolumename.into(), lpaltitude.into(), lpinstancename.into(), lpcreatedinstancename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpcreatedinstancename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`*"] #[inline] @@ -617,7 +617,7 @@ where #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn FilterConnectCommunicationPort<'a, P0>(lpportname: P0, dwoptions: u32, lpcontext: *const ::core::ffi::c_void, wsizeofcontext: u16, lpsecurityattributes: ::core::option::Option<&super::super::Security::SECURITY_ATTRIBUTES>) -> ::windows::core::Result +pub unsafe fn FilterConnectCommunicationPort<'a, P0>(lpportname: P0, dwoptions: u32, lpcontext: ::core::option::Option<&[u8]>, lpsecurityattributes: ::core::option::Option<&super::super::Security::SECURITY_ATTRIBUTES>) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -626,7 +626,7 @@ where fn FilterConnectCommunicationPort(lpportname: ::windows::core::PCWSTR, dwoptions: u32, lpcontext: *const ::core::ffi::c_void, wsizeofcontext: u16, lpsecurityattributes: *const super::super::Security::SECURITY_ATTRIBUTES, hport: *mut super::super::Foundation::HANDLE) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - FilterConnectCommunicationPort(lpportname.into(), dwoptions, ::core::mem::transmute(lpcontext), wsizeofcontext, ::core::mem::transmute(lpsecurityattributes), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + FilterConnectCommunicationPort(lpportname.into(), dwoptions, ::core::mem::transmute(lpcontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpcontext.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpsecurityattributes), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`*"] #[inline] @@ -670,12 +670,12 @@ where } #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`*"] #[inline] -pub unsafe fn FilterFindFirst(dwinformationclass: FILTER_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: &mut u32, lpfilterfind: &mut FilterFindHandle) -> ::windows::core::Result<()> { +pub unsafe fn FilterFindFirst(dwinformationclass: FILTER_INFORMATION_CLASS, lpbuffer: &mut [u8], lpbytesreturned: &mut u32, lpfilterfind: &mut FilterFindHandle) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn FilterFindFirst(dwinformationclass: FILTER_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: *mut u32, lpfilterfind: *mut FilterFindHandle) -> ::windows::core::HRESULT; } - FilterFindFirst(dwinformationclass, ::core::mem::transmute(lpbuffer), dwbuffersize, ::core::mem::transmute(lpbytesreturned), ::core::mem::transmute(lpfilterfind)).ok() + FilterFindFirst(dwinformationclass, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpbytesreturned), ::core::mem::transmute(lpfilterfind)).ok() } #[repr(transparent)] #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] @@ -712,7 +712,7 @@ unsafe impl ::windows::core::Abi for FilterFindHandle { #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FilterFindNext<'a, P0>(hfilterfind: P0, dwinformationclass: FILTER_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn FilterFindNext<'a, P0>(hfilterfind: P0, dwinformationclass: FILTER_INFORMATION_CLASS, lpbuffer: &mut [u8], lpbytesreturned: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -720,7 +720,7 @@ where extern "system" { fn FilterFindNext(hfilterfind: super::super::Foundation::HANDLE, dwinformationclass: FILTER_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: *mut u32) -> ::windows::core::HRESULT; } - FilterFindNext(hfilterfind.into(), dwinformationclass, ::core::mem::transmute(lpbuffer), dwbuffersize, ::core::mem::transmute(lpbytesreturned)).ok() + FilterFindNext(hfilterfind.into(), dwinformationclass, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpbytesreturned)).ok() } #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`*"] #[inline] @@ -732,11 +732,11 @@ where extern "system" { fn FilterGetDosName(lpvolumename: ::windows::core::PCWSTR, lpdosname: ::windows::core::PWSTR, dwdosnamebuffersize: u32) -> ::windows::core::HRESULT; } - FilterGetDosName(lpvolumename.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdosname)), lpdosname.len() as _).ok() + FilterGetDosName(lpvolumename.into(), ::core::mem::transmute(lpdosname.as_ptr()), lpdosname.len() as _).ok() } #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`*"] #[inline] -pub unsafe fn FilterGetInformation<'a, P0>(hfilter: P0, dwinformationclass: FILTER_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn FilterGetInformation<'a, P0>(hfilter: P0, dwinformationclass: FILTER_INFORMATION_CLASS, lpbuffer: &mut [u8], lpbytesreturned: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -744,12 +744,12 @@ where extern "system" { fn FilterGetInformation(hfilter: HFILTER, dwinformationclass: FILTER_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: *mut u32) -> ::windows::core::HRESULT; } - FilterGetInformation(hfilter.into(), dwinformationclass, ::core::mem::transmute(lpbuffer), dwbuffersize, ::core::mem::transmute(lpbytesreturned)).ok() + FilterGetInformation(hfilter.into(), dwinformationclass, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpbytesreturned)).ok() } #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn FilterGetMessage<'a, P0>(hport: P0, lpmessagebuffer: &mut FILTER_MESSAGE_HEADER, dwmessagebuffersize: u32, lpoverlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>) -> ::windows::core::Result<()> +pub unsafe fn FilterGetMessage<'a, P0>(hport: P0, lpmessagebuffer: &mut [u8], lpoverlapped: ::core::option::Option<&mut super::super::System::IO::OVERLAPPED>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -757,7 +757,7 @@ where extern "system" { fn FilterGetMessage(hport: super::super::Foundation::HANDLE, lpmessagebuffer: *mut FILTER_MESSAGE_HEADER, dwmessagebuffersize: u32, lpoverlapped: *mut super::super::System::IO::OVERLAPPED) -> ::windows::core::HRESULT; } - FilterGetMessage(hport.into(), ::core::mem::transmute(lpmessagebuffer), dwmessagebuffersize, ::core::mem::transmute(lpoverlapped)).ok() + FilterGetMessage(hport.into(), ::core::mem::transmute(lpmessagebuffer.as_ptr()), lpmessagebuffer.len() as _, ::core::mem::transmute(lpoverlapped)).ok() } #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`*"] #[inline] @@ -801,7 +801,7 @@ where } #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`*"] #[inline] -pub unsafe fn FilterInstanceFindFirst<'a, P0>(lpfiltername: P0, dwinformationclass: INSTANCE_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: &mut u32, lpfilterinstancefind: &mut FilterInstanceFindHandle) -> ::windows::core::Result<()> +pub unsafe fn FilterInstanceFindFirst<'a, P0>(lpfiltername: P0, dwinformationclass: INSTANCE_INFORMATION_CLASS, lpbuffer: &mut [u8], lpbytesreturned: &mut u32, lpfilterinstancefind: &mut FilterInstanceFindHandle) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -809,7 +809,7 @@ where extern "system" { fn FilterInstanceFindFirst(lpfiltername: ::windows::core::PCWSTR, dwinformationclass: INSTANCE_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: *mut u32, lpfilterinstancefind: *mut FilterInstanceFindHandle) -> ::windows::core::HRESULT; } - FilterInstanceFindFirst(lpfiltername.into(), dwinformationclass, ::core::mem::transmute(lpbuffer), dwbuffersize, ::core::mem::transmute(lpbytesreturned), ::core::mem::transmute(lpfilterinstancefind)).ok() + FilterInstanceFindFirst(lpfiltername.into(), dwinformationclass, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpbytesreturned), ::core::mem::transmute(lpfilterinstancefind)).ok() } #[repr(transparent)] #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] @@ -846,7 +846,7 @@ unsafe impl ::windows::core::Abi for FilterInstanceFindHandle { #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FilterInstanceFindNext<'a, P0>(hfilterinstancefind: P0, dwinformationclass: INSTANCE_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn FilterInstanceFindNext<'a, P0>(hfilterinstancefind: P0, dwinformationclass: INSTANCE_INFORMATION_CLASS, lpbuffer: &mut [u8], lpbytesreturned: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -854,11 +854,11 @@ where extern "system" { fn FilterInstanceFindNext(hfilterinstancefind: super::super::Foundation::HANDLE, dwinformationclass: INSTANCE_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: *mut u32) -> ::windows::core::HRESULT; } - FilterInstanceFindNext(hfilterinstancefind.into(), dwinformationclass, ::core::mem::transmute(lpbuffer), dwbuffersize, ::core::mem::transmute(lpbytesreturned)).ok() + FilterInstanceFindNext(hfilterinstancefind.into(), dwinformationclass, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpbytesreturned)).ok() } #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`*"] #[inline] -pub unsafe fn FilterInstanceGetInformation<'a, P0>(hinstance: P0, dwinformationclass: INSTANCE_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn FilterInstanceGetInformation<'a, P0>(hinstance: P0, dwinformationclass: INSTANCE_INFORMATION_CLASS, lpbuffer: &mut [u8], lpbytesreturned: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -866,7 +866,7 @@ where extern "system" { fn FilterInstanceGetInformation(hinstance: HFILTER_INSTANCE, dwinformationclass: INSTANCE_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: *mut u32) -> ::windows::core::HRESULT; } - FilterInstanceGetInformation(hinstance.into(), dwinformationclass, ::core::mem::transmute(lpbuffer), dwbuffersize, ::core::mem::transmute(lpbytesreturned)).ok() + FilterInstanceGetInformation(hinstance.into(), dwinformationclass, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpbytesreturned)).ok() } #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`*"] #[inline] @@ -883,7 +883,7 @@ where #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FilterReplyMessage<'a, P0>(hport: P0, lpreplybuffer: &FILTER_REPLY_HEADER, dwreplybuffersize: u32) -> ::windows::core::Result<()> +pub unsafe fn FilterReplyMessage<'a, P0>(hport: P0, lpreplybuffer: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -891,12 +891,12 @@ where extern "system" { fn FilterReplyMessage(hport: super::super::Foundation::HANDLE, lpreplybuffer: *const FILTER_REPLY_HEADER, dwreplybuffersize: u32) -> ::windows::core::HRESULT; } - FilterReplyMessage(hport.into(), ::core::mem::transmute(lpreplybuffer), dwreplybuffersize).ok() + FilterReplyMessage(hport.into(), ::core::mem::transmute(lpreplybuffer.as_ptr()), lpreplybuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FilterSendMessage<'a, P0>(hport: P0, lpinbuffer: *const ::core::ffi::c_void, dwinbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, dwoutbuffersize: u32, lpbytesreturned: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn FilterSendMessage<'a, P0>(hport: P0, lpinbuffer: &[u8], lpoutbuffer: ::core::option::Option<&mut [u8]>, lpbytesreturned: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -904,7 +904,7 @@ where extern "system" { fn FilterSendMessage(hport: super::super::Foundation::HANDLE, lpinbuffer: *const ::core::ffi::c_void, dwinbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, dwoutbuffersize: u32, lpbytesreturned: *mut u32) -> ::windows::core::HRESULT; } - FilterSendMessage(hport.into(), ::core::mem::transmute(lpinbuffer), dwinbuffersize, ::core::mem::transmute(lpoutbuffer), dwoutbuffersize, ::core::mem::transmute(lpbytesreturned)).ok() + FilterSendMessage(hport.into(), ::core::mem::transmute(lpinbuffer.as_ptr()), lpinbuffer.len() as _, ::core::mem::transmute(lpoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesreturned)).ok() } #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`*"] #[inline] @@ -933,12 +933,12 @@ where } #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`*"] #[inline] -pub unsafe fn FilterVolumeFindFirst(dwinformationclass: FILTER_VOLUME_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: &mut u32, lpvolumefind: &mut FilterVolumeFindHandle) -> ::windows::core::Result<()> { +pub unsafe fn FilterVolumeFindFirst(dwinformationclass: FILTER_VOLUME_INFORMATION_CLASS, lpbuffer: &mut [u8], lpbytesreturned: &mut u32, lpvolumefind: &mut FilterVolumeFindHandle) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn FilterVolumeFindFirst(dwinformationclass: FILTER_VOLUME_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: *mut u32, lpvolumefind: *mut FilterVolumeFindHandle) -> ::windows::core::HRESULT; } - FilterVolumeFindFirst(dwinformationclass, ::core::mem::transmute(lpbuffer), dwbuffersize, ::core::mem::transmute(lpbytesreturned), ::core::mem::transmute(lpvolumefind)).ok() + FilterVolumeFindFirst(dwinformationclass, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpbytesreturned), ::core::mem::transmute(lpvolumefind)).ok() } #[repr(transparent)] #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] @@ -975,7 +975,7 @@ unsafe impl ::windows::core::Abi for FilterVolumeFindHandle { #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FilterVolumeFindNext<'a, P0>(hvolumefind: P0, dwinformationclass: FILTER_VOLUME_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn FilterVolumeFindNext<'a, P0>(hvolumefind: P0, dwinformationclass: FILTER_VOLUME_INFORMATION_CLASS, lpbuffer: &mut [u8], lpbytesreturned: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -983,7 +983,7 @@ where extern "system" { fn FilterVolumeFindNext(hvolumefind: super::super::Foundation::HANDLE, dwinformationclass: FILTER_VOLUME_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: *mut u32) -> ::windows::core::HRESULT; } - FilterVolumeFindNext(hvolumefind.into(), dwinformationclass, ::core::mem::transmute(lpbuffer), dwbuffersize, ::core::mem::transmute(lpbytesreturned)).ok() + FilterVolumeFindNext(hvolumefind.into(), dwinformationclass, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpbytesreturned)).ok() } #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1000,7 +1000,7 @@ where } #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`*"] #[inline] -pub unsafe fn FilterVolumeInstanceFindFirst<'a, P0>(lpvolumename: P0, dwinformationclass: INSTANCE_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: &mut u32, lpvolumeinstancefind: &mut FilterVolumeInstanceFindHandle) -> ::windows::core::Result<()> +pub unsafe fn FilterVolumeInstanceFindFirst<'a, P0>(lpvolumename: P0, dwinformationclass: INSTANCE_INFORMATION_CLASS, lpbuffer: &mut [u8], lpbytesreturned: &mut u32, lpvolumeinstancefind: &mut FilterVolumeInstanceFindHandle) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1008,7 +1008,7 @@ where extern "system" { fn FilterVolumeInstanceFindFirst(lpvolumename: ::windows::core::PCWSTR, dwinformationclass: INSTANCE_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: *mut u32, lpvolumeinstancefind: *mut FilterVolumeInstanceFindHandle) -> ::windows::core::HRESULT; } - FilterVolumeInstanceFindFirst(lpvolumename.into(), dwinformationclass, ::core::mem::transmute(lpbuffer), dwbuffersize, ::core::mem::transmute(lpbytesreturned), ::core::mem::transmute(lpvolumeinstancefind)).ok() + FilterVolumeInstanceFindFirst(lpvolumename.into(), dwinformationclass, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpbytesreturned), ::core::mem::transmute(lpvolumeinstancefind)).ok() } #[repr(transparent)] #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] @@ -1045,7 +1045,7 @@ unsafe impl ::windows::core::Abi for FilterVolumeInstanceFindHandle { #[doc = "*Required features: `\"Win32_Storage_InstallableFileSystems\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FilterVolumeInstanceFindNext<'a, P0>(hvolumeinstancefind: P0, dwinformationclass: INSTANCE_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn FilterVolumeInstanceFindNext<'a, P0>(hvolumeinstancefind: P0, dwinformationclass: INSTANCE_INFORMATION_CLASS, lpbuffer: &mut [u8], lpbytesreturned: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -1053,7 +1053,7 @@ where extern "system" { fn FilterVolumeInstanceFindNext(hvolumeinstancefind: super::super::Foundation::HANDLE, dwinformationclass: INSTANCE_INFORMATION_CLASS, lpbuffer: *mut ::core::ffi::c_void, dwbuffersize: u32, lpbytesreturned: *mut u32) -> ::windows::core::HRESULT; } - FilterVolumeInstanceFindNext(hvolumeinstancefind.into(), dwinformationclass, ::core::mem::transmute(lpbuffer), dwbuffersize, ::core::mem::transmute(lpbytesreturned)).ok() + FilterVolumeInstanceFindNext(hvolumeinstancefind.into(), dwinformationclass, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpbytesreturned)).ok() } #[repr(transparent)] #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] diff --git a/crates/libs/windows/src/Windows/Win32/Storage/IscsiDisc/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/IscsiDisc/mod.rs index 8669c46573..5f13f21cbb 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/IscsiDisc/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/IscsiDisc/mod.rs @@ -269,21 +269,21 @@ where #[doc = "*Required features: `\"Win32_Storage_IscsiDisc\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AddIScsiConnectionA(uniquesessionid: &mut ISCSI_UNIQUE_SESSION_ID, reserved: *mut ::core::ffi::c_void, initiatorportnumber: u32, targetportal: &mut ISCSI_TARGET_PORTALA, securityflags: u64, loginoptions: &mut ISCSI_LOGIN_OPTIONS, key: &[u8], connectionid: &mut ISCSI_UNIQUE_SESSION_ID) -> u32 { +pub unsafe fn AddIScsiConnectionA(uniquesessionid: &mut ISCSI_UNIQUE_SESSION_ID, reserved: *mut ::core::ffi::c_void, initiatorportnumber: u32, targetportal: &mut ISCSI_TARGET_PORTALA, securityflags: u64, loginoptions: &mut ISCSI_LOGIN_OPTIONS, key: ::core::option::Option<&[u8]>, connectionid: &mut ISCSI_UNIQUE_SESSION_ID) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn AddIScsiConnectionA(uniquesessionid: *mut ISCSI_UNIQUE_SESSION_ID, reserved: *mut ::core::ffi::c_void, initiatorportnumber: u32, targetportal: *mut ISCSI_TARGET_PORTALA, securityflags: u64, loginoptions: *mut ISCSI_LOGIN_OPTIONS, keysize: u32, key: ::windows::core::PCSTR, connectionid: *mut ISCSI_UNIQUE_SESSION_ID) -> u32; } - AddIScsiConnectionA(::core::mem::transmute(uniquesessionid), ::core::mem::transmute(reserved), initiatorportnumber, ::core::mem::transmute(targetportal), securityflags, ::core::mem::transmute(loginoptions), key.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(key)), ::core::mem::transmute(connectionid)) + AddIScsiConnectionA(::core::mem::transmute(uniquesessionid), ::core::mem::transmute(reserved), initiatorportnumber, ::core::mem::transmute(targetportal), securityflags, ::core::mem::transmute(loginoptions), key.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(key.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(connectionid)) } #[doc = "*Required features: `\"Win32_Storage_IscsiDisc\"`*"] #[inline] -pub unsafe fn AddIScsiConnectionW(uniquesessionid: &mut ISCSI_UNIQUE_SESSION_ID, reserved: *mut ::core::ffi::c_void, initiatorportnumber: u32, targetportal: &mut ISCSI_TARGET_PORTALW, securityflags: u64, loginoptions: &mut ISCSI_LOGIN_OPTIONS, key: &[u8], connectionid: &mut ISCSI_UNIQUE_SESSION_ID) -> u32 { +pub unsafe fn AddIScsiConnectionW(uniquesessionid: &mut ISCSI_UNIQUE_SESSION_ID, reserved: *mut ::core::ffi::c_void, initiatorportnumber: u32, targetportal: &mut ISCSI_TARGET_PORTALW, securityflags: u64, loginoptions: &mut ISCSI_LOGIN_OPTIONS, key: ::core::option::Option<&[u8]>, connectionid: &mut ISCSI_UNIQUE_SESSION_ID) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn AddIScsiConnectionW(uniquesessionid: *mut ISCSI_UNIQUE_SESSION_ID, reserved: *mut ::core::ffi::c_void, initiatorportnumber: u32, targetportal: *mut ISCSI_TARGET_PORTALW, securityflags: u64, loginoptions: *mut ISCSI_LOGIN_OPTIONS, keysize: u32, key: ::windows::core::PCSTR, connectionid: *mut ISCSI_UNIQUE_SESSION_ID) -> u32; } - AddIScsiConnectionW(::core::mem::transmute(uniquesessionid), ::core::mem::transmute(reserved), initiatorportnumber, ::core::mem::transmute(targetportal), securityflags, ::core::mem::transmute(loginoptions), key.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(key)), ::core::mem::transmute(connectionid)) + AddIScsiConnectionW(::core::mem::transmute(uniquesessionid), ::core::mem::transmute(reserved), initiatorportnumber, ::core::mem::transmute(targetportal), securityflags, ::core::mem::transmute(loginoptions), key.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(key.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(connectionid)) } #[doc = "*Required features: `\"Win32_Storage_IscsiDisc\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2397,7 +2397,7 @@ impl ::core::default::Default for ISCSI_VERSION_INFO { #[doc = "*Required features: `\"Win32_Storage_IscsiDisc\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn LoginIScsiTargetA<'a, P0, P1, P2, P3>(targetname: P0, isinformationalsession: P1, initiatorinstance: P2, initiatorportnumber: u32, targetportal: &mut ISCSI_TARGET_PORTALA, securityflags: u64, mappings: &mut ISCSI_TARGET_MAPPINGA, loginoptions: &mut ISCSI_LOGIN_OPTIONS, key: &[u8], ispersistent: P3, uniquesessionid: &mut ISCSI_UNIQUE_SESSION_ID, uniqueconnectionid: &mut ISCSI_UNIQUE_SESSION_ID) -> u32 +pub unsafe fn LoginIScsiTargetA<'a, P0, P1, P2, P3>(targetname: P0, isinformationalsession: P1, initiatorinstance: P2, initiatorportnumber: u32, targetportal: &mut ISCSI_TARGET_PORTALA, securityflags: u64, mappings: &mut ISCSI_TARGET_MAPPINGA, loginoptions: &mut ISCSI_LOGIN_OPTIONS, key: ::core::option::Option<&[u8]>, ispersistent: P3, uniquesessionid: &mut ISCSI_UNIQUE_SESSION_ID, uniqueconnectionid: &mut ISCSI_UNIQUE_SESSION_ID) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into, @@ -2408,12 +2408,12 @@ where extern "system" { fn LoginIScsiTargetA(targetname: ::windows::core::PCSTR, isinformationalsession: super::super::Foundation::BOOLEAN, initiatorinstance: ::windows::core::PCSTR, initiatorportnumber: u32, targetportal: *mut ISCSI_TARGET_PORTALA, securityflags: u64, mappings: *mut ISCSI_TARGET_MAPPINGA, loginoptions: *mut ISCSI_LOGIN_OPTIONS, keysize: u32, key: ::windows::core::PCSTR, ispersistent: super::super::Foundation::BOOLEAN, uniquesessionid: *mut ISCSI_UNIQUE_SESSION_ID, uniqueconnectionid: *mut ISCSI_UNIQUE_SESSION_ID) -> u32; } - LoginIScsiTargetA(targetname.into(), isinformationalsession.into(), initiatorinstance.into(), initiatorportnumber, ::core::mem::transmute(targetportal), securityflags, ::core::mem::transmute(mappings), ::core::mem::transmute(loginoptions), key.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(key)), ispersistent.into(), ::core::mem::transmute(uniquesessionid), ::core::mem::transmute(uniqueconnectionid)) + LoginIScsiTargetA(targetname.into(), isinformationalsession.into(), initiatorinstance.into(), initiatorportnumber, ::core::mem::transmute(targetportal), securityflags, ::core::mem::transmute(mappings), ::core::mem::transmute(loginoptions), key.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(key.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ispersistent.into(), ::core::mem::transmute(uniquesessionid), ::core::mem::transmute(uniqueconnectionid)) } #[doc = "*Required features: `\"Win32_Storage_IscsiDisc\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn LoginIScsiTargetW<'a, P0, P1, P2, P3>(targetname: P0, isinformationalsession: P1, initiatorinstance: P2, initiatorportnumber: u32, targetportal: &mut ISCSI_TARGET_PORTALW, securityflags: u64, mappings: &mut ISCSI_TARGET_MAPPINGW, loginoptions: &mut ISCSI_LOGIN_OPTIONS, key: &[u8], ispersistent: P3, uniquesessionid: &mut ISCSI_UNIQUE_SESSION_ID, uniqueconnectionid: &mut ISCSI_UNIQUE_SESSION_ID) -> u32 +pub unsafe fn LoginIScsiTargetW<'a, P0, P1, P2, P3>(targetname: P0, isinformationalsession: P1, initiatorinstance: P2, initiatorportnumber: u32, targetportal: &mut ISCSI_TARGET_PORTALW, securityflags: u64, mappings: &mut ISCSI_TARGET_MAPPINGW, loginoptions: &mut ISCSI_LOGIN_OPTIONS, key: ::core::option::Option<&[u8]>, ispersistent: P3, uniquesessionid: &mut ISCSI_UNIQUE_SESSION_ID, uniqueconnectionid: &mut ISCSI_UNIQUE_SESSION_ID) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into, @@ -2424,7 +2424,7 @@ where extern "system" { fn LoginIScsiTargetW(targetname: ::windows::core::PCWSTR, isinformationalsession: super::super::Foundation::BOOLEAN, initiatorinstance: ::windows::core::PCWSTR, initiatorportnumber: u32, targetportal: *mut ISCSI_TARGET_PORTALW, securityflags: u64, mappings: *mut ISCSI_TARGET_MAPPINGW, loginoptions: *mut ISCSI_LOGIN_OPTIONS, keysize: u32, key: ::windows::core::PCSTR, ispersistent: super::super::Foundation::BOOLEAN, uniquesessionid: *mut ISCSI_UNIQUE_SESSION_ID, uniqueconnectionid: *mut ISCSI_UNIQUE_SESSION_ID) -> u32; } - LoginIScsiTargetW(targetname.into(), isinformationalsession.into(), initiatorinstance.into(), initiatorportnumber, ::core::mem::transmute(targetportal), securityflags, ::core::mem::transmute(mappings), ::core::mem::transmute(loginoptions), key.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(key)), ispersistent.into(), ::core::mem::transmute(uniquesessionid), ::core::mem::transmute(uniqueconnectionid)) + LoginIScsiTargetW(targetname.into(), isinformationalsession.into(), initiatorinstance.into(), initiatorportnumber, ::core::mem::transmute(targetportal), securityflags, ::core::mem::transmute(mappings), ::core::mem::transmute(loginoptions), key.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(key.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ispersistent.into(), ::core::mem::transmute(uniquesessionid), ::core::mem::transmute(uniqueconnectionid)) } #[doc = "*Required features: `\"Win32_Storage_IscsiDisc\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/Storage/Jet/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/Jet/mod.rs index 913fc0b4ad..f02f5ae850 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/Jet/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/Jet/mod.rs @@ -6563,7 +6563,7 @@ pub const JET_wszConfigStoreRelPathSysParamOverride: &str = "SysParamOverride"; #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetAddColumnA<'a, P0, P1>(sesid: P0, tableid: P1, szcolumnname: &i8, pcolumndef: &JET_COLUMNDEF, pvdefault: *const ::core::ffi::c_void, cbdefault: u32, pcolumnid: ::core::option::Option<&mut u32>) -> i32 +pub unsafe fn JetAddColumnA<'a, P0, P1>(sesid: P0, tableid: P1, szcolumnname: &i8, pcolumndef: &JET_COLUMNDEF, pvdefault: ::core::option::Option<&[u8]>, pcolumnid: ::core::option::Option<&mut u32>) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -6572,12 +6572,12 @@ where extern "system" { fn JetAddColumnA(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, szcolumnname: *const i8, pcolumndef: *const JET_COLUMNDEF, pvdefault: *const ::core::ffi::c_void, cbdefault: u32, pcolumnid: *mut u32) -> i32; } - JetAddColumnA(sesid.into(), tableid.into(), ::core::mem::transmute(szcolumnname), ::core::mem::transmute(pcolumndef), ::core::mem::transmute(pvdefault), cbdefault, ::core::mem::transmute(pcolumnid)) + JetAddColumnA(sesid.into(), tableid.into(), ::core::mem::transmute(szcolumnname), ::core::mem::transmute(pcolumndef), ::core::mem::transmute(pvdefault.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvdefault.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcolumnid)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetAddColumnW<'a, P0, P1>(sesid: P0, tableid: P1, szcolumnname: &u16, pcolumndef: &JET_COLUMNDEF, pvdefault: *const ::core::ffi::c_void, cbdefault: u32, pcolumnid: ::core::option::Option<&mut u32>) -> i32 +pub unsafe fn JetAddColumnW<'a, P0, P1>(sesid: P0, tableid: P1, szcolumnname: &u16, pcolumndef: &JET_COLUMNDEF, pvdefault: ::core::option::Option<&[u8]>, pcolumnid: ::core::option::Option<&mut u32>) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -6586,7 +6586,7 @@ where extern "system" { fn JetAddColumnW(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, szcolumnname: *const u16, pcolumndef: *const JET_COLUMNDEF, pvdefault: *const ::core::ffi::c_void, cbdefault: u32, pcolumnid: *mut u32) -> i32; } - JetAddColumnW(sesid.into(), tableid.into(), ::core::mem::transmute(szcolumnname), ::core::mem::transmute(pcolumndef), ::core::mem::transmute(pvdefault), cbdefault, ::core::mem::transmute(pcolumnid)) + JetAddColumnW(sesid.into(), tableid.into(), ::core::mem::transmute(szcolumnname), ::core::mem::transmute(pcolumndef), ::core::mem::transmute(pvdefault.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvdefault.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcolumnid)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -6966,7 +6966,7 @@ where extern "system" { fn JetCreateIndex2A(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pindexcreate: *const JET_INDEXCREATE_A, cindexcreate: u32) -> i32; } - JetCreateIndex2A(sesid.into(), tableid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pindexcreate)), pindexcreate.len() as _) + JetCreateIndex2A(sesid.into(), tableid.into(), ::core::mem::transmute(pindexcreate.as_ptr()), pindexcreate.len() as _) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -6980,7 +6980,7 @@ where extern "system" { fn JetCreateIndex2W(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pindexcreate: *const JET_INDEXCREATE_W, cindexcreate: u32) -> i32; } - JetCreateIndex2W(sesid.into(), tableid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pindexcreate)), pindexcreate.len() as _) + JetCreateIndex2W(sesid.into(), tableid.into(), ::core::mem::transmute(pindexcreate.as_ptr()), pindexcreate.len() as _) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -6994,7 +6994,7 @@ where extern "system" { fn JetCreateIndex3A(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pindexcreate: *const JET_INDEXCREATE2_A, cindexcreate: u32) -> i32; } - JetCreateIndex3A(sesid.into(), tableid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pindexcreate)), pindexcreate.len() as _) + JetCreateIndex3A(sesid.into(), tableid.into(), ::core::mem::transmute(pindexcreate.as_ptr()), pindexcreate.len() as _) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -7008,7 +7008,7 @@ where extern "system" { fn JetCreateIndex3W(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pindexcreate: *const JET_INDEXCREATE2_W, cindexcreate: u32) -> i32; } - JetCreateIndex3W(sesid.into(), tableid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pindexcreate)), pindexcreate.len() as _) + JetCreateIndex3W(sesid.into(), tableid.into(), ::core::mem::transmute(pindexcreate.as_ptr()), pindexcreate.len() as _) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -7022,7 +7022,7 @@ where extern "system" { fn JetCreateIndex4A(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pindexcreate: *const JET_INDEXCREATE3_A, cindexcreate: u32) -> i32; } - JetCreateIndex4A(sesid.into(), tableid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pindexcreate)), pindexcreate.len() as _) + JetCreateIndex4A(sesid.into(), tableid.into(), ::core::mem::transmute(pindexcreate.as_ptr()), pindexcreate.len() as _) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -7036,37 +7036,35 @@ where extern "system" { fn JetCreateIndex4W(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pindexcreate: *const JET_INDEXCREATE3_W, cindexcreate: u32) -> i32; } - JetCreateIndex4W(sesid.into(), tableid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pindexcreate)), pindexcreate.len() as _) + JetCreateIndex4W(sesid.into(), tableid.into(), ::core::mem::transmute(pindexcreate.as_ptr()), pindexcreate.len() as _) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetCreateIndexA<'a, P0, P1, P2>(sesid: P0, tableid: P1, szindexname: &i8, grbit: u32, szkey: P2, cbkey: u32, ldensity: u32) -> i32 +pub unsafe fn JetCreateIndexA<'a, P0, P1>(sesid: P0, tableid: P1, szindexname: &i8, grbit: u32, szkey: &[u8], ldensity: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, - P2: ::std::convert::Into<::windows::core::PCSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn JetCreateIndexA(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, szindexname: *const i8, grbit: u32, szkey: ::windows::core::PCSTR, cbkey: u32, ldensity: u32) -> i32; } - JetCreateIndexA(sesid.into(), tableid.into(), ::core::mem::transmute(szindexname), grbit, szkey.into(), cbkey, ldensity) + JetCreateIndexA(sesid.into(), tableid.into(), ::core::mem::transmute(szindexname), grbit, ::core::mem::transmute(szkey.as_ptr()), szkey.len() as _, ldensity) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetCreateIndexW<'a, P0, P1, P2>(sesid: P0, tableid: P1, szindexname: &u16, grbit: u32, szkey: P2, cbkey: u32, ldensity: u32) -> i32 +pub unsafe fn JetCreateIndexW<'a, P0, P1>(sesid: P0, tableid: P1, szindexname: &u16, grbit: u32, szkey: &[u8], ldensity: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, - P2: ::std::convert::Into<::windows::core::PCWSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn JetCreateIndexW(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, szindexname: *const u16, grbit: u32, szkey: ::windows::core::PCWSTR, cbkey: u32, ldensity: u32) -> i32; } - JetCreateIndexW(sesid.into(), tableid.into(), ::core::mem::transmute(szindexname), grbit, szkey.into(), cbkey, ldensity) + JetCreateIndexW(sesid.into(), tableid.into(), ::core::mem::transmute(szindexname), grbit, ::core::mem::transmute(szkey.as_ptr()), szkey.len() as _, ldensity) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -7522,22 +7520,22 @@ where #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetEnableMultiInstanceA(psetsysparam: &[JET_SETSYSPARAM_A], pcsetsucceed: ::core::option::Option<&mut u32>) -> i32 { +pub unsafe fn JetEnableMultiInstanceA(psetsysparam: ::core::option::Option<&[JET_SETSYSPARAM_A]>, pcsetsucceed: ::core::option::Option<&mut u32>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn JetEnableMultiInstanceA(psetsysparam: *const JET_SETSYSPARAM_A, csetsysparam: u32, pcsetsucceed: *mut u32) -> i32; } - JetEnableMultiInstanceA(::core::mem::transmute(::windows::core::as_ptr_or_null(psetsysparam)), psetsysparam.len() as _, ::core::mem::transmute(pcsetsucceed)) + JetEnableMultiInstanceA(::core::mem::transmute(psetsysparam.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psetsysparam.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcsetsucceed)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetEnableMultiInstanceW(psetsysparam: &[JET_SETSYSPARAM_W], pcsetsucceed: ::core::option::Option<&mut u32>) -> i32 { +pub unsafe fn JetEnableMultiInstanceW(psetsysparam: ::core::option::Option<&[JET_SETSYSPARAM_W]>, pcsetsucceed: ::core::option::Option<&mut u32>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn JetEnableMultiInstanceW(psetsysparam: *const JET_SETSYSPARAM_W, csetsysparam: u32, pcsetsucceed: *mut u32) -> i32; } - JetEnableMultiInstanceW(::core::mem::transmute(::windows::core::as_ptr_or_null(psetsysparam)), psetsysparam.len() as _, ::core::mem::transmute(pcsetsucceed)) + JetEnableMultiInstanceW(::core::mem::transmute(psetsysparam.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psetsysparam.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcsetsucceed)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`*"] #[inline] @@ -7590,7 +7588,7 @@ where #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetEnumerateColumns<'a, P0, P1>(sesid: P0, tableid: P1, rgenumcolumnid: &[JET_ENUMCOLUMNID], pcenumcolumn: &mut u32, prgenumcolumn: &mut *mut JET_ENUMCOLUMN, pfnrealloc: JET_PFNREALLOC, pvrealloccontext: *const ::core::ffi::c_void, cbdatamost: u32, grbit: u32) -> i32 +pub unsafe fn JetEnumerateColumns<'a, P0, P1>(sesid: P0, tableid: P1, rgenumcolumnid: ::core::option::Option<&[JET_ENUMCOLUMNID]>, pcenumcolumn: &mut u32, prgenumcolumn: &mut *mut JET_ENUMCOLUMN, pfnrealloc: JET_PFNREALLOC, pvrealloccontext: *const ::core::ffi::c_void, cbdatamost: u32, grbit: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -7599,12 +7597,12 @@ where extern "system" { fn JetEnumerateColumns(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, cenumcolumnid: u32, rgenumcolumnid: *const JET_ENUMCOLUMNID, pcenumcolumn: *mut u32, prgenumcolumn: *mut *mut JET_ENUMCOLUMN, pfnrealloc: *mut ::core::ffi::c_void, pvrealloccontext: *const ::core::ffi::c_void, cbdatamost: u32, grbit: u32) -> i32; } - JetEnumerateColumns(sesid.into(), tableid.into(), rgenumcolumnid.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgenumcolumnid)), ::core::mem::transmute(pcenumcolumn), ::core::mem::transmute(prgenumcolumn), ::core::mem::transmute(pfnrealloc), ::core::mem::transmute(pvrealloccontext), cbdatamost, grbit) + JetEnumerateColumns(sesid.into(), tableid.into(), rgenumcolumnid.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgenumcolumnid.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcenumcolumn), ::core::mem::transmute(prgenumcolumn), ::core::mem::transmute(pfnrealloc), ::core::mem::transmute(pvrealloccontext), cbdatamost, grbit) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetEscrowUpdate<'a, P0, P1>(sesid: P0, tableid: P1, columnid: u32, pv: *const ::core::ffi::c_void, cbmax: u32, pvold: *mut ::core::ffi::c_void, cboldmax: u32, pcboldactual: ::core::option::Option<&mut u32>, grbit: u32) -> i32 +pub unsafe fn JetEscrowUpdate<'a, P0, P1>(sesid: P0, tableid: P1, columnid: u32, pv: &[u8], pvold: ::core::option::Option<&mut [u8]>, pcboldactual: ::core::option::Option<&mut u32>, grbit: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -7613,47 +7611,69 @@ where extern "system" { fn JetEscrowUpdate(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, columnid: u32, pv: *const ::core::ffi::c_void, cbmax: u32, pvold: *mut ::core::ffi::c_void, cboldmax: u32, pcboldactual: *mut u32, grbit: u32) -> i32; } - JetEscrowUpdate(sesid.into(), tableid.into(), columnid, ::core::mem::transmute(pv), cbmax, ::core::mem::transmute(pvold), cboldmax, ::core::mem::transmute(pcboldactual), grbit) + JetEscrowUpdate(sesid.into(), tableid.into(), columnid, ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pvold.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvold.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcboldactual), grbit) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_StructuredStorage"))] #[inline] -pub unsafe fn JetExternalRestore2A(szcheckpointfilepath: &i8, szlogpath: &i8, rgrstmap: &[JET_RSTMAP_A], szbackuplogpath: &i8, ploginfo: &mut JET_LOGINFO_A, sztargetinstancename: ::core::option::Option<&i8>, sztargetinstancelogpath: ::core::option::Option<&i8>, sztargetinstancecheckpointpath: ::core::option::Option<&i8>, pfn: JET_PFNSTATUS) -> i32 { +pub unsafe fn JetExternalRestore2A(szcheckpointfilepath: &i8, szlogpath: &i8, rgrstmap: ::core::option::Option<&[JET_RSTMAP_A]>, szbackuplogpath: &i8, ploginfo: &mut JET_LOGINFO_A, sztargetinstancename: ::core::option::Option<&i8>, sztargetinstancelogpath: ::core::option::Option<&i8>, sztargetinstancecheckpointpath: ::core::option::Option<&i8>, pfn: JET_PFNSTATUS) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn JetExternalRestore2A(szcheckpointfilepath: *const i8, szlogpath: *const i8, rgrstmap: *const JET_RSTMAP_A, crstfilemap: i32, szbackuplogpath: *const i8, ploginfo: *mut JET_LOGINFO_A, sztargetinstancename: *const i8, sztargetinstancelogpath: *const i8, sztargetinstancecheckpointpath: *const i8, pfn: *mut ::core::ffi::c_void) -> i32; } - JetExternalRestore2A(::core::mem::transmute(szcheckpointfilepath), ::core::mem::transmute(szlogpath), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgrstmap)), rgrstmap.len() as _, ::core::mem::transmute(szbackuplogpath), ::core::mem::transmute(ploginfo), ::core::mem::transmute(sztargetinstancename), ::core::mem::transmute(sztargetinstancelogpath), ::core::mem::transmute(sztargetinstancecheckpointpath), ::core::mem::transmute(pfn)) + JetExternalRestore2A( + ::core::mem::transmute(szcheckpointfilepath), + ::core::mem::transmute(szlogpath), + ::core::mem::transmute(rgrstmap.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + rgrstmap.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szbackuplogpath), + ::core::mem::transmute(ploginfo), + ::core::mem::transmute(sztargetinstancename), + ::core::mem::transmute(sztargetinstancelogpath), + ::core::mem::transmute(sztargetinstancecheckpointpath), + ::core::mem::transmute(pfn), + ) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetExternalRestore2W(szcheckpointfilepath: &u16, szlogpath: &u16, rgrstmap: &[JET_RSTMAP_W], szbackuplogpath: &u16, ploginfo: &mut JET_LOGINFO_W, sztargetinstancename: ::core::option::Option<&u16>, sztargetinstancelogpath: ::core::option::Option<&u16>, sztargetinstancecheckpointpath: ::core::option::Option<&u16>, pfn: JET_PFNSTATUS) -> i32 { +pub unsafe fn JetExternalRestore2W(szcheckpointfilepath: &u16, szlogpath: &u16, rgrstmap: ::core::option::Option<&[JET_RSTMAP_W]>, szbackuplogpath: &u16, ploginfo: &mut JET_LOGINFO_W, sztargetinstancename: ::core::option::Option<&u16>, sztargetinstancelogpath: ::core::option::Option<&u16>, sztargetinstancecheckpointpath: ::core::option::Option<&u16>, pfn: JET_PFNSTATUS) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn JetExternalRestore2W(szcheckpointfilepath: *const u16, szlogpath: *const u16, rgrstmap: *const JET_RSTMAP_W, crstfilemap: i32, szbackuplogpath: *const u16, ploginfo: *mut JET_LOGINFO_W, sztargetinstancename: *const u16, sztargetinstancelogpath: *const u16, sztargetinstancecheckpointpath: *const u16, pfn: *mut ::core::ffi::c_void) -> i32; } - JetExternalRestore2W(::core::mem::transmute(szcheckpointfilepath), ::core::mem::transmute(szlogpath), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgrstmap)), rgrstmap.len() as _, ::core::mem::transmute(szbackuplogpath), ::core::mem::transmute(ploginfo), ::core::mem::transmute(sztargetinstancename), ::core::mem::transmute(sztargetinstancelogpath), ::core::mem::transmute(sztargetinstancecheckpointpath), ::core::mem::transmute(pfn)) + JetExternalRestore2W( + ::core::mem::transmute(szcheckpointfilepath), + ::core::mem::transmute(szlogpath), + ::core::mem::transmute(rgrstmap.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + rgrstmap.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szbackuplogpath), + ::core::mem::transmute(ploginfo), + ::core::mem::transmute(sztargetinstancename), + ::core::mem::transmute(sztargetinstancelogpath), + ::core::mem::transmute(sztargetinstancecheckpointpath), + ::core::mem::transmute(pfn), + ) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetExternalRestoreA(szcheckpointfilepath: &i8, szlogpath: &i8, rgrstmap: &[JET_RSTMAP_A], szbackuplogpath: &i8, genlow: i32, genhigh: i32, pfn: JET_PFNSTATUS) -> i32 { +pub unsafe fn JetExternalRestoreA(szcheckpointfilepath: &i8, szlogpath: &i8, rgrstmap: ::core::option::Option<&[JET_RSTMAP_A]>, szbackuplogpath: &i8, genlow: i32, genhigh: i32, pfn: JET_PFNSTATUS) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn JetExternalRestoreA(szcheckpointfilepath: *const i8, szlogpath: *const i8, rgrstmap: *const JET_RSTMAP_A, crstfilemap: i32, szbackuplogpath: *const i8, genlow: i32, genhigh: i32, pfn: *mut ::core::ffi::c_void) -> i32; } - JetExternalRestoreA(::core::mem::transmute(szcheckpointfilepath), ::core::mem::transmute(szlogpath), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgrstmap)), rgrstmap.len() as _, ::core::mem::transmute(szbackuplogpath), genlow, genhigh, ::core::mem::transmute(pfn)) + JetExternalRestoreA(::core::mem::transmute(szcheckpointfilepath), ::core::mem::transmute(szlogpath), ::core::mem::transmute(rgrstmap.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rgrstmap.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(szbackuplogpath), genlow, genhigh, ::core::mem::transmute(pfn)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetExternalRestoreW(szcheckpointfilepath: &u16, szlogpath: &u16, rgrstmap: &[JET_RSTMAP_W], szbackuplogpath: &u16, genlow: i32, genhigh: i32, pfn: JET_PFNSTATUS) -> i32 { +pub unsafe fn JetExternalRestoreW(szcheckpointfilepath: &u16, szlogpath: &u16, rgrstmap: ::core::option::Option<&[JET_RSTMAP_W]>, szbackuplogpath: &u16, genlow: i32, genhigh: i32, pfn: JET_PFNSTATUS) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn JetExternalRestoreW(szcheckpointfilepath: *const u16, szlogpath: *const u16, rgrstmap: *const JET_RSTMAP_W, crstfilemap: i32, szbackuplogpath: *const u16, genlow: i32, genhigh: i32, pfn: *mut ::core::ffi::c_void) -> i32; } - JetExternalRestoreW(::core::mem::transmute(szcheckpointfilepath), ::core::mem::transmute(szlogpath), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgrstmap)), rgrstmap.len() as _, ::core::mem::transmute(szbackuplogpath), genlow, genhigh, ::core::mem::transmute(pfn)) + JetExternalRestoreW(::core::mem::transmute(szcheckpointfilepath), ::core::mem::transmute(szlogpath), ::core::mem::transmute(rgrstmap.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rgrstmap.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(szbackuplogpath), genlow, genhigh, ::core::mem::transmute(pfn)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`*"] #[inline] @@ -7669,17 +7689,17 @@ where } #[doc = "*Required features: `\"Win32_Storage_Jet\"`*"] #[inline] -pub unsafe fn JetGetAttachInfoA(szzdatabases: ::core::option::Option<&mut i8>, cbmax: u32, pcbactual: ::core::option::Option<&mut u32>) -> i32 { +pub unsafe fn JetGetAttachInfoA(szzdatabases: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn JetGetAttachInfoA(szzdatabases: *mut i8, cbmax: u32, pcbactual: *mut u32) -> i32; } - JetGetAttachInfoA(::core::mem::transmute(szzdatabases), cbmax, ::core::mem::transmute(pcbactual)) + JetGetAttachInfoA(::core::mem::transmute(szzdatabases.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szzdatabases.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetAttachInfoInstanceA<'a, P0>(instance: P0, szzdatabases: ::core::option::Option<&mut i8>, cbmax: u32, pcbactual: ::core::option::Option<&mut u32>) -> i32 +pub unsafe fn JetGetAttachInfoInstanceA<'a, P0>(instance: P0, szzdatabases: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>) -> i32 where P0: ::std::convert::Into, { @@ -7687,12 +7707,12 @@ where extern "system" { fn JetGetAttachInfoInstanceA(instance: super::StructuredStorage::JET_INSTANCE, szzdatabases: *mut i8, cbmax: u32, pcbactual: *mut u32) -> i32; } - JetGetAttachInfoInstanceA(instance.into(), ::core::mem::transmute(szzdatabases), cbmax, ::core::mem::transmute(pcbactual)) + JetGetAttachInfoInstanceA(instance.into(), ::core::mem::transmute(szzdatabases.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szzdatabases.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetAttachInfoInstanceW<'a, P0>(instance: P0, szzdatabases: ::core::option::Option<&mut u16>, cbmax: u32, pcbactual: ::core::option::Option<&mut u32>) -> i32 +pub unsafe fn JetGetAttachInfoInstanceW<'a, P0>(instance: P0, szzdatabases: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>) -> i32 where P0: ::std::convert::Into, { @@ -7700,21 +7720,21 @@ where extern "system" { fn JetGetAttachInfoInstanceW(instance: super::StructuredStorage::JET_INSTANCE, szzdatabases: *mut u16, cbmax: u32, pcbactual: *mut u32) -> i32; } - JetGetAttachInfoInstanceW(instance.into(), ::core::mem::transmute(szzdatabases), cbmax, ::core::mem::transmute(pcbactual)) + JetGetAttachInfoInstanceW(instance.into(), ::core::mem::transmute(szzdatabases.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szzdatabases.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`*"] #[inline] -pub unsafe fn JetGetAttachInfoW(wszzdatabases: ::core::option::Option<&mut u16>, cbmax: u32, pcbactual: ::core::option::Option<&mut u32>) -> i32 { +pub unsafe fn JetGetAttachInfoW(wszzdatabases: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn JetGetAttachInfoW(wszzdatabases: *mut u16, cbmax: u32, pcbactual: *mut u32) -> i32; } - JetGetAttachInfoW(::core::mem::transmute(wszzdatabases), cbmax, ::core::mem::transmute(pcbactual)) + JetGetAttachInfoW(::core::mem::transmute(wszzdatabases.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), wszzdatabases.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetBookmark<'a, P0, P1>(sesid: P0, tableid: P1, pvbookmark: *mut ::core::ffi::c_void, cbmax: u32, pcbactual: ::core::option::Option<&mut u32>) -> i32 +pub unsafe fn JetGetBookmark<'a, P0, P1>(sesid: P0, tableid: P1, pvbookmark: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -7723,12 +7743,12 @@ where extern "system" { fn JetGetBookmark(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pvbookmark: *mut ::core::ffi::c_void, cbmax: u32, pcbactual: *mut u32) -> i32; } - JetGetBookmark(sesid.into(), tableid.into(), ::core::mem::transmute(pvbookmark), cbmax, ::core::mem::transmute(pcbactual)) + JetGetBookmark(sesid.into(), tableid.into(), ::core::mem::transmute(pvbookmark.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvbookmark.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetColumnInfoA<'a, P0>(sesid: P0, dbid: u32, sztablename: &i8, pcolumnnameorid: ::core::option::Option<&i8>, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32 +pub unsafe fn JetGetColumnInfoA<'a, P0>(sesid: P0, dbid: u32, sztablename: &i8, pcolumnnameorid: ::core::option::Option<&i8>, pvresult: &mut [u8], infolevel: u32) -> i32 where P0: ::std::convert::Into, { @@ -7736,12 +7756,12 @@ where extern "system" { fn JetGetColumnInfoA(sesid: super::StructuredStorage::JET_SESID, dbid: u32, sztablename: *const i8, pcolumnnameorid: *const i8, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32; } - JetGetColumnInfoA(sesid.into(), dbid, ::core::mem::transmute(sztablename), ::core::mem::transmute(pcolumnnameorid), ::core::mem::transmute(pvresult), cbmax, infolevel) + JetGetColumnInfoA(sesid.into(), dbid, ::core::mem::transmute(sztablename), ::core::mem::transmute(pcolumnnameorid), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetColumnInfoW<'a, P0>(sesid: P0, dbid: u32, sztablename: &u16, pwcolumnnameorid: ::core::option::Option<&u16>, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32 +pub unsafe fn JetGetColumnInfoW<'a, P0>(sesid: P0, dbid: u32, sztablename: &u16, pwcolumnnameorid: ::core::option::Option<&u16>, pvresult: &mut [u8], infolevel: u32) -> i32 where P0: ::std::convert::Into, { @@ -7749,12 +7769,12 @@ where extern "system" { fn JetGetColumnInfoW(sesid: super::StructuredStorage::JET_SESID, dbid: u32, sztablename: *const u16, pwcolumnnameorid: *const u16, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32; } - JetGetColumnInfoW(sesid.into(), dbid, ::core::mem::transmute(sztablename), ::core::mem::transmute(pwcolumnnameorid), ::core::mem::transmute(pvresult), cbmax, infolevel) + JetGetColumnInfoW(sesid.into(), dbid, ::core::mem::transmute(sztablename), ::core::mem::transmute(pwcolumnnameorid), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetCurrentIndexA<'a, P0, P1>(sesid: P0, tableid: P1, szindexname: &mut i8, cbindexname: u32) -> i32 +pub unsafe fn JetGetCurrentIndexA<'a, P0, P1>(sesid: P0, tableid: P1, szindexname: &mut [u8]) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -7763,12 +7783,12 @@ where extern "system" { fn JetGetCurrentIndexA(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, szindexname: *mut i8, cbindexname: u32) -> i32; } - JetGetCurrentIndexA(sesid.into(), tableid.into(), ::core::mem::transmute(szindexname), cbindexname) + JetGetCurrentIndexA(sesid.into(), tableid.into(), ::core::mem::transmute(szindexname.as_ptr()), szindexname.len() as _) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetCurrentIndexW<'a, P0, P1>(sesid: P0, tableid: P1, szindexname: &mut u16, cbindexname: u32) -> i32 +pub unsafe fn JetGetCurrentIndexW<'a, P0, P1>(sesid: P0, tableid: P1, szindexname: &mut [u8]) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -7777,12 +7797,12 @@ where extern "system" { fn JetGetCurrentIndexW(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, szindexname: *mut u16, cbindexname: u32) -> i32; } - JetGetCurrentIndexW(sesid.into(), tableid.into(), ::core::mem::transmute(szindexname), cbindexname) + JetGetCurrentIndexW(sesid.into(), tableid.into(), ::core::mem::transmute(szindexname.as_ptr()), szindexname.len() as _) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetCursorInfo<'a, P0, P1>(sesid: P0, tableid: P1, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32 +pub unsafe fn JetGetCursorInfo<'a, P0, P1>(sesid: P0, tableid: P1, pvresult: &mut [u8], infolevel: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -7791,30 +7811,30 @@ where extern "system" { fn JetGetCursorInfo(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32; } - JetGetCursorInfo(sesid.into(), tableid.into(), ::core::mem::transmute(pvresult), cbmax, infolevel) + JetGetCursorInfo(sesid.into(), tableid.into(), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`*"] #[inline] -pub unsafe fn JetGetDatabaseFileInfoA(szdatabasename: &i8, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32 { +pub unsafe fn JetGetDatabaseFileInfoA(szdatabasename: &i8, pvresult: &mut [u8], infolevel: u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn JetGetDatabaseFileInfoA(szdatabasename: *const i8, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32; } - JetGetDatabaseFileInfoA(::core::mem::transmute(szdatabasename), ::core::mem::transmute(pvresult), cbmax, infolevel) + JetGetDatabaseFileInfoA(::core::mem::transmute(szdatabasename), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`*"] #[inline] -pub unsafe fn JetGetDatabaseFileInfoW(szdatabasename: &u16, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32 { +pub unsafe fn JetGetDatabaseFileInfoW(szdatabasename: &u16, pvresult: &mut [u8], infolevel: u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn JetGetDatabaseFileInfoW(szdatabasename: *const u16, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32; } - JetGetDatabaseFileInfoW(::core::mem::transmute(szdatabasename), ::core::mem::transmute(pvresult), cbmax, infolevel) + JetGetDatabaseFileInfoW(::core::mem::transmute(szdatabasename), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetDatabaseInfoA<'a, P0>(sesid: P0, dbid: u32, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32 +pub unsafe fn JetGetDatabaseInfoA<'a, P0>(sesid: P0, dbid: u32, pvresult: &mut [u8], infolevel: u32) -> i32 where P0: ::std::convert::Into, { @@ -7822,12 +7842,12 @@ where extern "system" { fn JetGetDatabaseInfoA(sesid: super::StructuredStorage::JET_SESID, dbid: u32, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32; } - JetGetDatabaseInfoA(sesid.into(), dbid, ::core::mem::transmute(pvresult), cbmax, infolevel) + JetGetDatabaseInfoA(sesid.into(), dbid, ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetDatabaseInfoW<'a, P0>(sesid: P0, dbid: u32, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32 +pub unsafe fn JetGetDatabaseInfoW<'a, P0>(sesid: P0, dbid: u32, pvresult: &mut [u8], infolevel: u32) -> i32 where P0: ::std::convert::Into, { @@ -7835,21 +7855,21 @@ where extern "system" { fn JetGetDatabaseInfoW(sesid: super::StructuredStorage::JET_SESID, dbid: u32, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32; } - JetGetDatabaseInfoW(sesid.into(), dbid, ::core::mem::transmute(pvresult), cbmax, infolevel) + JetGetDatabaseInfoW(sesid.into(), dbid, ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`*"] #[inline] -pub unsafe fn JetGetErrorInfoW(pvcontext: *const ::core::ffi::c_void, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32, grbit: u32) -> i32 { +pub unsafe fn JetGetErrorInfoW(pvcontext: *const ::core::ffi::c_void, pvresult: &mut [u8], infolevel: u32, grbit: u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn JetGetErrorInfoW(pvcontext: *const ::core::ffi::c_void, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32, grbit: u32) -> i32; } - JetGetErrorInfoW(::core::mem::transmute(pvcontext), ::core::mem::transmute(pvresult), cbmax, infolevel, grbit) + JetGetErrorInfoW(::core::mem::transmute(pvcontext), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel, grbit) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetIndexInfoA<'a, P0>(sesid: P0, dbid: u32, sztablename: &i8, szindexname: ::core::option::Option<&i8>, pvresult: *mut ::core::ffi::c_void, cbresult: u32, infolevel: u32) -> i32 +pub unsafe fn JetGetIndexInfoA<'a, P0>(sesid: P0, dbid: u32, sztablename: &i8, szindexname: ::core::option::Option<&i8>, pvresult: &mut [u8], infolevel: u32) -> i32 where P0: ::std::convert::Into, { @@ -7857,12 +7877,12 @@ where extern "system" { fn JetGetIndexInfoA(sesid: super::StructuredStorage::JET_SESID, dbid: u32, sztablename: *const i8, szindexname: *const i8, pvresult: *mut ::core::ffi::c_void, cbresult: u32, infolevel: u32) -> i32; } - JetGetIndexInfoA(sesid.into(), dbid, ::core::mem::transmute(sztablename), ::core::mem::transmute(szindexname), ::core::mem::transmute(pvresult), cbresult, infolevel) + JetGetIndexInfoA(sesid.into(), dbid, ::core::mem::transmute(sztablename), ::core::mem::transmute(szindexname), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetIndexInfoW<'a, P0>(sesid: P0, dbid: u32, sztablename: &u16, szindexname: ::core::option::Option<&u16>, pvresult: *mut ::core::ffi::c_void, cbresult: u32, infolevel: u32) -> i32 +pub unsafe fn JetGetIndexInfoW<'a, P0>(sesid: P0, dbid: u32, sztablename: &u16, szindexname: ::core::option::Option<&u16>, pvresult: &mut [u8], infolevel: u32) -> i32 where P0: ::std::convert::Into, { @@ -7870,7 +7890,7 @@ where extern "system" { fn JetGetIndexInfoW(sesid: super::StructuredStorage::JET_SESID, dbid: u32, sztablename: *const u16, szindexname: *const u16, pvresult: *mut ::core::ffi::c_void, cbresult: u32, infolevel: u32) -> i32; } - JetGetIndexInfoW(sesid.into(), dbid, ::core::mem::transmute(sztablename), ::core::mem::transmute(szindexname), ::core::mem::transmute(pvresult), cbresult, infolevel) + JetGetIndexInfoW(sesid.into(), dbid, ::core::mem::transmute(sztablename), ::core::mem::transmute(szindexname), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -7895,7 +7915,7 @@ pub unsafe fn JetGetInstanceInfoW(pcinstanceinfo: &mut u32, painstanceinfo: &mut #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetInstanceMiscInfo<'a, P0>(instance: P0, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32 +pub unsafe fn JetGetInstanceMiscInfo<'a, P0>(instance: P0, pvresult: &mut [u8], infolevel: u32) -> i32 where P0: ::std::convert::Into, { @@ -7903,7 +7923,7 @@ where extern "system" { fn JetGetInstanceMiscInfo(instance: super::StructuredStorage::JET_INSTANCE, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32; } - JetGetInstanceMiscInfo(instance.into(), ::core::mem::transmute(pvresult), cbmax, infolevel) + JetGetInstanceMiscInfo(instance.into(), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -7935,17 +7955,17 @@ where } #[doc = "*Required features: `\"Win32_Storage_Jet\"`*"] #[inline] -pub unsafe fn JetGetLogInfoA(szzlogs: ::core::option::Option<&mut i8>, cbmax: u32, pcbactual: ::core::option::Option<&mut u32>) -> i32 { +pub unsafe fn JetGetLogInfoA(szzlogs: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn JetGetLogInfoA(szzlogs: *mut i8, cbmax: u32, pcbactual: *mut u32) -> i32; } - JetGetLogInfoA(::core::mem::transmute(szzlogs), cbmax, ::core::mem::transmute(pcbactual)) + JetGetLogInfoA(::core::mem::transmute(szzlogs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szzlogs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_StructuredStorage"))] #[inline] -pub unsafe fn JetGetLogInfoInstance2A<'a, P0>(instance: P0, szzlogs: ::core::option::Option<&mut i8>, cbmax: u32, pcbactual: ::core::option::Option<&mut u32>, ploginfo: ::core::option::Option<&mut JET_LOGINFO_A>) -> i32 +pub unsafe fn JetGetLogInfoInstance2A<'a, P0>(instance: P0, szzlogs: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>, ploginfo: ::core::option::Option<&mut JET_LOGINFO_A>) -> i32 where P0: ::std::convert::Into, { @@ -7953,12 +7973,12 @@ where extern "system" { fn JetGetLogInfoInstance2A(instance: super::StructuredStorage::JET_INSTANCE, szzlogs: *mut i8, cbmax: u32, pcbactual: *mut u32, ploginfo: *mut JET_LOGINFO_A) -> i32; } - JetGetLogInfoInstance2A(instance.into(), ::core::mem::transmute(szzlogs), cbmax, ::core::mem::transmute(pcbactual), ::core::mem::transmute(ploginfo)) + JetGetLogInfoInstance2A(instance.into(), ::core::mem::transmute(szzlogs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szzlogs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual), ::core::mem::transmute(ploginfo)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetLogInfoInstance2W<'a, P0>(instance: P0, wszzlogs: ::core::option::Option<&mut u16>, cbmax: u32, pcbactual: ::core::option::Option<&mut u32>, ploginfo: ::core::option::Option<&mut JET_LOGINFO_W>) -> i32 +pub unsafe fn JetGetLogInfoInstance2W<'a, P0>(instance: P0, wszzlogs: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>, ploginfo: ::core::option::Option<&mut JET_LOGINFO_W>) -> i32 where P0: ::std::convert::Into, { @@ -7966,12 +7986,12 @@ where extern "system" { fn JetGetLogInfoInstance2W(instance: super::StructuredStorage::JET_INSTANCE, wszzlogs: *mut u16, cbmax: u32, pcbactual: *mut u32, ploginfo: *mut JET_LOGINFO_W) -> i32; } - JetGetLogInfoInstance2W(instance.into(), ::core::mem::transmute(wszzlogs), cbmax, ::core::mem::transmute(pcbactual), ::core::mem::transmute(ploginfo)) + JetGetLogInfoInstance2W(instance.into(), ::core::mem::transmute(wszzlogs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), wszzlogs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual), ::core::mem::transmute(ploginfo)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetLogInfoInstanceA<'a, P0>(instance: P0, szzlogs: ::core::option::Option<&mut i8>, cbmax: u32, pcbactual: ::core::option::Option<&mut u32>) -> i32 +pub unsafe fn JetGetLogInfoInstanceA<'a, P0>(instance: P0, szzlogs: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>) -> i32 where P0: ::std::convert::Into, { @@ -7979,12 +7999,12 @@ where extern "system" { fn JetGetLogInfoInstanceA(instance: super::StructuredStorage::JET_INSTANCE, szzlogs: *mut i8, cbmax: u32, pcbactual: *mut u32) -> i32; } - JetGetLogInfoInstanceA(instance.into(), ::core::mem::transmute(szzlogs), cbmax, ::core::mem::transmute(pcbactual)) + JetGetLogInfoInstanceA(instance.into(), ::core::mem::transmute(szzlogs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szzlogs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetLogInfoInstanceW<'a, P0>(instance: P0, wszzlogs: ::core::option::Option<&mut u16>, cbmax: u32, pcbactual: ::core::option::Option<&mut u32>) -> i32 +pub unsafe fn JetGetLogInfoInstanceW<'a, P0>(instance: P0, wszzlogs: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>) -> i32 where P0: ::std::convert::Into, { @@ -7992,21 +8012,21 @@ where extern "system" { fn JetGetLogInfoInstanceW(instance: super::StructuredStorage::JET_INSTANCE, wszzlogs: *mut u16, cbmax: u32, pcbactual: *mut u32) -> i32; } - JetGetLogInfoInstanceW(instance.into(), ::core::mem::transmute(wszzlogs), cbmax, ::core::mem::transmute(pcbactual)) + JetGetLogInfoInstanceW(instance.into(), ::core::mem::transmute(wszzlogs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), wszzlogs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`*"] #[inline] -pub unsafe fn JetGetLogInfoW(szzlogs: ::core::option::Option<&mut u16>, cbmax: u32, pcbactual: ::core::option::Option<&mut u32>) -> i32 { +pub unsafe fn JetGetLogInfoW(szzlogs: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn JetGetLogInfoW(szzlogs: *mut u16, cbmax: u32, pcbactual: *mut u32) -> i32; } - JetGetLogInfoW(::core::mem::transmute(szzlogs), cbmax, ::core::mem::transmute(pcbactual)) + JetGetLogInfoW(::core::mem::transmute(szzlogs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szzlogs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetObjectInfoA<'a, P0>(sesid: P0, dbid: u32, objtyp: u32, szcontainername: ::core::option::Option<&i8>, szobjectname: ::core::option::Option<&i8>, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32 +pub unsafe fn JetGetObjectInfoA<'a, P0>(sesid: P0, dbid: u32, objtyp: u32, szcontainername: ::core::option::Option<&i8>, szobjectname: ::core::option::Option<&i8>, pvresult: &mut [u8], infolevel: u32) -> i32 where P0: ::std::convert::Into, { @@ -8014,12 +8034,12 @@ where extern "system" { fn JetGetObjectInfoA(sesid: super::StructuredStorage::JET_SESID, dbid: u32, objtyp: u32, szcontainername: *const i8, szobjectname: *const i8, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32; } - JetGetObjectInfoA(sesid.into(), dbid, objtyp, ::core::mem::transmute(szcontainername), ::core::mem::transmute(szobjectname), ::core::mem::transmute(pvresult), cbmax, infolevel) + JetGetObjectInfoA(sesid.into(), dbid, objtyp, ::core::mem::transmute(szcontainername), ::core::mem::transmute(szobjectname), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetObjectInfoW<'a, P0>(sesid: P0, dbid: u32, objtyp: u32, szcontainername: ::core::option::Option<&u16>, szobjectname: ::core::option::Option<&u16>, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32 +pub unsafe fn JetGetObjectInfoW<'a, P0>(sesid: P0, dbid: u32, objtyp: u32, szcontainername: ::core::option::Option<&u16>, szobjectname: ::core::option::Option<&u16>, pvresult: &mut [u8], infolevel: u32) -> i32 where P0: ::std::convert::Into, { @@ -8027,12 +8047,12 @@ where extern "system" { fn JetGetObjectInfoW(sesid: super::StructuredStorage::JET_SESID, dbid: u32, objtyp: u32, szcontainername: *const u16, szobjectname: *const u16, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32; } - JetGetObjectInfoW(sesid.into(), dbid, objtyp, ::core::mem::transmute(szcontainername), ::core::mem::transmute(szobjectname), ::core::mem::transmute(pvresult), cbmax, infolevel) + JetGetObjectInfoW(sesid.into(), dbid, objtyp, ::core::mem::transmute(szcontainername), ::core::mem::transmute(szobjectname), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetRecordPosition<'a, P0, P1>(sesid: P0, tableid: P1, precpos: &mut JET_RECPOS, cbrecpos: u32) -> i32 +pub unsafe fn JetGetRecordPosition<'a, P0, P1>(sesid: P0, tableid: P1, precpos: &mut [u8]) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8041,7 +8061,7 @@ where extern "system" { fn JetGetRecordPosition(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, precpos: *mut JET_RECPOS, cbrecpos: u32) -> i32; } - JetGetRecordPosition(sesid.into(), tableid.into(), ::core::mem::transmute(precpos), cbrecpos) + JetGetRecordPosition(sesid.into(), tableid.into(), ::core::mem::transmute(precpos.as_ptr()), precpos.len() as _) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -8074,7 +8094,7 @@ where #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetSecondaryIndexBookmark<'a, P0, P1>(sesid: P0, tableid: P1, pvsecondarykey: *mut ::core::ffi::c_void, cbsecondarykeymax: u32, pcbsecondarykeyactual: ::core::option::Option<&mut u32>, pvprimarybookmark: *mut ::core::ffi::c_void, cbprimarybookmarkmax: u32, pcbprimarybookmarkactual: ::core::option::Option<&mut u32>, grbit: u32) -> i32 +pub unsafe fn JetGetSecondaryIndexBookmark<'a, P0, P1>(sesid: P0, tableid: P1, pvsecondarykey: ::core::option::Option<&mut [u8]>, pcbsecondarykeyactual: ::core::option::Option<&mut u32>, pvprimarybookmark: ::core::option::Option<&mut [u8]>, pcbprimarybookmarkactual: ::core::option::Option<&mut u32>, grbit: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8083,7 +8103,7 @@ where extern "system" { fn JetGetSecondaryIndexBookmark(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pvsecondarykey: *mut ::core::ffi::c_void, cbsecondarykeymax: u32, pcbsecondarykeyactual: *mut u32, pvprimarybookmark: *mut ::core::ffi::c_void, cbprimarybookmarkmax: u32, pcbprimarybookmarkactual: *mut u32, grbit: u32) -> i32; } - JetGetSecondaryIndexBookmark(sesid.into(), tableid.into(), ::core::mem::transmute(pvsecondarykey), cbsecondarykeymax, ::core::mem::transmute(pcbsecondarykeyactual), ::core::mem::transmute(pvprimarybookmark), cbprimarybookmarkmax, ::core::mem::transmute(pcbprimarybookmarkactual), grbit) + JetGetSecondaryIndexBookmark(sesid.into(), tableid.into(), ::core::mem::transmute(pvsecondarykey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvsecondarykey.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbsecondarykeyactual), ::core::mem::transmute(pvprimarybookmark.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvprimarybookmark.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbprimarybookmarkactual), grbit) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -8096,12 +8116,12 @@ where extern "system" { fn JetGetSessionParameter(sesid: super::StructuredStorage::JET_SESID, sesparamid: u32, pvparam: *mut ::core::ffi::c_void, cbparammax: u32, pcbparamactual: *mut u32) -> i32; } - JetGetSessionParameter(sesid.into(), sesparamid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pvparam)), pvparam.len() as _, ::core::mem::transmute(pcbparamactual)) + JetGetSessionParameter(sesid.into(), sesparamid, ::core::mem::transmute(pvparam.as_ptr()), pvparam.len() as _, ::core::mem::transmute(pcbparamactual)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetSystemParameterA<'a, P0, P1>(instance: P0, sesid: P1, paramid: u32, plparam: ::core::option::Option<&mut super::StructuredStorage::JET_API_PTR>, szparam: ::core::option::Option<&mut i8>, cbmax: u32) -> i32 +pub unsafe fn JetGetSystemParameterA<'a, P0, P1>(instance: P0, sesid: P1, paramid: u32, plparam: ::core::option::Option<&mut super::StructuredStorage::JET_API_PTR>, szparam: ::core::option::Option<&mut [u8]>) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8110,12 +8130,12 @@ where extern "system" { fn JetGetSystemParameterA(instance: super::StructuredStorage::JET_INSTANCE, sesid: super::StructuredStorage::JET_SESID, paramid: u32, plparam: *mut super::StructuredStorage::JET_API_PTR, szparam: *mut i8, cbmax: u32) -> i32; } - JetGetSystemParameterA(instance.into(), sesid.into(), paramid, ::core::mem::transmute(plparam), ::core::mem::transmute(szparam), cbmax) + JetGetSystemParameterA(instance.into(), sesid.into(), paramid, ::core::mem::transmute(plparam), ::core::mem::transmute(szparam.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szparam.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetSystemParameterW<'a, P0, P1>(instance: P0, sesid: P1, paramid: u32, plparam: ::core::option::Option<&mut super::StructuredStorage::JET_API_PTR>, szparam: ::core::option::Option<&mut u16>, cbmax: u32) -> i32 +pub unsafe fn JetGetSystemParameterW<'a, P0, P1>(instance: P0, sesid: P1, paramid: u32, plparam: ::core::option::Option<&mut super::StructuredStorage::JET_API_PTR>, szparam: ::core::option::Option<&mut [u8]>) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8124,12 +8144,12 @@ where extern "system" { fn JetGetSystemParameterW(instance: super::StructuredStorage::JET_INSTANCE, sesid: super::StructuredStorage::JET_SESID, paramid: u32, plparam: *mut super::StructuredStorage::JET_API_PTR, szparam: *mut u16, cbmax: u32) -> i32; } - JetGetSystemParameterW(instance.into(), sesid.into(), paramid, ::core::mem::transmute(plparam), ::core::mem::transmute(szparam), cbmax) + JetGetSystemParameterW(instance.into(), sesid.into(), paramid, ::core::mem::transmute(plparam), ::core::mem::transmute(szparam.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szparam.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetTableColumnInfoA<'a, P0, P1>(sesid: P0, tableid: P1, szcolumnname: ::core::option::Option<&i8>, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32 +pub unsafe fn JetGetTableColumnInfoA<'a, P0, P1>(sesid: P0, tableid: P1, szcolumnname: ::core::option::Option<&i8>, pvresult: &mut [u8], infolevel: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8138,12 +8158,12 @@ where extern "system" { fn JetGetTableColumnInfoA(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, szcolumnname: *const i8, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32; } - JetGetTableColumnInfoA(sesid.into(), tableid.into(), ::core::mem::transmute(szcolumnname), ::core::mem::transmute(pvresult), cbmax, infolevel) + JetGetTableColumnInfoA(sesid.into(), tableid.into(), ::core::mem::transmute(szcolumnname), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetTableColumnInfoW<'a, P0, P1>(sesid: P0, tableid: P1, szcolumnname: ::core::option::Option<&u16>, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32 +pub unsafe fn JetGetTableColumnInfoW<'a, P0, P1>(sesid: P0, tableid: P1, szcolumnname: ::core::option::Option<&u16>, pvresult: &mut [u8], infolevel: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8152,12 +8172,12 @@ where extern "system" { fn JetGetTableColumnInfoW(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, szcolumnname: *const u16, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32; } - JetGetTableColumnInfoW(sesid.into(), tableid.into(), ::core::mem::transmute(szcolumnname), ::core::mem::transmute(pvresult), cbmax, infolevel) + JetGetTableColumnInfoW(sesid.into(), tableid.into(), ::core::mem::transmute(szcolumnname), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetTableIndexInfoA<'a, P0, P1>(sesid: P0, tableid: P1, szindexname: ::core::option::Option<&i8>, pvresult: *mut ::core::ffi::c_void, cbresult: u32, infolevel: u32) -> i32 +pub unsafe fn JetGetTableIndexInfoA<'a, P0, P1>(sesid: P0, tableid: P1, szindexname: ::core::option::Option<&i8>, pvresult: &mut [u8], infolevel: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8166,12 +8186,12 @@ where extern "system" { fn JetGetTableIndexInfoA(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, szindexname: *const i8, pvresult: *mut ::core::ffi::c_void, cbresult: u32, infolevel: u32) -> i32; } - JetGetTableIndexInfoA(sesid.into(), tableid.into(), ::core::mem::transmute(szindexname), ::core::mem::transmute(pvresult), cbresult, infolevel) + JetGetTableIndexInfoA(sesid.into(), tableid.into(), ::core::mem::transmute(szindexname), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetTableIndexInfoW<'a, P0, P1>(sesid: P0, tableid: P1, szindexname: ::core::option::Option<&u16>, pvresult: *mut ::core::ffi::c_void, cbresult: u32, infolevel: u32) -> i32 +pub unsafe fn JetGetTableIndexInfoW<'a, P0, P1>(sesid: P0, tableid: P1, szindexname: ::core::option::Option<&u16>, pvresult: &mut [u8], infolevel: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8180,12 +8200,12 @@ where extern "system" { fn JetGetTableIndexInfoW(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, szindexname: *const u16, pvresult: *mut ::core::ffi::c_void, cbresult: u32, infolevel: u32) -> i32; } - JetGetTableIndexInfoW(sesid.into(), tableid.into(), ::core::mem::transmute(szindexname), ::core::mem::transmute(pvresult), cbresult, infolevel) + JetGetTableIndexInfoW(sesid.into(), tableid.into(), ::core::mem::transmute(szindexname), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetTableInfoA<'a, P0, P1>(sesid: P0, tableid: P1, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32 +pub unsafe fn JetGetTableInfoA<'a, P0, P1>(sesid: P0, tableid: P1, pvresult: &mut [u8], infolevel: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8194,12 +8214,12 @@ where extern "system" { fn JetGetTableInfoA(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32; } - JetGetTableInfoA(sesid.into(), tableid.into(), ::core::mem::transmute(pvresult), cbmax, infolevel) + JetGetTableInfoA(sesid.into(), tableid.into(), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetTableInfoW<'a, P0, P1>(sesid: P0, tableid: P1, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32 +pub unsafe fn JetGetTableInfoW<'a, P0, P1>(sesid: P0, tableid: P1, pvresult: &mut [u8], infolevel: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8208,21 +8228,21 @@ where extern "system" { fn JetGetTableInfoW(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pvresult: *mut ::core::ffi::c_void, cbmax: u32, infolevel: u32) -> i32; } - JetGetTableInfoW(sesid.into(), tableid.into(), ::core::mem::transmute(pvresult), cbmax, infolevel) + JetGetTableInfoW(sesid.into(), tableid.into(), ::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _, infolevel) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`*"] #[inline] -pub unsafe fn JetGetThreadStats(pvresult: *mut ::core::ffi::c_void, cbmax: u32) -> i32 { +pub unsafe fn JetGetThreadStats(pvresult: &mut [u8]) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn JetGetThreadStats(pvresult: *mut ::core::ffi::c_void, cbmax: u32) -> i32; } - JetGetThreadStats(::core::mem::transmute(pvresult), cbmax) + JetGetThreadStats(::core::mem::transmute(pvresult.as_ptr()), pvresult.len() as _) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetTruncateLogInfoInstanceA<'a, P0>(instance: P0, szzlogs: ::core::option::Option<&mut i8>, cbmax: u32, pcbactual: ::core::option::Option<&mut u32>) -> i32 +pub unsafe fn JetGetTruncateLogInfoInstanceA<'a, P0>(instance: P0, szzlogs: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>) -> i32 where P0: ::std::convert::Into, { @@ -8230,12 +8250,12 @@ where extern "system" { fn JetGetTruncateLogInfoInstanceA(instance: super::StructuredStorage::JET_INSTANCE, szzlogs: *mut i8, cbmax: u32, pcbactual: *mut u32) -> i32; } - JetGetTruncateLogInfoInstanceA(instance.into(), ::core::mem::transmute(szzlogs), cbmax, ::core::mem::transmute(pcbactual)) + JetGetTruncateLogInfoInstanceA(instance.into(), ::core::mem::transmute(szzlogs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szzlogs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGetTruncateLogInfoInstanceW<'a, P0>(instance: P0, wszzlogs: ::core::option::Option<&mut u16>, cbmax: u32, pcbactual: ::core::option::Option<&mut u32>) -> i32 +pub unsafe fn JetGetTruncateLogInfoInstanceW<'a, P0>(instance: P0, wszzlogs: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>) -> i32 where P0: ::std::convert::Into, { @@ -8243,7 +8263,7 @@ where extern "system" { fn JetGetTruncateLogInfoInstanceW(instance: super::StructuredStorage::JET_INSTANCE, wszzlogs: *mut u16, cbmax: u32, pcbactual: *mut u32) -> i32; } - JetGetTruncateLogInfoInstanceW(instance.into(), ::core::mem::transmute(wszzlogs), cbmax, ::core::mem::transmute(pcbactual)) + JetGetTruncateLogInfoInstanceW(instance.into(), ::core::mem::transmute(wszzlogs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), wszzlogs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -8261,7 +8281,7 @@ where #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGotoBookmark<'a, P0, P1>(sesid: P0, tableid: P1, pvbookmark: *const ::core::ffi::c_void, cbbookmark: u32) -> i32 +pub unsafe fn JetGotoBookmark<'a, P0, P1>(sesid: P0, tableid: P1, pvbookmark: &[u8]) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8270,7 +8290,7 @@ where extern "system" { fn JetGotoBookmark(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pvbookmark: *const ::core::ffi::c_void, cbbookmark: u32) -> i32; } - JetGotoBookmark(sesid.into(), tableid.into(), ::core::mem::transmute(pvbookmark), cbbookmark) + JetGotoBookmark(sesid.into(), tableid.into(), ::core::mem::transmute(pvbookmark.as_ptr()), pvbookmark.len() as _) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -8289,7 +8309,7 @@ where #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetGotoSecondaryIndexBookmark<'a, P0, P1>(sesid: P0, tableid: P1, pvsecondarykey: *const ::core::ffi::c_void, cbsecondarykey: u32, pvprimarybookmark: *const ::core::ffi::c_void, cbprimarybookmark: u32, grbit: u32) -> i32 +pub unsafe fn JetGotoSecondaryIndexBookmark<'a, P0, P1>(sesid: P0, tableid: P1, pvsecondarykey: &[u8], pvprimarybookmark: ::core::option::Option<&[u8]>, grbit: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8298,7 +8318,7 @@ where extern "system" { fn JetGotoSecondaryIndexBookmark(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pvsecondarykey: *const ::core::ffi::c_void, cbsecondarykey: u32, pvprimarybookmark: *const ::core::ffi::c_void, cbprimarybookmark: u32, grbit: u32) -> i32; } - JetGotoSecondaryIndexBookmark(sesid.into(), tableid.into(), ::core::mem::transmute(pvsecondarykey), cbsecondarykey, ::core::mem::transmute(pvprimarybookmark), cbprimarybookmark, grbit) + JetGotoSecondaryIndexBookmark(sesid.into(), tableid.into(), ::core::mem::transmute(pvsecondarykey.as_ptr()), pvsecondarykey.len() as _, ::core::mem::transmute(pvprimarybookmark.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvprimarybookmark.as_deref().map_or(0, |slice| slice.len() as _), grbit) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -8391,12 +8411,12 @@ where extern "system" { fn JetIntersectIndexes(sesid: super::StructuredStorage::JET_SESID, rgindexrange: *const JET_INDEXRANGE, cindexrange: u32, precordlist: *mut JET_RECORDLIST, grbit: u32) -> i32; } - JetIntersectIndexes(sesid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgindexrange)), rgindexrange.len() as _, ::core::mem::transmute(precordlist), grbit) + JetIntersectIndexes(sesid.into(), ::core::mem::transmute(rgindexrange.as_ptr()), rgindexrange.len() as _, ::core::mem::transmute(precordlist), grbit) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetMakeKey<'a, P0, P1>(sesid: P0, tableid: P1, pvdata: *const ::core::ffi::c_void, cbdata: u32, grbit: u32) -> i32 +pub unsafe fn JetMakeKey<'a, P0, P1>(sesid: P0, tableid: P1, pvdata: ::core::option::Option<&[u8]>, grbit: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8405,7 +8425,7 @@ where extern "system" { fn JetMakeKey(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pvdata: *const ::core::ffi::c_void, cbdata: u32, grbit: u32) -> i32; } - JetMakeKey(sesid.into(), tableid.into(), ::core::mem::transmute(pvdata), cbdata, grbit) + JetMakeKey(sesid.into(), tableid.into(), ::core::mem::transmute(pvdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvdata.as_deref().map_or(0, |slice| slice.len() as _), grbit) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -8633,7 +8653,7 @@ pub unsafe fn JetOpenFileW(szfilename: &u16, phffile: &mut super::StructuredStor #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetOpenTableA<'a, P0>(sesid: P0, dbid: u32, sztablename: &i8, pvparameters: *const ::core::ffi::c_void, cbparameters: u32, grbit: u32, ptableid: &mut super::StructuredStorage::JET_TABLEID) -> i32 +pub unsafe fn JetOpenTableA<'a, P0>(sesid: P0, dbid: u32, sztablename: &i8, pvparameters: ::core::option::Option<&[u8]>, grbit: u32, ptableid: &mut super::StructuredStorage::JET_TABLEID) -> i32 where P0: ::std::convert::Into, { @@ -8641,12 +8661,12 @@ where extern "system" { fn JetOpenTableA(sesid: super::StructuredStorage::JET_SESID, dbid: u32, sztablename: *const i8, pvparameters: *const ::core::ffi::c_void, cbparameters: u32, grbit: u32, ptableid: *mut super::StructuredStorage::JET_TABLEID) -> i32; } - JetOpenTableA(sesid.into(), dbid, ::core::mem::transmute(sztablename), ::core::mem::transmute(pvparameters), cbparameters, grbit, ::core::mem::transmute(ptableid)) + JetOpenTableA(sesid.into(), dbid, ::core::mem::transmute(sztablename), ::core::mem::transmute(pvparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvparameters.as_deref().map_or(0, |slice| slice.len() as _), grbit, ::core::mem::transmute(ptableid)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetOpenTableW<'a, P0>(sesid: P0, dbid: u32, sztablename: &u16, pvparameters: *const ::core::ffi::c_void, cbparameters: u32, grbit: u32, ptableid: &mut super::StructuredStorage::JET_TABLEID) -> i32 +pub unsafe fn JetOpenTableW<'a, P0>(sesid: P0, dbid: u32, sztablename: &u16, pvparameters: ::core::option::Option<&[u8]>, grbit: u32, ptableid: &mut super::StructuredStorage::JET_TABLEID) -> i32 where P0: ::std::convert::Into, { @@ -8654,12 +8674,12 @@ where extern "system" { fn JetOpenTableW(sesid: super::StructuredStorage::JET_SESID, dbid: u32, sztablename: *const u16, pvparameters: *const ::core::ffi::c_void, cbparameters: u32, grbit: u32, ptableid: *mut super::StructuredStorage::JET_TABLEID) -> i32; } - JetOpenTableW(sesid.into(), dbid, ::core::mem::transmute(sztablename), ::core::mem::transmute(pvparameters), cbparameters, grbit, ::core::mem::transmute(ptableid)) + JetOpenTableW(sesid.into(), dbid, ::core::mem::transmute(sztablename), ::core::mem::transmute(pvparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvparameters.as_deref().map_or(0, |slice| slice.len() as _), grbit, ::core::mem::transmute(ptableid)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetOpenTempTable<'a, P0>(sesid: P0, prgcolumndef: &JET_COLUMNDEF, ccolumn: u32, grbit: u32, ptableid: &mut super::StructuredStorage::JET_TABLEID, prgcolumnid: &mut u32) -> i32 +pub unsafe fn JetOpenTempTable<'a, P0>(sesid: P0, prgcolumndef: *const JET_COLUMNDEF, ccolumn: u32, grbit: u32, ptableid: &mut super::StructuredStorage::JET_TABLEID, prgcolumnid: *mut u32) -> i32 where P0: ::std::convert::Into, { @@ -8672,7 +8692,7 @@ where #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetOpenTempTable2<'a, P0>(sesid: P0, prgcolumndef: &JET_COLUMNDEF, ccolumn: u32, lcid: u32, grbit: u32, ptableid: &mut super::StructuredStorage::JET_TABLEID, prgcolumnid: &mut u32) -> i32 +pub unsafe fn JetOpenTempTable2<'a, P0>(sesid: P0, prgcolumndef: *const JET_COLUMNDEF, ccolumn: u32, lcid: u32, grbit: u32, ptableid: &mut super::StructuredStorage::JET_TABLEID, prgcolumnid: *mut u32) -> i32 where P0: ::std::convert::Into, { @@ -8685,7 +8705,7 @@ where #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetOpenTempTable3<'a, P0>(sesid: P0, prgcolumndef: &JET_COLUMNDEF, ccolumn: u32, pidxunicode: ::core::option::Option<&JET_UNICODEINDEX>, grbit: u32, ptableid: &mut super::StructuredStorage::JET_TABLEID, prgcolumnid: &mut u32) -> i32 +pub unsafe fn JetOpenTempTable3<'a, P0>(sesid: P0, prgcolumndef: *const JET_COLUMNDEF, ccolumn: u32, pidxunicode: ::core::option::Option<&JET_UNICODEINDEX>, grbit: u32, ptableid: &mut super::StructuredStorage::JET_TABLEID, prgcolumnid: *mut u32) -> i32 where P0: ::std::convert::Into, { @@ -8747,12 +8767,12 @@ where extern "system" { fn JetPrereadIndexRanges(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, rgindexranges: *const JET_INDEX_RANGE, cindexranges: u32, pcrangespreread: *mut u32, rgcolumnidpreread: *const u32, ccolumnidpreread: u32, grbit: u32) -> i32; } - JetPrereadIndexRanges(sesid.into(), tableid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgindexranges)), rgindexranges.len() as _, ::core::mem::transmute(pcrangespreread), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcolumnidpreread)), rgcolumnidpreread.len() as _, grbit) + JetPrereadIndexRanges(sesid.into(), tableid.into(), ::core::mem::transmute(rgindexranges.as_ptr()), rgindexranges.len() as _, ::core::mem::transmute(pcrangespreread), ::core::mem::transmute(rgcolumnidpreread.as_ptr()), rgcolumnidpreread.len() as _, grbit) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetPrereadKeys<'a, P0, P1>(sesid: P0, tableid: P1, rgpvkeys: *const *const ::core::ffi::c_void, rgcbkeys: &u32, ckeys: i32, pckeyspreread: ::core::option::Option<&mut i32>, grbit: u32) -> i32 +pub unsafe fn JetPrereadKeys<'a, P0, P1>(sesid: P0, tableid: P1, rgpvkeys: *const *const ::core::ffi::c_void, rgcbkeys: *const u32, ckeys: i32, pckeyspreread: ::core::option::Option<&mut i32>, grbit: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8766,7 +8786,7 @@ where #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetReadFile<'a, P0>(hffile: P0, pv: *mut ::core::ffi::c_void, cb: u32, pcbactual: ::core::option::Option<&mut u32>) -> i32 +pub unsafe fn JetReadFile<'a, P0>(hffile: P0, pv: &mut [u8], pcbactual: ::core::option::Option<&mut u32>) -> i32 where P0: ::std::convert::Into, { @@ -8774,12 +8794,12 @@ where extern "system" { fn JetReadFile(hffile: super::StructuredStorage::JET_HANDLE, pv: *mut ::core::ffi::c_void, cb: u32, pcbactual: *mut u32) -> i32; } - JetReadFile(hffile.into(), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbactual)) + JetReadFile(hffile.into(), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbactual)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetReadFileInstance<'a, P0, P1>(instance: P0, hffile: P1, pv: *mut ::core::ffi::c_void, cb: u32, pcbactual: ::core::option::Option<&mut u32>) -> i32 +pub unsafe fn JetReadFileInstance<'a, P0, P1>(instance: P0, hffile: P1, pv: &mut [u8], pcbactual: ::core::option::Option<&mut u32>) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8788,7 +8808,7 @@ where extern "system" { fn JetReadFileInstance(instance: super::StructuredStorage::JET_INSTANCE, hffile: super::StructuredStorage::JET_HANDLE, pv: *mut ::core::ffi::c_void, cb: u32, pcbactual: *mut u32) -> i32; } - JetReadFileInstance(instance.into(), hffile.into(), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbactual)) + JetReadFileInstance(instance.into(), hffile.into(), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbactual)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -8967,7 +8987,7 @@ pub unsafe fn JetRestoreW(szsource: &u16, pfn: JET_PFNSTATUS) -> i32 { #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetRetrieveColumn<'a, P0, P1>(sesid: P0, tableid: P1, columnid: u32, pvdata: *mut ::core::ffi::c_void, cbdata: u32, pcbactual: ::core::option::Option<&mut u32>, grbit: u32, pretinfo: ::core::option::Option<&mut JET_RETINFO>) -> i32 +pub unsafe fn JetRetrieveColumn<'a, P0, P1>(sesid: P0, tableid: P1, columnid: u32, pvdata: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>, grbit: u32, pretinfo: ::core::option::Option<&mut JET_RETINFO>) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8976,12 +8996,12 @@ where extern "system" { fn JetRetrieveColumn(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, columnid: u32, pvdata: *mut ::core::ffi::c_void, cbdata: u32, pcbactual: *mut u32, grbit: u32, pretinfo: *mut JET_RETINFO) -> i32; } - JetRetrieveColumn(sesid.into(), tableid.into(), columnid, ::core::mem::transmute(pvdata), cbdata, ::core::mem::transmute(pcbactual), grbit, ::core::mem::transmute(pretinfo)) + JetRetrieveColumn(sesid.into(), tableid.into(), columnid, ::core::mem::transmute(pvdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual), grbit, ::core::mem::transmute(pretinfo)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetRetrieveColumns<'a, P0, P1>(sesid: P0, tableid: P1, pretrievecolumn: &mut [JET_RETRIEVECOLUMN]) -> i32 +pub unsafe fn JetRetrieveColumns<'a, P0, P1>(sesid: P0, tableid: P1, pretrievecolumn: ::core::option::Option<&mut [JET_RETRIEVECOLUMN]>) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8990,12 +9010,12 @@ where extern "system" { fn JetRetrieveColumns(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pretrievecolumn: *mut JET_RETRIEVECOLUMN, cretrievecolumn: u32) -> i32; } - JetRetrieveColumns(sesid.into(), tableid.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pretrievecolumn)), pretrievecolumn.len() as _) + JetRetrieveColumns(sesid.into(), tableid.into(), ::core::mem::transmute(pretrievecolumn.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pretrievecolumn.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetRetrieveKey<'a, P0, P1>(sesid: P0, tableid: P1, pvkey: *mut ::core::ffi::c_void, cbmax: u32, pcbactual: ::core::option::Option<&mut u32>, grbit: u32) -> i32 +pub unsafe fn JetRetrieveKey<'a, P0, P1>(sesid: P0, tableid: P1, pvkey: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>, grbit: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -9004,7 +9024,7 @@ where extern "system" { fn JetRetrieveKey(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pvkey: *mut ::core::ffi::c_void, cbmax: u32, pcbactual: *mut u32, grbit: u32) -> i32; } - JetRetrieveKey(sesid.into(), tableid.into(), ::core::mem::transmute(pvkey), cbmax, ::core::mem::transmute(pcbactual), grbit) + JetRetrieveKey(sesid.into(), tableid.into(), ::core::mem::transmute(pvkey.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvkey.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual), grbit) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -9036,7 +9056,7 @@ where #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetSetColumn<'a, P0, P1>(sesid: P0, tableid: P1, columnid: u32, pvdata: *const ::core::ffi::c_void, cbdata: u32, grbit: u32, psetinfo: ::core::option::Option<&JET_SETINFO>) -> i32 +pub unsafe fn JetSetColumn<'a, P0, P1>(sesid: P0, tableid: P1, columnid: u32, pvdata: ::core::option::Option<&[u8]>, grbit: u32, psetinfo: ::core::option::Option<&JET_SETINFO>) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -9045,12 +9065,12 @@ where extern "system" { fn JetSetColumn(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, columnid: u32, pvdata: *const ::core::ffi::c_void, cbdata: u32, grbit: u32, psetinfo: *const JET_SETINFO) -> i32; } - JetSetColumn(sesid.into(), tableid.into(), columnid, ::core::mem::transmute(pvdata), cbdata, grbit, ::core::mem::transmute(psetinfo)) + JetSetColumn(sesid.into(), tableid.into(), columnid, ::core::mem::transmute(pvdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvdata.as_deref().map_or(0, |slice| slice.len() as _), grbit, ::core::mem::transmute(psetinfo)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetSetColumnDefaultValueA<'a, P0>(sesid: P0, dbid: u32, sztablename: &i8, szcolumnname: &i8, pvdata: *const ::core::ffi::c_void, cbdata: u32, grbit: u32) -> i32 +pub unsafe fn JetSetColumnDefaultValueA<'a, P0>(sesid: P0, dbid: u32, sztablename: &i8, szcolumnname: &i8, pvdata: &[u8], grbit: u32) -> i32 where P0: ::std::convert::Into, { @@ -9058,12 +9078,12 @@ where extern "system" { fn JetSetColumnDefaultValueA(sesid: super::StructuredStorage::JET_SESID, dbid: u32, sztablename: *const i8, szcolumnname: *const i8, pvdata: *const ::core::ffi::c_void, cbdata: u32, grbit: u32) -> i32; } - JetSetColumnDefaultValueA(sesid.into(), dbid, ::core::mem::transmute(sztablename), ::core::mem::transmute(szcolumnname), ::core::mem::transmute(pvdata), cbdata, grbit) + JetSetColumnDefaultValueA(sesid.into(), dbid, ::core::mem::transmute(sztablename), ::core::mem::transmute(szcolumnname), ::core::mem::transmute(pvdata.as_ptr()), pvdata.len() as _, grbit) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetSetColumnDefaultValueW<'a, P0>(sesid: P0, dbid: u32, sztablename: &u16, szcolumnname: &u16, pvdata: *const ::core::ffi::c_void, cbdata: u32, grbit: u32) -> i32 +pub unsafe fn JetSetColumnDefaultValueW<'a, P0>(sesid: P0, dbid: u32, sztablename: &u16, szcolumnname: &u16, pvdata: &[u8], grbit: u32) -> i32 where P0: ::std::convert::Into, { @@ -9071,12 +9091,12 @@ where extern "system" { fn JetSetColumnDefaultValueW(sesid: super::StructuredStorage::JET_SESID, dbid: u32, sztablename: *const u16, szcolumnname: *const u16, pvdata: *const ::core::ffi::c_void, cbdata: u32, grbit: u32) -> i32; } - JetSetColumnDefaultValueW(sesid.into(), dbid, ::core::mem::transmute(sztablename), ::core::mem::transmute(szcolumnname), ::core::mem::transmute(pvdata), cbdata, grbit) + JetSetColumnDefaultValueW(sesid.into(), dbid, ::core::mem::transmute(sztablename), ::core::mem::transmute(szcolumnname), ::core::mem::transmute(pvdata.as_ptr()), pvdata.len() as _, grbit) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetSetColumns<'a, P0, P1>(sesid: P0, tableid: P1, psetcolumn: &[JET_SETCOLUMN]) -> i32 +pub unsafe fn JetSetColumns<'a, P0, P1>(sesid: P0, tableid: P1, psetcolumn: ::core::option::Option<&[JET_SETCOLUMN]>) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -9085,7 +9105,7 @@ where extern "system" { fn JetSetColumns(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, psetcolumn: *const JET_SETCOLUMN, csetcolumn: u32) -> i32; } - JetSetColumns(sesid.into(), tableid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(psetcolumn)), psetcolumn.len() as _) + JetSetColumns(sesid.into(), tableid.into(), ::core::mem::transmute(psetcolumn.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psetcolumn.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -9211,7 +9231,7 @@ where extern "system" { fn JetSetCursorFilter(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, rgcolumnfilters: *const JET_INDEX_COLUMN, ccolumnfilters: u32, grbit: u32) -> i32; } - JetSetCursorFilter(sesid.into(), tableid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcolumnfilters)), rgcolumnfilters.len() as _, grbit) + JetSetCursorFilter(sesid.into(), tableid.into(), ::core::mem::transmute(rgcolumnfilters.as_ptr()), rgcolumnfilters.len() as _, grbit) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -9285,7 +9305,7 @@ where #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetSetSessionParameter<'a, P0>(sesid: P0, sesparamid: u32, pvparam: *const ::core::ffi::c_void, cbparam: u32) -> i32 +pub unsafe fn JetSetSessionParameter<'a, P0>(sesid: P0, sesparamid: u32, pvparam: ::core::option::Option<&[u8]>) -> i32 where P0: ::std::convert::Into, { @@ -9293,7 +9313,7 @@ where extern "system" { fn JetSetSessionParameter(sesid: super::StructuredStorage::JET_SESID, sesparamid: u32, pvparam: *const ::core::ffi::c_void, cbparam: u32) -> i32; } - JetSetSessionParameter(sesid.into(), sesparamid, ::core::mem::transmute(pvparam), cbparam) + JetSetSessionParameter(sesid.into(), sesparamid, ::core::mem::transmute(pvparam.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvparam.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] @@ -9460,7 +9480,7 @@ where #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetUpdate<'a, P0, P1>(sesid: P0, tableid: P1, pvbookmark: *mut ::core::ffi::c_void, cbbookmark: u32, pcbactual: ::core::option::Option<&mut u32>) -> i32 +pub unsafe fn JetUpdate<'a, P0, P1>(sesid: P0, tableid: P1, pvbookmark: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -9469,12 +9489,12 @@ where extern "system" { fn JetUpdate(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pvbookmark: *mut ::core::ffi::c_void, cbbookmark: u32, pcbactual: *mut u32) -> i32; } - JetUpdate(sesid.into(), tableid.into(), ::core::mem::transmute(pvbookmark), cbbookmark, ::core::mem::transmute(pcbactual)) + JetUpdate(sesid.into(), tableid.into(), ::core::mem::transmute(pvbookmark.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvbookmark.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual)) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`, `\"Win32_Storage_StructuredStorage\"`*"] #[cfg(feature = "Win32_Storage_StructuredStorage")] #[inline] -pub unsafe fn JetUpdate2<'a, P0, P1>(sesid: P0, tableid: P1, pvbookmark: *mut ::core::ffi::c_void, cbbookmark: u32, pcbactual: ::core::option::Option<&mut u32>, grbit: u32) -> i32 +pub unsafe fn JetUpdate2<'a, P0, P1>(sesid: P0, tableid: P1, pvbookmark: ::core::option::Option<&mut [u8]>, pcbactual: ::core::option::Option<&mut u32>, grbit: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -9483,7 +9503,7 @@ where extern "system" { fn JetUpdate2(sesid: super::StructuredStorage::JET_SESID, tableid: super::StructuredStorage::JET_TABLEID, pvbookmark: *mut ::core::ffi::c_void, cbbookmark: u32, pcbactual: *mut u32, grbit: u32) -> i32; } - JetUpdate2(sesid.into(), tableid.into(), ::core::mem::transmute(pvbookmark), cbbookmark, ::core::mem::transmute(pcbactual), grbit) + JetUpdate2(sesid.into(), tableid.into(), ::core::mem::transmute(pvbookmark.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvbookmark.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbactual), grbit) } #[doc = "*Required features: `\"Win32_Storage_Jet\"`*"] pub const cColumnInfoCols: u32 = 14u32; diff --git a/crates/libs/windows/src/Windows/Win32/Storage/OfflineFiles/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/OfflineFiles/mod.rs index 326eda15e0..80ee46a82b 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/OfflineFiles/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/OfflineFiles/mod.rs @@ -2,7 +2,7 @@ #[repr(transparent)] pub struct IEnumOfflineFilesItems(::windows::core::IUnknown); impl IEnumOfflineFilesItems { - pub unsafe fn Next(&self, celt: u32, rgelt: &mut ::core::option::Option, pceltfetched: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Next(&self, celt: u32, rgelt: *mut ::core::option::Option, pceltfetched: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), celt, ::core::mem::transmute(rgelt), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { @@ -64,7 +64,7 @@ pub struct IEnumOfflineFilesItems_Vtbl { #[repr(transparent)] pub struct IEnumOfflineFilesSettings(::windows::core::IUnknown); impl IEnumOfflineFilesSettings { - pub unsafe fn Next(&self, celt: u32, rgelt: &mut ::core::option::Option, pceltfetched: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Next(&self, celt: u32, rgelt: *mut ::core::option::Option, pceltfetched: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), celt, ::core::mem::transmute(rgelt), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { @@ -135,7 +135,7 @@ impl IOfflineFilesCache { P2: ::std::convert::Into<::windows::core::InParam<'a, IOfflineFilesSyncConflictHandler>>, P3: ::std::convert::Into<::windows::core::InParam<'a, IOfflineFilesSyncProgress>>, { - (::windows::core::Interface::vtable(self).Synchronize)(::windows::core::Interface::as_raw(self), hwndparent.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpszpaths)), rgpszpaths.len() as _, basync.into(), dwsynccontrol, pisyncconflicthandler.into().abi(), piprogress.into().abi(), ::core::mem::transmute(psyncid)).ok() + (::windows::core::Interface::vtable(self).Synchronize)(::windows::core::Interface::as_raw(self), hwndparent.into(), ::core::mem::transmute(rgpszpaths.as_ptr()), rgpszpaths.len() as _, basync.into(), dwsynccontrol, pisyncconflicthandler.into().abi(), piprogress.into().abi(), ::core::mem::transmute(psyncid)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -144,7 +144,7 @@ impl IOfflineFilesCache { P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::InParam<'a, IOfflineFilesSimpleProgress>>, { - (::windows::core::Interface::vtable(self).DeleteItems)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpszpaths)), rgpszpaths.len() as _, dwflags, basync.into(), piprogress.into().abi()).ok() + (::windows::core::Interface::vtable(self).DeleteItems)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rgpszpaths.as_ptr()), rgpszpaths.len() as _, dwflags, basync.into(), piprogress.into().abi()).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -154,7 +154,7 @@ impl IOfflineFilesCache { P1: ::std::convert::Into, P2: ::std::convert::Into<::windows::core::InParam<'a, IOfflineFilesSimpleProgress>>, { - (::windows::core::Interface::vtable(self).DeleteItemsForUser)(::windows::core::Interface::as_raw(self), pszuser.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpszpaths)), rgpszpaths.len() as _, dwflags, basync.into(), piprogress.into().abi()).ok() + (::windows::core::Interface::vtable(self).DeleteItemsForUser)(::windows::core::Interface::as_raw(self), pszuser.into(), ::core::mem::transmute(rgpszpaths.as_ptr()), rgpszpaths.len() as _, dwflags, basync.into(), piprogress.into().abi()).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -165,7 +165,7 @@ impl IOfflineFilesCache { P2: ::std::convert::Into, P3: ::std::convert::Into<::windows::core::InParam<'a, IOfflineFilesSyncProgress>>, { - (::windows::core::Interface::vtable(self).Pin)(::windows::core::Interface::as_raw(self), hwndparent.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpszpaths)), rgpszpaths.len() as _, bdeep.into(), basync.into(), dwpincontrolflags, piprogress.into().abi()).ok() + (::windows::core::Interface::vtable(self).Pin)(::windows::core::Interface::as_raw(self), hwndparent.into(), ::core::mem::transmute(rgpszpaths.as_ptr()), rgpszpaths.len() as _, bdeep.into(), basync.into(), dwpincontrolflags, piprogress.into().abi()).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -176,7 +176,7 @@ impl IOfflineFilesCache { P2: ::std::convert::Into, P3: ::std::convert::Into<::windows::core::InParam<'a, IOfflineFilesSyncProgress>>, { - (::windows::core::Interface::vtable(self).Unpin)(::windows::core::Interface::as_raw(self), hwndparent.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpszpaths)), rgpszpaths.len() as _, bdeep.into(), basync.into(), dwpincontrolflags, piprogress.into().abi()).ok() + (::windows::core::Interface::vtable(self).Unpin)(::windows::core::Interface::as_raw(self), hwndparent.into(), ::core::mem::transmute(rgpszpaths.as_ptr()), rgpszpaths.len() as _, bdeep.into(), basync.into(), dwpincontrolflags, piprogress.into().abi()).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -356,7 +356,7 @@ impl IOfflineFilesCache2 { P2: ::std::convert::Into<::windows::core::InParam<'a, IOfflineFilesSyncConflictHandler>>, P3: ::std::convert::Into<::windows::core::InParam<'a, IOfflineFilesSyncProgress>>, { - (::windows::core::Interface::vtable(self).base__.Synchronize)(::windows::core::Interface::as_raw(self), hwndparent.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpszpaths)), rgpszpaths.len() as _, basync.into(), dwsynccontrol, pisyncconflicthandler.into().abi(), piprogress.into().abi(), ::core::mem::transmute(psyncid)).ok() + (::windows::core::Interface::vtable(self).base__.Synchronize)(::windows::core::Interface::as_raw(self), hwndparent.into(), ::core::mem::transmute(rgpszpaths.as_ptr()), rgpszpaths.len() as _, basync.into(), dwsynccontrol, pisyncconflicthandler.into().abi(), piprogress.into().abi(), ::core::mem::transmute(psyncid)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -365,7 +365,7 @@ impl IOfflineFilesCache2 { P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::InParam<'a, IOfflineFilesSimpleProgress>>, { - (::windows::core::Interface::vtable(self).base__.DeleteItems)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpszpaths)), rgpszpaths.len() as _, dwflags, basync.into(), piprogress.into().abi()).ok() + (::windows::core::Interface::vtable(self).base__.DeleteItems)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rgpszpaths.as_ptr()), rgpszpaths.len() as _, dwflags, basync.into(), piprogress.into().abi()).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -375,7 +375,7 @@ impl IOfflineFilesCache2 { P1: ::std::convert::Into, P2: ::std::convert::Into<::windows::core::InParam<'a, IOfflineFilesSimpleProgress>>, { - (::windows::core::Interface::vtable(self).base__.DeleteItemsForUser)(::windows::core::Interface::as_raw(self), pszuser.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpszpaths)), rgpszpaths.len() as _, dwflags, basync.into(), piprogress.into().abi()).ok() + (::windows::core::Interface::vtable(self).base__.DeleteItemsForUser)(::windows::core::Interface::as_raw(self), pszuser.into(), ::core::mem::transmute(rgpszpaths.as_ptr()), rgpszpaths.len() as _, dwflags, basync.into(), piprogress.into().abi()).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -386,7 +386,7 @@ impl IOfflineFilesCache2 { P2: ::std::convert::Into, P3: ::std::convert::Into<::windows::core::InParam<'a, IOfflineFilesSyncProgress>>, { - (::windows::core::Interface::vtable(self).base__.Pin)(::windows::core::Interface::as_raw(self), hwndparent.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpszpaths)), rgpszpaths.len() as _, bdeep.into(), basync.into(), dwpincontrolflags, piprogress.into().abi()).ok() + (::windows::core::Interface::vtable(self).base__.Pin)(::windows::core::Interface::as_raw(self), hwndparent.into(), ::core::mem::transmute(rgpszpaths.as_ptr()), rgpszpaths.len() as _, bdeep.into(), basync.into(), dwpincontrolflags, piprogress.into().abi()).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -397,7 +397,7 @@ impl IOfflineFilesCache2 { P2: ::std::convert::Into, P3: ::std::convert::Into<::windows::core::InParam<'a, IOfflineFilesSyncProgress>>, { - (::windows::core::Interface::vtable(self).base__.Unpin)(::windows::core::Interface::as_raw(self), hwndparent.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpszpaths)), rgpszpaths.len() as _, bdeep.into(), basync.into(), dwpincontrolflags, piprogress.into().abi()).ok() + (::windows::core::Interface::vtable(self).base__.Unpin)(::windows::core::Interface::as_raw(self), hwndparent.into(), ::core::mem::transmute(rgpszpaths.as_ptr()), rgpszpaths.len() as _, bdeep.into(), basync.into(), dwpincontrolflags, piprogress.into().abi()).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1986,10 +1986,10 @@ impl IOfflineFilesEventsFilter { pub unsafe fn GetPathFilter(&self, ppszfilter: &mut ::windows::core::PWSTR, pmatch: &mut OFFLINEFILES_PATHFILTER_MATCH) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPathFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppszfilter), ::core::mem::transmute(pmatch)).ok() } - pub unsafe fn GetIncludedEvents(&self, celements: u32, prgevents: &mut OFFLINEFILES_EVENTS, pcevents: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetIncludedEvents(&self, celements: u32, prgevents: *mut OFFLINEFILES_EVENTS, pcevents: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetIncludedEvents)(::windows::core::Interface::as_raw(self), celements, ::core::mem::transmute(prgevents), ::core::mem::transmute(pcevents)).ok() } - pub unsafe fn GetExcludedEvents(&self, celements: u32, prgevents: &mut OFFLINEFILES_EVENTS, pcevents: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetExcludedEvents(&self, celements: u32, prgevents: *mut OFFLINEFILES_EVENTS, pcevents: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetExcludedEvents)(::windows::core::Interface::as_raw(self), celements, ::core::mem::transmute(prgevents), ::core::mem::transmute(pcevents)).ok() } } @@ -2404,7 +2404,7 @@ impl IOfflineFilesItemFilter { (::windows::core::Interface::vtable(self).GetTimeFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfttime), ::core::mem::transmute(pbevaltimeofday), ::core::mem::transmute(ptimetype), ::core::mem::transmute(pcompare)).ok() } pub unsafe fn GetPatternFilter(&self, pszpattern: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPatternFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpattern)), pszpattern.len() as _).ok() + (::windows::core::Interface::vtable(self).GetPatternFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszpattern.as_ptr()), pszpattern.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/Storage/Packaging/Appx/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/Packaging/Appx/mod.rs index 8630ceccdf..e387cd4a61 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/Packaging/Appx/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/Packaging/Appx/mod.rs @@ -1215,7 +1215,7 @@ pub unsafe fn DuplicatePackageVirtualizationContext(sourcecontext: &PACKAGE_VIRT #[doc = "*Required features: `\"Win32_Storage_Packaging_Appx\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FindPackagesByPackageFamily<'a, P0>(packagefamilyname: P0, packagefilters: u32, count: &mut u32, packagefullnames: ::core::option::Option<&mut ::windows::core::PWSTR>, bufferlength: &mut u32, buffer: ::windows::core::PWSTR, packageproperties: ::core::option::Option<&mut u32>) -> super::super::super::Foundation::WIN32_ERROR +pub unsafe fn FindPackagesByPackageFamily<'a, P0>(packagefamilyname: P0, packagefilters: u32, count: &mut u32, packagefullnames: *mut ::windows::core::PWSTR, bufferlength: &mut u32, buffer: ::windows::core::PWSTR, packageproperties: *mut u32) -> super::super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1298,7 +1298,7 @@ pub unsafe fn GetCurrentPackageFullName(packagefullnamelength: &mut u32, package #[doc = "*Required features: `\"Win32_Storage_Packaging_Appx\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetCurrentPackageId(bufferlength: &mut u32, buffer: ::core::option::Option<&mut u8>) -> super::super::super::Foundation::WIN32_ERROR { +pub unsafe fn GetCurrentPackageId(bufferlength: &mut u32, buffer: *mut u8) -> super::super::super::Foundation::WIN32_ERROR { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetCurrentPackageId(bufferlength: *mut u32, buffer: *mut u8) -> super::super::super::Foundation::WIN32_ERROR; @@ -1308,7 +1308,7 @@ pub unsafe fn GetCurrentPackageId(bufferlength: &mut u32, buffer: ::core::option #[doc = "*Required features: `\"Win32_Storage_Packaging_Appx\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetCurrentPackageInfo(flags: u32, bufferlength: &mut u32, buffer: ::core::option::Option<&mut u8>, count: ::core::option::Option<&mut u32>) -> super::super::super::Foundation::WIN32_ERROR { +pub unsafe fn GetCurrentPackageInfo(flags: u32, bufferlength: &mut u32, buffer: *mut u8, count: ::core::option::Option<&mut u32>) -> super::super::super::Foundation::WIN32_ERROR { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetCurrentPackageInfo(flags: u32, bufferlength: *mut u32, buffer: *mut u8, count: *mut u32) -> super::super::super::Foundation::WIN32_ERROR; @@ -1318,7 +1318,7 @@ pub unsafe fn GetCurrentPackageInfo(flags: u32, bufferlength: &mut u32, buffer: #[doc = "*Required features: `\"Win32_Storage_Packaging_Appx\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetCurrentPackageInfo2(flags: u32, packagepathtype: PackagePathType, bufferlength: &mut u32, buffer: ::core::option::Option<&mut u8>, count: ::core::option::Option<&mut u32>) -> super::super::super::Foundation::WIN32_ERROR { +pub unsafe fn GetCurrentPackageInfo2(flags: u32, packagepathtype: PackagePathType, bufferlength: &mut u32, buffer: *mut u8, count: ::core::option::Option<&mut u32>) -> super::super::super::Foundation::WIN32_ERROR { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetCurrentPackageInfo2(flags: u32, packagepathtype: PackagePathType, bufferlength: *mut u32, buffer: *mut u8, count: *mut u32) -> super::super::super::Foundation::WIN32_ERROR; @@ -1367,7 +1367,7 @@ pub unsafe fn GetIdForPackageDependencyContext(packagedependencycontext: &PACKAG #[doc = "*Required features: `\"Win32_Storage_Packaging_Appx\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPackageApplicationIds(packageinforeference: &_PACKAGE_INFO_REFERENCE, bufferlength: &mut u32, buffer: ::core::option::Option<&mut u8>, count: ::core::option::Option<&mut u32>) -> super::super::super::Foundation::WIN32_ERROR { +pub unsafe fn GetPackageApplicationIds(packageinforeference: &_PACKAGE_INFO_REFERENCE, bufferlength: &mut u32, buffer: *mut u8, count: ::core::option::Option<&mut u32>) -> super::super::super::Foundation::WIN32_ERROR { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetPackageApplicationIds(packageinforeference: *const _PACKAGE_INFO_REFERENCE, bufferlength: *mut u32, buffer: *mut u8, count: *mut u32) -> super::super::super::Foundation::WIN32_ERROR; @@ -1429,7 +1429,7 @@ where #[doc = "*Required features: `\"Win32_Storage_Packaging_Appx\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPackageId<'a, P0>(hprocess: P0, bufferlength: &mut u32, buffer: ::core::option::Option<&mut u8>) -> super::super::super::Foundation::WIN32_ERROR +pub unsafe fn GetPackageId<'a, P0>(hprocess: P0, bufferlength: &mut u32, buffer: *mut u8) -> super::super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, { @@ -1442,7 +1442,7 @@ where #[doc = "*Required features: `\"Win32_Storage_Packaging_Appx\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPackageInfo(packageinforeference: &_PACKAGE_INFO_REFERENCE, flags: u32, bufferlength: &mut u32, buffer: ::core::option::Option<&mut u8>, count: ::core::option::Option<&mut u32>) -> super::super::super::Foundation::WIN32_ERROR { +pub unsafe fn GetPackageInfo(packageinforeference: &_PACKAGE_INFO_REFERENCE, flags: u32, bufferlength: &mut u32, buffer: *mut u8, count: ::core::option::Option<&mut u32>) -> super::super::super::Foundation::WIN32_ERROR { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetPackageInfo(packageinforeference: *const _PACKAGE_INFO_REFERENCE, flags: u32, bufferlength: *mut u32, buffer: *mut u8, count: *mut u32) -> super::super::super::Foundation::WIN32_ERROR; @@ -1452,7 +1452,7 @@ pub unsafe fn GetPackageInfo(packageinforeference: &_PACKAGE_INFO_REFERENCE, fla #[doc = "*Required features: `\"Win32_Storage_Packaging_Appx\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPackageInfo2(packageinforeference: &_PACKAGE_INFO_REFERENCE, flags: u32, packagepathtype: PackagePathType, bufferlength: &mut u32, buffer: ::core::option::Option<&mut u8>, count: ::core::option::Option<&mut u32>) -> super::super::super::Foundation::WIN32_ERROR { +pub unsafe fn GetPackageInfo2(packageinforeference: &_PACKAGE_INFO_REFERENCE, flags: u32, packagepathtype: PackagePathType, bufferlength: &mut u32, buffer: *mut u8, count: ::core::option::Option<&mut u32>) -> super::super::super::Foundation::WIN32_ERROR { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetPackageInfo2(packageinforeference: *const _PACKAGE_INFO_REFERENCE, flags: u32, packagepathtype: PackagePathType, bufferlength: *mut u32, buffer: *mut u8, count: *mut u32) -> super::super::super::Foundation::WIN32_ERROR; @@ -1498,7 +1498,7 @@ where #[doc = "*Required features: `\"Win32_Storage_Packaging_Appx\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPackagesByPackageFamily<'a, P0>(packagefamilyname: P0, count: &mut u32, packagefullnames: ::core::option::Option<&mut ::windows::core::PWSTR>, bufferlength: &mut u32, buffer: ::windows::core::PWSTR) -> super::super::super::Foundation::WIN32_ERROR +pub unsafe fn GetPackagesByPackageFamily<'a, P0>(packagefamilyname: P0, count: &mut u32, packagefullnames: *mut ::windows::core::PWSTR, bufferlength: &mut u32, buffer: ::windows::core::PWSTR) -> super::super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -3497,7 +3497,7 @@ impl IAppxEncryptedPackageWriter2 { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn AddPayloadFilesEncrypted(&self, payloadfiles: &[APPX_PACKAGE_WRITER_PAYLOAD_STREAM], memorylimit: u64) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddPayloadFilesEncrypted)(::windows::core::Interface::as_raw(self), payloadfiles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(payloadfiles)), memorylimit).ok() + (::windows::core::Interface::vtable(self).AddPayloadFilesEncrypted)(::windows::core::Interface::as_raw(self), payloadfiles.len() as _, ::core::mem::transmute(payloadfiles.as_ptr()), memorylimit).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -7094,7 +7094,7 @@ impl IAppxPackageWriter3 { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn AddPayloadFiles(&self, payloadfiles: &[APPX_PACKAGE_WRITER_PAYLOAD_STREAM], memorylimit: u64) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddPayloadFiles)(::windows::core::Interface::as_raw(self), payloadfiles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(payloadfiles)), memorylimit).ok() + (::windows::core::Interface::vtable(self).AddPayloadFiles)(::windows::core::Interface::as_raw(self), payloadfiles.len() as _, ::core::mem::transmute(payloadfiles.as_ptr()), memorylimit).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -7687,7 +7687,7 @@ pub unsafe fn PackageFullNameFromId(packageid: &PACKAGE_ID, packagefullnamelengt #[doc = "*Required features: `\"Win32_Storage_Packaging_Appx\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PackageIdFromFullName<'a, P0>(packagefullname: P0, flags: u32, bufferlength: &mut u32, buffer: ::core::option::Option<&mut u8>) -> super::super::super::Foundation::WIN32_ERROR +pub unsafe fn PackageIdFromFullName<'a, P0>(packagefullname: P0, flags: u32, bufferlength: &mut u32, buffer: *mut u8) -> super::super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into<::windows::core::PCWSTR>, { diff --git a/crates/libs/windows/src/Windows/Win32/Storage/Packaging/Opc/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/Packaging/Opc/mod.rs index 073d143fb7..48e2cf1241 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/Packaging/Opc/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/Packaging/Opc/mod.rs @@ -147,7 +147,7 @@ pub struct IOpcCertificateSet_Vtbl { #[repr(transparent)] pub struct IOpcDigitalSignature(::windows::core::IUnknown); impl IOpcDigitalSignature { - pub unsafe fn GetNamespaces(&self, prefixes: &mut *mut ::windows::core::PWSTR, namespaces: &mut *mut ::windows::core::PWSTR, count: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetNamespaces(&self, prefixes: *mut *mut ::windows::core::PWSTR, namespaces: *mut *mut ::windows::core::PWSTR, count: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetNamespaces)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prefixes), ::core::mem::transmute(namespaces), ::core::mem::transmute(count)).ok() } pub unsafe fn GetSignatureId(&self) -> ::windows::core::Result<::windows::core::PWSTR> { @@ -167,7 +167,7 @@ impl IOpcDigitalSignature { pub unsafe fn GetCanonicalizationMethod(&self, canonicalizationmethod: &mut OPC_CANONICALIZATION_METHOD) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetCanonicalizationMethod)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(canonicalizationmethod)).ok() } - pub unsafe fn GetSignatureValue(&self, signaturevalue: &mut *mut u8, count: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetSignatureValue(&self, signaturevalue: *mut *mut u8, count: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSignatureValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(signaturevalue), ::core::mem::transmute(count)).ok() } pub unsafe fn GetSignaturePartReferenceEnumerator(&self) -> ::windows::core::Result { @@ -1661,7 +1661,7 @@ pub struct IOpcRelationshipSet_Vtbl { #[repr(transparent)] pub struct IOpcSignatureCustomObject(::windows::core::IUnknown); impl IOpcSignatureCustomObject { - pub unsafe fn GetXml(&self, xmlmarkup: &mut *mut u8, count: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetXml(&self, xmlmarkup: *mut *mut u8, count: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetXml)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(xmlmarkup), ::core::mem::transmute(count)).ok() } } @@ -1787,7 +1787,7 @@ pub struct IOpcSignatureCustomObjectSet(::windows::core::IUnknown); impl IOpcSignatureCustomObjectSet { pub unsafe fn Create(&self, xmlmarkup: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).Create)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(xmlmarkup)), xmlmarkup.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).Create)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(xmlmarkup.as_ptr()), xmlmarkup.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Delete<'a, P0>(&self, customobject: P0) -> ::windows::core::Result<()> where @@ -1861,7 +1861,7 @@ impl IOpcSignaturePartReference { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetDigestMethod)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) } - pub unsafe fn GetDigestValue(&self, digestvalue: &mut *mut u8, count: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetDigestValue(&self, digestvalue: *mut *mut u8, count: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDigestValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(digestvalue), ::core::mem::transmute(count)).ok() } pub unsafe fn GetTransformMethod(&self) -> ::windows::core::Result { @@ -2089,7 +2089,7 @@ impl IOpcSignatureReference { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetDigestMethod)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) } - pub unsafe fn GetDigestValue(&self, digestvalue: &mut *mut u8, count: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetDigestValue(&self, digestvalue: *mut *mut u8, count: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDigestValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(digestvalue), ::core::mem::transmute(count)).ok() } } @@ -2304,7 +2304,7 @@ impl IOpcSignatureRelationshipReference { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetDigestMethod)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) } - pub unsafe fn GetDigestValue(&self, digestvalue: &mut *mut u8, count: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetDigestValue(&self, digestvalue: *mut *mut u8, count: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDigestValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(digestvalue), ::core::mem::transmute(count)).ok() } pub unsafe fn GetTransformMethod(&self) -> ::windows::core::Result { diff --git a/crates/libs/windows/src/Windows/Win32/Storage/ProjectedFileSystem/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/ProjectedFileSystem/mod.rs index af938efecd..446bce0b93 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/ProjectedFileSystem/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/ProjectedFileSystem/mod.rs @@ -1530,7 +1530,7 @@ where #[doc = "*Required features: `\"Win32_Storage_ProjectedFileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PrjUpdateFileIfNeeded<'a, P0, P1>(namespacevirtualizationcontext: P0, destinationfilename: P1, placeholderinfo: &PRJ_PLACEHOLDER_INFO, placeholderinfosize: u32, updateflags: PRJ_UPDATE_TYPES) -> ::windows::core::Result +pub unsafe fn PrjUpdateFileIfNeeded<'a, P0, P1>(namespacevirtualizationcontext: P0, destinationfilename: P1, placeholderinfo: &[u8], updateflags: PRJ_UPDATE_TYPES) -> ::windows::core::Result where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -1540,11 +1540,11 @@ where fn PrjUpdateFileIfNeeded(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, destinationfilename: ::windows::core::PCWSTR, placeholderinfo: *const PRJ_PLACEHOLDER_INFO, placeholderinfosize: u32, updateflags: PRJ_UPDATE_TYPES, failurereason: *mut PRJ_UPDATE_FAILURE_CAUSES) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - PrjUpdateFileIfNeeded(namespacevirtualizationcontext.into(), destinationfilename.into(), ::core::mem::transmute(placeholderinfo), placeholderinfosize, updateflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + PrjUpdateFileIfNeeded(namespacevirtualizationcontext.into(), destinationfilename.into(), ::core::mem::transmute(placeholderinfo.as_ptr()), placeholderinfo.len() as _, updateflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Storage_ProjectedFileSystem\"`*"] #[inline] -pub unsafe fn PrjWriteFileData<'a, P0>(namespacevirtualizationcontext: P0, datastreamid: &::windows::core::GUID, buffer: *const ::core::ffi::c_void, byteoffset: u64, length: u32) -> ::windows::core::Result<()> +pub unsafe fn PrjWriteFileData<'a, P0>(namespacevirtualizationcontext: P0, datastreamid: &::windows::core::GUID, buffer: &[u8], byteoffset: u64) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -1552,12 +1552,12 @@ where extern "system" { fn PrjWriteFileData(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, datastreamid: *const ::windows::core::GUID, buffer: *const ::core::ffi::c_void, byteoffset: u64, length: u32) -> ::windows::core::HRESULT; } - PrjWriteFileData(namespacevirtualizationcontext.into(), ::core::mem::transmute(datastreamid), ::core::mem::transmute(buffer), byteoffset, length).ok() + PrjWriteFileData(namespacevirtualizationcontext.into(), ::core::mem::transmute(datastreamid), ::core::mem::transmute(buffer.as_ptr()), byteoffset, buffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_Storage_ProjectedFileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PrjWritePlaceholderInfo<'a, P0, P1>(namespacevirtualizationcontext: P0, destinationfilename: P1, placeholderinfo: &PRJ_PLACEHOLDER_INFO, placeholderinfosize: u32) -> ::windows::core::Result<()> +pub unsafe fn PrjWritePlaceholderInfo<'a, P0, P1>(namespacevirtualizationcontext: P0, destinationfilename: P1, placeholderinfo: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -1566,12 +1566,12 @@ where extern "system" { fn PrjWritePlaceholderInfo(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, destinationfilename: ::windows::core::PCWSTR, placeholderinfo: *const PRJ_PLACEHOLDER_INFO, placeholderinfosize: u32) -> ::windows::core::HRESULT; } - PrjWritePlaceholderInfo(namespacevirtualizationcontext.into(), destinationfilename.into(), ::core::mem::transmute(placeholderinfo), placeholderinfosize).ok() + PrjWritePlaceholderInfo(namespacevirtualizationcontext.into(), destinationfilename.into(), ::core::mem::transmute(placeholderinfo.as_ptr()), placeholderinfo.len() as _).ok() } #[doc = "*Required features: `\"Win32_Storage_ProjectedFileSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PrjWritePlaceholderInfo2<'a, P0, P1>(namespacevirtualizationcontext: P0, destinationfilename: P1, placeholderinfo: &PRJ_PLACEHOLDER_INFO, placeholderinfosize: u32, extendedinfo: ::core::option::Option<&PRJ_EXTENDED_INFO>) -> ::windows::core::Result<()> +pub unsafe fn PrjWritePlaceholderInfo2<'a, P0, P1>(namespacevirtualizationcontext: P0, destinationfilename: P1, placeholderinfo: &[u8], extendedinfo: ::core::option::Option<&PRJ_EXTENDED_INFO>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -1580,7 +1580,7 @@ where extern "system" { fn PrjWritePlaceholderInfo2(namespacevirtualizationcontext: PRJ_NAMESPACE_VIRTUALIZATION_CONTEXT, destinationfilename: ::windows::core::PCWSTR, placeholderinfo: *const PRJ_PLACEHOLDER_INFO, placeholderinfosize: u32, extendedinfo: *const PRJ_EXTENDED_INFO) -> ::windows::core::HRESULT; } - PrjWritePlaceholderInfo2(namespacevirtualizationcontext.into(), destinationfilename.into(), ::core::mem::transmute(placeholderinfo), placeholderinfosize, ::core::mem::transmute(extendedinfo)).ok() + PrjWritePlaceholderInfo2(namespacevirtualizationcontext.into(), destinationfilename.into(), ::core::mem::transmute(placeholderinfo.as_ptr()), placeholderinfo.len() as _, ::core::mem::transmute(extendedinfo)).ok() } #[cfg(feature = "implement")] ::core::include!("impl.rs"); diff --git a/crates/libs/windows/src/Windows/Win32/Storage/Vhd/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/Vhd/mod.rs index 94178d2846..33f1ba2339 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/Vhd/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/Vhd/mod.rs @@ -1507,7 +1507,7 @@ impl ::core::fmt::Debug for EXPAND_VIRTUAL_DISK_VERSION { #[doc = "*Required features: `\"Win32_Storage_Vhd\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumerateVirtualDiskMetadata<'a, P0>(virtualdiskhandle: P0, numberofitems: &mut u32, items: &mut ::windows::core::GUID) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn EnumerateVirtualDiskMetadata<'a, P0>(virtualdiskhandle: P0, numberofitems: &mut u32, items: *mut ::windows::core::GUID) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, { @@ -2083,7 +2083,7 @@ where #[doc = "*Required features: `\"Win32_Storage_Vhd\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetVirtualDiskInformation<'a, P0>(virtualdiskhandle: P0, virtualdiskinfosize: &mut u32, virtualdiskinfo: &mut GET_VIRTUAL_DISK_INFO, sizeused: ::core::option::Option<&mut u32>) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn GetVirtualDiskInformation<'a, P0>(virtualdiskhandle: P0, virtualdiskinfosize: &mut u32, virtualdiskinfo: *mut GET_VIRTUAL_DISK_INFO, sizeused: ::core::option::Option<&mut u32>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, { @@ -3104,7 +3104,7 @@ impl ::core::default::Default for QUERY_CHANGES_VIRTUAL_DISK_RANGE { #[doc = "*Required features: `\"Win32_Storage_Vhd\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn QueryChangesVirtualDisk<'a, P0, P1>(virtualdiskhandle: P0, changetrackingid: P1, byteoffset: u64, bytelength: u64, flags: QUERY_CHANGES_VIRTUAL_DISK_FLAG, ranges: &mut QUERY_CHANGES_VIRTUAL_DISK_RANGE, rangecount: &mut u32, processedlength: &mut u64) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn QueryChangesVirtualDisk<'a, P0, P1>(virtualdiskhandle: P0, changetrackingid: P1, byteoffset: u64, bytelength: u64, flags: QUERY_CHANGES_VIRTUAL_DISK_FLAG, ranges: *mut QUERY_CHANGES_VIRTUAL_DISK_RANGE, rangecount: &mut u32, processedlength: &mut u64) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -3944,7 +3944,7 @@ where #[doc = "*Required features: `\"Win32_Storage_Vhd\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetVirtualDiskMetadata<'a, P0>(virtualdiskhandle: P0, item: &::windows::core::GUID, metadatasize: u32, metadata: *const ::core::ffi::c_void) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn SetVirtualDiskMetadata<'a, P0>(virtualdiskhandle: P0, item: &::windows::core::GUID, metadata: &[u8]) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, { @@ -3952,7 +3952,7 @@ where extern "system" { fn SetVirtualDiskMetadata(virtualdiskhandle: super::super::Foundation::HANDLE, item: *const ::windows::core::GUID, metadatasize: u32, metadata: *const ::core::ffi::c_void) -> super::super::Foundation::WIN32_ERROR; } - SetVirtualDiskMetadata(virtualdiskhandle.into(), ::core::mem::transmute(item), metadatasize, ::core::mem::transmute(metadata)) + SetVirtualDiskMetadata(virtualdiskhandle.into(), ::core::mem::transmute(item), metadata.len() as _, ::core::mem::transmute(metadata.as_ptr())) } #[doc = "*Required features: `\"Win32_Storage_Vhd\"`*"] #[repr(transparent)] diff --git a/crates/libs/windows/src/Windows/Win32/Storage/VirtualDiskService/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/VirtualDiskService/mod.rs index 2bf8b6ea52..d49f5cd2e3 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/VirtualDiskService/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/VirtualDiskService/mod.rs @@ -6,7 +6,7 @@ pub const GPT_PARTITION_NAME_LENGTH: u32 = 36u32; #[repr(transparent)] pub struct IEnumVdsObject(::windows::core::IUnknown); impl IEnumVdsObject { - pub unsafe fn Next(&self, celt: u32, ppobjectarray: &mut ::core::option::Option<::windows::core::IUnknown>, pcfetched: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Next(&self, celt: u32, ppobjectarray: *mut ::core::option::Option<::windows::core::IUnknown>, pcfetched: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), celt, ::core::mem::transmute(ppobjectarray), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { @@ -127,7 +127,7 @@ pub struct IVdsAdmin_Vtbl { pub struct IVdsAdviseSink(::windows::core::IUnknown); impl IVdsAdviseSink { pub unsafe fn OnNotify(&self, pnotificationarray: &[VDS_NOTIFICATION]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OnNotify)(::windows::core::Interface::as_raw(self), pnotificationarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pnotificationarray))).ok() + (::windows::core::Interface::vtable(self).OnNotify)(::windows::core::Interface::as_raw(self), pnotificationarray.len() as _, ::core::mem::transmute(pnotificationarray.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -441,7 +441,7 @@ impl IVdsDrive { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn QueryExtents(&self, ppextentarray: &mut *mut VDS_DRIVE_EXTENT, plnumberofextents: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn QueryExtents(&self, ppextentarray: *mut *mut VDS_DRIVE_EXTENT, plnumberofextents: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).QueryExtents)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppextentarray), ::core::mem::transmute(plnumberofextents)).ok() } pub unsafe fn SetFlags(&self, ulflags: u32) -> ::windows::core::Result<()> { @@ -1096,7 +1096,7 @@ impl IVdsIscsiTarget { { (::windows::core::Interface::vtable(self).RememberInitiatorSharedSecret)(::windows::core::Interface::as_raw(self), pwszinitiatorname.into(), ::core::mem::transmute(pinitiatorsharedsecret)).ok() } - pub unsafe fn GetConnectedInitiators(&self, pppwszinitiatorlist: &mut *mut ::windows::core::PWSTR, plnumberofinitiators: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn GetConnectedInitiators(&self, pppwszinitiatorlist: *mut *mut ::windows::core::PWSTR, plnumberofinitiators: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetConnectedInitiators)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppwszinitiatorlist), ::core::mem::transmute(plnumberofinitiators)).ok() } } @@ -1175,9 +1175,9 @@ impl IVdsLun { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).QueryActiveControllers)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn Extend(&self, ullnumberofbytestoadd: u64, pdriveidarray: &[::windows::core::GUID]) -> ::windows::core::Result { + pub unsafe fn Extend(&self, ullnumberofbytestoadd: u64, pdriveidarray: ::core::option::Option<&[::windows::core::GUID]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).Extend)(::windows::core::Interface::as_raw(self), ullnumberofbytestoadd, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdriveidarray)), pdriveidarray.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).Extend)(::windows::core::Interface::as_raw(self), ullnumberofbytestoadd, ::core::mem::transmute(pdriveidarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdriveidarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Shrink(&self, ullnumberofbytestoremove: u64) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1208,8 +1208,8 @@ impl IVdsLun { pub unsafe fn Delete(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Delete)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn AssociateControllers(&self, pactivecontrolleridarray: &[::windows::core::GUID], pinactivecontrolleridarray: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AssociateControllers)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pactivecontrolleridarray)), pactivecontrolleridarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinactivecontrolleridarray)), pinactivecontrolleridarray.len() as _).ok() + pub unsafe fn AssociateControllers(&self, pactivecontrolleridarray: ::core::option::Option<&[::windows::core::GUID]>, pinactivecontrolleridarray: ::core::option::Option<&[::windows::core::GUID]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).AssociateControllers)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pactivecontrolleridarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pactivecontrolleridarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pinactivecontrolleridarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pinactivecontrolleridarray.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1225,9 +1225,9 @@ impl IVdsLun { pub unsafe fn SetStatus(&self, status: VDS_LUN_STATUS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetStatus)(::windows::core::Interface::as_raw(self), status).ok() } - pub unsafe fn QueryMaxLunExtendSize(&self, pdriveidarray: &[::windows::core::GUID]) -> ::windows::core::Result { + pub unsafe fn QueryMaxLunExtendSize(&self, pdriveidarray: ::core::option::Option<&[::windows::core::GUID]>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).QueryMaxLunExtendSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdriveidarray)), pdriveidarray.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).QueryMaxLunExtendSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdriveidarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdriveidarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1364,8 +1364,8 @@ pub struct IVdsLun2_Vtbl { #[repr(transparent)] pub struct IVdsLunControllerPorts(::windows::core::IUnknown); impl IVdsLunControllerPorts { - pub unsafe fn AssociateControllerPorts(&self, pactivecontrollerportidarray: &[::windows::core::GUID], pinactivecontrollerportidarray: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AssociateControllerPorts)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pactivecontrollerportidarray)), pactivecontrollerportidarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinactivecontrollerportidarray)), pinactivecontrollerportidarray.len() as _).ok() + pub unsafe fn AssociateControllerPorts(&self, pactivecontrollerportidarray: ::core::option::Option<&[::windows::core::GUID]>, pinactivecontrollerportidarray: ::core::option::Option<&[::windows::core::GUID]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).AssociateControllerPorts)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pactivecontrollerportidarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pactivecontrollerportidarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pinactivecontrollerportidarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pinactivecontrollerportidarray.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn QueryActiveControllerPorts(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1418,8 +1418,8 @@ pub struct IVdsLunControllerPorts_Vtbl { #[repr(transparent)] pub struct IVdsLunIscsi(::windows::core::IUnknown); impl IVdsLunIscsi { - pub unsafe fn AssociateTargets(&self, ptargetidarray: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AssociateTargets)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ptargetidarray)), ptargetidarray.len() as _).ok() + pub unsafe fn AssociateTargets(&self, ptargetidarray: ::core::option::Option<&[::windows::core::GUID]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).AssociateTargets)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptargetidarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ptargetidarray.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn QueryAssociatedTargets(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1472,18 +1472,18 @@ pub struct IVdsLunIscsi_Vtbl { #[repr(transparent)] pub struct IVdsLunMpio(::windows::core::IUnknown); impl IVdsLunMpio { - pub unsafe fn GetPathInfo(&self, pppaths: &mut *mut VDS_PATH_INFO, plnumberofpaths: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn GetPathInfo(&self, pppaths: *mut *mut VDS_PATH_INFO, plnumberofpaths: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPathInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppaths), ::core::mem::transmute(plnumberofpaths)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLoadBalancePolicy(&self, ppolicy: &mut VDS_LOADBALANCE_POLICY_ENUM, pppaths: &mut *mut VDS_PATH_POLICY, plnumberofpaths: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn GetLoadBalancePolicy(&self, ppolicy: &mut VDS_LOADBALANCE_POLICY_ENUM, pppaths: *mut *mut VDS_PATH_POLICY, plnumberofpaths: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetLoadBalancePolicy)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppolicy), ::core::mem::transmute(pppaths), ::core::mem::transmute(plnumberofpaths)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetLoadBalancePolicy(&self, policy: VDS_LOADBALANCE_POLICY_ENUM, ppaths: &[VDS_PATH_POLICY]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetLoadBalancePolicy)(::windows::core::Interface::as_raw(self), policy, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppaths)), ppaths.len() as _).ok() + pub unsafe fn SetLoadBalancePolicy(&self, policy: VDS_LOADBALANCE_POLICY_ENUM, ppaths: ::core::option::Option<&[VDS_PATH_POLICY]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetLoadBalancePolicy)(::windows::core::Interface::as_raw(self), policy, ::core::mem::transmute(ppaths.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppaths.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn GetSupportedLbPolicies(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1656,7 +1656,7 @@ impl IVdsLunPlex { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn QueryExtents(&self, ppextentarray: &mut *mut VDS_DRIVE_EXTENT, plnumberofextents: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn QueryExtents(&self, ppextentarray: *mut *mut VDS_DRIVE_EXTENT, plnumberofextents: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).QueryExtents)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppextentarray), ::core::mem::transmute(plnumberofextents)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -1972,7 +1972,7 @@ impl IVdsStoragePool { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn QueryDriveExtents(&self, ppextentarray: &mut *mut VDS_STORAGE_POOL_DRIVE_EXTENT, plnumberofextents: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn QueryDriveExtents(&self, ppextentarray: *mut *mut VDS_STORAGE_POOL_DRIVE_EXTENT, plnumberofextents: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).QueryDriveExtents)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppextentarray), ::core::mem::transmute(plnumberofextents)).ok() } pub unsafe fn QueryAllocatedLuns(&self) -> ::windows::core::Result { @@ -2068,16 +2068,16 @@ impl IVdsSubSystem { (::windows::core::Interface::vtable(self).Reenumerate)(::windows::core::Interface::as_raw(self)).ok() } pub unsafe fn SetControllerStatus(&self, ponlinecontrolleridarray: &[::windows::core::GUID], pofflinecontrolleridarray: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetControllerStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ponlinecontrolleridarray)), ponlinecontrolleridarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pofflinecontrolleridarray)), pofflinecontrolleridarray.len() as _).ok() + (::windows::core::Interface::vtable(self).SetControllerStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ponlinecontrolleridarray.as_ptr()), ponlinecontrolleridarray.len() as _, ::core::mem::transmute(pofflinecontrolleridarray.as_ptr()), pofflinecontrolleridarray.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn CreateLun<'a, P0>(&self, r#type: VDS_LUN_TYPE, ullsizeinbytes: u64, pdriveidarray: &[::windows::core::GUID], pwszunmaskinglist: P0, phints: ::core::option::Option<&VDS_HINTS>) -> ::windows::core::Result + pub unsafe fn CreateLun<'a, P0>(&self, r#type: VDS_LUN_TYPE, ullsizeinbytes: u64, pdriveidarray: ::core::option::Option<&[::windows::core::GUID]>, pwszunmaskinglist: P0, phints: ::core::option::Option<&VDS_HINTS>) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateLun)(::windows::core::Interface::as_raw(self), r#type, ullsizeinbytes, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdriveidarray)), pdriveidarray.len() as _, pwszunmaskinglist.into(), ::core::mem::transmute(phints), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateLun)(::windows::core::Interface::as_raw(self), r#type, ullsizeinbytes, ::core::mem::transmute(pdriveidarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdriveidarray.as_deref().map_or(0, |slice| slice.len() as _), pwszunmaskinglist.into(), ::core::mem::transmute(phints), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn ReplaceDrive(&self, drivetobereplaced: ::windows::core::GUID, replacementdrive: ::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReplaceDrive)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(drivetobereplaced), ::core::mem::transmute(replacementdrive)).ok() @@ -2087,9 +2087,9 @@ impl IVdsSubSystem { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn QueryMaxLunCreateSize(&self, r#type: VDS_LUN_TYPE, pdriveidarray: &[::windows::core::GUID], phints: ::core::option::Option<&VDS_HINTS>) -> ::windows::core::Result { + pub unsafe fn QueryMaxLunCreateSize(&self, r#type: VDS_LUN_TYPE, pdriveidarray: ::core::option::Option<&[::windows::core::GUID]>, phints: ::core::option::Option<&VDS_HINTS>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).QueryMaxLunCreateSize)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdriveidarray)), pdriveidarray.len() as _, ::core::mem::transmute(phints), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).QueryMaxLunCreateSize)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdriveidarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdriveidarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(phints), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2164,18 +2164,18 @@ impl IVdsSubSystem2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn CreateLun2<'a, P0>(&self, r#type: VDS_LUN_TYPE, ullsizeinbytes: u64, pdriveidarray: &[::windows::core::GUID], pwszunmaskinglist: P0, phints2: ::core::option::Option<&VDS_HINTS2>) -> ::windows::core::Result + pub unsafe fn CreateLun2<'a, P0>(&self, r#type: VDS_LUN_TYPE, ullsizeinbytes: u64, pdriveidarray: ::core::option::Option<&[::windows::core::GUID]>, pwszunmaskinglist: P0, phints2: ::core::option::Option<&VDS_HINTS2>) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateLun2)(::windows::core::Interface::as_raw(self), r#type, ullsizeinbytes, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdriveidarray)), pdriveidarray.len() as _, pwszunmaskinglist.into(), ::core::mem::transmute(phints2), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateLun2)(::windows::core::Interface::as_raw(self), r#type, ullsizeinbytes, ::core::mem::transmute(pdriveidarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdriveidarray.as_deref().map_or(0, |slice| slice.len() as _), pwszunmaskinglist.into(), ::core::mem::transmute(phints2), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn QueryMaxLunCreateSize2(&self, r#type: VDS_LUN_TYPE, pdriveidarray: &[::windows::core::GUID], phints2: ::core::option::Option<&VDS_HINTS2>) -> ::windows::core::Result { + pub unsafe fn QueryMaxLunCreateSize2(&self, r#type: VDS_LUN_TYPE, pdriveidarray: ::core::option::Option<&[::windows::core::GUID]>, phints2: ::core::option::Option<&VDS_HINTS2>) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).QueryMaxLunCreateSize2)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdriveidarray)), pdriveidarray.len() as _, ::core::mem::transmute(phints2), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).QueryMaxLunCreateSize2)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(pdriveidarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdriveidarray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(phints2), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { 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 61116002e2..6e0701657a 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/Vss/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/Vss/mod.rs @@ -1637,7 +1637,7 @@ impl IVssDifferentialSoftwareSnapshotMgmt3 { pub unsafe fn DeleteUnusedDiffAreas(&self, pwszdiffareavolumename: &u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DeleteUnusedDiffAreas)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszdiffareavolumename)).ok() } - pub unsafe fn QuerySnapshotDeltaBitmap(&self, idsnapshotolder: ::windows::core::GUID, idsnapshotyounger: ::windows::core::GUID, pcblocksizeperbit: &mut u32, pcbitmaplength: &mut u32, ppbbitmap: &mut *mut u8) -> ::windows::core::Result<()> { + pub unsafe fn QuerySnapshotDeltaBitmap(&self, idsnapshotolder: ::windows::core::GUID, idsnapshotyounger: ::windows::core::GUID, pcblocksizeperbit: &mut u32, pcbitmaplength: &mut u32, ppbbitmap: *mut *mut u8) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).QuerySnapshotDeltaBitmap)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(idsnapshotolder), ::core::mem::transmute(idsnapshotyounger), ::core::mem::transmute(pcblocksizeperbit), ::core::mem::transmute(pcbitmaplength), ::core::mem::transmute(ppbbitmap)).ok() } } @@ -1724,7 +1724,7 @@ pub struct IVssDifferentialSoftwareSnapshotMgmt3_Vtbl { pub struct IVssEnumMgmtObject(::windows::core::IUnknown); impl IVssEnumMgmtObject { pub unsafe fn Next(&self, rgelt: &mut [VSS_MGMT_OBJECT_PROP], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -1785,7 +1785,7 @@ pub struct IVssEnumMgmtObject_Vtbl { pub struct IVssEnumObject(::windows::core::IUnknown); impl IVssEnumObject { pub unsafe fn Next(&self, rgelt: &mut [VSS_OBJECT_PROP], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -2023,7 +2023,7 @@ pub struct IVssHardwareSnapshotProvider(::windows::core::IUnknown); impl IVssHardwareSnapshotProvider { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_VirtualDiskService\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] - pub unsafe fn AreLunsSupported(&self, lluncount: i32, lcontext: i32, rgwszdevices: &*const u16, pluninformation: &mut super::VirtualDiskService::VDS_LUN_INFORMATION, pbissupported: &mut super::super::Foundation::BOOL) -> ::windows::core::Result<()> { + pub unsafe fn AreLunsSupported(&self, lluncount: i32, lcontext: i32, rgwszdevices: *const *const u16, pluninformation: *mut super::VirtualDiskService::VDS_LUN_INFORMATION, pbissupported: &mut super::super::Foundation::BOOL) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AreLunsSupported)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lluncount), lcontext, ::core::mem::transmute(rgwszdevices), ::core::mem::transmute(pluninformation), ::core::mem::transmute(pbissupported)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_VirtualDiskService\"`*"] @@ -2033,18 +2033,18 @@ impl IVssHardwareSnapshotProvider { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_VirtualDiskService\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] - pub unsafe fn BeginPrepareSnapshot(&self, snapshotsetid: ::windows::core::GUID, snapshotid: ::windows::core::GUID, lcontext: i32, lluncount: i32, rgdevicenames: &*const u16, rgluninformation: &mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::core::Result<()> { + pub unsafe fn BeginPrepareSnapshot(&self, snapshotsetid: ::windows::core::GUID, snapshotid: ::windows::core::GUID, lcontext: i32, lluncount: i32, rgdevicenames: *const *const u16, rgluninformation: *mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).BeginPrepareSnapshot)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(snapshotsetid), ::core::mem::transmute(snapshotid), lcontext, ::core::mem::transmute(lluncount), ::core::mem::transmute(rgdevicenames), ::core::mem::transmute(rgluninformation)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_VirtualDiskService\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] - pub unsafe fn GetTargetLuns(&self, lluncount: i32, rgdevicenames: &*const u16, rgsourceluns: &super::VirtualDiskService::VDS_LUN_INFORMATION, rgdestinationluns: &mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::core::Result<()> { + pub unsafe fn GetTargetLuns(&self, lluncount: i32, rgdevicenames: *const *const u16, rgsourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, rgdestinationluns: *mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetTargetLuns)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lluncount), ::core::mem::transmute(rgdevicenames), ::core::mem::transmute(rgsourceluns), ::core::mem::transmute(rgdestinationluns)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_VirtualDiskService\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe fn LocateLuns(&self, rgsourceluns: &[super::VirtualDiskService::VDS_LUN_INFORMATION]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).LocateLuns)(::windows::core::Interface::as_raw(self), rgsourceluns.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgsourceluns))).ok() + (::windows::core::Interface::vtable(self).LocateLuns)(::windows::core::Interface::as_raw(self), rgsourceluns.len() as _, ::core::mem::transmute(rgsourceluns.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_VirtualDiskService\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] @@ -2122,7 +2122,7 @@ pub struct IVssHardwareSnapshotProviderEx(::windows::core::IUnknown); impl IVssHardwareSnapshotProviderEx { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_VirtualDiskService\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] - pub unsafe fn AreLunsSupported(&self, lluncount: i32, lcontext: i32, rgwszdevices: &*const u16, pluninformation: &mut super::VirtualDiskService::VDS_LUN_INFORMATION, pbissupported: &mut super::super::Foundation::BOOL) -> ::windows::core::Result<()> { + pub unsafe fn AreLunsSupported(&self, lluncount: i32, lcontext: i32, rgwszdevices: *const *const u16, pluninformation: *mut super::VirtualDiskService::VDS_LUN_INFORMATION, pbissupported: &mut super::super::Foundation::BOOL) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.AreLunsSupported)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lluncount), lcontext, ::core::mem::transmute(rgwszdevices), ::core::mem::transmute(pluninformation), ::core::mem::transmute(pbissupported)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_VirtualDiskService\"`*"] @@ -2132,18 +2132,18 @@ impl IVssHardwareSnapshotProviderEx { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_VirtualDiskService\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] - pub unsafe fn BeginPrepareSnapshot(&self, snapshotsetid: ::windows::core::GUID, snapshotid: ::windows::core::GUID, lcontext: i32, lluncount: i32, rgdevicenames: &*const u16, rgluninformation: &mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::core::Result<()> { + pub unsafe fn BeginPrepareSnapshot(&self, snapshotsetid: ::windows::core::GUID, snapshotid: ::windows::core::GUID, lcontext: i32, lluncount: i32, rgdevicenames: *const *const u16, rgluninformation: *mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.BeginPrepareSnapshot)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(snapshotsetid), ::core::mem::transmute(snapshotid), lcontext, ::core::mem::transmute(lluncount), ::core::mem::transmute(rgdevicenames), ::core::mem::transmute(rgluninformation)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_VirtualDiskService\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] - pub unsafe fn GetTargetLuns(&self, lluncount: i32, rgdevicenames: &*const u16, rgsourceluns: &super::VirtualDiskService::VDS_LUN_INFORMATION, rgdestinationluns: &mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::core::Result<()> { + pub unsafe fn GetTargetLuns(&self, lluncount: i32, rgdevicenames: *const *const u16, rgsourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, rgdestinationluns: *mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetTargetLuns)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lluncount), ::core::mem::transmute(rgdevicenames), ::core::mem::transmute(rgsourceluns), ::core::mem::transmute(rgdestinationluns)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_VirtualDiskService\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe fn LocateLuns(&self, rgsourceluns: &[super::VirtualDiskService::VDS_LUN_INFORMATION]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.LocateLuns)(::windows::core::Interface::as_raw(self), rgsourceluns.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgsourceluns))).ok() + (::windows::core::Interface::vtable(self).base__.LocateLuns)(::windows::core::Interface::as_raw(self), rgsourceluns.len() as _, ::core::mem::transmute(rgsourceluns.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_VirtualDiskService\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] @@ -2156,18 +2156,18 @@ impl IVssHardwareSnapshotProviderEx { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_VirtualDiskService\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] - pub unsafe fn OnLunStateChange(&self, psnapshotluns: &super::VirtualDiskService::VDS_LUN_INFORMATION, poriginalluns: &super::VirtualDiskService::VDS_LUN_INFORMATION, dwcount: u32, dwflags: u32) -> ::windows::core::Result<()> { + pub unsafe fn OnLunStateChange(&self, psnapshotluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, poriginalluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, dwcount: u32, dwflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OnLunStateChange)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psnapshotluns), ::core::mem::transmute(poriginalluns), ::core::mem::transmute(dwcount), dwflags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_VirtualDiskService\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] - pub unsafe fn ResyncLuns(&self, psourceluns: &super::VirtualDiskService::VDS_LUN_INFORMATION, ptargetluns: &super::VirtualDiskService::VDS_LUN_INFORMATION, dwcount: u32) -> ::windows::core::Result { + pub unsafe fn ResyncLuns(&self, psourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, ptargetluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, dwcount: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).ResyncLuns)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psourceluns), ::core::mem::transmute(ptargetluns), ::core::mem::transmute(dwcount), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_VirtualDiskService\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] - pub unsafe fn OnReuseLuns(&self, psnapshotluns: &super::VirtualDiskService::VDS_LUN_INFORMATION, poriginalluns: &super::VirtualDiskService::VDS_LUN_INFORMATION, dwcount: u32) -> ::windows::core::Result<()> { + pub unsafe fn OnReuseLuns(&self, psnapshotluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, poriginalluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, dwcount: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OnReuseLuns)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psnapshotluns), ::core::mem::transmute(poriginalluns), ::core::mem::transmute(dwcount)).ok() } } diff --git a/crates/libs/windows/src/Windows/Win32/Storage/Xps/Printing/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/Xps/Printing/mod.rs index bd7627f1b8..3a67304546 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/Xps/Printing/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/Xps/Printing/mod.rs @@ -83,7 +83,7 @@ pub struct IPrintDocumentPackageStatusEvent_Vtbl { #[repr(transparent)] pub struct IPrintDocumentPackageTarget(::windows::core::IUnknown); impl IPrintDocumentPackageTarget { - pub unsafe fn GetPackageTargetTypes(&self, targetcount: &mut u32, targettypes: &mut *mut ::windows::core::GUID) -> ::windows::core::Result<()> { + pub unsafe fn GetPackageTargetTypes(&self, targetcount: &mut u32, targettypes: *mut *mut ::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPackageTargetTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(targetcount), ::core::mem::transmute(targettypes)).ok() } pub unsafe fn GetPackageTarget(&self, guidtargettype: &::windows::core::GUID) -> ::windows::core::Result @@ -263,13 +263,13 @@ pub struct IXpsPrintJobStream(::windows::core::IUnknown); impl IXpsPrintJobStream { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Read(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread)) + pub unsafe fn Read(&self, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Write(&self, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbwritten)) + pub unsafe fn Write(&self, pv: &[u8], pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbwritten)) } pub unsafe fn Close(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Close)(::windows::core::Interface::as_raw(self)).ok() @@ -426,7 +426,7 @@ where extern "system" { fn StartXpsPrintJob(printername: ::windows::core::PCWSTR, jobname: ::windows::core::PCWSTR, outputfilename: ::windows::core::PCWSTR, progressevent: super::super::super::Foundation::HANDLE, completionevent: super::super::super::Foundation::HANDLE, printablepageson: *const u8, printablepagesoncount: u32, xpsprintjob: *mut *mut ::core::ffi::c_void, documentstream: *mut *mut ::core::ffi::c_void, printticketstream: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - StartXpsPrintJob(printername.into(), jobname.into(), outputfilename.into(), progressevent.into(), completionevent.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(printablepageson)), printablepageson.len() as _, ::core::mem::transmute(xpsprintjob), ::core::mem::transmute(documentstream), ::core::mem::transmute(printticketstream)).ok() + StartXpsPrintJob(printername.into(), jobname.into(), outputfilename.into(), progressevent.into(), completionevent.into(), ::core::mem::transmute(printablepageson.as_ptr()), printablepageson.len() as _, ::core::mem::transmute(xpsprintjob), ::core::mem::transmute(documentstream), ::core::mem::transmute(printticketstream)).ok() } #[doc = "*Required features: `\"Win32_Storage_Xps_Printing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Storage/Xps/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/Xps/mod.rs index e21b91fdd5..8ccbc32d82 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/Xps/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/Xps/mod.rs @@ -265,30 +265,28 @@ where #[doc = "*Required features: `\"Win32_Storage_Xps\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn Escape<'a, P0, P1>(hdc: P0, iescape: i32, cjin: i32, pvin: P1, pvout: *mut ::core::ffi::c_void) -> i32 +pub unsafe fn Escape<'a, P0>(hdc: P0, iescape: i32, pvin: ::core::option::Option<&[u8]>, pvout: *mut ::core::ffi::c_void) -> i32 where P0: ::std::convert::Into, - P1: ::std::convert::Into<::windows::core::PCSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn Escape(hdc: super::super::Graphics::Gdi::HDC, iescape: i32, cjin: i32, pvin: ::windows::core::PCSTR, pvout: *mut ::core::ffi::c_void) -> i32; } - Escape(hdc.into(), iescape, cjin, pvin.into(), ::core::mem::transmute(pvout)) + Escape(hdc.into(), iescape, pvin.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pvin.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pvout)) } #[doc = "*Required features: `\"Win32_Storage_Xps\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn ExtEscape<'a, P0, P1>(hdc: P0, iescape: i32, cjinput: i32, lpindata: P1, cjoutput: i32, lpoutdata: ::windows::core::PSTR) -> i32 +pub unsafe fn ExtEscape<'a, P0>(hdc: P0, iescape: i32, lpindata: ::core::option::Option<&[u8]>, lpoutdata: ::core::option::Option<&mut [u8]>) -> i32 where P0: ::std::convert::Into, - P1: ::std::convert::Into<::windows::core::PCSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ExtEscape(hdc: super::super::Graphics::Gdi::HDC, iescape: i32, cjinput: i32, lpindata: ::windows::core::PCSTR, cjoutput: i32, lpoutdata: ::windows::core::PSTR) -> i32; } - ExtEscape(hdc.into(), iescape, cjinput, lpindata.into(), cjoutput, ::core::mem::transmute(lpoutdata)) + ExtEscape(hdc.into(), iescape, lpindata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpindata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoutdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[repr(transparent)] #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] @@ -8648,7 +8646,7 @@ impl IXpsSignature { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSignatureId)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) } - pub unsafe fn GetSignatureValue(&self, signaturehashvalue: &mut *mut u8, count: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetSignatureValue(&self, signaturehashvalue: *mut *mut u8, count: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSignatureValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(signaturehashvalue), ::core::mem::transmute(count)).ok() } #[doc = "*Required features: `\"Win32_Storage_Packaging_Opc\"`*"] @@ -8695,11 +8693,11 @@ impl IXpsSignature { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetCustomReferenceEnumerator)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetSignatureXml(&self, signaturexml: &mut *mut u8, count: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetSignatureXml(&self, signaturexml: *mut *mut u8, count: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSignatureXml)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(signaturexml), ::core::mem::transmute(count)).ok() } pub unsafe fn SetSignatureXml(&self, signaturexml: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSignatureXml)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(signaturexml)), signaturexml.len() as _).ok() + (::windows::core::Interface::vtable(self).SetSignatureXml)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(signaturexml.as_ptr()), signaturexml.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { 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 efdc865aa2..18e704a2b2 100644 --- a/crates/libs/windows/src/Windows/Win32/System/AddressBook/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/AddressBook/mod.rs @@ -1412,8 +1412,8 @@ impl IABContainer { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetHierarchyTable)(::windows::core::Interface::as_raw(self), ulflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn OpenEntry(&self, cbentryid: u32, lpentryid: &ENTRYID, lpinterface: &mut ::windows::core::GUID, ulflags: u32, lpulobjtype: &mut u32, lppunk: &mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.OpenEntry)(::windows::core::Interface::as_raw(self), cbentryid, ::core::mem::transmute(lpentryid), ::core::mem::transmute(lpinterface), ulflags, ::core::mem::transmute(lpulobjtype), ::core::mem::transmute(lppunk)).ok() + pub unsafe fn OpenEntry(&self, lpentryid: &[u8], lpinterface: &mut ::windows::core::GUID, ulflags: u32, lpulobjtype: &mut u32, lppunk: &mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.OpenEntry)(::windows::core::Interface::as_raw(self), lpentryid.len() as _, ::core::mem::transmute(lpentryid.as_ptr()), ::core::mem::transmute(lpinterface), ulflags, ::core::mem::transmute(lpulobjtype), ::core::mem::transmute(lppunk)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] @@ -1425,9 +1425,9 @@ impl IABContainer { pub unsafe fn GetSearchCriteria(&self, ulflags: u32, lpprestriction: ::core::option::Option<&mut *mut SRestriction>, lppcontainerlist: ::core::option::Option<&mut *mut SBinaryArray>, lpulsearchstate: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetSearchCriteria)(::windows::core::Interface::as_raw(self), ulflags, ::core::mem::transmute(lpprestriction), ::core::mem::transmute(lppcontainerlist), ::core::mem::transmute(lpulsearchstate)).ok() } - pub unsafe fn CreateEntry(&self, cbentryid: u32, lpentryid: &ENTRYID, ulcreateflags: u32) -> ::windows::core::Result { + pub unsafe fn CreateEntry(&self, lpentryid: &[u8], ulcreateflags: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateEntry)(::windows::core::Interface::as_raw(self), cbentryid, ::core::mem::transmute(lpentryid), ulcreateflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateEntry)(::windows::core::Interface::as_raw(self), lpentryid.len() as _, ::core::mem::transmute(lpentryid.as_ptr()), ulcreateflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CopyEntries<'a, P0>(&self, lpentries: &SBinaryArray, uluiparam: usize, lpprogress: P0, ulflags: u32) -> ::windows::core::Result<()> where @@ -1893,8 +1893,8 @@ impl IDistList { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetHierarchyTable)(::windows::core::Interface::as_raw(self), ulflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn OpenEntry(&self, cbentryid: u32, lpentryid: &ENTRYID, lpinterface: &mut ::windows::core::GUID, ulflags: u32, lpulobjtype: &mut u32, lppunk: &mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.OpenEntry)(::windows::core::Interface::as_raw(self), cbentryid, ::core::mem::transmute(lpentryid), ::core::mem::transmute(lpinterface), ulflags, ::core::mem::transmute(lpulobjtype), ::core::mem::transmute(lppunk)).ok() + pub unsafe fn OpenEntry(&self, lpentryid: &[u8], lpinterface: &mut ::windows::core::GUID, ulflags: u32, lpulobjtype: &mut u32, lppunk: &mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.OpenEntry)(::windows::core::Interface::as_raw(self), lpentryid.len() as _, ::core::mem::transmute(lpentryid.as_ptr()), ::core::mem::transmute(lpinterface), ulflags, ::core::mem::transmute(lpulobjtype), ::core::mem::transmute(lppunk)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] @@ -1906,9 +1906,9 @@ impl IDistList { pub unsafe fn GetSearchCriteria(&self, ulflags: u32, lpprestriction: ::core::option::Option<&mut *mut SRestriction>, lppcontainerlist: ::core::option::Option<&mut *mut SBinaryArray>, lpulsearchstate: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetSearchCriteria)(::windows::core::Interface::as_raw(self), ulflags, ::core::mem::transmute(lpprestriction), ::core::mem::transmute(lppcontainerlist), ::core::mem::transmute(lpulsearchstate)).ok() } - pub unsafe fn CreateEntry(&self, cbentryid: u32, lpentryid: &ENTRYID, ulcreateflags: u32) -> ::windows::core::Result { + pub unsafe fn CreateEntry(&self, lpentryid: &[u8], ulcreateflags: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateEntry)(::windows::core::Interface::as_raw(self), cbentryid, ::core::mem::transmute(lpentryid), ulcreateflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateEntry)(::windows::core::Interface::as_raw(self), lpentryid.len() as _, ::core::mem::transmute(lpentryid.as_ptr()), ulcreateflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CopyEntries<'a, P0>(&self, lpentries: &SBinaryArray, uluiparam: usize, lpprogress: P0, ulflags: u32) -> ::windows::core::Result<()> where @@ -2112,8 +2112,8 @@ impl IMAPIContainer { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetHierarchyTable)(::windows::core::Interface::as_raw(self), ulflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn OpenEntry(&self, cbentryid: u32, lpentryid: &ENTRYID, lpinterface: &mut ::windows::core::GUID, ulflags: u32, lpulobjtype: &mut u32, lppunk: &mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OpenEntry)(::windows::core::Interface::as_raw(self), cbentryid, ::core::mem::transmute(lpentryid), ::core::mem::transmute(lpinterface), ulflags, ::core::mem::transmute(lpulobjtype), ::core::mem::transmute(lppunk)).ok() + pub unsafe fn OpenEntry(&self, lpentryid: &[u8], lpinterface: &mut ::windows::core::GUID, ulflags: u32, lpulobjtype: &mut u32, lppunk: &mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OpenEntry)(::windows::core::Interface::as_raw(self), lpentryid.len() as _, ::core::mem::transmute(lpentryid.as_ptr()), ::core::mem::transmute(lpinterface), ulflags, ::core::mem::transmute(lpulobjtype), ::core::mem::transmute(lppunk)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] @@ -2305,8 +2305,8 @@ impl IMAPIFolder { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetHierarchyTable)(::windows::core::Interface::as_raw(self), ulflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn OpenEntry(&self, cbentryid: u32, lpentryid: &ENTRYID, lpinterface: &mut ::windows::core::GUID, ulflags: u32, lpulobjtype: &mut u32, lppunk: &mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.OpenEntry)(::windows::core::Interface::as_raw(self), cbentryid, ::core::mem::transmute(lpentryid), ::core::mem::transmute(lpinterface), ulflags, ::core::mem::transmute(lpulobjtype), ::core::mem::transmute(lppunk)).ok() + pub unsafe fn OpenEntry(&self, lpentryid: &[u8], lpinterface: &mut ::windows::core::GUID, ulflags: u32, lpulobjtype: &mut u32, lppunk: &mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.OpenEntry)(::windows::core::Interface::as_raw(self), lpentryid.len() as _, ::core::mem::transmute(lpentryid.as_ptr()), ::core::mem::transmute(lpinterface), ulflags, ::core::mem::transmute(lpulobjtype), ::core::mem::transmute(lppunk)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] @@ -2337,17 +2337,17 @@ impl IMAPIFolder { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).CreateFolder)(::windows::core::Interface::as_raw(self), ulfoldertype, ::core::mem::transmute(lpszfoldername), ::core::mem::transmute(lpszfoldercomment), ::core::mem::transmute(lpinterface), ulflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CopyFolder<'a, P0>(&self, cbentryid: u32, lpentryid: &ENTRYID, lpinterface: ::core::option::Option<&::windows::core::GUID>, lpdestfolder: *const ::core::ffi::c_void, lpsznewfoldername: &i8, uluiparam: usize, lpprogress: P0, ulflags: u32) -> ::windows::core::Result<()> + pub unsafe fn CopyFolder<'a, P0>(&self, lpentryid: &[u8], lpinterface: ::core::option::Option<&::windows::core::GUID>, lpdestfolder: *const ::core::ffi::c_void, lpsznewfoldername: &i8, uluiparam: usize, lpprogress: P0, ulflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMAPIProgress>>, { - (::windows::core::Interface::vtable(self).CopyFolder)(::windows::core::Interface::as_raw(self), cbentryid, ::core::mem::transmute(lpentryid), ::core::mem::transmute(lpinterface), ::core::mem::transmute(lpdestfolder), ::core::mem::transmute(lpsznewfoldername), uluiparam, lpprogress.into().abi(), ulflags).ok() + (::windows::core::Interface::vtable(self).CopyFolder)(::windows::core::Interface::as_raw(self), lpentryid.len() as _, ::core::mem::transmute(lpentryid.as_ptr()), ::core::mem::transmute(lpinterface), ::core::mem::transmute(lpdestfolder), ::core::mem::transmute(lpsznewfoldername), uluiparam, lpprogress.into().abi(), ulflags).ok() } - pub unsafe fn DeleteFolder<'a, P0>(&self, cbentryid: u32, lpentryid: &ENTRYID, uluiparam: usize, lpprogress: P0, ulflags: u32) -> ::windows::core::Result<()> + pub unsafe fn DeleteFolder<'a, P0>(&self, lpentryid: &[u8], uluiparam: usize, lpprogress: P0, ulflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IMAPIProgress>>, { - (::windows::core::Interface::vtable(self).DeleteFolder)(::windows::core::Interface::as_raw(self), cbentryid, ::core::mem::transmute(lpentryid), uluiparam, lpprogress.into().abi(), ulflags).ok() + (::windows::core::Interface::vtable(self).DeleteFolder)(::windows::core::Interface::as_raw(self), lpentryid.len() as _, ::core::mem::transmute(lpentryid.as_ptr()), uluiparam, lpprogress.into().abi(), ulflags).ok() } pub unsafe fn SetReadFlags<'a, P0>(&self, lpmsglist: &SBinaryArray, uluiparam: usize, lpprogress: P0, ulflags: u32) -> ::windows::core::Result<()> where @@ -2355,13 +2355,13 @@ impl IMAPIFolder { { (::windows::core::Interface::vtable(self).SetReadFlags)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpmsglist), uluiparam, lpprogress.into().abi(), ulflags).ok() } - pub unsafe fn GetMessageStatus(&self, cbentryid: u32, lpentryid: &ENTRYID, ulflags: u32) -> ::windows::core::Result { + pub unsafe fn GetMessageStatus(&self, lpentryid: &[u8], ulflags: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetMessageStatus)(::windows::core::Interface::as_raw(self), cbentryid, ::core::mem::transmute(lpentryid), ulflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetMessageStatus)(::windows::core::Interface::as_raw(self), lpentryid.len() as _, ::core::mem::transmute(lpentryid.as_ptr()), ulflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn SetMessageStatus(&self, cbentryid: u32, lpentryid: &ENTRYID, ulnewstatus: u32, ulnewstatusmask: u32) -> ::windows::core::Result { + pub unsafe fn SetMessageStatus(&self, lpentryid: &[u8], ulnewstatus: u32, ulnewstatusmask: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).SetMessageStatus)(::windows::core::Interface::as_raw(self), cbentryid, ::core::mem::transmute(lpentryid), ulnewstatus, ulnewstatusmask, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).SetMessageStatus)(::windows::core::Interface::as_raw(self), lpentryid.len() as _, ::core::mem::transmute(lpentryid.as_ptr()), ulnewstatus, ulnewstatusmask, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SaveContentsSort(&self, lpsortcriteria: &SSortOrderSet, ulflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SaveContentsSort)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpsortcriteria), ulflags).ok() @@ -2680,8 +2680,8 @@ impl IMAPIStatus { pub unsafe fn ChangePassword(&self, lpoldpass: &i8, lpnewpass: &i8, ulflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ChangePassword)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpoldpass), ::core::mem::transmute(lpnewpass), ulflags).ok() } - pub unsafe fn FlushQueues(&self, uluiparam: usize, lptargettransport: &[ENTRYID], ulflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).FlushQueues)(::windows::core::Interface::as_raw(self), uluiparam, lptargettransport.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lptargettransport)), ulflags).ok() + pub unsafe fn FlushQueues(&self, uluiparam: usize, lptargettransport: ::core::option::Option<&[ENTRYID]>, ulflags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).FlushQueues)(::windows::core::Interface::as_raw(self), uluiparam, lptargettransport.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lptargettransport.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ulflags).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3323,25 +3323,25 @@ impl IMsgStore { pub unsafe fn GetIDsFromNames(&self, cpropnames: u32, lpppropnames: &mut *mut MAPINAMEID, ulflags: u32, lppproptags: &mut *mut SPropTagArray) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetIDsFromNames)(::windows::core::Interface::as_raw(self), cpropnames, ::core::mem::transmute(lpppropnames), ulflags, ::core::mem::transmute(lppproptags)).ok() } - pub unsafe fn Advise<'a, P0>(&self, cbentryid: u32, lpentryid: ::core::option::Option<&ENTRYID>, uleventmask: u32, lpadvisesink: P0) -> ::windows::core::Result + pub unsafe fn Advise<'a, P0>(&self, lpentryid: ::core::option::Option<&[u8]>, uleventmask: u32, lpadvisesink: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IMAPIAdviseSink>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).Advise)(::windows::core::Interface::as_raw(self), cbentryid, ::core::mem::transmute(lpentryid), uleventmask, lpadvisesink.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).Advise)(::windows::core::Interface::as_raw(self), lpentryid.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpentryid.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), uleventmask, lpadvisesink.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Unadvise(&self, ulconnection: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Unadvise)(::windows::core::Interface::as_raw(self), ulconnection).ok() } - pub unsafe fn CompareEntryIDs(&self, cbentryid1: u32, lpentryid1: &ENTRYID, cbentryid2: u32, lpentryid2: &ENTRYID, ulflags: u32) -> ::windows::core::Result { + pub unsafe fn CompareEntryIDs(&self, lpentryid1: &[u8], lpentryid2: &[u8], ulflags: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CompareEntryIDs)(::windows::core::Interface::as_raw(self), cbentryid1, ::core::mem::transmute(lpentryid1), cbentryid2, ::core::mem::transmute(lpentryid2), ulflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CompareEntryIDs)(::windows::core::Interface::as_raw(self), lpentryid1.len() as _, ::core::mem::transmute(lpentryid1.as_ptr()), lpentryid2.len() as _, ::core::mem::transmute(lpentryid2.as_ptr()), ulflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn OpenEntry(&self, cbentryid: u32, lpentryid: &ENTRYID, lpinterface: ::core::option::Option<&::windows::core::GUID>, ulflags: u32, lpulobjtype: &mut u32, ppunk: &mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OpenEntry)(::windows::core::Interface::as_raw(self), cbentryid, ::core::mem::transmute(lpentryid), ::core::mem::transmute(lpinterface), ulflags, ::core::mem::transmute(lpulobjtype), ::core::mem::transmute(ppunk)).ok() + pub unsafe fn OpenEntry(&self, lpentryid: &[u8], lpinterface: ::core::option::Option<&::windows::core::GUID>, ulflags: u32, lpulobjtype: &mut u32, ppunk: &mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OpenEntry)(::windows::core::Interface::as_raw(self), lpentryid.len() as _, ::core::mem::transmute(lpentryid.as_ptr()), ::core::mem::transmute(lpinterface), ulflags, ::core::mem::transmute(lpulobjtype), ::core::mem::transmute(ppunk)).ok() } - pub unsafe fn SetReceiveFolder(&self, lpszmessageclass: ::core::option::Option<&i8>, ulflags: u32, cbentryid: u32, lpentryid: &ENTRYID) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetReceiveFolder)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpszmessageclass), ulflags, cbentryid, ::core::mem::transmute(lpentryid)).ok() + pub unsafe fn SetReceiveFolder(&self, lpszmessageclass: ::core::option::Option<&i8>, ulflags: u32, lpentryid: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetReceiveFolder)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpszmessageclass), ulflags, lpentryid.len() as _, ::core::mem::transmute(lpentryid.as_ptr())).ok() } pub unsafe fn GetReceiveFolder(&self, lpszmessageclass: ::core::option::Option<&i8>, ulflags: u32, lpcbentryid: &mut u32, lppentryid: &mut *mut ENTRYID, lppszexplicitclass: ::core::option::Option<&mut *mut i8>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetReceiveFolder)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpszmessageclass), ulflags, ::core::mem::transmute(lpcbentryid), ::core::mem::transmute(lppentryid), ::core::mem::transmute(lppszexplicitclass)).ok() @@ -3353,8 +3353,8 @@ impl IMsgStore { pub unsafe fn StoreLogoff(&self, lpulflags: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).StoreLogoff)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpulflags)).ok() } - pub unsafe fn AbortSubmit(&self, cbentryid: u32, lpentryid: &ENTRYID, ulflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AbortSubmit)(::windows::core::Interface::as_raw(self), cbentryid, ::core::mem::transmute(lpentryid), ulflags).ok() + pub unsafe fn AbortSubmit(&self, lpentryid: &[u8], ulflags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).AbortSubmit)(::windows::core::Interface::as_raw(self), lpentryid.len() as _, ::core::mem::transmute(lpentryid.as_ptr()), ulflags).ok() } pub unsafe fn GetOutgoingQueue(&self, ulflags: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -3366,8 +3366,8 @@ impl IMsgStore { { (::windows::core::Interface::vtable(self).SetLockState)(::windows::core::Interface::as_raw(self), lpmessage.into().abi(), ullockstate).ok() } - pub unsafe fn FinishedMsg(&self, ulflags: u32, cbentryid: u32, lpentryid: &ENTRYID) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).FinishedMsg)(::windows::core::Interface::as_raw(self), ulflags, cbentryid, ::core::mem::transmute(lpentryid)).ok() + pub unsafe fn FinishedMsg(&self, ulflags: u32, lpentryid: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).FinishedMsg)(::windows::core::Interface::as_raw(self), ulflags, lpentryid.len() as _, ::core::mem::transmute(lpentryid.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] @@ -3684,7 +3684,7 @@ impl IProviderAdmin { #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] pub unsafe fn CreateProvider(&self, lpszprovider: &i8, lpprops: &[SPropValue], uluiparam: usize, ulflags: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateProvider)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpszprovider), lpprops.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpprops)), uluiparam, ulflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateProvider)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpszprovider), lpprops.len() as _, ::core::mem::transmute(lpprops.as_ptr()), uluiparam, ulflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn DeleteProvider(&self, lpuid: &MAPIUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DeleteProvider)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpuid)).ok() @@ -6089,7 +6089,7 @@ where extern "system" { fn ScLocalPathFromUNC(lpszunc: ::windows::core::PCSTR, lpszlocal: ::windows::core::PCSTR, cchlocal: u32) -> i32; } - ScLocalPathFromUNC(lpszunc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpszlocal)), lpszlocal.len() as _) + ScLocalPathFromUNC(lpszunc.into(), ::core::mem::transmute(lpszlocal.as_ptr()), lpszlocal.len() as _) } #[doc = "*Required features: `\"Win32_System_AddressBook\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] @@ -6121,7 +6121,7 @@ where extern "system" { fn ScUNCFromLocalPath(lpszlocal: ::windows::core::PCSTR, lpszunc: ::windows::core::PCSTR, cchunc: u32) -> i32; } - ScUNCFromLocalPath(lpszlocal.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpszunc)), lpszunc.len() as _) + ScUNCFromLocalPath(lpszlocal.into(), ::core::mem::transmute(lpszunc.as_ptr()), lpszunc.len() as _) } #[doc = "*Required features: `\"Win32_System_AddressBook\"`*"] #[inline] @@ -6430,12 +6430,12 @@ where } #[doc = "*Required features: `\"Win32_System_AddressBook\"`*"] #[inline] -pub unsafe fn WrapStoreEntryID(ulflags: u32, lpszdllname: &i8, cborigentry: u32, lporigentry: &ENTRYID, lpcbwrappedentry: &mut u32, lppwrappedentry: &mut *mut ENTRYID) -> ::windows::core::Result<()> { +pub unsafe fn WrapStoreEntryID(ulflags: u32, lpszdllname: &i8, lporigentry: &[u8], lpcbwrappedentry: &mut u32, lppwrappedentry: *mut *mut ENTRYID) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WrapStoreEntryID(ulflags: u32, lpszdllname: *const i8, cborigentry: u32, lporigentry: *const ENTRYID, lpcbwrappedentry: *mut u32, lppwrappedentry: *mut *mut ENTRYID) -> ::windows::core::HRESULT; } - WrapStoreEntryID(ulflags, ::core::mem::transmute(lpszdllname), cborigentry, ::core::mem::transmute(lporigentry), ::core::mem::transmute(lpcbwrappedentry), ::core::mem::transmute(lppwrappedentry)).ok() + WrapStoreEntryID(ulflags, ::core::mem::transmute(lpszdllname), lporigentry.len() as _, ::core::mem::transmute(lporigentry.as_ptr()), ::core::mem::transmute(lpcbwrappedentry), ::core::mem::transmute(lppwrappedentry)).ok() } #[repr(C)] #[doc = "*Required features: `\"Win32_System_AddressBook\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] diff --git a/crates/libs/windows/src/Windows/Win32/System/Antimalware/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Antimalware/mod.rs index 3f407bd668..b4d196b7e0 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Antimalware/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Antimalware/mod.rs @@ -458,7 +458,7 @@ where } #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] #[inline] -pub unsafe fn AmsiNotifyOperation<'a, P0, P1>(amsicontext: P0, buffer: *const ::core::ffi::c_void, length: u32, contentname: P1) -> ::windows::core::Result +pub unsafe fn AmsiNotifyOperation<'a, P0, P1>(amsicontext: P0, buffer: &[u8], contentname: P1) -> ::windows::core::Result where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -468,7 +468,7 @@ where fn AmsiNotifyOperation(amsicontext: HAMSICONTEXT, buffer: *const ::core::ffi::c_void, length: u32, contentname: ::windows::core::PCWSTR, result: *mut AMSI_RESULT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - AmsiNotifyOperation(amsicontext.into(), ::core::mem::transmute(buffer), length, contentname.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + AmsiNotifyOperation(amsicontext.into(), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, contentname.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] #[inline] @@ -485,7 +485,7 @@ where } #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] #[inline] -pub unsafe fn AmsiScanBuffer<'a, P0, P1, P2>(amsicontext: P0, buffer: *const ::core::ffi::c_void, length: u32, contentname: P1, amsisession: P2) -> ::windows::core::Result +pub unsafe fn AmsiScanBuffer<'a, P0, P1, P2>(amsicontext: P0, buffer: &[u8], contentname: P1, amsisession: P2) -> ::windows::core::Result where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -496,7 +496,7 @@ where fn AmsiScanBuffer(amsicontext: HAMSICONTEXT, buffer: *const ::core::ffi::c_void, length: u32, contentname: ::windows::core::PCWSTR, amsisession: HAMSISESSION, result: *mut AMSI_RESULT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - AmsiScanBuffer(amsicontext.into(), ::core::mem::transmute(buffer), length, contentname.into(), amsisession.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + AmsiScanBuffer(amsicontext.into(), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, contentname.into(), amsisession.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_System_Antimalware\"`*"] #[inline] @@ -596,10 +596,10 @@ unsafe impl ::windows::core::Abi for HAMSISESSION { pub struct IAmsiStream(::windows::core::IUnknown); impl IAmsiStream { pub unsafe fn GetAttribute(&self, attribute: AMSI_ATTRIBUTE, data: &mut [u8], retdata: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetAttribute)(::windows::core::Interface::as_raw(self), attribute, data.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(data)), ::core::mem::transmute(retdata)).ok() + (::windows::core::Interface::vtable(self).GetAttribute)(::windows::core::Interface::as_raw(self), attribute, data.len() as _, ::core::mem::transmute(data.as_ptr()), ::core::mem::transmute(retdata)).ok() } pub unsafe fn Read(&self, position: u64, buffer: &mut [u8], readsize: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), position, buffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), ::core::mem::transmute(readsize)).ok() + (::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), position, buffer.len() as _, ::core::mem::transmute(buffer.as_ptr()), ::core::mem::transmute(readsize)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/System/ApplicationInstallationAndServicing/mod.rs b/crates/libs/windows/src/Windows/Win32/System/ApplicationInstallationAndServicing/mod.rs index a20fc0cf18..c33ec6cfd3 100644 --- a/crates/libs/windows/src/Windows/Win32/System/ApplicationInstallationAndServicing/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/ApplicationInstallationAndServicing/mod.rs @@ -811,12 +811,12 @@ pub unsafe fn ApplyDeltaGetReverseB(applyflags: i64, source: DELTA_INPUT, delta: #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ApplyDeltaProvidedB(applyflags: i64, source: DELTA_INPUT, delta: DELTA_INPUT, lptarget: *mut ::core::ffi::c_void, utargetsize: usize) -> super::super::Foundation::BOOL { +pub unsafe fn ApplyDeltaProvidedB(applyflags: i64, source: DELTA_INPUT, delta: DELTA_INPUT, lptarget: &mut [u8]) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ApplyDeltaProvidedB(applyflags: i64, source: DELTA_INPUT, delta: DELTA_INPUT, lptarget: *mut ::core::ffi::c_void, utargetsize: usize) -> super::super::Foundation::BOOL; } - ApplyDeltaProvidedB(applyflags, ::core::mem::transmute(source), ::core::mem::transmute(delta), ::core::mem::transmute(lptarget), utargetsize) + ApplyDeltaProvidedB(applyflags, ::core::mem::transmute(source), ::core::mem::transmute(delta), ::core::mem::transmute(lptarget.as_ptr()), lptarget.len() as _) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -851,12 +851,24 @@ where #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ApplyPatchToFileByBuffers(patchfilemapped: &u8, patchfilesize: u32, oldfilemapped: ::core::option::Option<&u8>, oldfilesize: u32, newfilebuffer: &mut *mut u8, newfilebuffersize: u32, newfileactualsize: ::core::option::Option<&mut u32>, newfiletime: ::core::option::Option<&mut super::super::Foundation::FILETIME>, applyoptionflags: u32, progresscallback: PPATCH_PROGRESS_CALLBACK, callbackcontext: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL { +pub unsafe fn ApplyPatchToFileByBuffers(patchfilemapped: &[u8], oldfilemapped: ::core::option::Option<&[u8]>, newfilebuffer: &mut [u8], newfileactualsize: ::core::option::Option<&mut u32>, newfiletime: ::core::option::Option<&mut super::super::Foundation::FILETIME>, applyoptionflags: u32, progresscallback: PPATCH_PROGRESS_CALLBACK, callbackcontext: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ApplyPatchToFileByBuffers(patchfilemapped: *const u8, patchfilesize: u32, oldfilemapped: *const u8, oldfilesize: u32, newfilebuffer: *mut *mut u8, newfilebuffersize: u32, newfileactualsize: *mut u32, newfiletime: *mut super::super::Foundation::FILETIME, applyoptionflags: u32, progresscallback: *mut ::core::ffi::c_void, callbackcontext: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - ApplyPatchToFileByBuffers(::core::mem::transmute(patchfilemapped), patchfilesize, ::core::mem::transmute(oldfilemapped), oldfilesize, ::core::mem::transmute(newfilebuffer), newfilebuffersize, ::core::mem::transmute(newfileactualsize), ::core::mem::transmute(newfiletime), applyoptionflags, ::core::mem::transmute(progresscallback), ::core::mem::transmute(callbackcontext)) + ApplyPatchToFileByBuffers( + ::core::mem::transmute(patchfilemapped.as_ptr()), + patchfilemapped.len() as _, + ::core::mem::transmute(oldfilemapped.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + oldfilemapped.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(newfilebuffer.as_ptr()), + newfilebuffer.len() as _, + ::core::mem::transmute(newfileactualsize), + ::core::mem::transmute(newfiletime), + applyoptionflags, + ::core::mem::transmute(progresscallback), + ::core::mem::transmute(callbackcontext), + ) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1102,7 +1114,7 @@ where extern "system" { fn CreatePatchFileByHandlesEx(oldfilecount: u32, oldfileinfoarray: *const PATCH_OLD_FILE_INFO_H, newfilehandle: super::super::Foundation::HANDLE, patchfilehandle: super::super::Foundation::HANDLE, optionflags: u32, optiondata: *const PATCH_OPTION_DATA, progresscallback: *mut ::core::ffi::c_void, callbackcontext: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - CreatePatchFileByHandlesEx(oldfileinfoarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(oldfileinfoarray)), newfilehandle.into(), patchfilehandle.into(), optionflags, ::core::mem::transmute(optiondata), ::core::mem::transmute(progresscallback), ::core::mem::transmute(callbackcontext)) + CreatePatchFileByHandlesEx(oldfileinfoarray.len() as _, ::core::mem::transmute(oldfileinfoarray.as_ptr()), newfilehandle.into(), patchfilehandle.into(), optionflags, ::core::mem::transmute(optiondata), ::core::mem::transmute(progresscallback), ::core::mem::transmute(callbackcontext)) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1116,7 +1128,7 @@ where extern "system" { fn CreatePatchFileExA(oldfilecount: u32, oldfileinfoarray: *const PATCH_OLD_FILE_INFO_A, newfilename: ::windows::core::PCSTR, patchfilename: ::windows::core::PCSTR, optionflags: u32, optiondata: *const PATCH_OPTION_DATA, progresscallback: *mut ::core::ffi::c_void, callbackcontext: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - CreatePatchFileExA(oldfileinfoarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(oldfileinfoarray)), newfilename.into(), patchfilename.into(), optionflags, ::core::mem::transmute(optiondata), ::core::mem::transmute(progresscallback), ::core::mem::transmute(callbackcontext)) + CreatePatchFileExA(oldfileinfoarray.len() as _, ::core::mem::transmute(oldfileinfoarray.as_ptr()), newfilename.into(), patchfilename.into(), optionflags, ::core::mem::transmute(optiondata), ::core::mem::transmute(progresscallback), ::core::mem::transmute(callbackcontext)) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1130,7 +1142,7 @@ where extern "system" { fn CreatePatchFileExW(oldfilecount: u32, oldfileinfoarray: *const PATCH_OLD_FILE_INFO_W, newfilename: ::windows::core::PCWSTR, patchfilename: ::windows::core::PCWSTR, optionflags: u32, optiondata: *const PATCH_OPTION_DATA, progresscallback: *mut ::core::ffi::c_void, callbackcontext: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - CreatePatchFileExW(oldfileinfoarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(oldfileinfoarray)), newfilename.into(), patchfilename.into(), optionflags, ::core::mem::transmute(optiondata), ::core::mem::transmute(progresscallback), ::core::mem::transmute(callbackcontext)) + CreatePatchFileExW(oldfileinfoarray.len() as _, ::core::mem::transmute(oldfileinfoarray.as_ptr()), newfilename.into(), patchfilename.into(), optionflags, ::core::mem::transmute(optiondata), ::core::mem::transmute(progresscallback), ::core::mem::transmute(callbackcontext)) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1351,12 +1363,12 @@ pub unsafe fn DeltaFree(lpmemory: *const ::core::ffi::c_void) -> super::super::F #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn DeltaNormalizeProvidedB(filetypeset: i64, normalizeflags: i64, normalizeoptions: DELTA_INPUT, lpsource: *mut ::core::ffi::c_void, usourcesize: usize) -> super::super::Foundation::BOOL { +pub unsafe fn DeltaNormalizeProvidedB(filetypeset: i64, normalizeflags: i64, normalizeoptions: DELTA_INPUT, lpsource: &mut [u8]) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn DeltaNormalizeProvidedB(filetypeset: i64, normalizeflags: i64, normalizeoptions: DELTA_INPUT, lpsource: *mut ::core::ffi::c_void, usourcesize: usize) -> super::super::Foundation::BOOL; } - DeltaNormalizeProvidedB(filetypeset, normalizeflags, ::core::mem::transmute(normalizeoptions), ::core::mem::transmute(lpsource), usourcesize) + DeltaNormalizeProvidedB(filetypeset, normalizeflags, ::core::mem::transmute(normalizeoptions), ::core::mem::transmute(lpsource.as_ptr()), lpsource.len() as _) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`*"] pub const ERROR_PATCH_BIGGER_THAN_COMPRESSED: u32 = 3222155525u32; @@ -1920,7 +1932,7 @@ where #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetFilePatchSignatureA<'a, P0>(filename: P0, optionflags: u32, optiondata: *const ::core::ffi::c_void, ignorerangearray: &[PATCH_IGNORE_RANGE], retainrangearray: &[PATCH_RETAIN_RANGE], signaturebuffersize: u32, signaturebuffer: ::windows::core::PSTR) -> super::super::Foundation::BOOL +pub unsafe fn GetFilePatchSignatureA<'a, P0>(filename: P0, optionflags: u32, optiondata: *const ::core::ffi::c_void, ignorerangearray: ::core::option::Option<&[PATCH_IGNORE_RANGE]>, retainrangearray: ::core::option::Option<&[PATCH_RETAIN_RANGE]>, signaturebuffer: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -1928,22 +1940,43 @@ where extern "system" { fn GetFilePatchSignatureA(filename: ::windows::core::PCSTR, optionflags: u32, optiondata: *const ::core::ffi::c_void, ignorerangecount: u32, ignorerangearray: *const PATCH_IGNORE_RANGE, retainrangecount: u32, retainrangearray: *const PATCH_RETAIN_RANGE, signaturebuffersize: u32, signaturebuffer: ::windows::core::PSTR) -> super::super::Foundation::BOOL; } - GetFilePatchSignatureA(filename.into(), optionflags, ::core::mem::transmute(optiondata), ignorerangearray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ignorerangearray)), retainrangearray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(retainrangearray)), signaturebuffersize, ::core::mem::transmute(signaturebuffer)) + GetFilePatchSignatureA( + filename.into(), + optionflags, + ::core::mem::transmute(optiondata), + ignorerangearray.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(ignorerangearray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + retainrangearray.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(retainrangearray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + signaturebuffer.len() as _, + ::core::mem::transmute(signaturebuffer.as_ptr()), + ) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetFilePatchSignatureByBuffer(filebufferwritable: &mut u8, filesize: u32, optionflags: u32, optiondata: *const ::core::ffi::c_void, ignorerangearray: &[PATCH_IGNORE_RANGE], retainrangearray: &[PATCH_RETAIN_RANGE], signaturebuffersize: u32, signaturebuffer: ::windows::core::PSTR) -> super::super::Foundation::BOOL { +pub unsafe fn GetFilePatchSignatureByBuffer(filebufferwritable: &mut [u8], optionflags: u32, optiondata: *const ::core::ffi::c_void, ignorerangearray: ::core::option::Option<&[PATCH_IGNORE_RANGE]>, retainrangearray: ::core::option::Option<&[PATCH_RETAIN_RANGE]>, signaturebuffer: &mut [u8]) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetFilePatchSignatureByBuffer(filebufferwritable: *mut u8, filesize: u32, optionflags: u32, optiondata: *const ::core::ffi::c_void, ignorerangecount: u32, ignorerangearray: *const PATCH_IGNORE_RANGE, retainrangecount: u32, retainrangearray: *const PATCH_RETAIN_RANGE, signaturebuffersize: u32, signaturebuffer: ::windows::core::PSTR) -> super::super::Foundation::BOOL; } - GetFilePatchSignatureByBuffer(::core::mem::transmute(filebufferwritable), filesize, optionflags, ::core::mem::transmute(optiondata), ignorerangearray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ignorerangearray)), retainrangearray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(retainrangearray)), signaturebuffersize, ::core::mem::transmute(signaturebuffer)) + GetFilePatchSignatureByBuffer( + ::core::mem::transmute(filebufferwritable.as_ptr()), + filebufferwritable.len() as _, + optionflags, + ::core::mem::transmute(optiondata), + ignorerangearray.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(ignorerangearray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + retainrangearray.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(retainrangearray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + signaturebuffer.len() as _, + ::core::mem::transmute(signaturebuffer.as_ptr()), + ) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetFilePatchSignatureByHandle<'a, P0>(filehandle: P0, optionflags: u32, optiondata: *const ::core::ffi::c_void, ignorerangearray: &[PATCH_IGNORE_RANGE], retainrangearray: &[PATCH_RETAIN_RANGE], signaturebuffersize: u32, signaturebuffer: ::windows::core::PSTR) -> super::super::Foundation::BOOL +pub unsafe fn GetFilePatchSignatureByHandle<'a, P0>(filehandle: P0, optionflags: u32, optiondata: *const ::core::ffi::c_void, ignorerangearray: ::core::option::Option<&[PATCH_IGNORE_RANGE]>, retainrangearray: ::core::option::Option<&[PATCH_RETAIN_RANGE]>, signaturebuffer: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1951,12 +1984,22 @@ where extern "system" { fn GetFilePatchSignatureByHandle(filehandle: super::super::Foundation::HANDLE, optionflags: u32, optiondata: *const ::core::ffi::c_void, ignorerangecount: u32, ignorerangearray: *const PATCH_IGNORE_RANGE, retainrangecount: u32, retainrangearray: *const PATCH_RETAIN_RANGE, signaturebuffersize: u32, signaturebuffer: ::windows::core::PSTR) -> super::super::Foundation::BOOL; } - GetFilePatchSignatureByHandle(filehandle.into(), optionflags, ::core::mem::transmute(optiondata), ignorerangearray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ignorerangearray)), retainrangearray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(retainrangearray)), signaturebuffersize, ::core::mem::transmute(signaturebuffer)) + GetFilePatchSignatureByHandle( + filehandle.into(), + optionflags, + ::core::mem::transmute(optiondata), + ignorerangearray.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(ignorerangearray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + retainrangearray.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(retainrangearray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + signaturebuffer.len() as _, + ::core::mem::transmute(signaturebuffer.as_ptr()), + ) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetFilePatchSignatureW<'a, P0>(filename: P0, optionflags: u32, optiondata: *const ::core::ffi::c_void, ignorerangearray: &[PATCH_IGNORE_RANGE], retainrangearray: &[PATCH_RETAIN_RANGE], signaturebuffersize: u32, signaturebuffer: ::windows::core::PWSTR) -> super::super::Foundation::BOOL +pub unsafe fn GetFilePatchSignatureW<'a, P0>(filename: P0, optionflags: u32, optiondata: *const ::core::ffi::c_void, ignorerangearray: ::core::option::Option<&[PATCH_IGNORE_RANGE]>, retainrangearray: ::core::option::Option<&[PATCH_RETAIN_RANGE]>, signaturebuffer: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1964,7 +2007,17 @@ where extern "system" { fn GetFilePatchSignatureW(filename: ::windows::core::PCWSTR, optionflags: u32, optiondata: *const ::core::ffi::c_void, ignorerangecount: u32, ignorerangearray: *const PATCH_IGNORE_RANGE, retainrangecount: u32, retainrangearray: *const PATCH_RETAIN_RANGE, signaturebuffersize: u32, signaturebuffer: ::windows::core::PWSTR) -> super::super::Foundation::BOOL; } - GetFilePatchSignatureW(filename.into(), optionflags, ::core::mem::transmute(optiondata), ignorerangearray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ignorerangearray)), retainrangearray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(retainrangearray)), signaturebuffersize, ::core::mem::transmute(signaturebuffer)) + GetFilePatchSignatureW( + filename.into(), + optionflags, + ::core::mem::transmute(optiondata), + ignorerangearray.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(ignorerangearray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + retainrangearray.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(retainrangearray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + signaturebuffer.len() as _, + ::core::mem::transmute(signaturebuffer.as_ptr()), + ) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`*"] pub const IACTIONNAME_ADMIN: &str = "ADMIN"; @@ -4732,20 +4785,20 @@ impl IPMDeploymentManager { (::windows::core::Interface::vtable(self).BeginEnterpriseAppUpdate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pupdateinfo)).ok() } pub unsafe fn BeginUpdateLicense(&self, productid: ::windows::core::GUID, offerid: ::windows::core::GUID, pblicense: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).BeginUpdateLicense)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(productid), ::core::mem::transmute(offerid), ::core::mem::transmute(::windows::core::as_ptr_or_null(pblicense)), pblicense.len() as _).ok() + (::windows::core::Interface::vtable(self).BeginUpdateLicense)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(productid), ::core::mem::transmute(offerid), ::core::mem::transmute(pblicense.as_ptr()), pblicense.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLicenseChallenge<'a, P0>(&self, packagepath: P0, ppbchallenge: &mut *mut u8, pcbchallenge: &mut u32, ppbkid: ::core::option::Option<&mut *mut u8>, pcbkid: ::core::option::Option<&mut u32>, ppbdeviceid: ::core::option::Option<&mut *mut u8>, pcbdeviceid: ::core::option::Option<&mut u32>, ppbsaltvalue: ::core::option::Option<&mut *mut u8>, pcbsaltvalue: ::core::option::Option<&mut u32>, ppbkgvvalue: ::core::option::Option<&mut *mut u8>, pcbkgvvalue: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetLicenseChallenge<'a, P0>(&self, packagepath: P0, ppbchallenge: *mut *mut u8, pcbchallenge: &mut u32, ppbkid: *mut *mut u8, pcbkid: ::core::option::Option<&mut u32>, ppbdeviceid: *mut *mut u8, pcbdeviceid: ::core::option::Option<&mut u32>, ppbsaltvalue: *mut *mut u8, pcbsaltvalue: ::core::option::Option<&mut u32>, ppbkgvvalue: *mut *mut u8, pcbkgvvalue: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { (::windows::core::Interface::vtable(self).GetLicenseChallenge)(::windows::core::Interface::as_raw(self), packagepath.into().abi(), ::core::mem::transmute(ppbchallenge), ::core::mem::transmute(pcbchallenge), ::core::mem::transmute(ppbkid), ::core::mem::transmute(pcbkid), ::core::mem::transmute(ppbdeviceid), ::core::mem::transmute(pcbdeviceid), ::core::mem::transmute(ppbsaltvalue), ::core::mem::transmute(pcbsaltvalue), ::core::mem::transmute(ppbkgvvalue), ::core::mem::transmute(pcbkgvvalue)).ok() } - pub unsafe fn GetLicenseChallengeByProductID(&self, productid: ::windows::core::GUID, ppbchallenge: &mut *mut u8, pcblicense: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetLicenseChallengeByProductID(&self, productid: ::windows::core::GUID, ppbchallenge: *mut *mut u8, pcblicense: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetLicenseChallengeByProductID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(productid), ::core::mem::transmute(ppbchallenge), ::core::mem::transmute(pcblicense)).ok() } - pub unsafe fn GetLicenseChallengeByProductID2(&self, productid: ::windows::core::GUID, ppbchallenge: &mut *mut u8, pcblicense: &mut u32, ppbkid: ::core::option::Option<&mut *mut u8>, pcbkid: ::core::option::Option<&mut u32>, ppbdeviceid: ::core::option::Option<&mut *mut u8>, pcbdeviceid: ::core::option::Option<&mut u32>, ppbsaltvalue: ::core::option::Option<&mut *mut u8>, pcbsaltvalue: ::core::option::Option<&mut u32>, ppbkgvvalue: ::core::option::Option<&mut *mut u8>, pcbkgvvalue: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetLicenseChallengeByProductID2(&self, productid: ::windows::core::GUID, ppbchallenge: *mut *mut u8, pcblicense: &mut u32, ppbkid: *mut *mut u8, pcbkid: ::core::option::Option<&mut u32>, ppbdeviceid: *mut *mut u8, pcbdeviceid: ::core::option::Option<&mut u32>, ppbsaltvalue: *mut *mut u8, pcbsaltvalue: ::core::option::Option<&mut u32>, ppbkgvvalue: *mut *mut u8, pcbkgvvalue: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetLicenseChallengeByProductID2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(productid), ::core::mem::transmute(ppbchallenge), ::core::mem::transmute(pcblicense), ::core::mem::transmute(ppbkid), ::core::mem::transmute(pcbkid), ::core::mem::transmute(ppbdeviceid), ::core::mem::transmute(pcbdeviceid), ::core::mem::transmute(ppbsaltvalue), ::core::mem::transmute(pcbsaltvalue), ::core::mem::transmute(ppbkgvvalue), ::core::mem::transmute(pcbkgvvalue)).ok() } pub unsafe fn RevokeLicense(&self, productid: ::windows::core::GUID) -> ::windows::core::Result<()> { @@ -4833,8 +4886,8 @@ impl IPMDeploymentManager { { (::windows::core::Interface::vtable(self).GenerateXamlLightupXbfForCurrentLocale)(::windows::core::Interface::as_raw(self), packagefamilyname.into().abi()).ok() } - pub unsafe fn AddLicenseForAppx(&self, productid: ::windows::core::GUID, pblicense: &[u8], pbplayreadyheader: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddLicenseForAppx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(productid), ::core::mem::transmute(::windows::core::as_ptr_or_null(pblicense)), pblicense.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbplayreadyheader)), pbplayreadyheader.len() as _).ok() + pub unsafe fn AddLicenseForAppx(&self, productid: ::windows::core::GUID, pblicense: &[u8], pbplayreadyheader: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).AddLicenseForAppx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(productid), ::core::mem::transmute(pblicense.as_ptr()), pblicense.len() as _, ::core::mem::transmute(pbplayreadyheader.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbplayreadyheader.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn FixJunctionsForAppsOnSDCard(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).FixJunctionsForAppsOnSDCard)(::windows::core::Interface::as_raw(self)).ok() @@ -5079,7 +5132,7 @@ impl IPMEnumerationManager { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn get_StartTileEnumeratorBlob<'a, P0>(&self, filter: P0, pctiles: &mut u32, pptileblobs: &mut *mut PM_STARTTILEBLOB) -> ::windows::core::Result<()> + pub unsafe fn get_StartTileEnumeratorBlob<'a, P0>(&self, filter: P0, pctiles: &mut u32, pptileblobs: *mut *mut PM_STARTTILEBLOB) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, PM_ENUM_FILTER>>, { @@ -5087,7 +5140,7 @@ impl IPMEnumerationManager { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn get_StartAppEnumeratorBlob<'a, P0>(&self, filter: P0, pcapps: &mut u32, ppappblobs: &mut *mut PM_STARTAPPBLOB) -> ::windows::core::Result<()> + pub unsafe fn get_StartAppEnumeratorBlob<'a, P0>(&self, filter: P0, pcapps: &mut u32, ppappblobs: *mut *mut PM_STARTAPPBLOB) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, PM_ENUM_FILTER>>, { @@ -5342,7 +5395,7 @@ impl IPMExtensionFileExtensionInfo { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn get_AllFileTypes(&self, pcbtypes: &mut u32, pptypes: &mut *mut super::super::Foundation::BSTR) -> ::windows::core::Result<()> { + pub unsafe fn get_AllFileTypes(&self, pcbtypes: &mut u32, pptypes: *mut *mut super::super::Foundation::BSTR) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).get_AllFileTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcbtypes), ::core::mem::transmute(pptypes)).ok() } } @@ -5420,7 +5473,7 @@ pub struct IPMExtensionFileOpenPickerInfo(::windows::core::IUnknown); impl IPMExtensionFileOpenPickerInfo { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn get_AllFileTypes(&self, pctypes: &mut u32, pptypes: &mut *mut super::super::Foundation::BSTR) -> ::windows::core::Result<()> { + pub unsafe fn get_AllFileTypes(&self, pctypes: &mut u32, pptypes: *mut *mut super::super::Foundation::BSTR) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).get_AllFileTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pctypes), ::core::mem::transmute(pptypes)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -5484,7 +5537,7 @@ pub struct IPMExtensionFileSavePickerInfo(::windows::core::IUnknown); impl IPMExtensionFileSavePickerInfo { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn get_AllFileTypes(&self, pctypes: &mut u32, pptypes: &mut *mut super::super::Foundation::BSTR) -> ::windows::core::Result<()> { + pub unsafe fn get_AllFileTypes(&self, pctypes: &mut u32, pptypes: *mut *mut super::super::Foundation::BSTR) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).get_AllFileTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pctypes), ::core::mem::transmute(pptypes)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -5756,12 +5809,12 @@ pub struct IPMExtensionShareTargetInfo(::windows::core::IUnknown); impl IPMExtensionShareTargetInfo { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn get_AllFileTypes(&self, pctypes: &mut u32, pptypes: &mut *mut super::super::Foundation::BSTR) -> ::windows::core::Result<()> { + pub unsafe fn get_AllFileTypes(&self, pctypes: &mut u32, pptypes: *mut *mut super::super::Foundation::BSTR) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).get_AllFileTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pctypes), ::core::mem::transmute(pptypes)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn get_AllDataFormats(&self, pcdataformats: &mut u32, ppdataformats: &mut *mut super::super::Foundation::BSTR) -> ::windows::core::Result<()> { + pub unsafe fn get_AllDataFormats(&self, pcdataformats: &mut u32, ppdataformats: *mut *mut super::super::Foundation::BSTR) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).get_AllDataFormats)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcdataformats), ::core::mem::transmute(ppdataformats)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -5900,17 +5953,17 @@ impl IPMLiveTileJobInfo { pub unsafe fn set_RecurrenceType(&self, ulrecurrencetype: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).set_RecurrenceType)(::windows::core::Interface::as_raw(self), ulrecurrencetype).ok() } - pub unsafe fn get_TileXML(&self, ptilexml: &mut *mut u8, pcbtilexml: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn get_TileXML(&self, ptilexml: *mut *mut u8, pcbtilexml: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).get_TileXML)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptilexml), ::core::mem::transmute(pcbtilexml)).ok() } pub unsafe fn set_TileXML(&self, ptilexml: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).set_TileXML)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ptilexml)), ptilexml.len() as _).ok() + (::windows::core::Interface::vtable(self).set_TileXML)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptilexml.as_ptr()), ptilexml.len() as _).ok() } - pub unsafe fn get_UrlXML(&self, purlxml: &mut *mut u8, pcburlxml: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn get_UrlXML(&self, purlxml: *mut *mut u8, pcburlxml: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).get_UrlXML)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(purlxml), ::core::mem::transmute(pcburlxml)).ok() } pub unsafe fn set_UrlXML(&self, purlxml: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).set_UrlXML)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(purlxml)), purlxml.len() as _).ok() + (::windows::core::Interface::vtable(self).set_UrlXML)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(purlxml.as_ptr()), purlxml.len() as _).ok() } pub unsafe fn AttemptCount(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -8713,7 +8766,7 @@ where extern "system" { fn MsiDetermineApplicablePatchesA(szproductpackagepath: ::windows::core::PCSTR, cpatchinfo: u32, ppatchinfo: *mut MSIPATCHSEQUENCEINFOA) -> u32; } - MsiDetermineApplicablePatchesA(szproductpackagepath.into(), ppatchinfo.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppatchinfo))) + MsiDetermineApplicablePatchesA(szproductpackagepath.into(), ppatchinfo.len() as _, ::core::mem::transmute(ppatchinfo.as_ptr())) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`*"] #[inline] @@ -8725,7 +8778,7 @@ where extern "system" { fn MsiDetermineApplicablePatchesW(szproductpackagepath: ::windows::core::PCWSTR, cpatchinfo: u32, ppatchinfo: *mut MSIPATCHSEQUENCEINFOW) -> u32; } - MsiDetermineApplicablePatchesW(szproductpackagepath.into(), ppatchinfo.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppatchinfo))) + MsiDetermineApplicablePatchesW(szproductpackagepath.into(), ppatchinfo.len() as _, ::core::mem::transmute(ppatchinfo.as_ptr())) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`*"] #[inline] @@ -8738,7 +8791,7 @@ where extern "system" { fn MsiDeterminePatchSequenceA(szproductcode: ::windows::core::PCSTR, szusersid: ::windows::core::PCSTR, dwcontext: MSIINSTALLCONTEXT, cpatchinfo: u32, ppatchinfo: *mut MSIPATCHSEQUENCEINFOA) -> u32; } - MsiDeterminePatchSequenceA(szproductcode.into(), szusersid.into(), dwcontext, ppatchinfo.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppatchinfo))) + MsiDeterminePatchSequenceA(szproductcode.into(), szusersid.into(), dwcontext, ppatchinfo.len() as _, ::core::mem::transmute(ppatchinfo.as_ptr())) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`*"] #[inline] @@ -8751,7 +8804,7 @@ where extern "system" { fn MsiDeterminePatchSequenceW(szproductcode: ::windows::core::PCWSTR, szusersid: ::windows::core::PCWSTR, dwcontext: MSIINSTALLCONTEXT, cpatchinfo: u32, ppatchinfo: *mut MSIPATCHSEQUENCEINFOW) -> u32; } - MsiDeterminePatchSequenceW(szproductcode.into(), szusersid.into(), dwcontext, ppatchinfo.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppatchinfo))) + MsiDeterminePatchSequenceW(szproductcode.into(), szusersid.into(), dwcontext, ppatchinfo.len() as _, ::core::mem::transmute(ppatchinfo.as_ptr())) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`*"] #[inline] @@ -9445,7 +9498,7 @@ where #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] #[inline] -pub unsafe fn MsiGetFileSignatureInformationA<'a, P0>(szsignedobjectpath: P0, dwflags: u32, ppccertcontext: &mut *mut super::super::Security::Cryptography::CERT_CONTEXT, pbhashdata: ::core::option::Option<&mut u8>, pcbhashdata: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> +pub unsafe fn MsiGetFileSignatureInformationA<'a, P0>(szsignedobjectpath: P0, dwflags: u32, ppccertcontext: &mut *mut super::super::Security::Cryptography::CERT_CONTEXT, pbhashdata: *mut u8, pcbhashdata: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -9458,7 +9511,7 @@ where #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`, `\"Win32_Security_Cryptography\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_Cryptography"))] #[inline] -pub unsafe fn MsiGetFileSignatureInformationW<'a, P0>(szsignedobjectpath: P0, dwflags: u32, ppccertcontext: &mut *mut super::super::Security::Cryptography::CERT_CONTEXT, pbhashdata: ::core::option::Option<&mut u8>, pcbhashdata: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> +pub unsafe fn MsiGetFileSignatureInformationW<'a, P0>(szsignedobjectpath: P0, dwflags: u32, ppccertcontext: &mut *mut super::super::Security::Cryptography::CERT_CONTEXT, pbhashdata: *mut u8, pcbhashdata: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -11540,12 +11593,23 @@ pub const MsmMerge: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0 #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn NormalizeFileForPatchSignature(filebuffer: *mut ::core::ffi::c_void, filesize: u32, optionflags: u32, optiondata: ::core::option::Option<&PATCH_OPTION_DATA>, newfilecoffbase: u32, newfilecofftime: u32, ignorerangearray: &[PATCH_IGNORE_RANGE], retainrangearray: &[PATCH_RETAIN_RANGE]) -> i32 { +pub unsafe fn NormalizeFileForPatchSignature(filebuffer: &mut [u8], optionflags: u32, optiondata: ::core::option::Option<&PATCH_OPTION_DATA>, newfilecoffbase: u32, newfilecofftime: u32, ignorerangearray: ::core::option::Option<&[PATCH_IGNORE_RANGE]>, retainrangearray: ::core::option::Option<&[PATCH_RETAIN_RANGE]>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn NormalizeFileForPatchSignature(filebuffer: *mut ::core::ffi::c_void, filesize: u32, optionflags: u32, optiondata: *const PATCH_OPTION_DATA, newfilecoffbase: u32, newfilecofftime: u32, ignorerangecount: u32, ignorerangearray: *const PATCH_IGNORE_RANGE, retainrangecount: u32, retainrangearray: *const PATCH_RETAIN_RANGE) -> i32; } - NormalizeFileForPatchSignature(::core::mem::transmute(filebuffer), filesize, optionflags, ::core::mem::transmute(optiondata), newfilecoffbase, newfilecofftime, ignorerangearray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ignorerangearray)), retainrangearray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(retainrangearray))) + NormalizeFileForPatchSignature( + ::core::mem::transmute(filebuffer.as_ptr()), + filebuffer.len() as _, + optionflags, + ::core::mem::transmute(optiondata), + newfilecoffbase, + newfilecofftime, + ignorerangearray.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(ignorerangearray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + retainrangearray.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(retainrangearray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`*"] #[repr(transparent)] @@ -13315,7 +13379,7 @@ impl ::core::ops::Not for QUERYASMINFO_FLAGS { #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn QueryActCtxSettingsW<'a, P0, P1, P2>(dwflags: u32, hactctx: P0, settingsnamespace: P1, settingname: P2, pvbuffer: ::windows::core::PWSTR, dwbuffer: usize, pdwwrittenorrequired: ::core::option::Option<&mut usize>) -> super::super::Foundation::BOOL +pub unsafe fn QueryActCtxSettingsW<'a, P0, P1, P2>(dwflags: u32, hactctx: P0, settingsnamespace: P1, settingname: P2, pvbuffer: ::core::option::Option<&mut [u8]>, pdwwrittenorrequired: ::core::option::Option<&mut usize>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -13325,12 +13389,12 @@ where extern "system" { fn QueryActCtxSettingsW(dwflags: u32, hactctx: super::super::Foundation::HANDLE, settingsnamespace: ::windows::core::PCWSTR, settingname: ::windows::core::PCWSTR, pvbuffer: ::windows::core::PWSTR, dwbuffer: usize, pdwwrittenorrequired: *mut usize) -> super::super::Foundation::BOOL; } - QueryActCtxSettingsW(dwflags, hactctx.into(), settingsnamespace.into(), settingname.into(), ::core::mem::transmute(pvbuffer), dwbuffer, ::core::mem::transmute(pdwwrittenorrequired)) + QueryActCtxSettingsW(dwflags, hactctx.into(), settingsnamespace.into(), settingname.into(), ::core::mem::transmute(pvbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdwwrittenorrequired)) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn QueryActCtxW<'a, P0>(dwflags: u32, hactctx: P0, pvsubinstance: *const ::core::ffi::c_void, ulinfoclass: u32, pvbuffer: *mut ::core::ffi::c_void, cbbuffer: usize, pcbwrittenorrequired: ::core::option::Option<&mut usize>) -> super::super::Foundation::BOOL +pub unsafe fn QueryActCtxW<'a, P0>(dwflags: u32, hactctx: P0, pvsubinstance: *const ::core::ffi::c_void, ulinfoclass: u32, pvbuffer: ::core::option::Option<&mut [u8]>, pcbwrittenorrequired: ::core::option::Option<&mut usize>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13338,7 +13402,7 @@ where extern "system" { fn QueryActCtxW(dwflags: u32, hactctx: super::super::Foundation::HANDLE, pvsubinstance: *const ::core::ffi::c_void, ulinfoclass: u32, pvbuffer: *mut ::core::ffi::c_void, cbbuffer: usize, pcbwrittenorrequired: *mut usize) -> super::super::Foundation::BOOL; } - QueryActCtxW(dwflags, hactctx.into(), ::core::mem::transmute(pvsubinstance), ulinfoclass, ::core::mem::transmute(pvbuffer), cbbuffer, ::core::mem::transmute(pcbwrittenorrequired)) + QueryActCtxW(dwflags, hactctx.into(), ::core::mem::transmute(pvsubinstance), ulinfoclass, ::core::mem::transmute(pvbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbwrittenorrequired)) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`*"] #[repr(transparent)] @@ -13597,7 +13661,7 @@ where extern "system" { fn SfpVerifyFile(pszfilename: ::windows::core::PCSTR, pszerror: ::windows::core::PCSTR, dwerrsize: u32) -> super::super::Foundation::BOOL; } - SfpVerifyFile(pszfilename.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pszerror)), pszerror.len() as _) + SfpVerifyFile(pszfilename.into(), ::core::mem::transmute(pszerror.as_ptr()), pszerror.len() as _) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`*"] #[repr(transparent)] @@ -13825,12 +13889,12 @@ where #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn TestApplyPatchToFileByBuffers(patchfilebuffer: &u8, patchfilesize: u32, oldfilebuffer: ::core::option::Option<&u8>, oldfilesize: u32, newfilesize: ::core::option::Option<&mut u32>, applyoptionflags: u32) -> super::super::Foundation::BOOL { +pub unsafe fn TestApplyPatchToFileByBuffers(patchfilebuffer: &[u8], oldfilebuffer: ::core::option::Option<&[u8]>, newfilesize: ::core::option::Option<&mut u32>, applyoptionflags: u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TestApplyPatchToFileByBuffers(patchfilebuffer: *const u8, patchfilesize: u32, oldfilebuffer: *const u8, oldfilesize: u32, newfilesize: *mut u32, applyoptionflags: u32) -> super::super::Foundation::BOOL; } - TestApplyPatchToFileByBuffers(::core::mem::transmute(patchfilebuffer), patchfilesize, ::core::mem::transmute(oldfilebuffer), oldfilesize, ::core::mem::transmute(newfilesize), applyoptionflags) + TestApplyPatchToFileByBuffers(::core::mem::transmute(patchfilebuffer.as_ptr()), patchfilebuffer.len() as _, ::core::mem::transmute(oldfilebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), oldfilebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(newfilesize), applyoptionflags) } #[doc = "*Required features: `\"Win32_System_ApplicationInstallationAndServicing\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/System/Com/CallObj/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Com/CallObj/mod.rs index 874ddf5019..ccec423443 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Com/CallObj/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Com/CallObj/mod.rs @@ -378,18 +378,18 @@ impl ICallFrame { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn Marshal(&self, pmshlcontext: &CALLFRAME_MARSHALCONTEXT, mshlflags: super::MSHLFLAGS, pbuffer: &[u8], pcbbufferused: &mut u32, pdatarep: &mut u32, prpcflags: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Marshal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pmshlcontext), mshlflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuffer)), pbuffer.len() as _, ::core::mem::transmute(pcbbufferused), ::core::mem::transmute(pdatarep), ::core::mem::transmute(prpcflags)).ok() + (::windows::core::Interface::vtable(self).Marshal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pmshlcontext), mshlflags, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _, ::core::mem::transmute(pcbbufferused), ::core::mem::transmute(pdatarep), ::core::mem::transmute(prpcflags)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn Unmarshal(&self, pbuffer: &[u8], datarep: u32, pcontext: &CALLFRAME_MARSHALCONTEXT) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).Unmarshal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuffer)), pbuffer.len() as _, datarep, ::core::mem::transmute(pcontext), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).Unmarshal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _, datarep, ::core::mem::transmute(pcontext), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ReleaseMarshalData(&self, pbuffer: &[u8], ibfirstrelease: u32, datarep: u32, pcontext: &CALLFRAME_MARSHALCONTEXT) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReleaseMarshalData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuffer)), pbuffer.len() as _, ibfirstrelease, datarep, ::core::mem::transmute(pcontext)).ok() + (::windows::core::Interface::vtable(self).ReleaseMarshalData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _, ibfirstrelease, datarep, ::core::mem::transmute(pcontext)).ok() } pub unsafe fn Invoke(&self, pvreceiver: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Invoke)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvreceiver)).ok() @@ -759,12 +759,12 @@ impl ICallUnmarshal { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).Unmarshal)(::windows::core::Interface::as_raw(self), imethod, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuffer)), pbuffer.len() as _, fforcebuffercopy.into(), datarep, ::core::mem::transmute(pcontext), ::core::mem::transmute(pcbunmarshalled), ::core::mem::transmute(ppframe)).ok() + (::windows::core::Interface::vtable(self).Unmarshal)(::windows::core::Interface::as_raw(self), imethod, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _, fforcebuffercopy.into(), datarep, ::core::mem::transmute(pcontext), ::core::mem::transmute(pcbunmarshalled), ::core::mem::transmute(ppframe)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn ReleaseMarshalData(&self, imethod: u32, pbuffer: &[u8], ibfirstrelease: u32, datarep: u32, pcontext: &CALLFRAME_MARSHALCONTEXT) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReleaseMarshalData)(::windows::core::Interface::as_raw(self), imethod, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuffer)), pbuffer.len() as _, ibfirstrelease, datarep, ::core::mem::transmute(pcontext)).ok() + (::windows::core::Interface::vtable(self).ReleaseMarshalData)(::windows::core::Interface::as_raw(self), imethod, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _, ibfirstrelease, datarep, ::core::mem::transmute(pcontext)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/System/Com/Events/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Com/Events/mod.rs index 43d6946e8c..0d2ae82511 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Com/Events/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Com/Events/mod.rs @@ -134,7 +134,7 @@ impl IEnumEventObject { (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Next(&self, ppinterface: &mut [::core::option::Option<::windows::core::IUnknown>], cretelem: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppinterface.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppinterface)), ::core::mem::transmute(cretelem)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppinterface.len() as _, ::core::mem::transmute(ppinterface.as_ptr()), ::core::mem::transmute(cretelem)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() diff --git a/crates/libs/windows/src/Windows/Win32/System/Com/Marshal/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Com/Marshal/mod.rs index 8aefed1c7e..acf712c453 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Com/Marshal/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Com/Marshal/mod.rs @@ -61,7 +61,7 @@ pub unsafe fn BSTR_UserSize64(param0: &u32, param1: u32, param2: &super::super:: #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BSTR_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super::super::super::Foundation::BSTR) -> *mut u8 { +pub unsafe fn BSTR_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut super::super::super::Foundation::BSTR) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn BSTR_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut super::super::super::Foundation::BSTR) -> *mut u8; @@ -71,7 +71,7 @@ pub unsafe fn BSTR_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super:: #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn BSTR_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut super::super::super::Foundation::BSTR) -> *mut u8 { +pub unsafe fn BSTR_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut super::super::super::Foundation::BSTR) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn BSTR_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut super::super::super::Foundation::BSTR) -> *mut u8; @@ -134,7 +134,7 @@ pub unsafe fn CLIPFORMAT_UserSize64(param0: &u32, param1: u32, param2: &u16) -> } #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`*"] #[inline] -pub unsafe fn CLIPFORMAT_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut u16) -> *mut u8 { +pub unsafe fn CLIPFORMAT_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut u16) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CLIPFORMAT_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut u16) -> *mut u8; @@ -143,7 +143,7 @@ pub unsafe fn CLIPFORMAT_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut u } #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`*"] #[inline] -pub unsafe fn CLIPFORMAT_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut u16) -> *mut u8 { +pub unsafe fn CLIPFORMAT_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut u16) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CLIPFORMAT_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut u16) -> *mut u8; @@ -328,7 +328,7 @@ pub unsafe fn HACCEL_UserSize64(param0: &u32, param1: u32, param2: &super::super #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] #[inline] -pub unsafe fn HACCEL_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super::super::super::UI::WindowsAndMessaging::HACCEL) -> *mut u8 { +pub unsafe fn HACCEL_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut super::super::super::UI::WindowsAndMessaging::HACCEL) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HACCEL_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut super::super::super::UI::WindowsAndMessaging::HACCEL) -> *mut u8; @@ -338,7 +338,7 @@ pub unsafe fn HACCEL_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] #[inline] -pub unsafe fn HACCEL_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut super::super::super::UI::WindowsAndMessaging::HACCEL) -> *mut u8 { +pub unsafe fn HACCEL_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut super::super::super::UI::WindowsAndMessaging::HACCEL) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HACCEL_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut super::super::super::UI::WindowsAndMessaging::HACCEL) -> *mut u8; @@ -408,7 +408,7 @@ pub unsafe fn HBITMAP_UserSize64(param0: &u32, param1: u32, param2: &super::supe #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn HBITMAP_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super::super::super::Graphics::Gdi::HBITMAP) -> *mut u8 { +pub unsafe fn HBITMAP_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut super::super::super::Graphics::Gdi::HBITMAP) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HBITMAP_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut super::super::super::Graphics::Gdi::HBITMAP) -> *mut u8; @@ -418,7 +418,7 @@ pub unsafe fn HBITMAP_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut supe #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn HBITMAP_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut super::super::super::Graphics::Gdi::HBITMAP) -> *mut u8 { +pub unsafe fn HBITMAP_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut super::super::super::Graphics::Gdi::HBITMAP) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HBITMAP_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut super::super::super::Graphics::Gdi::HBITMAP) -> *mut u8; @@ -488,7 +488,7 @@ pub unsafe fn HDC_UserSize64(param0: &u32, param1: u32, param2: &super::super::s #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn HDC_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super::super::super::Graphics::Gdi::HDC) -> *mut u8 { +pub unsafe fn HDC_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut super::super::super::Graphics::Gdi::HDC) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HDC_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut super::super::super::Graphics::Gdi::HDC) -> *mut u8; @@ -498,7 +498,7 @@ pub unsafe fn HDC_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super::s #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn HDC_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut super::super::super::Graphics::Gdi::HDC) -> *mut u8 { +pub unsafe fn HDC_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut super::super::super::Graphics::Gdi::HDC) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HDC_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut super::super::super::Graphics::Gdi::HDC) -> *mut u8; @@ -561,7 +561,7 @@ pub unsafe fn HGLOBAL_UserSize64(param0: &u32, param1: u32, param2: &isize) -> u } #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`*"] #[inline] -pub unsafe fn HGLOBAL_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut isize) -> *mut u8 { +pub unsafe fn HGLOBAL_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut isize) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HGLOBAL_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut isize) -> *mut u8; @@ -570,7 +570,7 @@ pub unsafe fn HGLOBAL_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut isiz } #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`*"] #[inline] -pub unsafe fn HGLOBAL_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut isize) -> *mut u8 { +pub unsafe fn HGLOBAL_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut isize) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HGLOBAL_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut isize) -> *mut u8; @@ -640,7 +640,7 @@ pub unsafe fn HICON_UserSize64(param0: &u32, param1: u32, param2: &super::super: #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] #[inline] -pub unsafe fn HICON_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super::super::super::UI::WindowsAndMessaging::HICON) -> *mut u8 { +pub unsafe fn HICON_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut super::super::super::UI::WindowsAndMessaging::HICON) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HICON_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut super::super::super::UI::WindowsAndMessaging::HICON) -> *mut u8; @@ -650,7 +650,7 @@ pub unsafe fn HICON_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super: #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] #[inline] -pub unsafe fn HICON_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut super::super::super::UI::WindowsAndMessaging::HICON) -> *mut u8 { +pub unsafe fn HICON_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut super::super::super::UI::WindowsAndMessaging::HICON) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HICON_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut super::super::super::UI::WindowsAndMessaging::HICON) -> *mut u8; @@ -720,7 +720,7 @@ pub unsafe fn HMENU_UserSize64(param0: &u32, param1: u32, param2: &super::super: #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] #[inline] -pub unsafe fn HMENU_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super::super::super::UI::WindowsAndMessaging::HMENU) -> *mut u8 { +pub unsafe fn HMENU_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut super::super::super::UI::WindowsAndMessaging::HMENU) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HMENU_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut super::super::super::UI::WindowsAndMessaging::HMENU) -> *mut u8; @@ -730,7 +730,7 @@ pub unsafe fn HMENU_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super: #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] #[inline] -pub unsafe fn HMENU_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut super::super::super::UI::WindowsAndMessaging::HMENU) -> *mut u8 { +pub unsafe fn HMENU_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut super::super::super::UI::WindowsAndMessaging::HMENU) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HMENU_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut super::super::super::UI::WindowsAndMessaging::HMENU) -> *mut u8; @@ -800,7 +800,7 @@ pub unsafe fn HPALETTE_UserSize64(param0: &u32, param1: u32, param2: &super::sup #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn HPALETTE_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super::super::super::Graphics::Gdi::HPALETTE) -> *mut u8 { +pub unsafe fn HPALETTE_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut super::super::super::Graphics::Gdi::HPALETTE) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HPALETTE_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut super::super::super::Graphics::Gdi::HPALETTE) -> *mut u8; @@ -810,7 +810,7 @@ pub unsafe fn HPALETTE_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut sup #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn HPALETTE_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut super::super::super::Graphics::Gdi::HPALETTE) -> *mut u8 { +pub unsafe fn HPALETTE_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut super::super::super::Graphics::Gdi::HPALETTE) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HPALETTE_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut super::super::super::Graphics::Gdi::HPALETTE) -> *mut u8; @@ -880,7 +880,7 @@ pub unsafe fn HWND_UserSize64(param0: &u32, param1: u32, param2: &super::super:: #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HWND_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super::super::super::Foundation::HWND) -> *mut u8 { +pub unsafe fn HWND_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut super::super::super::Foundation::HWND) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HWND_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut super::super::super::Foundation::HWND) -> *mut u8; @@ -890,7 +890,7 @@ pub unsafe fn HWND_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super:: #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HWND_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut super::super::super::Foundation::HWND) -> *mut u8 { +pub unsafe fn HWND_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut super::super::super::Foundation::HWND) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HWND_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut super::super::super::Foundation::HWND) -> *mut u8; @@ -1066,11 +1066,11 @@ pub struct IMarshal2_Vtbl { #[repr(transparent)] pub struct IMarshalingStream(::windows::core::IUnknown); impl IMarshalingStream { - pub unsafe fn Read(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread)) + pub unsafe fn Read(&self, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)) } - pub unsafe fn Write(&self, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbwritten)) + pub unsafe fn Write(&self, pv: &[u8], pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbwritten)) } pub unsafe fn Seek(&self, dlibmove: i64, dworigin: super::STREAM_SEEK) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1238,7 +1238,7 @@ pub unsafe fn LPSAFEARRAY_UserSize64(param0: &u32, param1: u32, param2: &*const } #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`*"] #[inline] -pub unsafe fn LPSAFEARRAY_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut *mut super::SAFEARRAY) -> *mut u8 { +pub unsafe fn LPSAFEARRAY_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut *mut super::SAFEARRAY) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn LPSAFEARRAY_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut *mut super::SAFEARRAY) -> *mut u8; @@ -1247,7 +1247,7 @@ pub unsafe fn LPSAFEARRAY_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut } #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`*"] #[inline] -pub unsafe fn LPSAFEARRAY_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut *mut super::SAFEARRAY) -> *mut u8 { +pub unsafe fn LPSAFEARRAY_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut *mut super::SAFEARRAY) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn LPSAFEARRAY_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut *mut super::SAFEARRAY) -> *mut u8; @@ -1310,7 +1310,7 @@ pub unsafe fn SNB_UserSize64(param0: &u32, param1: u32, param2: &*const *const u } #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`*"] #[inline] -pub unsafe fn SNB_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut *mut *mut u16) -> *mut u8 { +pub unsafe fn SNB_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut *mut *mut u16) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SNB_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut *mut *mut u16) -> *mut u8; @@ -1319,7 +1319,7 @@ pub unsafe fn SNB_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut *mut *mu } #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`*"] #[inline] -pub unsafe fn SNB_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut *mut *mut u16) -> *mut u8 { +pub unsafe fn SNB_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut *mut *mut u16) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SNB_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut *mut *mut u16) -> *mut u8; @@ -1416,7 +1416,7 @@ pub unsafe fn STGMEDIUM_UserSize64(param0: &u32, param1: u32, param2: &super::ST #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn STGMEDIUM_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super::STGMEDIUM) -> *mut u8 { +pub unsafe fn STGMEDIUM_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut super::STGMEDIUM) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn STGMEDIUM_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut super::STGMEDIUM) -> *mut u8; @@ -1426,7 +1426,7 @@ pub unsafe fn STGMEDIUM_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut su #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn STGMEDIUM_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut super::STGMEDIUM) -> *mut u8 { +pub unsafe fn STGMEDIUM_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut super::STGMEDIUM) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn STGMEDIUM_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut super::STGMEDIUM) -> *mut u8; @@ -1496,7 +1496,7 @@ pub unsafe fn VARIANT_UserSize64(param0: &u32, param1: u32, param2: &super::VARI #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))] #[inline] -pub unsafe fn VARIANT_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super::VARIANT) -> *mut u8 { +pub unsafe fn VARIANT_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut super::VARIANT) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn VARIANT_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut super::VARIANT) -> *mut u8; @@ -1506,7 +1506,7 @@ pub unsafe fn VARIANT_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut supe #[doc = "*Required features: `\"Win32_System_Com_Marshal\"`, `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))] #[inline] -pub unsafe fn VARIANT_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut super::VARIANT) -> *mut u8 { +pub unsafe fn VARIANT_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut super::VARIANT) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn VARIANT_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut super::VARIANT) -> *mut u8; diff --git a/crates/libs/windows/src/Windows/Win32/System/Com/StructuredStorage/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Com/StructuredStorage/mod.rs index a77d2033e9..902ce891e8 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Com/StructuredStorage/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Com/StructuredStorage/mod.rs @@ -782,7 +782,7 @@ where extern "system" { fn CoGetInstanceFromFile(pserverinfo: *const super::COSERVERINFO, pclsid: *const ::windows::core::GUID, punkouter: *mut ::core::ffi::c_void, dwclsctx: super::CLSCTX, grfmode: u32, pwszname: ::windows::core::PCWSTR, dwcount: u32, presults: *mut super::MULTI_QI) -> ::windows::core::HRESULT; } - CoGetInstanceFromFile(::core::mem::transmute(pserverinfo), ::core::mem::transmute(pclsid), punkouter.into().abi(), dwclsctx, grfmode, pwszname.into(), presults.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(presults))).ok() + CoGetInstanceFromFile(::core::mem::transmute(pserverinfo), ::core::mem::transmute(pclsid), punkouter.into().abi(), dwclsctx, grfmode, pwszname.into(), presults.len() as _, ::core::mem::transmute(presults.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"] #[inline] @@ -795,7 +795,7 @@ where extern "system" { fn CoGetInstanceFromIStorage(pserverinfo: *const super::COSERVERINFO, pclsid: *const ::windows::core::GUID, punkouter: *mut ::core::ffi::c_void, dwclsctx: super::CLSCTX, pstg: *mut ::core::ffi::c_void, dwcount: u32, presults: *mut super::MULTI_QI) -> ::windows::core::HRESULT; } - CoGetInstanceFromIStorage(::core::mem::transmute(pserverinfo), ::core::mem::transmute(pclsid), punkouter.into().abi(), dwclsctx, pstg.into().abi(), presults.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(presults))).ok() + CoGetInstanceFromIStorage(::core::mem::transmute(pserverinfo), ::core::mem::transmute(pclsid), punkouter.into().abi(), dwclsctx, pstg.into().abi(), presults.len() as _, ::core::mem::transmute(presults.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"] #[inline] @@ -856,7 +856,7 @@ pub unsafe fn FreePropVariantArray(rgvars: &mut [PROPVARIANT]) -> ::windows::cor extern "system" { fn FreePropVariantArray(cvariants: u32, rgvars: *mut PROPVARIANT) -> ::windows::core::HRESULT; } - FreePropVariantArray(rgvars.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgvars))).ok() + FreePropVariantArray(rgvars.len() as _, ::core::mem::transmute(rgvars.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"] #[inline] @@ -960,7 +960,7 @@ impl IEnumSTATPROPSETSTG { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn Next(&self, rgelt: &mut [STATPROPSETSTG], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)) + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)) } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::HRESULT { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt) @@ -1025,7 +1025,7 @@ pub struct IEnumSTATPROPSETSTG_Vtbl { pub struct IEnumSTATPROPSTG(::windows::core::IUnknown); impl IEnumSTATPROPSTG { pub unsafe fn Next(&self, rgelt: &mut [STATPROPSTG], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)) + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)) } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::HRESULT { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt) @@ -1089,7 +1089,7 @@ impl IEnumSTATSTG { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn Next(&self, rgelt: &mut [super::STATSTG], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -1153,13 +1153,13 @@ pub struct IEnumSTATSTG_Vtbl { #[repr(transparent)] pub struct IFillLockBytes(::windows::core::IUnknown); impl IFillLockBytes { - pub unsafe fn FillAppend(&self, pv: *const ::core::ffi::c_void, cb: u32) -> ::windows::core::Result { + pub unsafe fn FillAppend(&self, pv: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).FillAppend)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).FillAppend)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn FillAt(&self, uloffset: u64, pv: *const ::core::ffi::c_void, cb: u32) -> ::windows::core::Result { + pub unsafe fn FillAt(&self, uloffset: u64, pv: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).FillAt)(::windows::core::Interface::as_raw(self), uloffset, ::core::mem::transmute(pv), cb, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).FillAt)(::windows::core::Interface::as_raw(self), uloffset, ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetFillSize(&self, ulsize: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetFillSize)(::windows::core::Interface::as_raw(self), ulsize).ok() @@ -1225,7 +1225,7 @@ pub struct IFillLockBytes_Vtbl { pub struct ILayoutStorage(::windows::core::IUnknown); impl ILayoutStorage { pub unsafe fn LayoutScript(&self, pstoragelayout: &[super::StorageLayout], glfinterleavedflag: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).LayoutScript)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pstoragelayout)), pstoragelayout.len() as _, glfinterleavedflag).ok() + (::windows::core::Interface::vtable(self).LayoutScript)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pstoragelayout.as_ptr()), pstoragelayout.len() as _, glfinterleavedflag).ok() } pub unsafe fn BeginMonitor(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).BeginMonitor)(::windows::core::Interface::as_raw(self)).ok() @@ -1295,12 +1295,12 @@ pub struct ILayoutStorage_Vtbl { #[repr(transparent)] pub struct ILockBytes(::windows::core::IUnknown); impl ILockBytes { - pub unsafe fn ReadAt(&self, uloffset: u64, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadAt)(::windows::core::Interface::as_raw(self), uloffset, ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread)).ok() + pub unsafe fn ReadAt(&self, uloffset: u64, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadAt)(::windows::core::Interface::as_raw(self), uloffset, ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)).ok() } - pub unsafe fn WriteAt(&self, uloffset: u64, pv: *const ::core::ffi::c_void, cb: u32) -> ::windows::core::Result { + pub unsafe fn WriteAt(&self, uloffset: u64, pv: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteAt)(::windows::core::Interface::as_raw(self), uloffset, ::core::mem::transmute(pv), cb, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteAt)(::windows::core::Interface::as_raw(self), uloffset, ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Flush(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Flush)(::windows::core::Interface::as_raw(self)).ok() @@ -1552,7 +1552,7 @@ pub struct IPropertyBag2(::windows::core::IUnknown); impl IPropertyBag2 { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))] - pub unsafe fn Read<'a, P0>(&self, cproperties: u32, ppropbag: &PROPBAG2, perrlog: P0, pvarvalue: &mut super::VARIANT, phrerror: &mut ::windows::core::HRESULT) -> ::windows::core::Result<()> + pub unsafe fn Read<'a, P0>(&self, cproperties: u32, ppropbag: *const PROPBAG2, perrlog: P0, pvarvalue: *mut super::VARIANT, phrerror: *mut ::windows::core::HRESULT) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::IErrorLog>>, { @@ -1560,7 +1560,7 @@ impl IPropertyBag2 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Ole"))] - pub unsafe fn Write(&self, cproperties: u32, ppropbag: &PROPBAG2, pvarvalue: &super::VARIANT) -> ::windows::core::Result<()> { + pub unsafe fn Write(&self, cproperties: u32, ppropbag: *const PROPBAG2, pvarvalue: *const super::VARIANT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cproperties), ::core::mem::transmute(ppropbag), ::core::mem::transmute(pvarvalue)).ok() } pub unsafe fn CountProperties(&self) -> ::windows::core::Result { @@ -1568,7 +1568,7 @@ impl IPropertyBag2 { (::windows::core::Interface::vtable(self).CountProperties)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetPropertyInfo(&self, iproperty: u32, ppropbag: &mut [PROPBAG2], pcproperties: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPropertyInfo)(::windows::core::Interface::as_raw(self), iproperty, ppropbag.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppropbag)), ::core::mem::transmute(pcproperties)).ok() + (::windows::core::Interface::vtable(self).GetPropertyInfo)(::windows::core::Interface::as_raw(self), iproperty, ppropbag.len() as _, ::core::mem::transmute(ppropbag.as_ptr()), ::core::mem::transmute(pcproperties)).ok() } pub unsafe fn LoadObject<'a, P0, P1, P2>(&self, pstrname: P0, dwhint: u32, punkobject: P1, perrlog: P2) -> ::windows::core::Result<()> where @@ -1700,25 +1700,25 @@ pub struct IPropertyStorage(::windows::core::IUnknown); impl IPropertyStorage { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn ReadMultiple(&self, cpspec: u32, rgpspec: &PROPSPEC, rgpropvar: &mut PROPVARIANT) -> ::windows::core::Result<()> { + pub unsafe fn ReadMultiple(&self, cpspec: u32, rgpspec: *const PROPSPEC, rgpropvar: *mut PROPVARIANT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReadMultiple)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cpspec), ::core::mem::transmute(rgpspec), ::core::mem::transmute(rgpropvar)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn WriteMultiple(&self, cpspec: u32, rgpspec: &PROPSPEC, rgpropvar: &PROPVARIANT, propidnamefirst: u32) -> ::windows::core::Result<()> { + pub unsafe fn WriteMultiple(&self, cpspec: u32, rgpspec: *const PROPSPEC, rgpropvar: *const PROPVARIANT, propidnamefirst: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WriteMultiple)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cpspec), ::core::mem::transmute(rgpspec), ::core::mem::transmute(rgpropvar), propidnamefirst).ok() } pub unsafe fn DeleteMultiple(&self, rgpspec: &[PROPSPEC]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DeleteMultiple)(::windows::core::Interface::as_raw(self), rgpspec.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpspec))).ok() + (::windows::core::Interface::vtable(self).DeleteMultiple)(::windows::core::Interface::as_raw(self), rgpspec.len() as _, ::core::mem::transmute(rgpspec.as_ptr())).ok() } - pub unsafe fn ReadPropertyNames(&self, cpropid: u32, rgpropid: &u32, rglpwstrname: &mut ::windows::core::PWSTR) -> ::windows::core::Result<()> { + pub unsafe fn ReadPropertyNames(&self, cpropid: u32, rgpropid: *const u32, rglpwstrname: *mut ::windows::core::PWSTR) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReadPropertyNames)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cpropid), ::core::mem::transmute(rgpropid), ::core::mem::transmute(rglpwstrname)).ok() } - pub unsafe fn WritePropertyNames(&self, cpropid: u32, rgpropid: &u32, rglpwstrname: &::windows::core::PWSTR) -> ::windows::core::Result<()> { + pub unsafe fn WritePropertyNames(&self, cpropid: u32, rgpropid: *const u32, rglpwstrname: *const ::windows::core::PWSTR) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WritePropertyNames)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cpropid), ::core::mem::transmute(rgpropid), ::core::mem::transmute(rglpwstrname)).ok() } pub unsafe fn DeletePropertyNames(&self, rgpropid: &[u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DeletePropertyNames)(::windows::core::Interface::as_raw(self), rgpropid.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpropid))).ok() + (::windows::core::Interface::vtable(self).DeletePropertyNames)(::windows::core::Interface::as_raw(self), rgpropid.len() as _, ::core::mem::transmute(rgpropid.as_ptr())).ok() } pub unsafe fn Commit(&self, grfcommitflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Commit)(::windows::core::Interface::as_raw(self), grfcommitflags).ok() @@ -1893,11 +1893,11 @@ impl IStorage { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).OpenStorage)(::windows::core::Interface::as_raw(self), pwcsname.into(), pstgpriority.into().abi(), grfmode, ::core::mem::transmute(snbexclude), reserved, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CopyTo<'a, P0>(&self, rgiidexclude: &[::windows::core::GUID], snbexclude: ::core::option::Option<&*const u16>, pstgdest: P0) -> ::windows::core::Result<()> + pub unsafe fn CopyTo<'a, P0>(&self, rgiidexclude: ::core::option::Option<&[::windows::core::GUID]>, snbexclude: ::core::option::Option<&*const u16>, pstgdest: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IStorage>>, { - (::windows::core::Interface::vtable(self).CopyTo)(::windows::core::Interface::as_raw(self), rgiidexclude.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgiidexclude)), ::core::mem::transmute(snbexclude), pstgdest.into().abi()).ok() + (::windows::core::Interface::vtable(self).CopyTo)(::windows::core::Interface::as_raw(self), rgiidexclude.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgiidexclude.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(snbexclude), pstgdest.into().abi()).ok() } pub unsafe fn MoveElementTo<'a, P0, P1, P2>(&self, pwcsname: P0, pstgdest: P1, pwcsnewname: P2, grfflags: STGMOVE) -> ::windows::core::Result<()> where @@ -3084,7 +3084,7 @@ pub unsafe fn StgConvertPropertyToVariant(pprop: &SERIALIZEDPROPERTYVALUE, codep #[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn StgConvertVariantToProperty<'a, P0>(pvar: &PROPVARIANT, codepage: u16, pprop: ::core::option::Option<&mut SERIALIZEDPROPERTYVALUE>, pcb: &mut u32, pid: u32, freserved: P0, pcindirect: ::core::option::Option<&mut u32>) -> *mut SERIALIZEDPROPERTYVALUE +pub unsafe fn StgConvertVariantToProperty<'a, P0>(pvar: &PROPVARIANT, codepage: u16, pprop: *mut SERIALIZEDPROPERTYVALUE, pcb: &mut u32, pid: u32, freserved: P0, pcindirect: ::core::option::Option<&mut u32>) -> *mut SERIALIZEDPROPERTYVALUE where P0: ::std::convert::Into, { @@ -3304,12 +3304,12 @@ where } #[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`*"] #[inline] -pub unsafe fn StgPropertyLengthAsVariant(pprop: &SERIALIZEDPROPERTYVALUE, cbprop: u32, codepage: u16, breserved: u8) -> u32 { +pub unsafe fn StgPropertyLengthAsVariant(pprop: &[u8], codepage: u16, breserved: u8) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn StgPropertyLengthAsVariant(pprop: *const SERIALIZEDPROPERTYVALUE, cbprop: u32, codepage: u16, breserved: u8) -> u32; } - StgPropertyLengthAsVariant(::core::mem::transmute(pprop), cbprop, codepage, breserved) + StgPropertyLengthAsVariant(::core::mem::transmute(pprop.as_ptr()), pprop.len() as _, codepage, breserved) } #[doc = "*Required features: `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/System/Com/Urlmon/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Com/Urlmon/mod.rs index b28e77dba2..94cf4499d4 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Com/Urlmon/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Com/Urlmon/mod.rs @@ -756,7 +756,7 @@ where extern "system" { fn CoInternetCombineUrl(pwzbaseurl: ::windows::core::PCWSTR, pwzrelativeurl: ::windows::core::PCWSTR, dwcombineflags: u32, pszresult: ::windows::core::PWSTR, cchresult: u32, pcchresult: *mut u32, dwreserved: u32) -> ::windows::core::HRESULT; } - CoInternetCombineUrl(pwzbaseurl.into(), pwzrelativeurl.into(), dwcombineflags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszresult)), pszresult.len() as _, ::core::mem::transmute(pcchresult), dwreserved).ok() + CoInternetCombineUrl(pwzbaseurl.into(), pwzrelativeurl.into(), dwcombineflags, ::core::mem::transmute(pszresult.as_ptr()), pszresult.len() as _, ::core::mem::transmute(pcchresult), dwreserved).ok() } #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`*"] #[inline] @@ -912,7 +912,7 @@ where extern "system" { fn CoInternetParseIUri(piuri: *mut ::core::ffi::c_void, parseaction: PARSEACTION, dwflags: u32, pwzresult: ::windows::core::PWSTR, cchresult: u32, pcchresult: *mut u32, dwreserved: usize) -> ::windows::core::HRESULT; } - CoInternetParseIUri(piuri.into().abi(), parseaction, dwflags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwzresult)), pwzresult.len() as _, ::core::mem::transmute(pcchresult), dwreserved).ok() + CoInternetParseIUri(piuri.into().abi(), parseaction, dwflags, ::core::mem::transmute(pwzresult.as_ptr()), pwzresult.len() as _, ::core::mem::transmute(pcchresult), dwreserved).ok() } #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`*"] #[inline] @@ -924,11 +924,11 @@ where extern "system" { fn CoInternetParseUrl(pwzurl: ::windows::core::PCWSTR, parseaction: PARSEACTION, dwflags: u32, pszresult: ::windows::core::PWSTR, cchresult: u32, pcchresult: *mut u32, dwreserved: u32) -> ::windows::core::HRESULT; } - CoInternetParseUrl(pwzurl.into(), parseaction, dwflags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszresult)), pszresult.len() as _, ::core::mem::transmute(pcchresult), dwreserved).ok() + CoInternetParseUrl(pwzurl.into(), parseaction, dwflags, ::core::mem::transmute(pszresult.as_ptr()), pszresult.len() as _, ::core::mem::transmute(pcchresult), dwreserved).ok() } #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`*"] #[inline] -pub unsafe fn CoInternetQueryInfo<'a, P0>(pwzurl: P0, queryoptions: QUERYOPTION, dwqueryflags: u32, pvbuffer: *mut ::core::ffi::c_void, cbbuffer: u32, pcbbuffer: ::core::option::Option<&mut u32>, dwreserved: u32) -> ::windows::core::Result<()> +pub unsafe fn CoInternetQueryInfo<'a, P0>(pwzurl: P0, queryoptions: QUERYOPTION, dwqueryflags: u32, pvbuffer: &mut [u8], pcbbuffer: ::core::option::Option<&mut u32>, dwreserved: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -936,7 +936,7 @@ where extern "system" { fn CoInternetQueryInfo(pwzurl: ::windows::core::PCWSTR, queryoptions: QUERYOPTION, dwqueryflags: u32, pvbuffer: *mut ::core::ffi::c_void, cbbuffer: u32, pcbbuffer: *mut u32, dwreserved: u32) -> ::windows::core::HRESULT; } - CoInternetQueryInfo(pwzurl.into(), queryoptions, dwqueryflags, ::core::mem::transmute(pvbuffer), cbbuffer, ::core::mem::transmute(pcbbuffer), dwreserved).ok() + CoInternetQueryInfo(pwzurl.into(), queryoptions, dwqueryflags, ::core::mem::transmute(pvbuffer.as_ptr()), pvbuffer.len() as _, ::core::mem::transmute(pcbbuffer), dwreserved).ok() } #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -958,7 +958,7 @@ pub unsafe fn CompareSecurityIds(pbsecurityid1: &[u8], pbsecurityid2: &[u8], dwr extern "system" { fn CompareSecurityIds(pbsecurityid1: *const u8, dwlen1: u32, pbsecurityid2: *const u8, dwlen2: u32, dwreserved: u32) -> ::windows::core::HRESULT; } - CompareSecurityIds(::core::mem::transmute(::windows::core::as_ptr_or_null(pbsecurityid1)), pbsecurityid1.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbsecurityid2)), pbsecurityid2.len() as _, dwreserved).ok() + CompareSecurityIds(::core::mem::transmute(pbsecurityid1.as_ptr()), pbsecurityid1.len() as _, ::core::mem::transmute(pbsecurityid2.as_ptr()), pbsecurityid2.len() as _, dwreserved).ok() } #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`*"] #[inline] @@ -1027,7 +1027,7 @@ pub unsafe fn CreateFormatEnumerator(rgfmtetc: &[super::FORMATETC]) -> ::windows fn CreateFormatEnumerator(cfmtetc: u32, rgfmtetc: *const super::FORMATETC, ppenumfmtetc: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - CreateFormatEnumerator(rgfmtetc.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgfmtetc)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + CreateFormatEnumerator(rgfmtetc.len() as _, ::core::mem::transmute(rgfmtetc.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`*"] #[inline] @@ -1171,7 +1171,7 @@ where } #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`*"] #[inline] -pub unsafe fn FindMimeFromData<'a, P0, P1, P2>(pbc: P0, pwzurl: P1, pbuffer: *const ::core::ffi::c_void, cbsize: u32, pwzmimeproposed: P2, dwmimeflags: u32, ppwzmimeout: &mut ::windows::core::PWSTR, dwreserved: u32) -> ::windows::core::Result<()> +pub unsafe fn FindMimeFromData<'a, P0, P1, P2>(pbc: P0, pwzurl: P1, pbuffer: ::core::option::Option<&[u8]>, pwzmimeproposed: P2, dwmimeflags: u32, ppwzmimeout: &mut ::windows::core::PWSTR, dwreserved: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::IBindCtx>>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -1181,7 +1181,7 @@ where extern "system" { fn FindMimeFromData(pbc: *mut ::core::ffi::c_void, pwzurl: ::windows::core::PCWSTR, pbuffer: *const ::core::ffi::c_void, cbsize: u32, pwzmimeproposed: ::windows::core::PCWSTR, dwmimeflags: u32, ppwzmimeout: *mut ::windows::core::PWSTR, dwreserved: u32) -> ::windows::core::HRESULT; } - FindMimeFromData(pbc.into().abi(), pwzurl.into(), ::core::mem::transmute(pbuffer), cbsize, pwzmimeproposed.into(), dwmimeflags, ::core::mem::transmute(ppwzmimeout), dwreserved).ok() + FindMimeFromData(pbc.into().abi(), pwzurl.into(), ::core::mem::transmute(pbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbuffer.as_deref().map_or(0, |slice| slice.len() as _), pwzmimeproposed.into(), dwmimeflags, ::core::mem::transmute(ppwzmimeout), dwreserved).ok() } #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`*"] pub const GET_FEATURE_FROM_PROCESS: u32 = 2u32; @@ -1201,7 +1201,7 @@ pub const GET_FEATURE_FROM_THREAD_RESTRICTED: u32 = 128u32; pub const GET_FEATURE_FROM_THREAD_TRUSTED: u32 = 32u32; #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`*"] #[inline] -pub unsafe fn GetClassFileOrMime<'a, P0, P1, P2>(pbc: P0, szfilename: P1, pbuffer: *const ::core::ffi::c_void, cbsize: u32, szmime: P2, dwreserved: u32) -> ::windows::core::Result<::windows::core::GUID> +pub unsafe fn GetClassFileOrMime<'a, P0, P1, P2>(pbc: P0, szfilename: P1, pbuffer: ::core::option::Option<&[u8]>, szmime: P2, dwreserved: u32) -> ::windows::core::Result<::windows::core::GUID> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::IBindCtx>>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -1212,7 +1212,7 @@ where fn GetClassFileOrMime(pbc: *mut ::core::ffi::c_void, szfilename: ::windows::core::PCWSTR, pbuffer: *const ::core::ffi::c_void, cbsize: u32, szmime: ::windows::core::PCWSTR, dwreserved: u32, pclsid: *mut ::windows::core::GUID) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - GetClassFileOrMime(pbc.into().abi(), szfilename.into(), ::core::mem::transmute(pbuffer), cbsize, szmime.into(), dwreserved, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) + GetClassFileOrMime(pbc.into().abi(), szfilename.into(), ::core::mem::transmute(pbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbuffer.as_deref().map_or(0, |slice| slice.len() as _), szmime.into(), dwreserved, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::GUID>(result__) } #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`*"] #[inline] @@ -1666,10 +1666,10 @@ pub struct ICodeInstall_Vtbl { pub struct IDataFilter(::windows::core::IUnknown); impl IDataFilter { pub unsafe fn DoEncode(&self, dwflags: u32, pbinbuffer: &[u8], pboutbuffer: &mut [u8], linbytesavailable: i32, plinbytesread: &mut i32, ploutbyteswritten: &mut i32, dwreserved: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DoEncode)(::windows::core::Interface::as_raw(self), dwflags, pbinbuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbinbuffer)), pboutbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pboutbuffer)), linbytesavailable, ::core::mem::transmute(plinbytesread), ::core::mem::transmute(ploutbyteswritten), dwreserved).ok() + (::windows::core::Interface::vtable(self).DoEncode)(::windows::core::Interface::as_raw(self), dwflags, pbinbuffer.len() as _, ::core::mem::transmute(pbinbuffer.as_ptr()), pboutbuffer.len() as _, ::core::mem::transmute(pboutbuffer.as_ptr()), linbytesavailable, ::core::mem::transmute(plinbytesread), ::core::mem::transmute(ploutbyteswritten), dwreserved).ok() } pub unsafe fn DoDecode(&self, dwflags: u32, pbinbuffer: &[u8], pboutbuffer: &mut [u8], linbytesavailable: i32, plinbytesread: &mut i32, ploutbyteswritten: &mut i32, dwreserved: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DoDecode)(::windows::core::Interface::as_raw(self), dwflags, pbinbuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbinbuffer)), pboutbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pboutbuffer)), linbytesavailable, ::core::mem::transmute(plinbytesread), ::core::mem::transmute(ploutbyteswritten), dwreserved).ok() + (::windows::core::Interface::vtable(self).DoDecode)(::windows::core::Interface::as_raw(self), dwflags, pbinbuffer.len() as _, ::core::mem::transmute(pbinbuffer.as_ptr()), pboutbuffer.len() as _, ::core::mem::transmute(pboutbuffer.as_ptr()), linbytesavailable, ::core::mem::transmute(plinbytesread), ::core::mem::transmute(ploutbyteswritten), dwreserved).ok() } pub unsafe fn SetEncodingLevel(&self, dwenclevel: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetEncodingLevel)(::windows::core::Interface::as_raw(self), dwenclevel).ok() @@ -1977,7 +1977,7 @@ impl IHttpNegotiate2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.OnResponse)(::windows::core::Interface::as_raw(self), dwresponsecode, szresponseheaders.into(), szrequestheaders.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) } - pub unsafe fn GetRootSecurityId(&self, pbsecurityid: &mut u8, pcbsecurityid: &mut u32, dwreserved: usize) -> ::windows::core::Result<()> { + pub unsafe fn GetRootSecurityId(&self, pbsecurityid: *mut u8, pcbsecurityid: &mut u32, dwreserved: usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetRootSecurityId)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbsecurityid), ::core::mem::transmute(pcbsecurityid), dwreserved).ok() } } @@ -2057,10 +2057,10 @@ impl IHttpNegotiate3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.base__.OnResponse)(::windows::core::Interface::as_raw(self), dwresponsecode, szresponseheaders.into(), szrequestheaders.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) } - pub unsafe fn GetRootSecurityId(&self, pbsecurityid: &mut u8, pcbsecurityid: &mut u32, dwreserved: usize) -> ::windows::core::Result<()> { + pub unsafe fn GetRootSecurityId(&self, pbsecurityid: *mut u8, pcbsecurityid: &mut u32, dwreserved: usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetRootSecurityId)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbsecurityid), ::core::mem::transmute(pcbsecurityid), dwreserved).ok() } - pub unsafe fn GetSerializedClientCertContext(&self, ppbcert: &mut *mut u8, pcbcert: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetSerializedClientCertContext(&self, ppbcert: *mut *mut u8, pcbcert: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSerializedClientCertContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppbcert), ::core::mem::transmute(pcbcert)).ok() } } @@ -2388,14 +2388,14 @@ pub struct IInternetBindInfoEx_Vtbl { #[repr(transparent)] pub struct IInternetHostSecurityManager(::windows::core::IUnknown); impl IInternetHostSecurityManager { - pub unsafe fn GetSecurityId(&self, pbsecurityid: &mut u8, pcbsecurityid: &mut u32, dwreserved: usize) -> ::windows::core::Result<()> { + pub unsafe fn GetSecurityId(&self, pbsecurityid: *mut u8, pcbsecurityid: &mut u32, dwreserved: usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSecurityId)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbsecurityid), ::core::mem::transmute(pcbsecurityid), dwreserved).ok() } - pub unsafe fn ProcessUrlAction(&self, dwaction: u32, ppolicy: &mut u8, cbpolicy: u32, pcontext: &[u8], dwflags: u32, dwreserved: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ProcessUrlAction)(::windows::core::Interface::as_raw(self), dwaction, ::core::mem::transmute(ppolicy), cbpolicy, ::core::mem::transmute(::windows::core::as_ptr_or_null(pcontext)), pcontext.len() as _, dwflags, dwreserved).ok() + pub unsafe fn ProcessUrlAction(&self, dwaction: u32, ppolicy: &mut u8, cbpolicy: u32, pcontext: ::core::option::Option<&[u8]>, dwflags: u32, dwreserved: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ProcessUrlAction)(::windows::core::Interface::as_raw(self), dwaction, ::core::mem::transmute(ppolicy), cbpolicy, ::core::mem::transmute(pcontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pcontext.as_deref().map_or(0, |slice| slice.len() as _), dwflags, dwreserved).ok() } - pub unsafe fn QueryCustomPolicy(&self, guidkey: &::windows::core::GUID, pppolicy: ::core::option::Option<&mut *mut u8>, pcbpolicy: &mut u32, pcontext: &[u8], dwreserved: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).QueryCustomPolicy)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pppolicy), ::core::mem::transmute(pcbpolicy), ::core::mem::transmute(::windows::core::as_ptr_or_null(pcontext)), pcontext.len() as _, dwreserved).ok() + pub unsafe fn QueryCustomPolicy(&self, guidkey: &::windows::core::GUID, pppolicy: *mut *mut u8, pcbpolicy: &mut u32, pcontext: &[u8], dwreserved: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).QueryCustomPolicy)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidkey), ::core::mem::transmute(pppolicy), ::core::mem::transmute(pcbpolicy), ::core::mem::transmute(pcontext.as_ptr()), pcontext.len() as _, dwreserved).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2526,7 +2526,7 @@ impl IInternetProtocol { (::windows::core::Interface::vtable(self).base__.Resume)(::windows::core::Interface::as_raw(self)).ok() } pub unsafe fn Read(&self, pv: &mut [u8], pcbread: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pv)), pv.len() as _, ::core::mem::transmute(pcbread)).ok() + (::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)).ok() } pub unsafe fn Seek(&self, dlibmove: i64, dworigin: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2629,7 +2629,7 @@ impl IInternetProtocolEx { (::windows::core::Interface::vtable(self).base__.base__.Resume)(::windows::core::Interface::as_raw(self)).ok() } pub unsafe fn Read(&self, pv: &mut [u8], pcbread: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pv)), pv.len() as _, ::core::mem::transmute(pcbread)).ok() + (::windows::core::Interface::vtable(self).base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)).ok() } pub unsafe fn Seek(&self, dlibmove: i64, dworigin: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -3034,15 +3034,15 @@ impl IInternetSecurityManager { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetSecurityId)(::windows::core::Interface::as_raw(self), pwszurl.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbsecurityid)), ::core::mem::transmute(pcbsecurityid), dwreserved).ok() + (::windows::core::Interface::vtable(self).GetSecurityId)(::windows::core::Interface::as_raw(self), pwszurl.into(), ::core::mem::transmute(pbsecurityid.as_ptr()), ::core::mem::transmute(pcbsecurityid), dwreserved).ok() } pub unsafe fn ProcessUrlAction<'a, P0>(&self, pwszurl: P0, dwaction: u32, ppolicy: &mut [u8], pcontext: &u8, cbcontext: u32, dwflags: u32, dwreserved: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).ProcessUrlAction)(::windows::core::Interface::as_raw(self), pwszurl.into(), dwaction, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppolicy)), ppolicy.len() as _, ::core::mem::transmute(pcontext), cbcontext, dwflags, dwreserved).ok() + (::windows::core::Interface::vtable(self).ProcessUrlAction)(::windows::core::Interface::as_raw(self), pwszurl.into(), dwaction, ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, ::core::mem::transmute(pcontext), cbcontext, dwflags, dwreserved).ok() } - pub unsafe fn QueryCustomPolicy<'a, P0>(&self, pwszurl: P0, guidkey: &::windows::core::GUID, pppolicy: &mut *mut u8, pcbpolicy: &mut u32, pcontext: &u8, cbcontext: u32, dwreserved: u32) -> ::windows::core::Result<()> + pub unsafe fn QueryCustomPolicy<'a, P0>(&self, pwszurl: P0, guidkey: &::windows::core::GUID, pppolicy: *mut *mut u8, pcbpolicy: &mut u32, pcontext: &u8, cbcontext: u32, dwreserved: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -3130,15 +3130,15 @@ impl IInternetSecurityManagerEx { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.GetSecurityId)(::windows::core::Interface::as_raw(self), pwszurl.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbsecurityid)), ::core::mem::transmute(pcbsecurityid), dwreserved).ok() + (::windows::core::Interface::vtable(self).base__.GetSecurityId)(::windows::core::Interface::as_raw(self), pwszurl.into(), ::core::mem::transmute(pbsecurityid.as_ptr()), ::core::mem::transmute(pcbsecurityid), dwreserved).ok() } pub unsafe fn ProcessUrlAction<'a, P0>(&self, pwszurl: P0, dwaction: u32, ppolicy: &mut [u8], pcontext: &u8, cbcontext: u32, dwflags: u32, dwreserved: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.ProcessUrlAction)(::windows::core::Interface::as_raw(self), pwszurl.into(), dwaction, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppolicy)), ppolicy.len() as _, ::core::mem::transmute(pcontext), cbcontext, dwflags, dwreserved).ok() + (::windows::core::Interface::vtable(self).base__.ProcessUrlAction)(::windows::core::Interface::as_raw(self), pwszurl.into(), dwaction, ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, ::core::mem::transmute(pcontext), cbcontext, dwflags, dwreserved).ok() } - pub unsafe fn QueryCustomPolicy<'a, P0>(&self, pwszurl: P0, guidkey: &::windows::core::GUID, pppolicy: &mut *mut u8, pcbpolicy: &mut u32, pcontext: &u8, cbcontext: u32, dwreserved: u32) -> ::windows::core::Result<()> + pub unsafe fn QueryCustomPolicy<'a, P0>(&self, pwszurl: P0, guidkey: &::windows::core::GUID, pppolicy: *mut *mut u8, pcbpolicy: &mut u32, pcontext: &u8, cbcontext: u32, dwreserved: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -3157,7 +3157,7 @@ impl IInternetSecurityManagerEx { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).ProcessUrlActionEx)(::windows::core::Interface::as_raw(self), pwszurl.into(), dwaction, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppolicy)), ppolicy.len() as _, ::core::mem::transmute(pcontext), cbcontext, dwflags, dwreserved, ::core::mem::transmute(pdwoutflags)).ok() + (::windows::core::Interface::vtable(self).ProcessUrlActionEx)(::windows::core::Interface::as_raw(self), pwszurl.into(), dwaction, ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, ::core::mem::transmute(pcontext), cbcontext, dwflags, dwreserved, ::core::mem::transmute(pdwoutflags)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3240,15 +3240,15 @@ impl IInternetSecurityManagerEx2 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.GetSecurityId)(::windows::core::Interface::as_raw(self), pwszurl.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbsecurityid)), ::core::mem::transmute(pcbsecurityid), dwreserved).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetSecurityId)(::windows::core::Interface::as_raw(self), pwszurl.into(), ::core::mem::transmute(pbsecurityid.as_ptr()), ::core::mem::transmute(pcbsecurityid), dwreserved).ok() } pub unsafe fn ProcessUrlAction<'a, P0>(&self, pwszurl: P0, dwaction: u32, ppolicy: &mut [u8], pcontext: &u8, cbcontext: u32, dwflags: u32, dwreserved: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.ProcessUrlAction)(::windows::core::Interface::as_raw(self), pwszurl.into(), dwaction, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppolicy)), ppolicy.len() as _, ::core::mem::transmute(pcontext), cbcontext, dwflags, dwreserved).ok() + (::windows::core::Interface::vtable(self).base__.base__.ProcessUrlAction)(::windows::core::Interface::as_raw(self), pwszurl.into(), dwaction, ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, ::core::mem::transmute(pcontext), cbcontext, dwflags, dwreserved).ok() } - pub unsafe fn QueryCustomPolicy<'a, P0>(&self, pwszurl: P0, guidkey: &::windows::core::GUID, pppolicy: &mut *mut u8, pcbpolicy: &mut u32, pcontext: &u8, cbcontext: u32, dwreserved: u32) -> ::windows::core::Result<()> + pub unsafe fn QueryCustomPolicy<'a, P0>(&self, pwszurl: P0, guidkey: &::windows::core::GUID, pppolicy: *mut *mut u8, pcbpolicy: &mut u32, pcontext: &u8, cbcontext: u32, dwreserved: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -3267,7 +3267,7 @@ impl IInternetSecurityManagerEx2 { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.ProcessUrlActionEx)(::windows::core::Interface::as_raw(self), pwszurl.into(), dwaction, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppolicy)), ppolicy.len() as _, ::core::mem::transmute(pcontext), cbcontext, dwflags, dwreserved, ::core::mem::transmute(pdwoutflags)).ok() + (::windows::core::Interface::vtable(self).base__.ProcessUrlActionEx)(::windows::core::Interface::as_raw(self), pwszurl.into(), dwaction, ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, ::core::mem::transmute(pcontext), cbcontext, dwflags, dwreserved, ::core::mem::transmute(pdwoutflags)).ok() } pub unsafe fn MapUrlToZoneEx2<'a, P0>(&self, puri: P0, pdwzone: &mut u32, dwflags: u32, ppwszmappedurl: ::core::option::Option<&mut ::windows::core::PWSTR>, pdwoutflags: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where @@ -3279,15 +3279,15 @@ impl IInternetSecurityManagerEx2 { where P0: ::std::convert::Into<::windows::core::InParam<'a, super::IUri>>, { - (::windows::core::Interface::vtable(self).ProcessUrlActionEx2)(::windows::core::Interface::as_raw(self), puri.into().abi(), dwaction, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppolicy)), ppolicy.len() as _, ::core::mem::transmute(pcontext), cbcontext, dwflags, dwreserved, ::core::mem::transmute(pdwoutflags)).ok() + (::windows::core::Interface::vtable(self).ProcessUrlActionEx2)(::windows::core::Interface::as_raw(self), puri.into().abi(), dwaction, ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, ::core::mem::transmute(pcontext), cbcontext, dwflags, dwreserved, ::core::mem::transmute(pdwoutflags)).ok() } pub unsafe fn GetSecurityIdEx2<'a, P0>(&self, puri: P0, pbsecurityid: &mut [u8; 512], pcbsecurityid: &mut u32, dwreserved: usize) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::IUri>>, { - (::windows::core::Interface::vtable(self).GetSecurityIdEx2)(::windows::core::Interface::as_raw(self), puri.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbsecurityid)), ::core::mem::transmute(pcbsecurityid), dwreserved).ok() + (::windows::core::Interface::vtable(self).GetSecurityIdEx2)(::windows::core::Interface::as_raw(self), puri.into().abi(), ::core::mem::transmute(pbsecurityid.as_ptr()), ::core::mem::transmute(pcbsecurityid), dwreserved).ok() } - pub unsafe fn QueryCustomPolicyEx2<'a, P0>(&self, puri: P0, guidkey: &::windows::core::GUID, pppolicy: &mut *mut u8, pcbpolicy: &mut u32, pcontext: &u8, cbcontext: u32, dwreserved: usize) -> ::windows::core::Result<()> + pub unsafe fn QueryCustomPolicyEx2<'a, P0>(&self, puri: P0, guidkey: &::windows::core::GUID, pppolicy: *mut *mut u8, pcbpolicy: &mut u32, pcontext: &u8, cbcontext: u32, dwreserved: usize) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::IUri>>, { @@ -3596,13 +3596,13 @@ impl IInternetZoneManager { (::windows::core::Interface::vtable(self).GetZoneCustomPolicy)(::windows::core::Interface::as_raw(self), dwzone, ::core::mem::transmute(guidkey), ::core::mem::transmute(pppolicy), ::core::mem::transmute(pcbpolicy), urlzonereg).ok() } pub unsafe fn SetZoneCustomPolicy(&self, dwzone: u32, guidkey: &::windows::core::GUID, ppolicy: &[u8], urlzonereg: URLZONEREG) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetZoneCustomPolicy)(::windows::core::Interface::as_raw(self), dwzone, ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppolicy)), ppolicy.len() as _, urlzonereg).ok() + (::windows::core::Interface::vtable(self).SetZoneCustomPolicy)(::windows::core::Interface::as_raw(self), dwzone, ::core::mem::transmute(guidkey), ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, urlzonereg).ok() } pub unsafe fn GetZoneActionPolicy(&self, dwzone: u32, dwaction: u32, ppolicy: &mut [u8], urlzonereg: URLZONEREG) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetZoneActionPolicy)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppolicy)), ppolicy.len() as _, urlzonereg).ok() + (::windows::core::Interface::vtable(self).GetZoneActionPolicy)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, urlzonereg).ok() } pub unsafe fn SetZoneActionPolicy(&self, dwzone: u32, dwaction: u32, ppolicy: &[u8], urlzonereg: URLZONEREG) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetZoneActionPolicy)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppolicy)), ppolicy.len() as _, urlzonereg).ok() + (::windows::core::Interface::vtable(self).SetZoneActionPolicy)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, urlzonereg).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3704,13 +3704,13 @@ impl IInternetZoneManagerEx { (::windows::core::Interface::vtable(self).base__.GetZoneCustomPolicy)(::windows::core::Interface::as_raw(self), dwzone, ::core::mem::transmute(guidkey), ::core::mem::transmute(pppolicy), ::core::mem::transmute(pcbpolicy), urlzonereg).ok() } pub unsafe fn SetZoneCustomPolicy(&self, dwzone: u32, guidkey: &::windows::core::GUID, ppolicy: &[u8], urlzonereg: URLZONEREG) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetZoneCustomPolicy)(::windows::core::Interface::as_raw(self), dwzone, ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppolicy)), ppolicy.len() as _, urlzonereg).ok() + (::windows::core::Interface::vtable(self).base__.SetZoneCustomPolicy)(::windows::core::Interface::as_raw(self), dwzone, ::core::mem::transmute(guidkey), ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, urlzonereg).ok() } pub unsafe fn GetZoneActionPolicy(&self, dwzone: u32, dwaction: u32, ppolicy: &mut [u8], urlzonereg: URLZONEREG) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetZoneActionPolicy)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppolicy)), ppolicy.len() as _, urlzonereg).ok() + (::windows::core::Interface::vtable(self).base__.GetZoneActionPolicy)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, urlzonereg).ok() } pub unsafe fn SetZoneActionPolicy(&self, dwzone: u32, dwaction: u32, ppolicy: &[u8], urlzonereg: URLZONEREG) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetZoneActionPolicy)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppolicy)), ppolicy.len() as _, urlzonereg).ok() + (::windows::core::Interface::vtable(self).base__.SetZoneActionPolicy)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, urlzonereg).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3743,10 +3743,10 @@ impl IInternetZoneManagerEx { (::windows::core::Interface::vtable(self).base__.CopyTemplatePoliciesToZone)(::windows::core::Interface::as_raw(self), dwtemplate, dwzone, dwreserved).ok() } pub unsafe fn GetZoneActionPolicyEx(&self, dwzone: u32, dwaction: u32, ppolicy: &mut [u8], urlzonereg: URLZONEREG, dwflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetZoneActionPolicyEx)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppolicy)), ppolicy.len() as _, urlzonereg, dwflags).ok() + (::windows::core::Interface::vtable(self).GetZoneActionPolicyEx)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, urlzonereg, dwflags).ok() } pub unsafe fn SetZoneActionPolicyEx(&self, dwzone: u32, dwaction: u32, ppolicy: &[u8], urlzonereg: URLZONEREG, dwflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetZoneActionPolicyEx)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppolicy)), ppolicy.len() as _, urlzonereg, dwflags).ok() + (::windows::core::Interface::vtable(self).SetZoneActionPolicyEx)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, urlzonereg, dwflags).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3820,13 +3820,13 @@ impl IInternetZoneManagerEx2 { (::windows::core::Interface::vtable(self).base__.base__.GetZoneCustomPolicy)(::windows::core::Interface::as_raw(self), dwzone, ::core::mem::transmute(guidkey), ::core::mem::transmute(pppolicy), ::core::mem::transmute(pcbpolicy), urlzonereg).ok() } pub unsafe fn SetZoneCustomPolicy(&self, dwzone: u32, guidkey: &::windows::core::GUID, ppolicy: &[u8], urlzonereg: URLZONEREG) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetZoneCustomPolicy)(::windows::core::Interface::as_raw(self), dwzone, ::core::mem::transmute(guidkey), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppolicy)), ppolicy.len() as _, urlzonereg).ok() + (::windows::core::Interface::vtable(self).base__.base__.SetZoneCustomPolicy)(::windows::core::Interface::as_raw(self), dwzone, ::core::mem::transmute(guidkey), ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, urlzonereg).ok() } pub unsafe fn GetZoneActionPolicy(&self, dwzone: u32, dwaction: u32, ppolicy: &mut [u8], urlzonereg: URLZONEREG) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetZoneActionPolicy)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppolicy)), ppolicy.len() as _, urlzonereg).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetZoneActionPolicy)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, urlzonereg).ok() } pub unsafe fn SetZoneActionPolicy(&self, dwzone: u32, dwaction: u32, ppolicy: &[u8], urlzonereg: URLZONEREG) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.SetZoneActionPolicy)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppolicy)), ppolicy.len() as _, urlzonereg).ok() + (::windows::core::Interface::vtable(self).base__.base__.SetZoneActionPolicy)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, urlzonereg).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3859,10 +3859,10 @@ impl IInternetZoneManagerEx2 { (::windows::core::Interface::vtable(self).base__.base__.CopyTemplatePoliciesToZone)(::windows::core::Interface::as_raw(self), dwtemplate, dwzone, dwreserved).ok() } pub unsafe fn GetZoneActionPolicyEx(&self, dwzone: u32, dwaction: u32, ppolicy: &mut [u8], urlzonereg: URLZONEREG, dwflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetZoneActionPolicyEx)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppolicy)), ppolicy.len() as _, urlzonereg, dwflags).ok() + (::windows::core::Interface::vtable(self).base__.GetZoneActionPolicyEx)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, urlzonereg, dwflags).ok() } pub unsafe fn SetZoneActionPolicyEx(&self, dwzone: u32, dwaction: u32, ppolicy: &[u8], urlzonereg: URLZONEREG, dwflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetZoneActionPolicyEx)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppolicy)), ppolicy.len() as _, urlzonereg, dwflags).ok() + (::windows::core::Interface::vtable(self).base__.SetZoneActionPolicyEx)(::windows::core::Interface::as_raw(self), dwzone, dwaction, ::core::mem::transmute(ppolicy.as_ptr()), ppolicy.len() as _, urlzonereg, dwflags).ok() } pub unsafe fn GetZoneAttributesEx(&self, dwzone: u32, pzoneattributes: &mut ZONEATTRIBUTES, dwflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetZoneAttributesEx)(::windows::core::Interface::as_raw(self), dwzone, ::core::mem::transmute(pzoneattributes), dwflags).ok() @@ -5725,7 +5725,7 @@ where } #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`*"] #[inline] -pub unsafe fn RegisterMediaTypeClass<'a, P0>(pbc: P0, ctypes: u32, rgsztypes: &::windows::core::PSTR, rgclsid: &::windows::core::GUID, reserved: u32) -> ::windows::core::Result<()> +pub unsafe fn RegisterMediaTypeClass<'a, P0>(pbc: P0, ctypes: u32, rgsztypes: *const ::windows::core::PSTR, rgclsid: *const ::windows::core::GUID, reserved: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::IBindCtx>>, { @@ -5737,7 +5737,7 @@ where } #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`*"] #[inline] -pub unsafe fn RegisterMediaTypes(ctypes: u32, rgsztypes: &::windows::core::PSTR, rgcftypes: &mut u16) -> ::windows::core::Result<()> { +pub unsafe fn RegisterMediaTypes(ctypes: u32, rgsztypes: *const ::windows::core::PSTR, rgcftypes: *mut u16) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RegisterMediaTypes(ctypes: u32, rgsztypes: *const ::windows::core::PSTR, rgcftypes: *mut u16) -> ::windows::core::HRESULT; @@ -6365,7 +6365,7 @@ where extern "system" { fn URLDownloadToCacheFileA(param0: *mut ::core::ffi::c_void, param1: ::windows::core::PCSTR, param2: ::windows::core::PSTR, cchfilename: u32, param4: u32, param5: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - URLDownloadToCacheFileA(param0.into().abi(), param1.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(param2)), param2.len() as _, param4, param5.into().abi()).ok() + URLDownloadToCacheFileA(param0.into().abi(), param1.into(), ::core::mem::transmute(param2.as_ptr()), param2.len() as _, param4, param5.into().abi()).ok() } #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`*"] #[inline] @@ -6379,7 +6379,7 @@ where extern "system" { fn URLDownloadToCacheFileW(param0: *mut ::core::ffi::c_void, param1: ::windows::core::PCWSTR, param2: ::windows::core::PWSTR, cchfilename: u32, param4: u32, param5: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - URLDownloadToCacheFileW(param0.into().abi(), param1.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(param2)), param2.len() as _, param4, param5.into().abi()).ok() + URLDownloadToCacheFileW(param0.into().abi(), param1.into(), ::core::mem::transmute(param2.as_ptr()), param2.len() as _, param4, param5.into().abi()).ok() } #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`*"] #[inline] @@ -6770,21 +6770,21 @@ impl ::core::fmt::Debug for Uri_HOST_TYPE { pub const Uri_PUNYCODE_IDN_HOST: u32 = 2u32; #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`*"] #[inline] -pub unsafe fn UrlMkGetSessionOption(dwoption: u32, pbuffer: *mut ::core::ffi::c_void, dwbufferlength: u32, pdwbufferlengthout: &mut u32, dwreserved: u32) -> ::windows::core::Result<()> { +pub unsafe fn UrlMkGetSessionOption(dwoption: u32, pbuffer: ::core::option::Option<&mut [u8]>, pdwbufferlengthout: &mut u32, dwreserved: u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn UrlMkGetSessionOption(dwoption: u32, pbuffer: *mut ::core::ffi::c_void, dwbufferlength: u32, pdwbufferlengthout: *mut u32, dwreserved: u32) -> ::windows::core::HRESULT; } - UrlMkGetSessionOption(dwoption, ::core::mem::transmute(pbuffer), dwbufferlength, ::core::mem::transmute(pdwbufferlengthout), dwreserved).ok() + UrlMkGetSessionOption(dwoption, ::core::mem::transmute(pbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdwbufferlengthout), dwreserved).ok() } #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`*"] #[inline] -pub unsafe fn UrlMkSetSessionOption(dwoption: u32, pbuffer: *const ::core::ffi::c_void, dwbufferlength: u32, dwreserved: u32) -> ::windows::core::Result<()> { +pub unsafe fn UrlMkSetSessionOption(dwoption: u32, pbuffer: ::core::option::Option<&[u8]>, dwreserved: u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn UrlMkSetSessionOption(dwoption: u32, pbuffer: *const ::core::ffi::c_void, dwbufferlength: u32, dwreserved: u32) -> ::windows::core::HRESULT; } - UrlMkSetSessionOption(dwoption, ::core::mem::transmute(pbuffer), dwbufferlength, dwreserved).ok() + UrlMkSetSessionOption(dwoption, ::core::mem::transmute(pbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbuffer.as_deref().map_or(0, |slice| slice.len() as _), dwreserved).ok() } #[doc = "*Required features: `\"Win32_System_Com_Urlmon\"`*"] pub const WININETINFO_OPTION_LOCK_HANDLE: u32 = 65534u32; diff --git a/crates/libs/windows/src/Windows/Win32/System/Com/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Com/mod.rs index d9c90645c8..e8a7ab74d1 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Com/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Com/mod.rs @@ -417,7 +417,7 @@ pub struct AsyncIAdviseSink2_Vtbl { pub struct AsyncIMultiQI(::windows::core::IUnknown); impl AsyncIMultiQI { pub unsafe fn Begin_QueryMultipleInterfaces(&self, pmqis: &mut [MULTI_QI]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Begin_QueryMultipleInterfaces)(::windows::core::Interface::as_raw(self), pmqis.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pmqis))).ok() + (::windows::core::Interface::vtable(self).Begin_QueryMultipleInterfaces)(::windows::core::Interface::as_raw(self), pmqis.len() as _, ::core::mem::transmute(pmqis.as_ptr())).ok() } pub unsafe fn Finish_QueryMultipleInterfaces(&self, pmqis: &mut MULTI_QI) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Finish_QueryMultipleInterfaces)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pmqis)).ok() @@ -472,11 +472,11 @@ impl AsyncIPipeByte { pub unsafe fn Begin_Pull(&self, crequest: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Begin_Pull)(::windows::core::Interface::as_raw(self), crequest).ok() } - pub unsafe fn Finish_Pull(&self, buf: &mut u8, pcreturned: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Finish_Pull(&self, buf: *mut u8, pcreturned: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Finish_Pull)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buf), ::core::mem::transmute(pcreturned)).ok() } pub unsafe fn Begin_Push(&self, buf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Begin_Push)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(buf)), buf.len() as _).ok() + (::windows::core::Interface::vtable(self).Begin_Push)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buf.as_ptr()), buf.len() as _).ok() } pub unsafe fn Finish_Push(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Finish_Push)(::windows::core::Interface::as_raw(self)).ok() @@ -533,11 +533,11 @@ impl AsyncIPipeDouble { pub unsafe fn Begin_Pull(&self, crequest: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Begin_Pull)(::windows::core::Interface::as_raw(self), crequest).ok() } - pub unsafe fn Finish_Pull(&self, buf: &mut f64, pcreturned: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Finish_Pull(&self, buf: *mut f64, pcreturned: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Finish_Pull)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buf), ::core::mem::transmute(pcreturned)).ok() } pub unsafe fn Begin_Push(&self, buf: &[f64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Begin_Push)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(buf)), buf.len() as _).ok() + (::windows::core::Interface::vtable(self).Begin_Push)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buf.as_ptr()), buf.len() as _).ok() } pub unsafe fn Finish_Push(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Finish_Push)(::windows::core::Interface::as_raw(self)).ok() @@ -594,11 +594,11 @@ impl AsyncIPipeLong { pub unsafe fn Begin_Pull(&self, crequest: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Begin_Pull)(::windows::core::Interface::as_raw(self), crequest).ok() } - pub unsafe fn Finish_Pull(&self, buf: &mut i32, pcreturned: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Finish_Pull(&self, buf: *mut i32, pcreturned: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Finish_Pull)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buf), ::core::mem::transmute(pcreturned)).ok() } pub unsafe fn Begin_Push(&self, buf: &[i32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Begin_Push)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(buf)), buf.len() as _).ok() + (::windows::core::Interface::vtable(self).Begin_Push)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buf.as_ptr()), buf.len() as _).ok() } pub unsafe fn Finish_Push(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Finish_Push)(::windows::core::Interface::as_raw(self)).ok() @@ -2053,7 +2053,7 @@ where extern "system" { fn CoCreateInstanceEx(clsid: *const ::windows::core::GUID, punkouter: *mut ::core::ffi::c_void, dwclsctx: CLSCTX, pserverinfo: *const COSERVERINFO, dwcount: u32, presults: *mut MULTI_QI) -> ::windows::core::HRESULT; } - CoCreateInstanceEx(::core::mem::transmute(clsid), punkouter.into().abi(), dwclsctx, ::core::mem::transmute(pserverinfo), presults.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(presults))).ok() + CoCreateInstanceEx(::core::mem::transmute(clsid), punkouter.into().abi(), dwclsctx, ::core::mem::transmute(pserverinfo), presults.len() as _, ::core::mem::transmute(presults.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[inline] @@ -2065,7 +2065,7 @@ where extern "system" { fn CoCreateInstanceFromApp(clsid: *const ::windows::core::GUID, punkouter: *mut ::core::ffi::c_void, dwclsctx: CLSCTX, reserved: *const ::core::ffi::c_void, dwcount: u32, presults: *mut MULTI_QI) -> ::windows::core::HRESULT; } - CoCreateInstanceFromApp(::core::mem::transmute(clsid), punkouter.into().abi(), dwclsctx, ::core::mem::transmute(reserved), presults.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(presults))).ok() + CoCreateInstanceFromApp(::core::mem::transmute(clsid), punkouter.into().abi(), dwclsctx, ::core::mem::transmute(reserved), presults.len() as _, ::core::mem::transmute(presults.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[inline] @@ -2754,7 +2754,7 @@ pub unsafe fn CoWaitForMultipleHandles(dwflags: u32, dwtimeout: u32, phandles: & fn CoWaitForMultipleHandles(dwflags: u32, dwtimeout: u32, chandles: u32, phandles: *const super::super::Foundation::HANDLE, lpdwindex: *mut u32) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - CoWaitForMultipleHandles(dwflags, dwtimeout, phandles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(phandles)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + CoWaitForMultipleHandles(dwflags, dwtimeout, phandles.len() as _, ::core::mem::transmute(phandles.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_System_Com\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2765,7 +2765,7 @@ pub unsafe fn CoWaitForMultipleObjects(dwflags: u32, dwtimeout: u32, phandles: & fn CoWaitForMultipleObjects(dwflags: u32, dwtimeout: u32, chandles: u32, phandles: *const super::super::Foundation::HANDLE, lpdwindex: *mut u32) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - CoWaitForMultipleObjects(dwflags, dwtimeout, phandles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(phandles)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + CoWaitForMultipleObjects(dwflags, dwtimeout, phandles.len() as _, ::core::mem::transmute(phandles.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[repr(C)] #[doc = "*Required features: `\"Win32_System_Com\"`*"] @@ -5237,10 +5237,10 @@ impl ICatInformation { } pub unsafe fn EnumClassesOfCategories(&self, rgcatidimpl: &[::windows::core::GUID], rgcatidreq: &[::windows::core::GUID]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).EnumClassesOfCategories)(::windows::core::Interface::as_raw(self), rgcatidimpl.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcatidimpl)), rgcatidreq.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcatidreq)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).EnumClassesOfCategories)(::windows::core::Interface::as_raw(self), rgcatidimpl.len() as _, ::core::mem::transmute(rgcatidimpl.as_ptr()), rgcatidreq.len() as _, ::core::mem::transmute(rgcatidreq.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn IsClassOfCategories(&self, rclsid: &::windows::core::GUID, rgcatidimpl: &[::windows::core::GUID], rgcatidreq: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).IsClassOfCategories)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), rgcatidimpl.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcatidimpl)), rgcatidreq.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcatidreq))).ok() + (::windows::core::Interface::vtable(self).IsClassOfCategories)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), rgcatidimpl.len() as _, ::core::mem::transmute(rgcatidimpl.as_ptr()), rgcatidreq.len() as _, ::core::mem::transmute(rgcatidreq.as_ptr())).ok() } pub unsafe fn EnumImplCategoriesOfClass(&self, rclsid: &::windows::core::GUID) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -5302,22 +5302,22 @@ pub struct ICatInformation_Vtbl { pub struct ICatRegister(::windows::core::IUnknown); impl ICatRegister { pub unsafe fn RegisterCategories(&self, rgcategoryinfo: &[CATEGORYINFO]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RegisterCategories)(::windows::core::Interface::as_raw(self), rgcategoryinfo.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcategoryinfo))).ok() + (::windows::core::Interface::vtable(self).RegisterCategories)(::windows::core::Interface::as_raw(self), rgcategoryinfo.len() as _, ::core::mem::transmute(rgcategoryinfo.as_ptr())).ok() } pub unsafe fn UnRegisterCategories(&self, rgcatid: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UnRegisterCategories)(::windows::core::Interface::as_raw(self), rgcatid.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcatid))).ok() + (::windows::core::Interface::vtable(self).UnRegisterCategories)(::windows::core::Interface::as_raw(self), rgcatid.len() as _, ::core::mem::transmute(rgcatid.as_ptr())).ok() } pub unsafe fn RegisterClassImplCategories(&self, rclsid: &::windows::core::GUID, rgcatid: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RegisterClassImplCategories)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), rgcatid.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcatid))).ok() + (::windows::core::Interface::vtable(self).RegisterClassImplCategories)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), rgcatid.len() as _, ::core::mem::transmute(rgcatid.as_ptr())).ok() } pub unsafe fn UnRegisterClassImplCategories(&self, rclsid: &::windows::core::GUID, rgcatid: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UnRegisterClassImplCategories)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), rgcatid.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcatid))).ok() + (::windows::core::Interface::vtable(self).UnRegisterClassImplCategories)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), rgcatid.len() as _, ::core::mem::transmute(rgcatid.as_ptr())).ok() } pub unsafe fn RegisterClassReqCategories(&self, rclsid: &::windows::core::GUID, rgcatid: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RegisterClassReqCategories)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), rgcatid.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcatid))).ok() + (::windows::core::Interface::vtable(self).RegisterClassReqCategories)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), rgcatid.len() as _, ::core::mem::transmute(rgcatid.as_ptr())).ok() } pub unsafe fn UnRegisterClassReqCategories(&self, rclsid: &::windows::core::GUID, rgcatid: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UnRegisterClassReqCategories)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), rgcatid.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcatid))).ok() + (::windows::core::Interface::vtable(self).UnRegisterClassReqCategories)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), rgcatid.len() as _, ::core::mem::transmute(rgcatid.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -6086,7 +6086,7 @@ impl IDispatch { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetTypeInfo)(::windows::core::Interface::as_raw(self), itinfo, lcid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetIDsOfNames(&self, riid: &::windows::core::GUID, rgsznames: &::windows::core::PWSTR, cnames: u32, lcid: u32, rgdispid: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn GetIDsOfNames(&self, riid: &::windows::core::GUID, rgsznames: *const ::windows::core::PWSTR, cnames: u32, lcid: u32, rgdispid: *mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetIDsOfNames)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(riid), ::core::mem::transmute(rgsznames), ::core::mem::transmute(cnames), lcid, ::core::mem::transmute(rgdispid)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`*"] @@ -6147,7 +6147,7 @@ pub struct IDispatch_Vtbl { pub struct IEnumCATEGORYINFO(::windows::core::IUnknown); impl IEnumCATEGORYINFO { pub unsafe fn Next(&self, rgelt: &mut [CATEGORYINFO], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -6209,7 +6209,7 @@ pub struct IEnumCATEGORYINFO_Vtbl { pub struct IEnumConnectionPoints(::windows::core::IUnknown); impl IEnumConnectionPoints { pub unsafe fn Next(&self, ppcp: &mut [::core::option::Option], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppcp.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppcp)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppcp.len() as _, ::core::mem::transmute(ppcp.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Skip(&self, cconnections: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), cconnections).ok() @@ -6271,7 +6271,7 @@ pub struct IEnumConnectionPoints_Vtbl { pub struct IEnumConnections(::windows::core::IUnknown); impl IEnumConnections { pub unsafe fn Next(&self, rgcd: &mut [CONNECTDATA], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgcd.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgcd)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgcd.len() as _, ::core::mem::transmute(rgcd.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Skip(&self, cconnections: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), cconnections).ok() @@ -6335,7 +6335,7 @@ pub struct IEnumContextProps(pub u8); pub struct IEnumFORMATETC(::windows::core::IUnknown); impl IEnumFORMATETC { pub unsafe fn Next(&self, rgelt: &mut [FORMATETC], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -6397,7 +6397,7 @@ pub struct IEnumFORMATETC_Vtbl { pub struct IEnumGUID(::windows::core::IUnknown); impl IEnumGUID { pub unsafe fn Next(&self, rgelt: &mut [::windows::core::GUID], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)) + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)) } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::HRESULT { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt) @@ -6459,7 +6459,7 @@ pub struct IEnumGUID_Vtbl { pub struct IEnumMoniker(::windows::core::IUnknown); impl IEnumMoniker { pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)) + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)) } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::HRESULT { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt) @@ -6521,7 +6521,7 @@ pub struct IEnumMoniker_Vtbl { pub struct IEnumSTATDATA(::windows::core::IUnknown); impl IEnumSTATDATA { pub unsafe fn Next(&self, rgelt: &mut [STATDATA], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -6583,7 +6583,7 @@ pub struct IEnumSTATDATA_Vtbl { pub struct IEnumString(::windows::core::IUnknown); impl IEnumString { pub unsafe fn Next(&self, rgelt: &mut [::windows::core::PWSTR], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)) + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)) } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::HRESULT { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt) @@ -6645,7 +6645,7 @@ pub struct IEnumString_Vtbl { pub struct IEnumUnknown(::windows::core::IUnknown); impl IEnumUnknown { pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option<::windows::core::IUnknown>], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -7764,7 +7764,7 @@ pub struct IMoniker_Vtbl { pub struct IMultiQI(::windows::core::IUnknown); impl IMultiQI { pub unsafe fn QueryMultipleInterfaces(&self, pmqis: &mut [MULTI_QI]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).QueryMultipleInterfaces)(::windows::core::Interface::as_raw(self), pmqis.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pmqis))).ok() + (::windows::core::Interface::vtable(self).QueryMultipleInterfaces)(::windows::core::Interface::as_raw(self), pmqis.len() as _, ::core::mem::transmute(pmqis.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -8199,7 +8199,7 @@ impl IPersistMemory { (::windows::core::Interface::vtable(self).IsDirty)(::windows::core::Interface::as_raw(self)) } pub unsafe fn Load(&self, pmem: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Load)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pmem)), pmem.len() as _).ok() + (::windows::core::Interface::vtable(self).Load)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pmem.as_ptr()), pmem.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8207,7 +8207,7 @@ impl IPersistMemory { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).Save)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pmem)), fcleardirty.into(), pmem.len() as _).ok() + (::windows::core::Interface::vtable(self).Save)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pmem.as_ptr()), fcleardirty.into(), pmem.len() as _).ok() } pub unsafe fn GetSizeMax(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -8475,10 +8475,10 @@ pub struct IPersistStreamInit_Vtbl { pub struct IPipeByte(::windows::core::IUnknown); impl IPipeByte { pub unsafe fn Pull(&self, buf: &mut [u8], pcreturned: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Pull)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buf)), buf.len() as _, ::core::mem::transmute(pcreturned)).ok() + (::windows::core::Interface::vtable(self).Pull)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buf.as_ptr()), buf.len() as _, ::core::mem::transmute(pcreturned)).ok() } pub unsafe fn Push(&self, buf: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Push)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(buf)), buf.len() as _).ok() + (::windows::core::Interface::vtable(self).Push)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buf.as_ptr()), buf.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -8528,10 +8528,10 @@ pub struct IPipeByte_Vtbl { pub struct IPipeDouble(::windows::core::IUnknown); impl IPipeDouble { pub unsafe fn Pull(&self, buf: &mut [f64], pcreturned: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Pull)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buf)), buf.len() as _, ::core::mem::transmute(pcreturned)).ok() + (::windows::core::Interface::vtable(self).Pull)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buf.as_ptr()), buf.len() as _, ::core::mem::transmute(pcreturned)).ok() } pub unsafe fn Push(&self, buf: &[f64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Push)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(buf)), buf.len() as _).ok() + (::windows::core::Interface::vtable(self).Push)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buf.as_ptr()), buf.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -8581,10 +8581,10 @@ pub struct IPipeDouble_Vtbl { pub struct IPipeLong(::windows::core::IUnknown); impl IPipeLong { pub unsafe fn Pull(&self, buf: &mut [i32], pcreturned: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Pull)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buf)), buf.len() as _, ::core::mem::transmute(pcreturned)).ok() + (::windows::core::Interface::vtable(self).Pull)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buf.as_ptr()), buf.len() as _, ::core::mem::transmute(pcreturned)).ok() } pub unsafe fn Push(&self, buf: &[i32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Push)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(buf)), buf.len() as _).ok() + (::windows::core::Interface::vtable(self).Push)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buf.as_ptr()), buf.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -8794,7 +8794,7 @@ pub struct IProgressNotify_Vtbl { pub struct IROTData(::windows::core::IUnknown); impl IROTData { pub unsafe fn GetComparisonData(&self, pbdata: &mut [u8], pcbdata: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetComparisonData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbdata)), pbdata.len() as _, ::core::mem::transmute(pcbdata)).ok() + (::windows::core::Interface::vtable(self).GetComparisonData)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pbdata.as_ptr()), pbdata.len() as _, ::core::mem::transmute(pcbdata)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -9655,11 +9655,11 @@ pub struct IRunningObjectTable_Vtbl { #[repr(transparent)] pub struct ISequentialStream(::windows::core::IUnknown); impl ISequentialStream { - pub unsafe fn Read(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread)) + pub unsafe fn Read(&self, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)) } - pub unsafe fn Write(&self, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbwritten)) + pub unsafe fn Write(&self, pv: &[u8], pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbwritten)) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -9872,11 +9872,11 @@ pub struct IStdMarshalInfo_Vtbl { #[repr(transparent)] pub struct IStream(::windows::core::IUnknown); impl IStream { - pub unsafe fn Read(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread)) + pub unsafe fn Read(&self, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)) } - pub unsafe fn Write(&self, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbwritten)) + pub unsafe fn Write(&self, pv: &[u8], pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbwritten)) } pub unsafe fn Seek(&self, dlibmove: i64, dworigin: STREAM_SEEK) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -10614,7 +10614,7 @@ impl ITypeInfo { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetNames(&self, memid: i32, rgbstrnames: &mut super::super::Foundation::BSTR, cmaxnames: u32, pcnames: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetNames(&self, memid: i32, rgbstrnames: *mut super::super::Foundation::BSTR, cmaxnames: u32, pcnames: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetNames)(::windows::core::Interface::as_raw(self), memid, ::core::mem::transmute(rgbstrnames), cmaxnames, ::core::mem::transmute(pcnames)).ok() } pub unsafe fn GetRefTypeOfImplType(&self, index: u32) -> ::windows::core::Result { @@ -10625,7 +10625,7 @@ impl ITypeInfo { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetImplTypeFlags)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetIDsOfNames(&self, rgsznames: &::windows::core::PWSTR, cnames: u32, pmemid: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn GetIDsOfNames(&self, rgsznames: *const ::windows::core::PWSTR, cnames: u32, pmemid: *mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetIDsOfNames)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rgsznames), ::core::mem::transmute(cnames), ::core::mem::transmute(pmemid)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`*"] @@ -10803,7 +10803,7 @@ impl ITypeInfo2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetNames(&self, memid: i32, rgbstrnames: &mut super::super::Foundation::BSTR, cmaxnames: u32, pcnames: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetNames(&self, memid: i32, rgbstrnames: *mut super::super::Foundation::BSTR, cmaxnames: u32, pcnames: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetNames)(::windows::core::Interface::as_raw(self), memid, ::core::mem::transmute(rgbstrnames), cmaxnames, ::core::mem::transmute(pcnames)).ok() } pub unsafe fn GetRefTypeOfImplType(&self, index: u32) -> ::windows::core::Result { @@ -10814,7 +10814,7 @@ impl ITypeInfo2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.GetImplTypeFlags)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetIDsOfNames(&self, rgsznames: &::windows::core::PWSTR, cnames: u32, pmemid: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn GetIDsOfNames(&self, rgsznames: *const ::windows::core::PWSTR, cnames: u32, pmemid: *mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetIDsOfNames)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rgsznames), ::core::mem::transmute(cnames), ::core::mem::transmute(pmemid)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Ole\"`*"] @@ -11093,7 +11093,7 @@ impl ITypeLib { pub unsafe fn IsName(&self, sznamebuf: ::windows::core::PWSTR, lhashval: u32, pfname: &mut super::super::Foundation::BOOL) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).IsName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(sznamebuf), lhashval, ::core::mem::transmute(pfname)).ok() } - pub unsafe fn FindName(&self, sznamebuf: ::windows::core::PWSTR, lhashval: u32, pptinfo: &mut ::core::option::Option, rgmemid: &mut i32, pcfound: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn FindName(&self, sznamebuf: ::windows::core::PWSTR, lhashval: u32, pptinfo: *mut ::core::option::Option, rgmemid: *mut i32, pcfound: &mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).FindName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(sznamebuf), lhashval, ::core::mem::transmute(pptinfo), ::core::mem::transmute(rgmemid), ::core::mem::transmute(pcfound)).ok() } pub unsafe fn ReleaseTLibAttr(&self, ptlibattr: &TLIBATTR) { @@ -11193,7 +11193,7 @@ impl ITypeLib2 { pub unsafe fn IsName(&self, sznamebuf: ::windows::core::PWSTR, lhashval: u32, pfname: &mut super::super::Foundation::BOOL) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.IsName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(sznamebuf), lhashval, ::core::mem::transmute(pfname)).ok() } - pub unsafe fn FindName(&self, sznamebuf: ::windows::core::PWSTR, lhashval: u32, pptinfo: &mut ::core::option::Option, rgmemid: &mut i32, pcfound: &mut u16) -> ::windows::core::Result<()> { + pub unsafe fn FindName(&self, sznamebuf: ::windows::core::PWSTR, lhashval: u32, pptinfo: *mut ::core::option::Option, rgmemid: *mut i32, pcfound: &mut u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.FindName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(sznamebuf), lhashval, ::core::mem::transmute(pptinfo), ::core::mem::transmute(rgmemid), ::core::mem::transmute(pcfound)).ok() } pub unsafe fn ReleaseTLibAttr(&self, ptlibattr: &TLIBATTR) { @@ -13383,7 +13383,7 @@ pub unsafe fn StringFromGUID2(rguid: &::windows::core::GUID, lpsz: &mut [u16]) - extern "system" { fn StringFromGUID2(rguid: *const ::windows::core::GUID, lpsz: ::windows::core::PWSTR, cchmax: i32) -> i32; } - StringFromGUID2(::core::mem::transmute(rguid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpsz)), lpsz.len() as _) + StringFromGUID2(::core::mem::transmute(rguid), ::core::mem::transmute(lpsz.as_ptr()), lpsz.len() as _) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/System/ComponentServices/mod.rs b/crates/libs/windows/src/Windows/Win32/System/ComponentServices/mod.rs index 4a6d4aaf3d..e2d042e310 100644 --- a/crates/libs/windows/src/Windows/Win32/System/ComponentServices/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/ComponentServices/mod.rs @@ -3609,10 +3609,10 @@ impl ICOMLBArguments { (::windows::core::Interface::vtable(self).SetCLSID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pclsid)).ok() } pub unsafe fn GetMachineName(&self, szservername: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetMachineName)(::windows::core::Interface::as_raw(self), szservername.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szservername))).ok() + (::windows::core::Interface::vtable(self).GetMachineName)(::windows::core::Interface::as_raw(self), szservername.len() as _, ::core::mem::transmute(szservername.as_ptr())).ok() } pub unsafe fn SetMachineName(&self, szservername: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetMachineName)(::windows::core::Interface::as_raw(self), szservername.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szservername))).ok() + (::windows::core::Interface::vtable(self).SetMachineName)(::windows::core::Interface::as_raw(self), szservername.len() as _, ::core::mem::transmute(szservername.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -4273,7 +4273,7 @@ impl IComCRMEvents { (::windows::core::Interface::vtable(self).OnCRMCheckpoint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinfo), ::core::mem::transmute(guidapp)).ok() } pub unsafe fn OnCRMBegin(&self, pinfo: &COMSVCSEVENTINFO, guidclerkclsid: ::windows::core::GUID, guidactivity: ::windows::core::GUID, guidtx: ::windows::core::GUID, szprogidcompensator: &[u16; 64], szdescription: &[u16; 64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OnCRMBegin)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinfo), ::core::mem::transmute(guidclerkclsid), ::core::mem::transmute(guidactivity), ::core::mem::transmute(guidtx), ::core::mem::transmute(::windows::core::as_ptr_or_null(szprogidcompensator)), ::core::mem::transmute(::windows::core::as_ptr_or_null(szdescription))).ok() + (::windows::core::Interface::vtable(self).OnCRMBegin)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinfo), ::core::mem::transmute(guidclerkclsid), ::core::mem::transmute(guidactivity), ::core::mem::transmute(guidtx), ::core::mem::transmute(szprogidcompensator.as_ptr()), ::core::mem::transmute(szdescription.as_ptr())).ok() } pub unsafe fn OnCRMPrepare(&self, pinfo: &COMSVCSEVENTINFO, guidclerkclsid: ::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OnCRMPrepare)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinfo), ::core::mem::transmute(guidclerkclsid)).ok() @@ -5215,10 +5215,10 @@ pub struct IComObjectPoolEvents2_Vtbl { pub struct IComQCEvents(::windows::core::IUnknown); impl IComQCEvents { pub unsafe fn OnQCRecord(&self, pinfo: &COMSVCSEVENTINFO, objid: u64, szqueue: &[u16; 60], guidmsgid: &::windows::core::GUID, guidworkflowid: &::windows::core::GUID, msmqhr: ::windows::core::HRESULT) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OnQCRecord)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinfo), objid, ::core::mem::transmute(::windows::core::as_ptr_or_null(szqueue)), ::core::mem::transmute(guidmsgid), ::core::mem::transmute(guidworkflowid), msmqhr).ok() + (::windows::core::Interface::vtable(self).OnQCRecord)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinfo), objid, ::core::mem::transmute(szqueue.as_ptr()), ::core::mem::transmute(guidmsgid), ::core::mem::transmute(guidworkflowid), msmqhr).ok() } pub unsafe fn OnQCQueueOpen(&self, pinfo: &COMSVCSEVENTINFO, szqueue: &[u16; 60], queueid: u64, hr: ::windows::core::HRESULT) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OnQCQueueOpen)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinfo), ::core::mem::transmute(::windows::core::as_ptr_or_null(szqueue)), queueid, hr).ok() + (::windows::core::Interface::vtable(self).OnQCQueueOpen)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinfo), ::core::mem::transmute(szqueue.as_ptr()), queueid, hr).ok() } pub unsafe fn OnQCReceive(&self, pinfo: &COMSVCSEVENTINFO, queueid: u64, guidmsgid: &::windows::core::GUID, guidworkflowid: &::windows::core::GUID, hr: ::windows::core::HRESULT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OnQCReceive)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinfo), queueid, ::core::mem::transmute(guidmsgid), ::core::mem::transmute(guidworkflowid), hr).ok() @@ -5391,7 +5391,7 @@ impl IComSecurityEvents { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).OnAuthenticate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinfo), ::core::mem::transmute(guidactivity), objectid, ::core::mem::transmute(guidiid), imeth, psidoriginaluser.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psidoriginaluser)), psidcurrentuser.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psidcurrentuser)), bcurrentuserinpersonatinginproc.into()).ok() + (::windows::core::Interface::vtable(self).OnAuthenticate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinfo), ::core::mem::transmute(guidactivity), objectid, ::core::mem::transmute(guidiid), imeth, psidoriginaluser.len() as _, ::core::mem::transmute(psidoriginaluser.as_ptr()), psidcurrentuser.len() as _, ::core::mem::transmute(psidcurrentuser.as_ptr()), bcurrentuserinpersonatinginproc.into()).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5399,7 +5399,7 @@ impl IComSecurityEvents { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).OnAuthenticateFail)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinfo), ::core::mem::transmute(guidactivity), objectid, ::core::mem::transmute(guidiid), imeth, psidoriginaluser.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psidoriginaluser)), psidcurrentuser.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psidcurrentuser)), bcurrentuserinpersonatinginproc.into()).ok() + (::windows::core::Interface::vtable(self).OnAuthenticateFail)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pinfo), ::core::mem::transmute(guidactivity), objectid, ::core::mem::transmute(guidiid), imeth, psidoriginaluser.len() as _, ::core::mem::transmute(psidoriginaluser.as_ptr()), psidcurrentuser.len() as _, ::core::mem::transmute(psidcurrentuser.as_ptr()), bcurrentuserinpersonatinginproc.into()).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -6976,7 +6976,7 @@ impl ICrmLogControl { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn WriteLogRecord(&self, rgblob: &[super::Com::BLOB]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteLogRecord)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgblob)), rgblob.len() as _).ok() + (::windows::core::Interface::vtable(self).WriteLogRecord)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rgblob.as_ptr()), rgblob.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -7651,7 +7651,7 @@ pub struct IGetAppTrackerData(::windows::core::IUnknown); impl IGetAppTrackerData { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetApplicationProcesses(&self, partitionid: &::windows::core::GUID, applicationid: &::windows::core::GUID, flags: u32, numapplicationprocesses: &mut u32, applicationprocesses: &mut *mut ApplicationProcessSummary) -> ::windows::core::Result<()> { + pub unsafe fn GetApplicationProcesses(&self, partitionid: &::windows::core::GUID, applicationid: &::windows::core::GUID, flags: u32, numapplicationprocesses: &mut u32, applicationprocesses: *mut *mut ApplicationProcessSummary) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetApplicationProcesses)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(partitionid), ::core::mem::transmute(applicationid), flags, ::core::mem::transmute(numapplicationprocesses), ::core::mem::transmute(applicationprocesses)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -7659,10 +7659,10 @@ impl IGetAppTrackerData { pub unsafe fn GetApplicationProcessDetails(&self, applicationinstanceid: &::windows::core::GUID, processid: u32, flags: u32, summary: ::core::option::Option<&mut ApplicationProcessSummary>, statistics: ::core::option::Option<&mut ApplicationProcessStatistics>, recycleinfo: ::core::option::Option<&mut ApplicationProcessRecycleInfo>, anycomponentshangmonitored: ::core::option::Option<&mut super::super::Foundation::BOOL>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetApplicationProcessDetails)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(applicationinstanceid), processid, flags, ::core::mem::transmute(summary), ::core::mem::transmute(statistics), ::core::mem::transmute(recycleinfo), ::core::mem::transmute(anycomponentshangmonitored)).ok() } - pub unsafe fn GetApplicationsInProcess(&self, applicationinstanceid: &::windows::core::GUID, processid: u32, partitionid: &::windows::core::GUID, flags: u32, numapplicationsinprocess: &mut u32, applications: &mut *mut ApplicationSummary) -> ::windows::core::Result<()> { + pub unsafe fn GetApplicationsInProcess(&self, applicationinstanceid: &::windows::core::GUID, processid: u32, partitionid: &::windows::core::GUID, flags: u32, numapplicationsinprocess: &mut u32, applications: *mut *mut ApplicationSummary) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetApplicationsInProcess)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(applicationinstanceid), processid, ::core::mem::transmute(partitionid), flags, ::core::mem::transmute(numapplicationsinprocess), ::core::mem::transmute(applications)).ok() } - pub unsafe fn GetComponentsInProcess(&self, applicationinstanceid: &::windows::core::GUID, processid: u32, partitionid: &::windows::core::GUID, applicationid: &::windows::core::GUID, flags: u32, numcomponentsinprocess: &mut u32, components: &mut *mut ComponentSummary) -> ::windows::core::Result<()> { + pub unsafe fn GetComponentsInProcess(&self, applicationinstanceid: &::windows::core::GUID, processid: u32, partitionid: &::windows::core::GUID, applicationid: &::windows::core::GUID, flags: u32, numcomponentsinprocess: &mut u32, components: *mut *mut ComponentSummary) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetComponentsInProcess)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(applicationinstanceid), processid, ::core::mem::transmute(partitionid), ::core::mem::transmute(applicationid), flags, ::core::mem::transmute(numcomponentsinprocess), ::core::mem::transmute(components)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] diff --git a/crates/libs/windows/src/Windows/Win32/System/Console/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Console/mod.rs index bfd9f8c08b..c3726bc122 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Console/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Console/mod.rs @@ -775,7 +775,7 @@ where extern "system" { fn GetConsoleAliasA(source: ::windows::core::PCSTR, targetbuffer: ::windows::core::PSTR, targetbufferlength: u32, exename: ::windows::core::PCSTR) -> u32; } - GetConsoleAliasA(source.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(targetbuffer)), targetbuffer.len() as _, exename.into()) + GetConsoleAliasA(source.into(), ::core::mem::transmute(targetbuffer.as_ptr()), targetbuffer.len() as _, exename.into()) } #[doc = "*Required features: `\"Win32_System_Console\"`*"] #[inline] @@ -784,7 +784,7 @@ pub unsafe fn GetConsoleAliasExesA(exenamebuffer: &mut [u8]) -> u32 { extern "system" { fn GetConsoleAliasExesA(exenamebuffer: ::windows::core::PSTR, exenamebufferlength: u32) -> u32; } - GetConsoleAliasExesA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(exenamebuffer)), exenamebuffer.len() as _) + GetConsoleAliasExesA(::core::mem::transmute(exenamebuffer.as_ptr()), exenamebuffer.len() as _) } #[doc = "*Required features: `\"Win32_System_Console\"`*"] #[inline] @@ -811,7 +811,7 @@ pub unsafe fn GetConsoleAliasExesW(exenamebuffer: &mut [u16]) -> u32 { extern "system" { fn GetConsoleAliasExesW(exenamebuffer: ::windows::core::PWSTR, exenamebufferlength: u32) -> u32; } - GetConsoleAliasExesW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(exenamebuffer)), exenamebuffer.len() as _) + GetConsoleAliasExesW(::core::mem::transmute(exenamebuffer.as_ptr()), exenamebuffer.len() as _) } #[doc = "*Required features: `\"Win32_System_Console\"`*"] #[inline] @@ -824,7 +824,7 @@ where extern "system" { fn GetConsoleAliasW(source: ::windows::core::PCWSTR, targetbuffer: ::windows::core::PWSTR, targetbufferlength: u32, exename: ::windows::core::PCWSTR) -> u32; } - GetConsoleAliasW(source.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(targetbuffer)), targetbuffer.len() as _, exename.into()) + GetConsoleAliasW(source.into(), ::core::mem::transmute(targetbuffer.as_ptr()), targetbuffer.len() as _, exename.into()) } #[doc = "*Required features: `\"Win32_System_Console\"`*"] #[inline] @@ -836,7 +836,7 @@ where extern "system" { fn GetConsoleAliasesA(aliasbuffer: ::windows::core::PSTR, aliasbufferlength: u32, exename: ::windows::core::PCSTR) -> u32; } - GetConsoleAliasesA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(aliasbuffer)), aliasbuffer.len() as _, exename.into()) + GetConsoleAliasesA(::core::mem::transmute(aliasbuffer.as_ptr()), aliasbuffer.len() as _, exename.into()) } #[doc = "*Required features: `\"Win32_System_Console\"`*"] #[inline] @@ -872,7 +872,7 @@ where extern "system" { fn GetConsoleAliasesW(aliasbuffer: ::windows::core::PWSTR, aliasbufferlength: u32, exename: ::windows::core::PCWSTR) -> u32; } - GetConsoleAliasesW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(aliasbuffer)), aliasbuffer.len() as _, exename.into()) + GetConsoleAliasesW(::core::mem::transmute(aliasbuffer.as_ptr()), aliasbuffer.len() as _, exename.into()) } #[doc = "*Required features: `\"Win32_System_Console\"`*"] #[inline] @@ -885,7 +885,7 @@ pub unsafe fn GetConsoleCP() -> u32 { } #[doc = "*Required features: `\"Win32_System_Console\"`*"] #[inline] -pub unsafe fn GetConsoleCommandHistoryA<'a, P0>(commands: ::windows::core::PSTR, commandbufferlength: u32, exename: P0) -> u32 +pub unsafe fn GetConsoleCommandHistoryA<'a, P0>(commands: &mut [u8], exename: P0) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -893,7 +893,7 @@ where extern "system" { fn GetConsoleCommandHistoryA(commands: ::windows::core::PSTR, commandbufferlength: u32, exename: ::windows::core::PCSTR) -> u32; } - GetConsoleCommandHistoryA(::core::mem::transmute(commands), commandbufferlength, exename.into()) + GetConsoleCommandHistoryA(::core::mem::transmute(commands.as_ptr()), commands.len() as _, exename.into()) } #[doc = "*Required features: `\"Win32_System_Console\"`*"] #[inline] @@ -921,7 +921,7 @@ where } #[doc = "*Required features: `\"Win32_System_Console\"`*"] #[inline] -pub unsafe fn GetConsoleCommandHistoryW<'a, P0>(commands: ::windows::core::PWSTR, commandbufferlength: u32, exename: P0) -> u32 +pub unsafe fn GetConsoleCommandHistoryW<'a, P0>(commands: &mut [u8], exename: P0) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -929,7 +929,7 @@ where extern "system" { fn GetConsoleCommandHistoryW(commands: ::windows::core::PWSTR, commandbufferlength: u32, exename: ::windows::core::PCWSTR) -> u32; } - GetConsoleCommandHistoryW(::core::mem::transmute(commands), commandbufferlength, exename.into()) + GetConsoleCommandHistoryW(::core::mem::transmute(commands.as_ptr()), commands.len() as _, exename.into()) } #[doc = "*Required features: `\"Win32_System_Console\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -997,7 +997,7 @@ pub unsafe fn GetConsoleOriginalTitleA(lpconsoletitle: &mut [u8]) -> u32 { extern "system" { fn GetConsoleOriginalTitleA(lpconsoletitle: ::windows::core::PSTR, nsize: u32) -> u32; } - GetConsoleOriginalTitleA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpconsoletitle)), lpconsoletitle.len() as _) + GetConsoleOriginalTitleA(::core::mem::transmute(lpconsoletitle.as_ptr()), lpconsoletitle.len() as _) } #[doc = "*Required features: `\"Win32_System_Console\"`*"] #[inline] @@ -1006,7 +1006,7 @@ pub unsafe fn GetConsoleOriginalTitleW(lpconsoletitle: &mut [u16]) -> u32 { extern "system" { fn GetConsoleOriginalTitleW(lpconsoletitle: ::windows::core::PWSTR, nsize: u32) -> u32; } - GetConsoleOriginalTitleW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpconsoletitle)), lpconsoletitle.len() as _) + GetConsoleOriginalTitleW(::core::mem::transmute(lpconsoletitle.as_ptr()), lpconsoletitle.len() as _) } #[doc = "*Required features: `\"Win32_System_Console\"`*"] #[inline] @@ -1024,7 +1024,7 @@ pub unsafe fn GetConsoleProcessList(lpdwprocesslist: &mut [u32]) -> u32 { extern "system" { fn GetConsoleProcessList(lpdwprocesslist: *mut u32, dwprocesscount: u32) -> u32; } - GetConsoleProcessList(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdwprocesslist)), lpdwprocesslist.len() as _) + GetConsoleProcessList(::core::mem::transmute(lpdwprocesslist.as_ptr()), lpdwprocesslist.len() as _) } #[doc = "*Required features: `\"Win32_System_Console\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1069,7 +1069,7 @@ pub unsafe fn GetConsoleTitleA(lpconsoletitle: &mut [u8]) -> u32 { extern "system" { fn GetConsoleTitleA(lpconsoletitle: ::windows::core::PSTR, nsize: u32) -> u32; } - GetConsoleTitleA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpconsoletitle)), lpconsoletitle.len() as _) + GetConsoleTitleA(::core::mem::transmute(lpconsoletitle.as_ptr()), lpconsoletitle.len() as _) } #[doc = "*Required features: `\"Win32_System_Console\"`*"] #[inline] @@ -1078,7 +1078,7 @@ pub unsafe fn GetConsoleTitleW(lpconsoletitle: &mut [u16]) -> u32 { extern "system" { fn GetConsoleTitleW(lpconsoletitle: ::windows::core::PWSTR, nsize: u32) -> u32; } - GetConsoleTitleW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpconsoletitle)), lpconsoletitle.len() as _) + GetConsoleTitleW(::core::mem::transmute(lpconsoletitle.as_ptr()), lpconsoletitle.len() as _) } #[doc = "*Required features: `\"Win32_System_Console\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1449,7 +1449,7 @@ where extern "system" { fn PeekConsoleInputA(hconsoleinput: super::super::Foundation::HANDLE, lpbuffer: *mut INPUT_RECORD, nlength: u32, lpnumberofeventsread: *mut u32) -> super::super::Foundation::BOOL; } - PeekConsoleInputA(hconsoleinput.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofeventsread)) + PeekConsoleInputA(hconsoleinput.into(), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofeventsread)) } #[doc = "*Required features: `\"Win32_System_Console\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1462,7 +1462,7 @@ where extern "system" { fn PeekConsoleInputW(hconsoleinput: super::super::Foundation::HANDLE, lpbuffer: *mut INPUT_RECORD, nlength: u32, lpnumberofeventsread: *mut u32) -> super::super::Foundation::BOOL; } - PeekConsoleInputW(hconsoleinput.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofeventsread)) + PeekConsoleInputW(hconsoleinput.into(), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofeventsread)) } #[doc = "*Required features: `\"Win32_System_Console\"`*"] pub const RIGHTMOST_BUTTON_PRESSED: u32 = 2u32; @@ -1494,7 +1494,7 @@ where extern "system" { fn ReadConsoleInputA(hconsoleinput: super::super::Foundation::HANDLE, lpbuffer: *mut INPUT_RECORD, nlength: u32, lpnumberofeventsread: *mut u32) -> super::super::Foundation::BOOL; } - ReadConsoleInputA(hconsoleinput.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofeventsread)) + ReadConsoleInputA(hconsoleinput.into(), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofeventsread)) } #[doc = "*Required features: `\"Win32_System_Console\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1507,7 +1507,7 @@ where extern "system" { fn ReadConsoleInputW(hconsoleinput: super::super::Foundation::HANDLE, lpbuffer: *mut INPUT_RECORD, nlength: u32, lpnumberofeventsread: *mut u32) -> super::super::Foundation::BOOL; } - ReadConsoleInputW(hconsoleinput.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofeventsread)) + ReadConsoleInputW(hconsoleinput.into(), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofeventsread)) } #[doc = "*Required features: `\"Win32_System_Console\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1533,7 +1533,7 @@ where extern "system" { fn ReadConsoleOutputAttribute(hconsoleoutput: super::super::Foundation::HANDLE, lpattribute: *mut u16, nlength: u32, dwreadcoord: COORD, lpnumberofattrsread: *mut u32) -> super::super::Foundation::BOOL; } - ReadConsoleOutputAttribute(hconsoleoutput.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpattribute)), lpattribute.len() as _, ::core::mem::transmute(dwreadcoord), ::core::mem::transmute(lpnumberofattrsread)) + ReadConsoleOutputAttribute(hconsoleoutput.into(), ::core::mem::transmute(lpattribute.as_ptr()), lpattribute.len() as _, ::core::mem::transmute(dwreadcoord), ::core::mem::transmute(lpnumberofattrsread)) } #[doc = "*Required features: `\"Win32_System_Console\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1546,7 +1546,7 @@ where extern "system" { fn ReadConsoleOutputCharacterA(hconsoleoutput: super::super::Foundation::HANDLE, lpcharacter: ::windows::core::PSTR, nlength: u32, dwreadcoord: COORD, lpnumberofcharsread: *mut u32) -> super::super::Foundation::BOOL; } - ReadConsoleOutputCharacterA(hconsoleoutput.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpcharacter)), lpcharacter.len() as _, ::core::mem::transmute(dwreadcoord), ::core::mem::transmute(lpnumberofcharsread)) + ReadConsoleOutputCharacterA(hconsoleoutput.into(), ::core::mem::transmute(lpcharacter.as_ptr()), lpcharacter.len() as _, ::core::mem::transmute(dwreadcoord), ::core::mem::transmute(lpnumberofcharsread)) } #[doc = "*Required features: `\"Win32_System_Console\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1559,7 +1559,7 @@ where extern "system" { fn ReadConsoleOutputCharacterW(hconsoleoutput: super::super::Foundation::HANDLE, lpcharacter: ::windows::core::PWSTR, nlength: u32, dwreadcoord: COORD, lpnumberofcharsread: *mut u32) -> super::super::Foundation::BOOL; } - ReadConsoleOutputCharacterW(hconsoleoutput.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpcharacter)), lpcharacter.len() as _, ::core::mem::transmute(dwreadcoord), ::core::mem::transmute(lpnumberofcharsread)) + ReadConsoleOutputCharacterW(hconsoleoutput.into(), ::core::mem::transmute(lpcharacter.as_ptr()), lpcharacter.len() as _, ::core::mem::transmute(dwreadcoord), ::core::mem::transmute(lpnumberofcharsread)) } #[doc = "*Required features: `\"Win32_System_Console\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1987,7 +1987,7 @@ where extern "system" { fn WriteConsoleA(hconsoleoutput: super::super::Foundation::HANDLE, lpbuffer: *const ::core::ffi::c_void, nnumberofcharstowrite: u32, lpnumberofcharswritten: *mut u32, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - WriteConsoleA(hconsoleoutput.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpbuffer)), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofcharswritten), ::core::mem::transmute(lpreserved)) + WriteConsoleA(hconsoleoutput.into(), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofcharswritten), ::core::mem::transmute(lpreserved)) } #[doc = "*Required features: `\"Win32_System_Console\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2000,7 +2000,7 @@ where extern "system" { fn WriteConsoleInputA(hconsoleinput: super::super::Foundation::HANDLE, lpbuffer: *const INPUT_RECORD, nlength: u32, lpnumberofeventswritten: *mut u32) -> super::super::Foundation::BOOL; } - WriteConsoleInputA(hconsoleinput.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpbuffer)), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofeventswritten)) + WriteConsoleInputA(hconsoleinput.into(), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofeventswritten)) } #[doc = "*Required features: `\"Win32_System_Console\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2013,7 +2013,7 @@ where extern "system" { fn WriteConsoleInputW(hconsoleinput: super::super::Foundation::HANDLE, lpbuffer: *const INPUT_RECORD, nlength: u32, lpnumberofeventswritten: *mut u32) -> super::super::Foundation::BOOL; } - WriteConsoleInputW(hconsoleinput.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpbuffer)), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofeventswritten)) + WriteConsoleInputW(hconsoleinput.into(), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofeventswritten)) } #[doc = "*Required features: `\"Win32_System_Console\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2039,7 +2039,7 @@ where extern "system" { fn WriteConsoleOutputAttribute(hconsoleoutput: super::super::Foundation::HANDLE, lpattribute: *const u16, nlength: u32, dwwritecoord: COORD, lpnumberofattrswritten: *mut u32) -> super::super::Foundation::BOOL; } - WriteConsoleOutputAttribute(hconsoleoutput.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpattribute)), lpattribute.len() as _, ::core::mem::transmute(dwwritecoord), ::core::mem::transmute(lpnumberofattrswritten)) + WriteConsoleOutputAttribute(hconsoleoutput.into(), ::core::mem::transmute(lpattribute.as_ptr()), lpattribute.len() as _, ::core::mem::transmute(dwwritecoord), ::core::mem::transmute(lpnumberofattrswritten)) } #[doc = "*Required features: `\"Win32_System_Console\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2052,7 +2052,7 @@ where extern "system" { fn WriteConsoleOutputCharacterA(hconsoleoutput: super::super::Foundation::HANDLE, lpcharacter: ::windows::core::PCSTR, nlength: u32, dwwritecoord: COORD, lpnumberofcharswritten: *mut u32) -> super::super::Foundation::BOOL; } - WriteConsoleOutputCharacterA(hconsoleoutput.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpcharacter)), lpcharacter.len() as _, ::core::mem::transmute(dwwritecoord), ::core::mem::transmute(lpnumberofcharswritten)) + WriteConsoleOutputCharacterA(hconsoleoutput.into(), ::core::mem::transmute(lpcharacter.as_ptr()), lpcharacter.len() as _, ::core::mem::transmute(dwwritecoord), ::core::mem::transmute(lpnumberofcharswritten)) } #[doc = "*Required features: `\"Win32_System_Console\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2065,7 +2065,7 @@ where extern "system" { fn WriteConsoleOutputCharacterW(hconsoleoutput: super::super::Foundation::HANDLE, lpcharacter: ::windows::core::PCWSTR, nlength: u32, dwwritecoord: COORD, lpnumberofcharswritten: *mut u32) -> super::super::Foundation::BOOL; } - WriteConsoleOutputCharacterW(hconsoleoutput.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpcharacter)), lpcharacter.len() as _, ::core::mem::transmute(dwwritecoord), ::core::mem::transmute(lpnumberofcharswritten)) + WriteConsoleOutputCharacterW(hconsoleoutput.into(), ::core::mem::transmute(lpcharacter.as_ptr()), lpcharacter.len() as _, ::core::mem::transmute(dwwritecoord), ::core::mem::transmute(lpnumberofcharswritten)) } #[doc = "*Required features: `\"Win32_System_Console\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2091,7 +2091,7 @@ where extern "system" { fn WriteConsoleW(hconsoleoutput: super::super::Foundation::HANDLE, lpbuffer: *const ::core::ffi::c_void, nnumberofcharstowrite: u32, lpnumberofcharswritten: *mut u32, lpreserved: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - WriteConsoleW(hconsoleoutput.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpbuffer)), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofcharswritten), ::core::mem::transmute(lpreserved)) + WriteConsoleW(hconsoleoutput.into(), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofcharswritten), ::core::mem::transmute(lpreserved)) } #[cfg(feature = "implement")] ::core::include!("impl.rs"); diff --git a/crates/libs/windows/src/Windows/Win32/System/Contacts/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Contacts/mod.rs index be61ea45d4..f12e3980be 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Contacts/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Contacts/mod.rs @@ -301,10 +301,10 @@ pub const ContactManager: ::windows::core::GUID = ::windows::core::GUID::from_u1 pub struct IContact(::windows::core::IUnknown); impl IContact { pub unsafe fn GetContactID(&self, pszcontactid: &mut [u16], pdwcchcontactidrequired: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetContactID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszcontactid)), pszcontactid.len() as _, ::core::mem::transmute(pdwcchcontactidrequired)).ok() + (::windows::core::Interface::vtable(self).GetContactID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszcontactid.as_ptr()), pszcontactid.len() as _, ::core::mem::transmute(pdwcchcontactidrequired)).ok() } pub unsafe fn GetPath(&self, pszpath: &mut [u16], pdwcchpathrequired: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszpath.len() as _, ::core::mem::transmute(pdwcchpathrequired)).ok() + (::windows::core::Interface::vtable(self).GetPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszpath.as_ptr()), pszpath.len() as _, ::core::mem::transmute(pdwcchpathrequired)).ok() } pub unsafe fn CommitChanges(&self, dwcommitflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CommitChanges)(::windows::core::Interface::as_raw(self), dwcommitflags).ok() @@ -1666,7 +1666,7 @@ impl IContactProperties { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetString)(::windows::core::Interface::as_raw(self), pszpropertyname.into(), dwflags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszvalue)), pszvalue.len() as _, ::core::mem::transmute(pdwcchpropertyvaluerequired)).ok() + (::windows::core::Interface::vtable(self).GetString)(::windows::core::Interface::as_raw(self), pszpropertyname.into(), dwflags, ::core::mem::transmute(pszvalue.as_ptr()), pszvalue.len() as _, ::core::mem::transmute(pdwcchpropertyvaluerequired)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1682,13 +1682,13 @@ impl IContactProperties { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetBinary)(::windows::core::Interface::as_raw(self), pszpropertyname.into(), dwflags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszcontenttype)), pszcontenttype.len() as _, ::core::mem::transmute(pdwcchcontenttyperequired), ::core::mem::transmute(ppstream)).ok() + (::windows::core::Interface::vtable(self).GetBinary)(::windows::core::Interface::as_raw(self), pszpropertyname.into(), dwflags, ::core::mem::transmute(pszcontenttype.as_ptr()), pszcontenttype.len() as _, ::core::mem::transmute(pdwcchcontenttyperequired), ::core::mem::transmute(ppstream)).ok() } pub unsafe fn GetLabels<'a, P0>(&self, pszarrayelementname: P0, dwflags: u32, pszlabels: &mut [u16], pdwcchlabelsrequired: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetLabels)(::windows::core::Interface::as_raw(self), pszarrayelementname.into(), dwflags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszlabels)), pszlabels.len() as _, ::core::mem::transmute(pdwcchlabelsrequired)).ok() + (::windows::core::Interface::vtable(self).GetLabels)(::windows::core::Interface::as_raw(self), pszarrayelementname.into(), dwflags, ::core::mem::transmute(pszlabels.as_ptr()), pszlabels.len() as _, ::core::mem::transmute(pdwcchlabelsrequired)).ok() } pub unsafe fn SetString<'a, P0, P1>(&self, pszpropertyname: P0, dwflags: u32, pszvalue: P1) -> ::windows::core::Result<()> where @@ -1719,7 +1719,7 @@ impl IContactProperties { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetLabels)(::windows::core::Interface::as_raw(self), pszarrayelementname.into(), dwflags, ppszlabels.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppszlabels))).ok() + (::windows::core::Interface::vtable(self).SetLabels)(::windows::core::Interface::as_raw(self), pszarrayelementname.into(), dwflags, ppszlabels.len() as _, ::core::mem::transmute(ppszlabels.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1728,7 +1728,7 @@ impl IContactProperties { P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).CreateArrayNode)(::windows::core::Interface::as_raw(self), pszarrayname.into(), dwflags, fappend.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psznewarrayelementname)), psznewarrayelementname.len() as _, ::core::mem::transmute(pdwcchnewarrayelementnamerequired)).ok() + (::windows::core::Interface::vtable(self).CreateArrayNode)(::windows::core::Interface::as_raw(self), pszarrayname.into(), dwflags, fappend.into(), ::core::mem::transmute(psznewarrayelementname.as_ptr()), psznewarrayelementname.len() as _, ::core::mem::transmute(pdwcchnewarrayelementnamerequired)).ok() } pub unsafe fn DeleteProperty<'a, P0>(&self, pszpropertyname: P0, dwflags: u32) -> ::windows::core::Result<()> where @@ -1755,7 +1755,7 @@ impl IContactProperties { P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).GetPropertyCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppropertycollection), dwflags, pszmultivaluename.into(), ppszlabels.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppszlabels)), fanylabelmatches.into()).ok() + (::windows::core::Interface::vtable(self).GetPropertyCollection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pppropertycollection), dwflags, pszmultivaluename.into(), ppszlabels.len() as _, ::core::mem::transmute(ppszlabels.as_ptr()), fanylabelmatches.into()).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1840,7 +1840,7 @@ impl IContactPropertyCollection { (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self)).ok() } pub unsafe fn GetPropertyName(&self, pszpropertyname: &mut [u16], pdwcchpropertynamerequired: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPropertyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpropertyname)), pszpropertyname.len() as _, ::core::mem::transmute(pdwcchpropertynamerequired)).ok() + (::windows::core::Interface::vtable(self).GetPropertyName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszpropertyname.as_ptr()), pszpropertyname.len() as _, ::core::mem::transmute(pdwcchpropertynamerequired)).ok() } pub unsafe fn GetPropertyType(&self, pdwtype: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPropertyType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwtype)).ok() @@ -1854,7 +1854,7 @@ impl IContactPropertyCollection { (::windows::core::Interface::vtable(self).GetPropertyModificationDate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pftmodificationdate)).ok() } pub unsafe fn GetPropertyArrayElementID(&self, pszarrayelementid: &mut [u16], pdwccharrayelementidrequired: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPropertyArrayElementID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszarrayelementid)), pszarrayelementid.len() as _, ::core::mem::transmute(pdwccharrayelementidrequired)).ok() + (::windows::core::Interface::vtable(self).GetPropertyArrayElementID)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszarrayelementid.as_ptr()), pszarrayelementid.len() as _, ::core::mem::transmute(pdwccharrayelementidrequired)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/System/DataExchange/mod.rs b/crates/libs/windows/src/Windows/Win32/System/DataExchange/mod.rs index 5e613e929d..7cdf404dd2 100644 --- a/crates/libs/windows/src/Windows/Win32/System/DataExchange/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/DataExchange/mod.rs @@ -870,7 +870,7 @@ where } #[doc = "*Required features: `\"Win32_System_DataExchange\"`*"] #[inline] -pub unsafe fn DdeAddData<'a, P0>(hdata: P0, psrc: &u8, cb: u32, cboff: u32) -> HDDEDATA +pub unsafe fn DdeAddData<'a, P0>(hdata: P0, psrc: &[u8], cboff: u32) -> HDDEDATA where P0: ::std::convert::Into, { @@ -878,7 +878,7 @@ where extern "system" { fn DdeAddData(hdata: HDDEDATA, psrc: *const u8, cb: u32, cboff: u32) -> HDDEDATA; } - DdeAddData(hdata.into(), ::core::mem::transmute(psrc), cb, cboff) + DdeAddData(hdata.into(), ::core::mem::transmute(psrc.as_ptr()), psrc.len() as _, cboff) } #[doc = "*Required features: `\"Win32_System_DataExchange\"`*"] #[inline] @@ -937,7 +937,7 @@ where } #[doc = "*Required features: `\"Win32_System_DataExchange\"`*"] #[inline] -pub unsafe fn DdeCreateDataHandle<'a, P0>(idinst: u32, psrc: ::core::option::Option<&u8>, cb: u32, cboff: u32, hszitem: P0, wfmt: u32, afcmd: u32) -> HDDEDATA +pub unsafe fn DdeCreateDataHandle<'a, P0>(idinst: u32, psrc: ::core::option::Option<&[u8]>, cboff: u32, hszitem: P0, wfmt: u32, afcmd: u32) -> HDDEDATA where P0: ::std::convert::Into, { @@ -945,7 +945,7 @@ where extern "system" { fn DdeCreateDataHandle(idinst: u32, psrc: *const u8, cb: u32, cboff: u32, hszitem: HSZ, wfmt: u32, afcmd: u32) -> HDDEDATA; } - DdeCreateDataHandle(idinst, ::core::mem::transmute(psrc), cb, cboff, hszitem.into(), wfmt, afcmd) + DdeCreateDataHandle(idinst, ::core::mem::transmute(psrc.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psrc.as_deref().map_or(0, |slice| slice.len() as _), cboff, hszitem.into(), wfmt, afcmd) } #[doc = "*Required features: `\"Win32_System_DataExchange\"`*"] #[inline] @@ -1038,7 +1038,7 @@ where } #[doc = "*Required features: `\"Win32_System_DataExchange\"`*"] #[inline] -pub unsafe fn DdeGetData<'a, P0>(hdata: P0, pdst: ::core::option::Option<&mut u8>, cbmax: u32, cboff: u32) -> u32 +pub unsafe fn DdeGetData<'a, P0>(hdata: P0, pdst: ::core::option::Option<&mut [u8]>, cboff: u32) -> u32 where P0: ::std::convert::Into, { @@ -1046,7 +1046,7 @@ where extern "system" { fn DdeGetData(hdata: HDDEDATA, pdst: *mut u8, cbmax: u32, cboff: u32) -> u32; } - DdeGetData(hdata.into(), ::core::mem::transmute(pdst), cbmax, cboff) + DdeGetData(hdata.into(), ::core::mem::transmute(pdst.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdst.as_deref().map_or(0, |slice| slice.len() as _), cboff) } #[doc = "*Required features: `\"Win32_System_DataExchange\"`*"] #[inline] @@ -1156,7 +1156,7 @@ where } #[doc = "*Required features: `\"Win32_System_DataExchange\"`*"] #[inline] -pub unsafe fn DdeQueryStringA<'a, P0>(idinst: u32, hsz: P0, psz: &mut [u8], icodepage: i32) -> u32 +pub unsafe fn DdeQueryStringA<'a, P0>(idinst: u32, hsz: P0, psz: ::core::option::Option<&mut [u8]>, icodepage: i32) -> u32 where P0: ::std::convert::Into, { @@ -1164,11 +1164,11 @@ where extern "system" { fn DdeQueryStringA(idinst: u32, hsz: HSZ, psz: ::windows::core::PSTR, cchmax: u32, icodepage: i32) -> u32; } - DdeQueryStringA(idinst, hsz.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psz)), psz.len() as _, icodepage) + DdeQueryStringA(idinst, hsz.into(), ::core::mem::transmute(psz.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psz.as_deref().map_or(0, |slice| slice.len() as _), icodepage) } #[doc = "*Required features: `\"Win32_System_DataExchange\"`*"] #[inline] -pub unsafe fn DdeQueryStringW<'a, P0>(idinst: u32, hsz: P0, psz: &mut [u16], icodepage: i32) -> u32 +pub unsafe fn DdeQueryStringW<'a, P0>(idinst: u32, hsz: P0, psz: ::core::option::Option<&mut [u16]>, icodepage: i32) -> u32 where P0: ::std::convert::Into, { @@ -1176,7 +1176,7 @@ where extern "system" { fn DdeQueryStringW(idinst: u32, hsz: HSZ, psz: ::windows::core::PWSTR, cchmax: u32, icodepage: i32) -> u32; } - DdeQueryStringW(idinst, hsz.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psz)), psz.len() as _, icodepage) + DdeQueryStringW(idinst, hsz.into(), ::core::mem::transmute(psz.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psz.as_deref().map_or(0, |slice| slice.len() as _), icodepage) } #[doc = "*Required features: `\"Win32_System_DataExchange\"`*"] #[inline] @@ -1311,7 +1311,7 @@ pub unsafe fn GetAtomNameA(natom: u16, lpbuffer: &mut [u8]) -> u32 { extern "system" { fn GetAtomNameA(natom: u16, lpbuffer: ::windows::core::PSTR, nsize: i32) -> u32; } - GetAtomNameA(natom, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _) + GetAtomNameA(natom, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _) } #[doc = "*Required features: `\"Win32_System_DataExchange\"`*"] #[inline] @@ -1320,7 +1320,7 @@ pub unsafe fn GetAtomNameW(natom: u16, lpbuffer: &mut [u16]) -> u32 { extern "system" { fn GetAtomNameW(natom: u16, lpbuffer: ::windows::core::PWSTR, nsize: i32) -> u32; } - GetAtomNameW(natom, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _) + GetAtomNameW(natom, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _) } #[doc = "*Required features: `\"Win32_System_DataExchange\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1340,7 +1340,7 @@ pub unsafe fn GetClipboardFormatNameA(format: u32, lpszformatname: &mut [u8]) -> extern "system" { fn GetClipboardFormatNameA(format: u32, lpszformatname: ::windows::core::PSTR, cchmaxcount: i32) -> i32; } - GetClipboardFormatNameA(format, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszformatname)), lpszformatname.len() as _) + GetClipboardFormatNameA(format, ::core::mem::transmute(lpszformatname.as_ptr()), lpszformatname.len() as _) } #[doc = "*Required features: `\"Win32_System_DataExchange\"`*"] #[inline] @@ -1349,7 +1349,7 @@ pub unsafe fn GetClipboardFormatNameW(format: u32, lpszformatname: &mut [u16]) - extern "system" { fn GetClipboardFormatNameW(format: u32, lpszformatname: ::windows::core::PWSTR, cchmaxcount: i32) -> i32; } - GetClipboardFormatNameW(format, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszformatname)), lpszformatname.len() as _) + GetClipboardFormatNameW(format, ::core::mem::transmute(lpszformatname.as_ptr()), lpszformatname.len() as _) } #[doc = "*Required features: `\"Win32_System_DataExchange\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1397,7 +1397,7 @@ pub unsafe fn GetPriorityClipboardFormat(paformatprioritylist: &[u32]) -> i32 { extern "system" { fn GetPriorityClipboardFormat(paformatprioritylist: *const u32, cformats: i32) -> i32; } - GetPriorityClipboardFormat(::core::mem::transmute(::windows::core::as_ptr_or_null(paformatprioritylist)), paformatprioritylist.len() as _) + GetPriorityClipboardFormat(::core::mem::transmute(paformatprioritylist.as_ptr()), paformatprioritylist.len() as _) } #[doc = "*Required features: `\"Win32_System_DataExchange\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1407,7 +1407,7 @@ pub unsafe fn GetUpdatedClipboardFormats(lpuiformats: &mut [u32], pcformatsout: extern "system" { fn GetUpdatedClipboardFormats(lpuiformats: *mut u32, cformats: u32, pcformatsout: *mut u32) -> super::super::Foundation::BOOL; } - GetUpdatedClipboardFormats(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpuiformats)), lpuiformats.len() as _, ::core::mem::transmute(pcformatsout)) + GetUpdatedClipboardFormats(::core::mem::transmute(lpuiformats.as_ptr()), lpuiformats.len() as _, ::core::mem::transmute(pcformatsout)) } #[doc = "*Required features: `\"Win32_System_DataExchange\"`*"] #[inline] @@ -1497,7 +1497,7 @@ pub unsafe fn GlobalGetAtomNameA(natom: u16, lpbuffer: &mut [u8]) -> u32 { extern "system" { fn GlobalGetAtomNameA(natom: u16, lpbuffer: ::windows::core::PSTR, nsize: i32) -> u32; } - GlobalGetAtomNameA(natom, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _) + GlobalGetAtomNameA(natom, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _) } #[doc = "*Required features: `\"Win32_System_DataExchange\"`*"] #[inline] @@ -1506,7 +1506,7 @@ pub unsafe fn GlobalGetAtomNameW(natom: u16, lpbuffer: &mut [u16]) -> u32 { extern "system" { fn GlobalGetAtomNameW(natom: u16, lpbuffer: ::windows::core::PWSTR, nsize: i32) -> u32; } - GlobalGetAtomNameW(natom, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _) + GlobalGetAtomNameW(natom, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _) } #[repr(transparent)] #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] @@ -2199,7 +2199,7 @@ where #[doc = "*Required features: `\"Win32_System_DataExchange\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn SetWinMetaFileBits<'a, P0>(nsize: u32, lpmeta16data: &u8, hdcref: P0, lpmfp: ::core::option::Option<&METAFILEPICT>) -> super::super::Graphics::Gdi::HENHMETAFILE +pub unsafe fn SetWinMetaFileBits<'a, P0>(lpmeta16data: &[u8], hdcref: P0, lpmfp: ::core::option::Option<&METAFILEPICT>) -> super::super::Graphics::Gdi::HENHMETAFILE where P0: ::std::convert::Into, { @@ -2207,7 +2207,7 @@ where extern "system" { fn SetWinMetaFileBits(nsize: u32, lpmeta16data: *const u8, hdcref: super::super::Graphics::Gdi::HDC, lpmfp: *const METAFILEPICT) -> super::super::Graphics::Gdi::HENHMETAFILE; } - SetWinMetaFileBits(nsize, ::core::mem::transmute(lpmeta16data), hdcref.into(), ::core::mem::transmute(lpmfp)) + SetWinMetaFileBits(lpmeta16data.len() as _, ::core::mem::transmute(lpmeta16data.as_ptr()), hdcref.into(), ::core::mem::transmute(lpmfp)) } #[doc = "*Required features: `\"Win32_System_DataExchange\"`*"] pub const TIMEOUT_ASYNC: u32 = 4294967295u32; diff --git a/crates/libs/windows/src/Windows/Win32/System/DeploymentServices/mod.rs b/crates/libs/windows/src/Windows/Win32/System/DeploymentServices/mod.rs index a4f6482c4f..529c2f3ee3 100644 --- a/crates/libs/windows/src/Windows/Win32/System/DeploymentServices/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/DeploymentServices/mod.rs @@ -4225,53 +4225,53 @@ where } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] -pub unsafe fn PxeDhcpAppendOption(preplypacket: *mut ::core::ffi::c_void, umaxreplypacketlen: u32, pureplypacketlen: &mut u32, boption: u8, boptionlen: u8, pvalue: *const ::core::ffi::c_void) -> u32 { +pub unsafe fn PxeDhcpAppendOption(preplypacket: &mut [u8], pureplypacketlen: &mut u32, boption: u8, pvalue: ::core::option::Option<&[u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PxeDhcpAppendOption(preplypacket: *mut ::core::ffi::c_void, umaxreplypacketlen: u32, pureplypacketlen: *mut u32, boption: u8, boptionlen: u8, pvalue: *const ::core::ffi::c_void) -> u32; } - PxeDhcpAppendOption(::core::mem::transmute(preplypacket), umaxreplypacketlen, ::core::mem::transmute(pureplypacketlen), boption, boptionlen, ::core::mem::transmute(pvalue)) + PxeDhcpAppendOption(::core::mem::transmute(preplypacket.as_ptr()), preplypacket.len() as _, ::core::mem::transmute(pureplypacketlen), boption, pvalue.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pvalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] -pub unsafe fn PxeDhcpAppendOptionRaw(preplypacket: *mut ::core::ffi::c_void, umaxreplypacketlen: u32, pureplypacketlen: &mut u32, ubufferlen: u16, pbuffer: *const ::core::ffi::c_void) -> u32 { +pub unsafe fn PxeDhcpAppendOptionRaw(preplypacket: &mut [u8], pureplypacketlen: &mut u32, pbuffer: &[u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PxeDhcpAppendOptionRaw(preplypacket: *mut ::core::ffi::c_void, umaxreplypacketlen: u32, pureplypacketlen: *mut u32, ubufferlen: u16, pbuffer: *const ::core::ffi::c_void) -> u32; } - PxeDhcpAppendOptionRaw(::core::mem::transmute(preplypacket), umaxreplypacketlen, ::core::mem::transmute(pureplypacketlen), ubufferlen, ::core::mem::transmute(pbuffer)) + PxeDhcpAppendOptionRaw(::core::mem::transmute(preplypacket.as_ptr()), preplypacket.len() as _, ::core::mem::transmute(pureplypacketlen), pbuffer.len() as _, ::core::mem::transmute(pbuffer.as_ptr())) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] -pub unsafe fn PxeDhcpGetOptionValue(ppacket: *const ::core::ffi::c_void, upacketlen: u32, uinstance: u32, boption: u8, pboptionlen: ::core::option::Option<&mut u8>, ppoptionvalue: *mut *mut ::core::ffi::c_void) -> u32 { +pub unsafe fn PxeDhcpGetOptionValue(ppacket: &[u8], uinstance: u32, boption: u8, pboptionlen: ::core::option::Option<&mut u8>, ppoptionvalue: *mut *mut ::core::ffi::c_void) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PxeDhcpGetOptionValue(ppacket: *const ::core::ffi::c_void, upacketlen: u32, uinstance: u32, boption: u8, pboptionlen: *mut u8, ppoptionvalue: *mut *mut ::core::ffi::c_void) -> u32; } - PxeDhcpGetOptionValue(::core::mem::transmute(ppacket), upacketlen, uinstance, boption, ::core::mem::transmute(pboptionlen), ::core::mem::transmute(ppoptionvalue)) + PxeDhcpGetOptionValue(::core::mem::transmute(ppacket.as_ptr()), ppacket.len() as _, uinstance, boption, ::core::mem::transmute(pboptionlen), ::core::mem::transmute(ppoptionvalue)) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] -pub unsafe fn PxeDhcpGetVendorOptionValue(ppacket: *const ::core::ffi::c_void, upacketlen: u32, boption: u8, uinstance: u32, pboptionlen: ::core::option::Option<&mut u8>, ppoptionvalue: *mut *mut ::core::ffi::c_void) -> u32 { +pub unsafe fn PxeDhcpGetVendorOptionValue(ppacket: &[u8], boption: u8, uinstance: u32, pboptionlen: ::core::option::Option<&mut u8>, ppoptionvalue: *mut *mut ::core::ffi::c_void) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PxeDhcpGetVendorOptionValue(ppacket: *const ::core::ffi::c_void, upacketlen: u32, boption: u8, uinstance: u32, pboptionlen: *mut u8, ppoptionvalue: *mut *mut ::core::ffi::c_void) -> u32; } - PxeDhcpGetVendorOptionValue(::core::mem::transmute(ppacket), upacketlen, boption, uinstance, ::core::mem::transmute(pboptionlen), ::core::mem::transmute(ppoptionvalue)) + PxeDhcpGetVendorOptionValue(::core::mem::transmute(ppacket.as_ptr()), ppacket.len() as _, boption, uinstance, ::core::mem::transmute(pboptionlen), ::core::mem::transmute(ppoptionvalue)) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] -pub unsafe fn PxeDhcpInitialize(precvpacket: *const ::core::ffi::c_void, urecvpacketlen: u32, preplypacket: *mut ::core::ffi::c_void, umaxreplypacketlen: u32, pureplypacketlen: &mut u32) -> u32 { +pub unsafe fn PxeDhcpInitialize(precvpacket: &[u8], preplypacket: &mut [u8], pureplypacketlen: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PxeDhcpInitialize(precvpacket: *const ::core::ffi::c_void, urecvpacketlen: u32, preplypacket: *mut ::core::ffi::c_void, umaxreplypacketlen: u32, pureplypacketlen: *mut u32) -> u32; } - PxeDhcpInitialize(::core::mem::transmute(precvpacket), urecvpacketlen, ::core::mem::transmute(preplypacket), umaxreplypacketlen, ::core::mem::transmute(pureplypacketlen)) + PxeDhcpInitialize(::core::mem::transmute(precvpacket.as_ptr()), precvpacket.len() as _, ::core::mem::transmute(preplypacket.as_ptr()), preplypacket.len() as _, ::core::mem::transmute(pureplypacketlen)) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PxeDhcpIsValid<'a, P0>(ppacket: *const ::core::ffi::c_void, upacketlen: u32, brequestpacket: P0, pbpxeoptionpresent: ::core::option::Option<&mut super::super::Foundation::BOOL>) -> u32 +pub unsafe fn PxeDhcpIsValid<'a, P0>(ppacket: &[u8], brequestpacket: P0, pbpxeoptionpresent: ::core::option::Option<&mut super::super::Foundation::BOOL>) -> u32 where P0: ::std::convert::Into, { @@ -4279,66 +4279,66 @@ where extern "system" { fn PxeDhcpIsValid(ppacket: *const ::core::ffi::c_void, upacketlen: u32, brequestpacket: super::super::Foundation::BOOL, pbpxeoptionpresent: *mut super::super::Foundation::BOOL) -> u32; } - PxeDhcpIsValid(::core::mem::transmute(ppacket), upacketlen, brequestpacket.into(), ::core::mem::transmute(pbpxeoptionpresent)) + PxeDhcpIsValid(::core::mem::transmute(ppacket.as_ptr()), ppacket.len() as _, brequestpacket.into(), ::core::mem::transmute(pbpxeoptionpresent)) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] -pub unsafe fn PxeDhcpv6AppendOption(preply: *mut ::core::ffi::c_void, cbreply: u32, pcbreplyused: &mut u32, woptiontype: u16, cboption: u16, poption: *const ::core::ffi::c_void) -> u32 { +pub unsafe fn PxeDhcpv6AppendOption(preply: &mut [u8], pcbreplyused: &mut u32, woptiontype: u16, poption: &[u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PxeDhcpv6AppendOption(preply: *mut ::core::ffi::c_void, cbreply: u32, pcbreplyused: *mut u32, woptiontype: u16, cboption: u16, poption: *const ::core::ffi::c_void) -> u32; } - PxeDhcpv6AppendOption(::core::mem::transmute(preply), cbreply, ::core::mem::transmute(pcbreplyused), woptiontype, cboption, ::core::mem::transmute(poption)) + PxeDhcpv6AppendOption(::core::mem::transmute(preply.as_ptr()), preply.len() as _, ::core::mem::transmute(pcbreplyused), woptiontype, poption.len() as _, ::core::mem::transmute(poption.as_ptr())) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] -pub unsafe fn PxeDhcpv6AppendOptionRaw(preply: *mut ::core::ffi::c_void, cbreply: u32, pcbreplyused: &mut u32, cbbuffer: u16, pbuffer: *const ::core::ffi::c_void) -> u32 { +pub unsafe fn PxeDhcpv6AppendOptionRaw(preply: &mut [u8], pcbreplyused: &mut u32, pbuffer: &[u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PxeDhcpv6AppendOptionRaw(preply: *mut ::core::ffi::c_void, cbreply: u32, pcbreplyused: *mut u32, cbbuffer: u16, pbuffer: *const ::core::ffi::c_void) -> u32; } - PxeDhcpv6AppendOptionRaw(::core::mem::transmute(preply), cbreply, ::core::mem::transmute(pcbreplyused), cbbuffer, ::core::mem::transmute(pbuffer)) + PxeDhcpv6AppendOptionRaw(::core::mem::transmute(preply.as_ptr()), preply.len() as _, ::core::mem::transmute(pcbreplyused), pbuffer.len() as _, ::core::mem::transmute(pbuffer.as_ptr())) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] -pub unsafe fn PxeDhcpv6CreateRelayRepl(prelaymessages: &[PXE_DHCPV6_NESTED_RELAY_MESSAGE], pinnerpacket: &u8, cbinnerpacket: u32, preplybuffer: *mut ::core::ffi::c_void, cbreplybuffer: u32, pcbreplybuffer: &mut u32) -> u32 { +pub unsafe fn PxeDhcpv6CreateRelayRepl(prelaymessages: &[PXE_DHCPV6_NESTED_RELAY_MESSAGE], pinnerpacket: &[u8], preplybuffer: &mut [u8], pcbreplybuffer: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PxeDhcpv6CreateRelayRepl(prelaymessages: *const PXE_DHCPV6_NESTED_RELAY_MESSAGE, nrelaymessages: u32, pinnerpacket: *const u8, cbinnerpacket: u32, preplybuffer: *mut ::core::ffi::c_void, cbreplybuffer: u32, pcbreplybuffer: *mut u32) -> u32; } - PxeDhcpv6CreateRelayRepl(::core::mem::transmute(::windows::core::as_ptr_or_null(prelaymessages)), prelaymessages.len() as _, ::core::mem::transmute(pinnerpacket), cbinnerpacket, ::core::mem::transmute(preplybuffer), cbreplybuffer, ::core::mem::transmute(pcbreplybuffer)) + PxeDhcpv6CreateRelayRepl(::core::mem::transmute(prelaymessages.as_ptr()), prelaymessages.len() as _, ::core::mem::transmute(pinnerpacket.as_ptr()), pinnerpacket.len() as _, ::core::mem::transmute(preplybuffer.as_ptr()), preplybuffer.len() as _, ::core::mem::transmute(pcbreplybuffer)) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] -pub unsafe fn PxeDhcpv6GetOptionValue(ppacket: *const ::core::ffi::c_void, upacketlen: u32, uinstance: u32, woption: u16, pwoptionlen: ::core::option::Option<&mut u16>, ppoptionvalue: *mut *mut ::core::ffi::c_void) -> u32 { +pub unsafe fn PxeDhcpv6GetOptionValue(ppacket: &[u8], uinstance: u32, woption: u16, pwoptionlen: ::core::option::Option<&mut u16>, ppoptionvalue: *mut *mut ::core::ffi::c_void) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PxeDhcpv6GetOptionValue(ppacket: *const ::core::ffi::c_void, upacketlen: u32, uinstance: u32, woption: u16, pwoptionlen: *mut u16, ppoptionvalue: *mut *mut ::core::ffi::c_void) -> u32; } - PxeDhcpv6GetOptionValue(::core::mem::transmute(ppacket), upacketlen, uinstance, woption, ::core::mem::transmute(pwoptionlen), ::core::mem::transmute(ppoptionvalue)) + PxeDhcpv6GetOptionValue(::core::mem::transmute(ppacket.as_ptr()), ppacket.len() as _, uinstance, woption, ::core::mem::transmute(pwoptionlen), ::core::mem::transmute(ppoptionvalue)) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] -pub unsafe fn PxeDhcpv6GetVendorOptionValue(ppacket: *const ::core::ffi::c_void, upacketlen: u32, dwenterprisenumber: u32, woption: u16, uinstance: u32, pwoptionlen: ::core::option::Option<&mut u16>, ppoptionvalue: *mut *mut ::core::ffi::c_void) -> u32 { +pub unsafe fn PxeDhcpv6GetVendorOptionValue(ppacket: &[u8], dwenterprisenumber: u32, woption: u16, uinstance: u32, pwoptionlen: ::core::option::Option<&mut u16>, ppoptionvalue: *mut *mut ::core::ffi::c_void) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PxeDhcpv6GetVendorOptionValue(ppacket: *const ::core::ffi::c_void, upacketlen: u32, dwenterprisenumber: u32, woption: u16, uinstance: u32, pwoptionlen: *mut u16, ppoptionvalue: *mut *mut ::core::ffi::c_void) -> u32; } - PxeDhcpv6GetVendorOptionValue(::core::mem::transmute(ppacket), upacketlen, dwenterprisenumber, woption, uinstance, ::core::mem::transmute(pwoptionlen), ::core::mem::transmute(ppoptionvalue)) + PxeDhcpv6GetVendorOptionValue(::core::mem::transmute(ppacket.as_ptr()), ppacket.len() as _, dwenterprisenumber, woption, uinstance, ::core::mem::transmute(pwoptionlen), ::core::mem::transmute(ppoptionvalue)) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] -pub unsafe fn PxeDhcpv6Initialize(prequest: *const ::core::ffi::c_void, cbrequest: u32, preply: *mut ::core::ffi::c_void, cbreply: u32, pcbreplyused: &mut u32) -> u32 { +pub unsafe fn PxeDhcpv6Initialize(prequest: &[u8], preply: &mut [u8], pcbreplyused: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PxeDhcpv6Initialize(prequest: *const ::core::ffi::c_void, cbrequest: u32, preply: *mut ::core::ffi::c_void, cbreply: u32, pcbreplyused: *mut u32) -> u32; } - PxeDhcpv6Initialize(::core::mem::transmute(prequest), cbrequest, ::core::mem::transmute(preply), cbreply, ::core::mem::transmute(pcbreplyused)) + PxeDhcpv6Initialize(::core::mem::transmute(prequest.as_ptr()), prequest.len() as _, ::core::mem::transmute(preply.as_ptr()), preply.len() as _, ::core::mem::transmute(pcbreplyused)) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PxeDhcpv6IsValid<'a, P0>(ppacket: *const ::core::ffi::c_void, upacketlen: u32, brequestpacket: P0, pbpxeoptionpresent: ::core::option::Option<&mut super::super::Foundation::BOOL>) -> u32 +pub unsafe fn PxeDhcpv6IsValid<'a, P0>(ppacket: &[u8], brequestpacket: P0, pbpxeoptionpresent: ::core::option::Option<&mut super::super::Foundation::BOOL>) -> u32 where P0: ::std::convert::Into, { @@ -4346,34 +4346,34 @@ where extern "system" { fn PxeDhcpv6IsValid(ppacket: *const ::core::ffi::c_void, upacketlen: u32, brequestpacket: super::super::Foundation::BOOL, pbpxeoptionpresent: *mut super::super::Foundation::BOOL) -> u32; } - PxeDhcpv6IsValid(::core::mem::transmute(ppacket), upacketlen, brequestpacket.into(), ::core::mem::transmute(pbpxeoptionpresent)) + PxeDhcpv6IsValid(::core::mem::transmute(ppacket.as_ptr()), ppacket.len() as _, brequestpacket.into(), ::core::mem::transmute(pbpxeoptionpresent)) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] -pub unsafe fn PxeDhcpv6ParseRelayForw(prelayforwpacket: *const ::core::ffi::c_void, urelayforwpacketlen: u32, prelaymessages: &mut [PXE_DHCPV6_NESTED_RELAY_MESSAGE], pnrelaymessages: &mut u32, ppinnerpacket: &mut *mut u8, pcbinnerpacket: &mut u32) -> u32 { +pub unsafe fn PxeDhcpv6ParseRelayForw(prelayforwpacket: &[u8], prelaymessages: &mut [PXE_DHCPV6_NESTED_RELAY_MESSAGE], pnrelaymessages: &mut u32, ppinnerpacket: &mut *mut u8, pcbinnerpacket: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PxeDhcpv6ParseRelayForw(prelayforwpacket: *const ::core::ffi::c_void, urelayforwpacketlen: u32, prelaymessages: *mut PXE_DHCPV6_NESTED_RELAY_MESSAGE, nrelaymessages: u32, pnrelaymessages: *mut u32, ppinnerpacket: *mut *mut u8, pcbinnerpacket: *mut u32) -> u32; } - PxeDhcpv6ParseRelayForw(::core::mem::transmute(prelayforwpacket), urelayforwpacketlen, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prelaymessages)), prelaymessages.len() as _, ::core::mem::transmute(pnrelaymessages), ::core::mem::transmute(ppinnerpacket), ::core::mem::transmute(pcbinnerpacket)) + PxeDhcpv6ParseRelayForw(::core::mem::transmute(prelayforwpacket.as_ptr()), prelayforwpacket.len() as _, ::core::mem::transmute(prelaymessages.as_ptr()), prelaymessages.len() as _, ::core::mem::transmute(pnrelaymessages), ::core::mem::transmute(ppinnerpacket), ::core::mem::transmute(pcbinnerpacket)) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] -pub unsafe fn PxeGetServerInfo(uinfotype: u32, pbuffer: *mut ::core::ffi::c_void, ubufferlen: u32) -> u32 { +pub unsafe fn PxeGetServerInfo(uinfotype: u32, pbuffer: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PxeGetServerInfo(uinfotype: u32, pbuffer: *mut ::core::ffi::c_void, ubufferlen: u32) -> u32; } - PxeGetServerInfo(uinfotype, ::core::mem::transmute(pbuffer), ubufferlen) + PxeGetServerInfo(uinfotype, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] -pub unsafe fn PxeGetServerInfoEx(uinfotype: u32, pbuffer: *mut ::core::ffi::c_void, ubufferlen: u32, pubufferused: &mut u32) -> u32 { +pub unsafe fn PxeGetServerInfoEx(uinfotype: u32, pbuffer: &mut [u8], pubufferused: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PxeGetServerInfoEx(uinfotype: u32, pbuffer: *mut ::core::ffi::c_void, ubufferlen: u32, pubufferused: *mut u32) -> u32; } - PxeGetServerInfoEx(uinfotype, ::core::mem::transmute(pbuffer), ubufferlen, ::core::mem::transmute(pubufferused)) + PxeGetServerInfoEx(uinfotype, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _, ::core::mem::transmute(pubufferused)) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4479,7 +4479,7 @@ where #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PxeProviderSetAttribute<'a, P0>(hprovider: P0, attribute: u32, pparameterbuffer: *const ::core::ffi::c_void, uparamlen: u32) -> u32 +pub unsafe fn PxeProviderSetAttribute<'a, P0>(hprovider: P0, attribute: u32, pparameterbuffer: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -4487,7 +4487,7 @@ where extern "system" { fn PxeProviderSetAttribute(hprovider: super::super::Foundation::HANDLE, attribute: u32, pparameterbuffer: *const ::core::ffi::c_void, uparamlen: u32) -> u32; } - PxeProviderSetAttribute(hprovider.into(), attribute, ::core::mem::transmute(pparameterbuffer), uparamlen) + PxeProviderSetAttribute(hprovider.into(), attribute, ::core::mem::transmute(pparameterbuffer.as_ptr()), pparameterbuffer.len() as _) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] @@ -4517,7 +4517,7 @@ where #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PxeSendReply<'a, P0>(hclientrequest: P0, ppacket: *const ::core::ffi::c_void, upacketlen: u32, paddress: &PXE_ADDRESS) -> u32 +pub unsafe fn PxeSendReply<'a, P0>(hclientrequest: P0, ppacket: &[u8], paddress: &PXE_ADDRESS) -> u32 where P0: ::std::convert::Into, { @@ -4525,7 +4525,7 @@ where extern "system" { fn PxeSendReply(hclientrequest: super::super::Foundation::HANDLE, ppacket: *const ::core::ffi::c_void, upacketlen: u32, paddress: *const PXE_ADDRESS) -> u32; } - PxeSendReply(hclientrequest.into(), ::core::mem::transmute(ppacket), upacketlen, ::core::mem::transmute(paddress)) + PxeSendReply(hclientrequest.into(), ::core::mem::transmute(ppacket.as_ptr()), ppacket.len() as _, ::core::mem::transmute(paddress)) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5594,7 +5594,7 @@ impl ::core::default::Default for WDS_TRANSPORTPROVIDER_SETTINGS { #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WdsBpAddOption<'a, P0>(hhandle: P0, uoption: u32, uvaluelen: u32, pvalue: *const ::core::ffi::c_void) -> u32 +pub unsafe fn WdsBpAddOption<'a, P0>(hhandle: P0, uoption: u32, pvalue: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -5602,7 +5602,7 @@ where extern "system" { fn WdsBpAddOption(hhandle: super::super::Foundation::HANDLE, uoption: u32, uvaluelen: u32, pvalue: *const ::core::ffi::c_void) -> u32; } - WdsBpAddOption(hhandle.into(), uoption, uvaluelen, ::core::mem::transmute(pvalue)) + WdsBpAddOption(hhandle.into(), uoption, pvalue.len() as _, ::core::mem::transmute(pvalue.as_ptr())) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5620,7 +5620,7 @@ where #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WdsBpGetOptionBuffer<'a, P0>(hhandle: P0, ubufferlen: u32, pbuffer: *mut ::core::ffi::c_void, pubytes: &mut u32) -> u32 +pub unsafe fn WdsBpGetOptionBuffer<'a, P0>(hhandle: P0, pbuffer: &mut [u8], pubytes: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -5628,7 +5628,7 @@ where extern "system" { fn WdsBpGetOptionBuffer(hhandle: super::super::Foundation::HANDLE, ubufferlen: u32, pbuffer: *mut ::core::ffi::c_void, pubytes: *mut u32) -> u32; } - WdsBpGetOptionBuffer(hhandle.into(), ubufferlen, ::core::mem::transmute(pbuffer), ::core::mem::transmute(pubytes)) + WdsBpGetOptionBuffer(hhandle.into(), pbuffer.len() as _, ::core::mem::transmute(pbuffer.as_ptr()), ::core::mem::transmute(pubytes)) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5643,27 +5643,27 @@ pub unsafe fn WdsBpInitialize(bpackettype: u8, phhandle: &mut super::super::Foun #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WdsBpParseInitialize(ppacket: *const ::core::ffi::c_void, upacketlen: u32, pbpackettype: ::core::option::Option<&mut u8>, phhandle: &mut super::super::Foundation::HANDLE) -> u32 { +pub unsafe fn WdsBpParseInitialize(ppacket: &[u8], pbpackettype: ::core::option::Option<&mut u8>, phhandle: &mut super::super::Foundation::HANDLE) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WdsBpParseInitialize(ppacket: *const ::core::ffi::c_void, upacketlen: u32, pbpackettype: *mut u8, phhandle: *mut super::super::Foundation::HANDLE) -> u32; } - WdsBpParseInitialize(::core::mem::transmute(ppacket), upacketlen, ::core::mem::transmute(pbpackettype), ::core::mem::transmute(phhandle)) + WdsBpParseInitialize(::core::mem::transmute(ppacket.as_ptr()), ppacket.len() as _, ::core::mem::transmute(pbpackettype), ::core::mem::transmute(phhandle)) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WdsBpParseInitializev6(ppacket: *const ::core::ffi::c_void, upacketlen: u32, pbpackettype: ::core::option::Option<&mut u8>, phhandle: &mut super::super::Foundation::HANDLE) -> u32 { +pub unsafe fn WdsBpParseInitializev6(ppacket: &[u8], pbpackettype: ::core::option::Option<&mut u8>, phhandle: &mut super::super::Foundation::HANDLE) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WdsBpParseInitializev6(ppacket: *const ::core::ffi::c_void, upacketlen: u32, pbpackettype: *mut u8, phhandle: *mut super::super::Foundation::HANDLE) -> u32; } - WdsBpParseInitializev6(::core::mem::transmute(ppacket), upacketlen, ::core::mem::transmute(pbpackettype), ::core::mem::transmute(phhandle)) + WdsBpParseInitializev6(::core::mem::transmute(ppacket.as_ptr()), ppacket.len() as _, ::core::mem::transmute(pbpackettype), ::core::mem::transmute(phhandle)) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WdsBpQueryOption<'a, P0>(hhandle: P0, uoption: u32, uvaluelen: u32, pvalue: *mut ::core::ffi::c_void, pubytes: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn WdsBpQueryOption<'a, P0>(hhandle: P0, uoption: u32, pvalue: &mut [u8], pubytes: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into, { @@ -5671,7 +5671,7 @@ where extern "system" { fn WdsBpQueryOption(hhandle: super::super::Foundation::HANDLE, uoption: u32, uvaluelen: u32, pvalue: *mut ::core::ffi::c_void, pubytes: *mut u32) -> u32; } - WdsBpQueryOption(hhandle.into(), uoption, uvaluelen, ::core::mem::transmute(pvalue), ::core::mem::transmute(pubytes)) + WdsBpQueryOption(hhandle.into(), uoption, pvalue.len() as _, ::core::mem::transmute(pvalue.as_ptr()), ::core::mem::transmute(pubytes)) } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5759,12 +5759,12 @@ pub const WdsCliFlagEnumFilterFirmware: i32 = 2i32; pub const WdsCliFlagEnumFilterVersion: i32 = 1i32; #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] -pub unsafe fn WdsCliFreeStringArray(ppwszarray: &mut [::windows::core::PWSTR]) -> ::windows::core::Result<()> { +pub unsafe fn WdsCliFreeStringArray(ppwszarray: ::core::option::Option<&mut [::windows::core::PWSTR]>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WdsCliFreeStringArray(ppwszarray: *mut ::windows::core::PWSTR, ulcount: u32) -> ::windows::core::HRESULT; } - WdsCliFreeStringArray(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppwszarray)), ppwszarray.len() as _).ok() + WdsCliFreeStringArray(::core::mem::transmute(ppwszarray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppwszarray.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`*"] #[inline] @@ -5976,7 +5976,7 @@ where #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WdsCliGetImageParameter<'a, P0>(hifh: P0, paramtype: WDS_CLI_IMAGE_PARAM_TYPE, presponse: *mut ::core::ffi::c_void, uresponselen: u32) -> ::windows::core::Result<()> +pub unsafe fn WdsCliGetImageParameter<'a, P0>(hifh: P0, paramtype: WDS_CLI_IMAGE_PARAM_TYPE, presponse: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -5984,7 +5984,7 @@ where extern "system" { fn WdsCliGetImageParameter(hifh: super::super::Foundation::HANDLE, paramtype: WDS_CLI_IMAGE_PARAM_TYPE, presponse: *mut ::core::ffi::c_void, uresponselen: u32) -> ::windows::core::HRESULT; } - WdsCliGetImageParameter(hifh.into(), paramtype, ::core::mem::transmute(presponse), uresponselen).ok() + WdsCliGetImageParameter(hifh.into(), paramtype, ::core::mem::transmute(presponse.as_ptr()), presponse.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_DeploymentServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/System/DesktopSharing/mod.rs b/crates/libs/windows/src/Windows/Win32/System/DesktopSharing/mod.rs index 246de54df3..35972660e2 100644 --- a/crates/libs/windows/src/Windows/Win32/System/DesktopSharing/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/DesktopSharing/mod.rs @@ -1027,7 +1027,7 @@ impl IRDPSRAPIAudioStream { pub unsafe fn Stop(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Stop)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn GetBuffer(&self, ppbdata: &mut *mut u8, pcbdata: &mut u32, ptimestamp: &mut u64) -> ::windows::core::Result<()> { + pub unsafe fn GetBuffer(&self, ppbdata: *mut *mut u8, pcbdata: &mut u32, ptimestamp: &mut u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppbdata), ::core::mem::transmute(pcbdata), ::core::mem::transmute(ptimestamp)).ok() } pub unsafe fn FreeBuffer(&self) -> ::windows::core::Result<()> { diff --git a/crates/libs/windows/src/Windows/Win32/System/Diagnostics/Debug/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Diagnostics/Debug/mod.rs index 318a0801cc..f461209b1a 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Diagnostics/Debug/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Diagnostics/Debug/mod.rs @@ -9117,7 +9117,7 @@ where #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FlushInstructionCache<'a, P0>(hprocess: P0, lpbaseaddress: *const ::core::ffi::c_void, dwsize: usize) -> super::super::super::Foundation::BOOL +pub unsafe fn FlushInstructionCache<'a, P0>(hprocess: P0, lpbaseaddress: ::core::option::Option<&[u8]>) -> super::super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -9125,7 +9125,7 @@ where extern "system" { fn FlushInstructionCache(hprocess: super::super::super::Foundation::HANDLE, lpbaseaddress: *const ::core::ffi::c_void, dwsize: usize) -> super::super::super::Foundation::BOOL; } - FlushInstructionCache(hprocess.into(), ::core::mem::transmute(lpbaseaddress), dwsize) + FlushInstructionCache(hprocess.into(), ::core::mem::transmute(lpbaseaddress.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbaseaddress.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"] #[inline] @@ -9504,7 +9504,7 @@ where #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetThreadWaitChain(wcthandle: *const ::core::ffi::c_void, context: usize, flags: WAIT_CHAIN_THREAD_OPTIONS, threadid: u32, nodecount: &mut u32, nodeinfoarray: &mut WAITCHAIN_NODE_INFO, iscycle: &mut i32) -> super::super::super::Foundation::BOOL { +pub unsafe fn GetThreadWaitChain(wcthandle: *const ::core::ffi::c_void, context: usize, flags: WAIT_CHAIN_THREAD_OPTIONS, threadid: u32, nodecount: &mut u32, nodeinfoarray: *mut WAITCHAIN_NODE_INFO, iscycle: &mut i32) -> super::super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetThreadWaitChain(wcthandle: *const ::core::ffi::c_void, context: usize, flags: WAIT_CHAIN_THREAD_OPTIONS, threadid: u32, nodecount: *mut u32, nodeinfoarray: *mut WAITCHAIN_NODE_INFO, iscycle: *mut i32) -> super::super::super::Foundation::BOOL; @@ -9693,13 +9693,13 @@ impl IActiveScriptAuthor { { (::windows::core::Interface::vtable(self).ParseScriptText)(::windows::core::Interface::as_raw(self), pszcode.into(), pszitemname.into(), pszdelimiter.into(), dwcookie, dwflags).ok() } - pub unsafe fn GetScriptTextAttributes<'a, P0>(&self, pszcode: ::windows::core::PCWSTR, cch: u32, pszdelimiter: P0, dwflags: u32, pattr: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetScriptTextAttributes<'a, P0>(&self, pszcode: ::windows::core::PCWSTR, cch: u32, pszdelimiter: P0, dwflags: u32, pattr: *mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { (::windows::core::Interface::vtable(self).GetScriptTextAttributes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszcode), ::core::mem::transmute(cch), pszdelimiter.into(), dwflags, ::core::mem::transmute(pattr)).ok() } - pub unsafe fn GetScriptletTextAttributes<'a, P0>(&self, pszcode: ::windows::core::PCWSTR, cch: u32, pszdelimiter: P0, dwflags: u32, pattr: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetScriptletTextAttributes<'a, P0>(&self, pszcode: ::windows::core::PCWSTR, cch: u32, pszdelimiter: P0, dwflags: u32, pattr: *mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -9888,13 +9888,13 @@ pub struct IActiveScriptAuthorProcedure_Vtbl { #[repr(transparent)] pub struct IActiveScriptDebug32(::windows::core::IUnknown); impl IActiveScriptDebug32 { - pub unsafe fn GetScriptTextAttributes<'a, P0>(&self, pstrcode: ::windows::core::PCWSTR, unumcodechars: u32, pstrdelimiter: P0, dwflags: u32, pattr: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetScriptTextAttributes<'a, P0>(&self, pstrcode: ::windows::core::PCWSTR, unumcodechars: u32, pstrdelimiter: P0, dwflags: u32, pattr: *mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { (::windows::core::Interface::vtable(self).GetScriptTextAttributes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pstrcode), ::core::mem::transmute(unumcodechars), pstrdelimiter.into(), dwflags, ::core::mem::transmute(pattr)).ok() } - pub unsafe fn GetScriptletTextAttributes<'a, P0>(&self, pstrcode: ::windows::core::PCWSTR, unumcodechars: u32, pstrdelimiter: P0, dwflags: u32, pattr: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetScriptletTextAttributes<'a, P0>(&self, pstrcode: ::windows::core::PCWSTR, unumcodechars: u32, pstrdelimiter: P0, dwflags: u32, pattr: *mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -9952,13 +9952,13 @@ pub struct IActiveScriptDebug32_Vtbl { #[repr(transparent)] pub struct IActiveScriptDebug64(::windows::core::IUnknown); impl IActiveScriptDebug64 { - pub unsafe fn GetScriptTextAttributes<'a, P0>(&self, pstrcode: ::windows::core::PCWSTR, unumcodechars: u32, pstrdelimiter: P0, dwflags: u32, pattr: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetScriptTextAttributes<'a, P0>(&self, pstrcode: ::windows::core::PCWSTR, unumcodechars: u32, pstrdelimiter: P0, dwflags: u32, pattr: *mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { (::windows::core::Interface::vtable(self).GetScriptTextAttributes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pstrcode), ::core::mem::transmute(unumcodechars), pstrdelimiter.into(), dwflags, ::core::mem::transmute(pattr)).ok() } - pub unsafe fn GetScriptletTextAttributes<'a, P0>(&self, pstrcode: ::windows::core::PCWSTR, unumcodechars: u32, pstrdelimiter: P0, dwflags: u32, pattr: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetScriptletTextAttributes<'a, P0>(&self, pstrcode: ::windows::core::PCWSTR, unumcodechars: u32, pstrdelimiter: P0, dwflags: u32, pattr: *mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -11803,17 +11803,17 @@ pub struct IActiveScriptProfilerControl5_Vtbl { pub struct IActiveScriptProfilerHeapEnum(::windows::core::IUnknown); impl IActiveScriptProfilerHeapEnum { pub unsafe fn Next(&self, heapobjects: &mut [*mut PROFILER_HEAP_OBJECT], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), heapobjects.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(heapobjects)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), heapobjects.len() as _, ::core::mem::transmute(heapobjects.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetOptionalInfo(&self, heapobject: &PROFILER_HEAP_OBJECT, optionalinfo: &mut [PROFILER_HEAP_OBJECT_OPTIONAL_INFO]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOptionalInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(heapobject), optionalinfo.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(optionalinfo))).ok() + (::windows::core::Interface::vtable(self).GetOptionalInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(heapobject), optionalinfo.len() as _, ::core::mem::transmute(optionalinfo.as_ptr())).ok() } pub unsafe fn FreeObjectAndOptionalInfo(&self, heapobjects: &[*const PROFILER_HEAP_OBJECT]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).FreeObjectAndOptionalInfo)(::windows::core::Interface::as_raw(self), heapobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(heapobjects))).ok() + (::windows::core::Interface::vtable(self).FreeObjectAndOptionalInfo)(::windows::core::Interface::as_raw(self), heapobjects.len() as _, ::core::mem::transmute(heapobjects.as_ptr())).ok() } - pub unsafe fn GetNameIdMap(&self, pnamelist: &mut *mut *mut ::windows::core::PWSTR, pcelt: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetNameIdMap(&self, pnamelist: *mut *mut *mut ::windows::core::PWSTR, pcelt: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetNameIdMap)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnamelist), ::core::mem::transmute(pcelt)).ok() } } @@ -14792,11 +14792,11 @@ pub struct IDataModelScriptTemplateEnumerator_Vtbl { #[repr(transparent)] pub struct IDebugAdvanced(::windows::core::IUnknown); impl IDebugAdvanced { - pub unsafe fn GetThreadContext(&self, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetThreadContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn GetThreadContext(&self, context: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetThreadContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } - pub unsafe fn SetThreadContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetThreadContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn SetThreadContext(&self, context: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetThreadContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -14845,32 +14845,32 @@ pub struct IDebugAdvanced_Vtbl { #[repr(transparent)] pub struct IDebugAdvanced2(::windows::core::IUnknown); impl IDebugAdvanced2 { - pub unsafe fn GetThreadContext(&self, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetThreadContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn GetThreadContext(&self, context: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetThreadContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } - pub unsafe fn SetThreadContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetThreadContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn SetThreadContext(&self, context: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetThreadContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } - pub unsafe fn Request(&self, request: u32, inbuffer: *const ::core::ffi::c_void, inbuffersize: u32, outbuffer: *mut ::core::ffi::c_void, outbuffersize: u32, outsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Request)(::windows::core::Interface::as_raw(self), request, ::core::mem::transmute(inbuffer), inbuffersize, ::core::mem::transmute(outbuffer), outbuffersize, ::core::mem::transmute(outsize)).ok() + pub unsafe fn Request(&self, request: u32, inbuffer: ::core::option::Option<&[u8]>, outbuffer: ::core::option::Option<&mut [u8]>, outsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Request)(::windows::core::Interface::as_raw(self), request, ::core::mem::transmute(inbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), inbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(outbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), outbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(outsize)).ok() } - pub unsafe fn GetSourceFileInformation<'a, P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceFileInformation<'a, P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: ::core::option::Option<&mut [u8]>, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetSourceFileInformation)(::windows::core::Interface::as_raw(self), which, sourcefile.into(), arg64, arg32, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(infosize)).ok() + (::windows::core::Interface::vtable(self).GetSourceFileInformation)(::windows::core::Interface::as_raw(self), which, sourcefile.into(), arg64, arg32, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(infosize)).ok() } - pub unsafe fn FindSourceFileAndToken<'a, P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: ::core::option::Option<&mut u32>, buffer: &mut [u8], foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn FindSourceFileAndToken<'a, P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: ::core::option::Option<&[u8]>, foundelement: ::core::option::Option<&mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).FindSourceFileAndToken)(::windows::core::Interface::as_raw(self), startelement, modaddr, file.into(), flags, ::core::mem::transmute(filetoken), filetokensize, ::core::mem::transmute(foundelement), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(foundsize)).ok() + (::windows::core::Interface::vtable(self).FindSourceFileAndToken)(::windows::core::Interface::as_raw(self), startelement, modaddr, file.into(), flags, ::core::mem::transmute(filetoken.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filetoken.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundelement), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize)).ok() } - pub unsafe fn GetSymbolInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: ::core::option::Option<&mut u32>, stringbuffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolInformation)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(infosize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(stringbuffer)), stringbuffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSymbolInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<&mut [u8]>, infosize: ::core::option::Option<&mut u32>, stringbuffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolInformation)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(infosize), ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), stringbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSystemObjectInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemObjectInformation)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(infosize)).ok() + pub unsafe fn GetSystemObjectInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<&mut [u8]>, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemObjectInformation)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(infosize)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -14924,47 +14924,47 @@ pub struct IDebugAdvanced2_Vtbl { #[repr(transparent)] pub struct IDebugAdvanced3(::windows::core::IUnknown); impl IDebugAdvanced3 { - pub unsafe fn GetThreadContext(&self, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetThreadContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn GetThreadContext(&self, context: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetThreadContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } - pub unsafe fn SetThreadContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetThreadContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn SetThreadContext(&self, context: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetThreadContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } - pub unsafe fn Request(&self, request: u32, inbuffer: *const ::core::ffi::c_void, inbuffersize: u32, outbuffer: *mut ::core::ffi::c_void, outbuffersize: u32, outsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Request)(::windows::core::Interface::as_raw(self), request, ::core::mem::transmute(inbuffer), inbuffersize, ::core::mem::transmute(outbuffer), outbuffersize, ::core::mem::transmute(outsize)).ok() + pub unsafe fn Request(&self, request: u32, inbuffer: ::core::option::Option<&[u8]>, outbuffer: ::core::option::Option<&mut [u8]>, outsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Request)(::windows::core::Interface::as_raw(self), request, ::core::mem::transmute(inbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), inbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(outbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), outbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(outsize)).ok() } - pub unsafe fn GetSourceFileInformation<'a, P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceFileInformation<'a, P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: ::core::option::Option<&mut [u8]>, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetSourceFileInformation)(::windows::core::Interface::as_raw(self), which, sourcefile.into(), arg64, arg32, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(infosize)).ok() + (::windows::core::Interface::vtable(self).GetSourceFileInformation)(::windows::core::Interface::as_raw(self), which, sourcefile.into(), arg64, arg32, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(infosize)).ok() } - pub unsafe fn FindSourceFileAndToken<'a, P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: ::core::option::Option<&mut u32>, buffer: &mut [u8], foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn FindSourceFileAndToken<'a, P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: ::core::option::Option<&[u8]>, foundelement: ::core::option::Option<&mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).FindSourceFileAndToken)(::windows::core::Interface::as_raw(self), startelement, modaddr, file.into(), flags, ::core::mem::transmute(filetoken), filetokensize, ::core::mem::transmute(foundelement), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(foundsize)).ok() + (::windows::core::Interface::vtable(self).FindSourceFileAndToken)(::windows::core::Interface::as_raw(self), startelement, modaddr, file.into(), flags, ::core::mem::transmute(filetoken.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filetoken.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundelement), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize)).ok() } - pub unsafe fn GetSymbolInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: ::core::option::Option<&mut u32>, stringbuffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolInformation)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(infosize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(stringbuffer)), stringbuffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSymbolInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<&mut [u8]>, infosize: ::core::option::Option<&mut u32>, stringbuffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolInformation)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(infosize), ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), stringbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSystemObjectInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemObjectInformation)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(infosize)).ok() + pub unsafe fn GetSystemObjectInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<&mut [u8]>, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemObjectInformation)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(infosize)).ok() } - pub unsafe fn GetSourceFileInformationWide<'a, P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceFileInformationWide<'a, P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: ::core::option::Option<&mut [u8]>, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetSourceFileInformationWide)(::windows::core::Interface::as_raw(self), which, sourcefile.into(), arg64, arg32, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(infosize)).ok() + (::windows::core::Interface::vtable(self).GetSourceFileInformationWide)(::windows::core::Interface::as_raw(self), which, sourcefile.into(), arg64, arg32, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(infosize)).ok() } - pub unsafe fn FindSourceFileAndTokenWide<'a, P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: ::core::option::Option<&mut u32>, buffer: &mut [u16], foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn FindSourceFileAndTokenWide<'a, P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: ::core::option::Option<&[u8]>, foundelement: ::core::option::Option<&mut u32>, buffer: ::core::option::Option<&mut [u16]>, foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).FindSourceFileAndTokenWide)(::windows::core::Interface::as_raw(self), startelement, modaddr, file.into(), flags, ::core::mem::transmute(filetoken), filetokensize, ::core::mem::transmute(foundelement), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(foundsize)).ok() + (::windows::core::Interface::vtable(self).FindSourceFileAndTokenWide)(::windows::core::Interface::as_raw(self), startelement, modaddr, file.into(), flags, ::core::mem::transmute(filetoken.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filetoken.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundelement), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize)).ok() } - pub unsafe fn GetSymbolInformationWide(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: ::core::option::Option<&mut u32>, stringbuffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolInformationWide)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(infosize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(stringbuffer)), stringbuffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSymbolInformationWide(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<&mut [u8]>, infosize: ::core::option::Option<&mut u32>, stringbuffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolInformationWide)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(infosize), ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), stringbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -15021,50 +15021,50 @@ pub struct IDebugAdvanced3_Vtbl { #[repr(transparent)] pub struct IDebugAdvanced4(::windows::core::IUnknown); impl IDebugAdvanced4 { - pub unsafe fn GetThreadContext(&self, context: *mut ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetThreadContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn GetThreadContext(&self, context: &mut [u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetThreadContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } - pub unsafe fn SetThreadContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetThreadContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn SetThreadContext(&self, context: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetThreadContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } - pub unsafe fn Request(&self, request: u32, inbuffer: *const ::core::ffi::c_void, inbuffersize: u32, outbuffer: *mut ::core::ffi::c_void, outbuffersize: u32, outsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Request)(::windows::core::Interface::as_raw(self), request, ::core::mem::transmute(inbuffer), inbuffersize, ::core::mem::transmute(outbuffer), outbuffersize, ::core::mem::transmute(outsize)).ok() + pub unsafe fn Request(&self, request: u32, inbuffer: ::core::option::Option<&[u8]>, outbuffer: ::core::option::Option<&mut [u8]>, outsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Request)(::windows::core::Interface::as_raw(self), request, ::core::mem::transmute(inbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), inbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(outbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), outbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(outsize)).ok() } - pub unsafe fn GetSourceFileInformation<'a, P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceFileInformation<'a, P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: ::core::option::Option<&mut [u8]>, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetSourceFileInformation)(::windows::core::Interface::as_raw(self), which, sourcefile.into(), arg64, arg32, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(infosize)).ok() + (::windows::core::Interface::vtable(self).GetSourceFileInformation)(::windows::core::Interface::as_raw(self), which, sourcefile.into(), arg64, arg32, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(infosize)).ok() } - pub unsafe fn FindSourceFileAndToken<'a, P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: ::core::option::Option<&mut u32>, buffer: &mut [u8], foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn FindSourceFileAndToken<'a, P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: ::core::option::Option<&[u8]>, foundelement: ::core::option::Option<&mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).FindSourceFileAndToken)(::windows::core::Interface::as_raw(self), startelement, modaddr, file.into(), flags, ::core::mem::transmute(filetoken), filetokensize, ::core::mem::transmute(foundelement), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(foundsize)).ok() + (::windows::core::Interface::vtable(self).FindSourceFileAndToken)(::windows::core::Interface::as_raw(self), startelement, modaddr, file.into(), flags, ::core::mem::transmute(filetoken.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filetoken.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundelement), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize)).ok() } - pub unsafe fn GetSymbolInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: ::core::option::Option<&mut u32>, stringbuffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolInformation)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(infosize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(stringbuffer)), stringbuffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSymbolInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<&mut [u8]>, infosize: ::core::option::Option<&mut u32>, stringbuffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolInformation)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(infosize), ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), stringbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSystemObjectInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemObjectInformation)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(infosize)).ok() + pub unsafe fn GetSystemObjectInformation(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<&mut [u8]>, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemObjectInformation)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(infosize)).ok() } - pub unsafe fn GetSourceFileInformationWide<'a, P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceFileInformationWide<'a, P0>(&self, which: u32, sourcefile: P0, arg64: u64, arg32: u32, buffer: ::core::option::Option<&mut [u8]>, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetSourceFileInformationWide)(::windows::core::Interface::as_raw(self), which, sourcefile.into(), arg64, arg32, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(infosize)).ok() + (::windows::core::Interface::vtable(self).GetSourceFileInformationWide)(::windows::core::Interface::as_raw(self), which, sourcefile.into(), arg64, arg32, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(infosize)).ok() } - pub unsafe fn FindSourceFileAndTokenWide<'a, P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: *const ::core::ffi::c_void, filetokensize: u32, foundelement: ::core::option::Option<&mut u32>, buffer: &mut [u16], foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn FindSourceFileAndTokenWide<'a, P0>(&self, startelement: u32, modaddr: u64, file: P0, flags: u32, filetoken: ::core::option::Option<&[u8]>, foundelement: ::core::option::Option<&mut u32>, buffer: ::core::option::Option<&mut [u16]>, foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).FindSourceFileAndTokenWide)(::windows::core::Interface::as_raw(self), startelement, modaddr, file.into(), flags, ::core::mem::transmute(filetoken), filetokensize, ::core::mem::transmute(foundelement), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(foundsize)).ok() + (::windows::core::Interface::vtable(self).FindSourceFileAndTokenWide)(::windows::core::Interface::as_raw(self), startelement, modaddr, file.into(), flags, ::core::mem::transmute(filetoken.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filetoken.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundelement), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize)).ok() } - pub unsafe fn GetSymbolInformationWide(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: ::core::option::Option<&mut u32>, stringbuffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolInformationWide)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(infosize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(stringbuffer)), stringbuffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSymbolInformationWide(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<&mut [u8]>, infosize: ::core::option::Option<&mut u32>, stringbuffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolInformationWide)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(infosize), ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), stringbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSymbolInformationWideEx(&self, which: u32, arg64: u64, arg32: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: ::core::option::Option<&mut u32>, stringbuffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>, pinfoex: ::core::option::Option<&mut SYMBOL_INFO_EX>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolInformationWideEx)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(infosize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(stringbuffer)), stringbuffer.len() as _, ::core::mem::transmute(stringsize), ::core::mem::transmute(pinfoex)).ok() + pub unsafe fn GetSymbolInformationWideEx(&self, which: u32, arg64: u64, arg32: u32, buffer: ::core::option::Option<&mut [u8]>, infosize: ::core::option::Option<&mut u32>, stringbuffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>, pinfoex: ::core::option::Option<&mut SYMBOL_INFO_EX>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolInformationWideEx)(::windows::core::Interface::as_raw(self), which, arg64, arg32, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(infosize), ::core::mem::transmute(stringbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), stringbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize), ::core::mem::transmute(pinfoex)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -15149,7 +15149,7 @@ impl IDebugApplication11032 { #[cfg(feature = "Win32_Foundation")] pub unsafe fn CallableWaitForHandles(&self, phandles: &[super::super::super::Foundation::HANDLE]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CallableWaitForHandles)(::windows::core::Interface::as_raw(self), phandles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(phandles)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CallableWaitForHandles)(::windows::core::Interface::as_raw(self), phandles.len() as _, ::core::mem::transmute(phandles.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -15244,7 +15244,7 @@ impl IDebugApplication11064 { #[cfg(feature = "Win32_Foundation")] pub unsafe fn CallableWaitForHandles(&self, phandles: &[super::super::super::Foundation::HANDLE]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CallableWaitForHandles)(::windows::core::Interface::as_raw(self), phandles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(phandles)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CallableWaitForHandles)(::windows::core::Interface::as_raw(self), phandles.len() as _, ::core::mem::transmute(phandles.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -16699,8 +16699,8 @@ impl IDebugBreakpoint { pub unsafe fn SetMatchThreadId(&self, thread: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetMatchThreadId)(::windows::core::Interface::as_raw(self), thread).ok() } - pub unsafe fn GetCommand(&self, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetCommand(&self, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetCommand<'a, P0>(&self, command: P0) -> ::windows::core::Result<()> where @@ -16708,8 +16708,8 @@ impl IDebugBreakpoint { { (::windows::core::Interface::vtable(self).SetCommand)(::windows::core::Interface::as_raw(self), command.into()).ok() } - pub unsafe fn GetOffsetExpression(&self, buffer: &mut [u8], expressionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOffsetExpression)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(expressionsize)).ok() + pub unsafe fn GetOffsetExpression(&self, buffer: ::core::option::Option<&mut [u8]>, expressionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOffsetExpression)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(expressionsize)).ok() } pub unsafe fn SetOffsetExpression<'a, P0>(&self, expression: P0) -> ::windows::core::Result<()> where @@ -16842,8 +16842,8 @@ impl IDebugBreakpoint2 { pub unsafe fn SetMatchThreadId(&self, thread: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetMatchThreadId)(::windows::core::Interface::as_raw(self), thread).ok() } - pub unsafe fn GetCommand(&self, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetCommand(&self, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetCommand<'a, P0>(&self, command: P0) -> ::windows::core::Result<()> where @@ -16851,8 +16851,8 @@ impl IDebugBreakpoint2 { { (::windows::core::Interface::vtable(self).SetCommand)(::windows::core::Interface::as_raw(self), command.into()).ok() } - pub unsafe fn GetOffsetExpression(&self, buffer: &mut [u8], expressionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOffsetExpression)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(expressionsize)).ok() + pub unsafe fn GetOffsetExpression(&self, buffer: ::core::option::Option<&mut [u8]>, expressionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOffsetExpression)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(expressionsize)).ok() } pub unsafe fn SetOffsetExpression<'a, P0>(&self, expression: P0) -> ::windows::core::Result<()> where @@ -16864,8 +16864,8 @@ impl IDebugBreakpoint2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetCommandWide(&self, buffer: &mut [u16], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCommandWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetCommandWide(&self, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetCommandWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetCommandWide<'a, P0>(&self, command: P0) -> ::windows::core::Result<()> where @@ -16873,8 +16873,8 @@ impl IDebugBreakpoint2 { { (::windows::core::Interface::vtable(self).SetCommandWide)(::windows::core::Interface::as_raw(self), command.into()).ok() } - pub unsafe fn GetOffsetExpressionWide(&self, buffer: &mut [u16], expressionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOffsetExpressionWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(expressionsize)).ok() + pub unsafe fn GetOffsetExpressionWide(&self, buffer: ::core::option::Option<&mut [u16]>, expressionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOffsetExpressionWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(expressionsize)).ok() } pub unsafe fn SetOffsetExpressionWide<'a, P0>(&self, expression: P0) -> ::windows::core::Result<()> where @@ -17007,8 +17007,8 @@ impl IDebugBreakpoint3 { pub unsafe fn SetMatchThreadId(&self, thread: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetMatchThreadId)(::windows::core::Interface::as_raw(self), thread).ok() } - pub unsafe fn GetCommand(&self, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetCommand(&self, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetCommand<'a, P0>(&self, command: P0) -> ::windows::core::Result<()> where @@ -17016,8 +17016,8 @@ impl IDebugBreakpoint3 { { (::windows::core::Interface::vtable(self).SetCommand)(::windows::core::Interface::as_raw(self), command.into()).ok() } - pub unsafe fn GetOffsetExpression(&self, buffer: &mut [u8], expressionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOffsetExpression)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(expressionsize)).ok() + pub unsafe fn GetOffsetExpression(&self, buffer: ::core::option::Option<&mut [u8]>, expressionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOffsetExpression)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(expressionsize)).ok() } pub unsafe fn SetOffsetExpression<'a, P0>(&self, expression: P0) -> ::windows::core::Result<()> where @@ -17029,8 +17029,8 @@ impl IDebugBreakpoint3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetCommandWide(&self, buffer: &mut [u16], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCommandWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetCommandWide(&self, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetCommandWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetCommandWide<'a, P0>(&self, command: P0) -> ::windows::core::Result<()> where @@ -17038,8 +17038,8 @@ impl IDebugBreakpoint3 { { (::windows::core::Interface::vtable(self).SetCommandWide)(::windows::core::Interface::as_raw(self), command.into()).ok() } - pub unsafe fn GetOffsetExpressionWide(&self, buffer: &mut [u16], expressionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOffsetExpressionWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(expressionsize)).ok() + pub unsafe fn GetOffsetExpressionWide(&self, buffer: ::core::option::Option<&mut [u16]>, expressionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOffsetExpressionWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(expressionsize)).ok() } pub unsafe fn SetOffsetExpressionWide<'a, P0>(&self, expression: P0) -> ::windows::core::Result<()> where @@ -17128,8 +17128,8 @@ impl IDebugClient { { (::windows::core::Interface::vtable(self).AttachKernel)(::windows::core::Interface::as_raw(self), flags, connectoptions.into()).ok() } - pub unsafe fn GetKernelConnectionOptions(&self, buffer: &mut [u8], optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetKernelConnectionOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(optionssize)).ok() + pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetKernelConnectionOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize)).ok() } pub unsafe fn SetKernelConnectionOptions<'a, P0>(&self, options: P0) -> ::windows::core::Result<()> where @@ -17153,8 +17153,8 @@ impl IDebugClient { pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DisconnectProcessServer)(::windows::core::Interface::as_raw(self), server).ok() } - pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: &mut [u32], actualcount: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ids)), ids.len() as _, ::core::mem::transmute(actualcount)).ok() + pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualcount)).ok() } pub unsafe fn GetRunningProcessSystemIdByExecutableName<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result where @@ -17163,8 +17163,8 @@ impl IDebugClient { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows::core::Interface::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: &mut [u8], actualexenamesize: ::core::option::Option<&mut u32>, description: &mut [u8], actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessDescription)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(exename)), exename.len() as _, ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(actualdescriptionsize)).ok() + pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessDescription)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), exename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), description.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualdescriptionsize)).ok() } pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AttachProcess)(::windows::core::Interface::as_raw(self), server, processid, attachflags).ok() @@ -17294,8 +17294,8 @@ impl IDebugClient { pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetOutputWidth)(::windows::core::Interface::as_raw(self), columns).ok() } - pub unsafe fn GetOutputLinePrefix(&self, buffer: &mut [u8], prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOutputLinePrefix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(prefixsize)).ok() + pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOutputLinePrefix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize)).ok() } pub unsafe fn SetOutputLinePrefix<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()> where @@ -17303,8 +17303,8 @@ impl IDebugClient { { (::windows::core::Interface::vtable(self).SetOutputLinePrefix)(::windows::core::Interface::as_raw(self), prefix.into()).ok() } - pub unsafe fn GetIdentity(&self, buffer: &mut [u8], identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(identitysize)).ok() + pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize)).ok() } pub unsafe fn OutputIdentity<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()> where @@ -17421,8 +17421,8 @@ impl IDebugClient2 { { (::windows::core::Interface::vtable(self).AttachKernel)(::windows::core::Interface::as_raw(self), flags, connectoptions.into()).ok() } - pub unsafe fn GetKernelConnectionOptions(&self, buffer: &mut [u8], optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetKernelConnectionOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(optionssize)).ok() + pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetKernelConnectionOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize)).ok() } pub unsafe fn SetKernelConnectionOptions<'a, P0>(&self, options: P0) -> ::windows::core::Result<()> where @@ -17446,8 +17446,8 @@ impl IDebugClient2 { pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DisconnectProcessServer)(::windows::core::Interface::as_raw(self), server).ok() } - pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: &mut [u32], actualcount: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ids)), ids.len() as _, ::core::mem::transmute(actualcount)).ok() + pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualcount)).ok() } pub unsafe fn GetRunningProcessSystemIdByExecutableName<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result where @@ -17456,8 +17456,8 @@ impl IDebugClient2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows::core::Interface::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: &mut [u8], actualexenamesize: ::core::option::Option<&mut u32>, description: &mut [u8], actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessDescription)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(exename)), exename.len() as _, ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(actualdescriptionsize)).ok() + pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessDescription)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), exename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), description.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualdescriptionsize)).ok() } pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AttachProcess)(::windows::core::Interface::as_raw(self), server, processid, attachflags).ok() @@ -17587,8 +17587,8 @@ impl IDebugClient2 { pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetOutputWidth)(::windows::core::Interface::as_raw(self), columns).ok() } - pub unsafe fn GetOutputLinePrefix(&self, buffer: &mut [u8], prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOutputLinePrefix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(prefixsize)).ok() + pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOutputLinePrefix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize)).ok() } pub unsafe fn SetOutputLinePrefix<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()> where @@ -17596,8 +17596,8 @@ impl IDebugClient2 { { (::windows::core::Interface::vtable(self).SetOutputLinePrefix)(::windows::core::Interface::as_raw(self), prefix.into()).ok() } - pub unsafe fn GetIdentity(&self, buffer: &mut [u8], identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(identitysize)).ok() + pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize)).ok() } pub unsafe fn OutputIdentity<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()> where @@ -17753,8 +17753,8 @@ impl IDebugClient3 { { (::windows::core::Interface::vtable(self).AttachKernel)(::windows::core::Interface::as_raw(self), flags, connectoptions.into()).ok() } - pub unsafe fn GetKernelConnectionOptions(&self, buffer: &mut [u8], optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetKernelConnectionOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(optionssize)).ok() + pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetKernelConnectionOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize)).ok() } pub unsafe fn SetKernelConnectionOptions<'a, P0>(&self, options: P0) -> ::windows::core::Result<()> where @@ -17778,8 +17778,8 @@ impl IDebugClient3 { pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DisconnectProcessServer)(::windows::core::Interface::as_raw(self), server).ok() } - pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: &mut [u32], actualcount: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ids)), ids.len() as _, ::core::mem::transmute(actualcount)).ok() + pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualcount)).ok() } pub unsafe fn GetRunningProcessSystemIdByExecutableName<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result where @@ -17788,8 +17788,8 @@ impl IDebugClient3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows::core::Interface::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: &mut [u8], actualexenamesize: ::core::option::Option<&mut u32>, description: &mut [u8], actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessDescription)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(exename)), exename.len() as _, ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(actualdescriptionsize)).ok() + pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessDescription)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), exename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), description.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualdescriptionsize)).ok() } pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AttachProcess)(::windows::core::Interface::as_raw(self), server, processid, attachflags).ok() @@ -17919,8 +17919,8 @@ impl IDebugClient3 { pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetOutputWidth)(::windows::core::Interface::as_raw(self), columns).ok() } - pub unsafe fn GetOutputLinePrefix(&self, buffer: &mut [u8], prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOutputLinePrefix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(prefixsize)).ok() + pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOutputLinePrefix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize)).ok() } pub unsafe fn SetOutputLinePrefix<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()> where @@ -17928,8 +17928,8 @@ impl IDebugClient3 { { (::windows::core::Interface::vtable(self).SetOutputLinePrefix)(::windows::core::Interface::as_raw(self), prefix.into()).ok() } - pub unsafe fn GetIdentity(&self, buffer: &mut [u8], identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(identitysize)).ok() + pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize)).ok() } pub unsafe fn OutputIdentity<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()> where @@ -17988,8 +17988,8 @@ impl IDebugClient3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows::core::Interface::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: &mut [u16], actualexenamesize: ::core::option::Option<&mut u32>, description: &mut [u16], actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessDescriptionWide)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(exename)), exename.len() as _, ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(actualdescriptionsize)).ok() + pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessDescriptionWide)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), exename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), description.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualdescriptionsize)).ok() } pub unsafe fn CreateProcessWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()> where @@ -18111,8 +18111,8 @@ impl IDebugClient4 { { (::windows::core::Interface::vtable(self).AttachKernel)(::windows::core::Interface::as_raw(self), flags, connectoptions.into()).ok() } - pub unsafe fn GetKernelConnectionOptions(&self, buffer: &mut [u8], optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetKernelConnectionOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(optionssize)).ok() + pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetKernelConnectionOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize)).ok() } pub unsafe fn SetKernelConnectionOptions<'a, P0>(&self, options: P0) -> ::windows::core::Result<()> where @@ -18136,8 +18136,8 @@ impl IDebugClient4 { pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DisconnectProcessServer)(::windows::core::Interface::as_raw(self), server).ok() } - pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: &mut [u32], actualcount: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ids)), ids.len() as _, ::core::mem::transmute(actualcount)).ok() + pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualcount)).ok() } pub unsafe fn GetRunningProcessSystemIdByExecutableName<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result where @@ -18146,8 +18146,8 @@ impl IDebugClient4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows::core::Interface::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: &mut [u8], actualexenamesize: ::core::option::Option<&mut u32>, description: &mut [u8], actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessDescription)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(exename)), exename.len() as _, ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(actualdescriptionsize)).ok() + pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessDescription)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), exename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), description.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualdescriptionsize)).ok() } pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AttachProcess)(::windows::core::Interface::as_raw(self), server, processid, attachflags).ok() @@ -18277,8 +18277,8 @@ impl IDebugClient4 { pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetOutputWidth)(::windows::core::Interface::as_raw(self), columns).ok() } - pub unsafe fn GetOutputLinePrefix(&self, buffer: &mut [u8], prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOutputLinePrefix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(prefixsize)).ok() + pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOutputLinePrefix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize)).ok() } pub unsafe fn SetOutputLinePrefix<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()> where @@ -18286,8 +18286,8 @@ impl IDebugClient4 { { (::windows::core::Interface::vtable(self).SetOutputLinePrefix)(::windows::core::Interface::as_raw(self), prefix.into()).ok() } - pub unsafe fn GetIdentity(&self, buffer: &mut [u8], identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(identitysize)).ok() + pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize)).ok() } pub unsafe fn OutputIdentity<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()> where @@ -18346,8 +18346,8 @@ impl IDebugClient4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows::core::Interface::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: &mut [u16], actualexenamesize: ::core::option::Option<&mut u32>, description: &mut [u16], actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessDescriptionWide)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(exename)), exename.len() as _, ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(actualdescriptionsize)).ok() + pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessDescriptionWide)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), exename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), description.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualdescriptionsize)).ok() } pub unsafe fn CreateProcessWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()> where @@ -18384,11 +18384,11 @@ impl IDebugClient4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberDumpFiles)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetDumpFile(&self, index: u32, buffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDumpFile)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() + pub unsafe fn GetDumpFile(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDumpFile)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() } - pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: &mut [u16], namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDumpFileWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() + pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDumpFileWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -18504,8 +18504,8 @@ impl IDebugClient5 { { (::windows::core::Interface::vtable(self).AttachKernel)(::windows::core::Interface::as_raw(self), flags, connectoptions.into()).ok() } - pub unsafe fn GetKernelConnectionOptions(&self, buffer: &mut [u8], optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetKernelConnectionOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(optionssize)).ok() + pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetKernelConnectionOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize)).ok() } pub unsafe fn SetKernelConnectionOptions<'a, P0>(&self, options: P0) -> ::windows::core::Result<()> where @@ -18529,8 +18529,8 @@ impl IDebugClient5 { pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DisconnectProcessServer)(::windows::core::Interface::as_raw(self), server).ok() } - pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: &mut [u32], actualcount: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ids)), ids.len() as _, ::core::mem::transmute(actualcount)).ok() + pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualcount)).ok() } pub unsafe fn GetRunningProcessSystemIdByExecutableName<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result where @@ -18539,8 +18539,8 @@ impl IDebugClient5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows::core::Interface::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: &mut [u8], actualexenamesize: ::core::option::Option<&mut u32>, description: &mut [u8], actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessDescription)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(exename)), exename.len() as _, ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(actualdescriptionsize)).ok() + pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessDescription)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), exename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), description.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualdescriptionsize)).ok() } pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AttachProcess)(::windows::core::Interface::as_raw(self), server, processid, attachflags).ok() @@ -18670,8 +18670,8 @@ impl IDebugClient5 { pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetOutputWidth)(::windows::core::Interface::as_raw(self), columns).ok() } - pub unsafe fn GetOutputLinePrefix(&self, buffer: &mut [u8], prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOutputLinePrefix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(prefixsize)).ok() + pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOutputLinePrefix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize)).ok() } pub unsafe fn SetOutputLinePrefix<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()> where @@ -18679,8 +18679,8 @@ impl IDebugClient5 { { (::windows::core::Interface::vtable(self).SetOutputLinePrefix)(::windows::core::Interface::as_raw(self), prefix.into()).ok() } - pub unsafe fn GetIdentity(&self, buffer: &mut [u8], identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(identitysize)).ok() + pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize)).ok() } pub unsafe fn OutputIdentity<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()> where @@ -18739,8 +18739,8 @@ impl IDebugClient5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows::core::Interface::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: &mut [u16], actualexenamesize: ::core::option::Option<&mut u32>, description: &mut [u16], actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessDescriptionWide)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(exename)), exename.len() as _, ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(actualdescriptionsize)).ok() + pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessDescriptionWide)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), exename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), description.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualdescriptionsize)).ok() } pub unsafe fn CreateProcessWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()> where @@ -18777,11 +18777,11 @@ impl IDebugClient5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberDumpFiles)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetDumpFile(&self, index: u32, buffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDumpFile)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() + pub unsafe fn GetDumpFile(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDumpFile)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() } - pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: &mut [u16], namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDumpFileWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() + pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDumpFileWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() } pub unsafe fn AttachKernelWide<'a, P0>(&self, flags: u32, connectoptions: P0) -> ::windows::core::Result<()> where @@ -18789,8 +18789,8 @@ impl IDebugClient5 { { (::windows::core::Interface::vtable(self).AttachKernelWide)(::windows::core::Interface::as_raw(self), flags, connectoptions.into()).ok() } - pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: &mut [u16], optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetKernelConnectionOptionsWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(optionssize)).ok() + pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: ::core::option::Option<&mut [u16]>, optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetKernelConnectionOptionsWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize)).ok() } pub unsafe fn SetKernelConnectionOptionsWide<'a, P0>(&self, options: P0) -> ::windows::core::Result<()> where @@ -18833,8 +18833,8 @@ impl IDebugClient5 { { (::windows::core::Interface::vtable(self).SetOutputCallbacksWide)(::windows::core::Interface::as_raw(self), callbacks.into().abi()).ok() } - pub unsafe fn GetOutputLinePrefixWide(&self, buffer: &mut [u16], prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOutputLinePrefixWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(prefixsize)).ok() + pub unsafe fn GetOutputLinePrefixWide(&self, buffer: ::core::option::Option<&mut [u16]>, prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOutputLinePrefixWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize)).ok() } pub unsafe fn SetOutputLinePrefixWide<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()> where @@ -18842,8 +18842,8 @@ impl IDebugClient5 { { (::windows::core::Interface::vtable(self).SetOutputLinePrefixWide)(::windows::core::Interface::as_raw(self), prefix.into()).ok() } - pub unsafe fn GetIdentityWide(&self, buffer: &mut [u16], identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIdentityWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(identitysize)).ok() + pub unsafe fn GetIdentityWide(&self, buffer: ::core::option::Option<&mut [u16]>, identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetIdentityWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize)).ok() } pub unsafe fn OutputIdentityWide<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()> where @@ -18861,37 +18861,37 @@ impl IDebugClient5 { { (::windows::core::Interface::vtable(self).SetEventCallbacksWide)(::windows::core::Interface::as_raw(self), callbacks.into().abi()).ok() } - pub unsafe fn CreateProcess2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows::core::Result<()> + pub unsafe fn CreateProcess2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: &[u8], initialdirectory: P1, environment: P2) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, P2: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).CreateProcess2)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into()).ok() + (::windows::core::Interface::vtable(self).CreateProcess2)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer.as_ptr()), optionsbuffer.len() as _, initialdirectory.into(), environment.into()).ok() } - pub unsafe fn CreateProcess2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows::core::Result<()> + pub unsafe fn CreateProcess2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: &[u8], initialdirectory: P1, environment: P2) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, P2: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).CreateProcess2Wide)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into()).ok() + (::windows::core::Interface::vtable(self).CreateProcess2Wide)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer.as_ptr()), optionsbuffer.len() as _, initialdirectory.into(), environment.into()).ok() } - pub unsafe fn CreateProcessAndAttach2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()> + pub unsafe fn CreateProcessAndAttach2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: &[u8], initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, P2: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).CreateProcessAndAttach2)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into(), processid, attachflags).ok() + (::windows::core::Interface::vtable(self).CreateProcessAndAttach2)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer.as_ptr()), optionsbuffer.len() as _, initialdirectory.into(), environment.into(), processid, attachflags).ok() } - pub unsafe fn CreateProcessAndAttach2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()> + pub unsafe fn CreateProcessAndAttach2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: &[u8], initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, P2: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).CreateProcessAndAttach2Wide)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into(), processid, attachflags).ok() + (::windows::core::Interface::vtable(self).CreateProcessAndAttach2Wide)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer.as_ptr()), optionsbuffer.len() as _, initialdirectory.into(), environment.into(), processid, attachflags).ok() } pub unsafe fn PushOutputLinePrefix<'a, P0>(&self, newprefix: P0) -> ::windows::core::Result where @@ -18922,8 +18922,8 @@ impl IDebugClient5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberEventCallbacks)(::windows::core::Interface::as_raw(self), eventflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetQuitLockString(&self, buffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetQuitLockString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetQuitLockString(&self, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetQuitLockString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } pub unsafe fn SetQuitLockString<'a, P0>(&self, string: P0) -> ::windows::core::Result<()> where @@ -18931,8 +18931,8 @@ impl IDebugClient5 { { (::windows::core::Interface::vtable(self).SetQuitLockString)(::windows::core::Interface::as_raw(self), string.into()).ok() } - pub unsafe fn GetQuitLockStringWide(&self, buffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetQuitLockStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetQuitLockStringWide(&self, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetQuitLockStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } pub unsafe fn SetQuitLockStringWide<'a, P0>(&self, string: P0) -> ::windows::core::Result<()> where @@ -19083,8 +19083,8 @@ impl IDebugClient6 { { (::windows::core::Interface::vtable(self).AttachKernel)(::windows::core::Interface::as_raw(self), flags, connectoptions.into()).ok() } - pub unsafe fn GetKernelConnectionOptions(&self, buffer: &mut [u8], optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetKernelConnectionOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(optionssize)).ok() + pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetKernelConnectionOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize)).ok() } pub unsafe fn SetKernelConnectionOptions<'a, P0>(&self, options: P0) -> ::windows::core::Result<()> where @@ -19108,8 +19108,8 @@ impl IDebugClient6 { pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DisconnectProcessServer)(::windows::core::Interface::as_raw(self), server).ok() } - pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: &mut [u32], actualcount: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ids)), ids.len() as _, ::core::mem::transmute(actualcount)).ok() + pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualcount)).ok() } pub unsafe fn GetRunningProcessSystemIdByExecutableName<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result where @@ -19118,8 +19118,8 @@ impl IDebugClient6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows::core::Interface::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: &mut [u8], actualexenamesize: ::core::option::Option<&mut u32>, description: &mut [u8], actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessDescription)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(exename)), exename.len() as _, ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(actualdescriptionsize)).ok() + pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessDescription)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), exename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), description.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualdescriptionsize)).ok() } pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AttachProcess)(::windows::core::Interface::as_raw(self), server, processid, attachflags).ok() @@ -19249,8 +19249,8 @@ impl IDebugClient6 { pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetOutputWidth)(::windows::core::Interface::as_raw(self), columns).ok() } - pub unsafe fn GetOutputLinePrefix(&self, buffer: &mut [u8], prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOutputLinePrefix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(prefixsize)).ok() + pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOutputLinePrefix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize)).ok() } pub unsafe fn SetOutputLinePrefix<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()> where @@ -19258,8 +19258,8 @@ impl IDebugClient6 { { (::windows::core::Interface::vtable(self).SetOutputLinePrefix)(::windows::core::Interface::as_raw(self), prefix.into()).ok() } - pub unsafe fn GetIdentity(&self, buffer: &mut [u8], identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(identitysize)).ok() + pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize)).ok() } pub unsafe fn OutputIdentity<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()> where @@ -19318,8 +19318,8 @@ impl IDebugClient6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows::core::Interface::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: &mut [u16], actualexenamesize: ::core::option::Option<&mut u32>, description: &mut [u16], actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessDescriptionWide)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(exename)), exename.len() as _, ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(actualdescriptionsize)).ok() + pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessDescriptionWide)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), exename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), description.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualdescriptionsize)).ok() } pub unsafe fn CreateProcessWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()> where @@ -19356,11 +19356,11 @@ impl IDebugClient6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberDumpFiles)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetDumpFile(&self, index: u32, buffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDumpFile)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() + pub unsafe fn GetDumpFile(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDumpFile)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() } - pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: &mut [u16], namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDumpFileWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() + pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDumpFileWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() } pub unsafe fn AttachKernelWide<'a, P0>(&self, flags: u32, connectoptions: P0) -> ::windows::core::Result<()> where @@ -19368,8 +19368,8 @@ impl IDebugClient6 { { (::windows::core::Interface::vtable(self).AttachKernelWide)(::windows::core::Interface::as_raw(self), flags, connectoptions.into()).ok() } - pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: &mut [u16], optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetKernelConnectionOptionsWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(optionssize)).ok() + pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: ::core::option::Option<&mut [u16]>, optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetKernelConnectionOptionsWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize)).ok() } pub unsafe fn SetKernelConnectionOptionsWide<'a, P0>(&self, options: P0) -> ::windows::core::Result<()> where @@ -19412,8 +19412,8 @@ impl IDebugClient6 { { (::windows::core::Interface::vtable(self).SetOutputCallbacksWide)(::windows::core::Interface::as_raw(self), callbacks.into().abi()).ok() } - pub unsafe fn GetOutputLinePrefixWide(&self, buffer: &mut [u16], prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOutputLinePrefixWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(prefixsize)).ok() + pub unsafe fn GetOutputLinePrefixWide(&self, buffer: ::core::option::Option<&mut [u16]>, prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOutputLinePrefixWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize)).ok() } pub unsafe fn SetOutputLinePrefixWide<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()> where @@ -19421,8 +19421,8 @@ impl IDebugClient6 { { (::windows::core::Interface::vtable(self).SetOutputLinePrefixWide)(::windows::core::Interface::as_raw(self), prefix.into()).ok() } - pub unsafe fn GetIdentityWide(&self, buffer: &mut [u16], identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIdentityWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(identitysize)).ok() + pub unsafe fn GetIdentityWide(&self, buffer: ::core::option::Option<&mut [u16]>, identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetIdentityWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize)).ok() } pub unsafe fn OutputIdentityWide<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()> where @@ -19440,37 +19440,37 @@ impl IDebugClient6 { { (::windows::core::Interface::vtable(self).SetEventCallbacksWide)(::windows::core::Interface::as_raw(self), callbacks.into().abi()).ok() } - pub unsafe fn CreateProcess2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows::core::Result<()> + pub unsafe fn CreateProcess2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: &[u8], initialdirectory: P1, environment: P2) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, P2: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).CreateProcess2)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into()).ok() + (::windows::core::Interface::vtable(self).CreateProcess2)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer.as_ptr()), optionsbuffer.len() as _, initialdirectory.into(), environment.into()).ok() } - pub unsafe fn CreateProcess2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows::core::Result<()> + pub unsafe fn CreateProcess2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: &[u8], initialdirectory: P1, environment: P2) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, P2: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).CreateProcess2Wide)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into()).ok() + (::windows::core::Interface::vtable(self).CreateProcess2Wide)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer.as_ptr()), optionsbuffer.len() as _, initialdirectory.into(), environment.into()).ok() } - pub unsafe fn CreateProcessAndAttach2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()> + pub unsafe fn CreateProcessAndAttach2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: &[u8], initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, P2: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).CreateProcessAndAttach2)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into(), processid, attachflags).ok() + (::windows::core::Interface::vtable(self).CreateProcessAndAttach2)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer.as_ptr()), optionsbuffer.len() as _, initialdirectory.into(), environment.into(), processid, attachflags).ok() } - pub unsafe fn CreateProcessAndAttach2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()> + pub unsafe fn CreateProcessAndAttach2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: &[u8], initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, P2: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).CreateProcessAndAttach2Wide)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into(), processid, attachflags).ok() + (::windows::core::Interface::vtable(self).CreateProcessAndAttach2Wide)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer.as_ptr()), optionsbuffer.len() as _, initialdirectory.into(), environment.into(), processid, attachflags).ok() } pub unsafe fn PushOutputLinePrefix<'a, P0>(&self, newprefix: P0) -> ::windows::core::Result where @@ -19501,8 +19501,8 @@ impl IDebugClient6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberEventCallbacks)(::windows::core::Interface::as_raw(self), eventflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetQuitLockString(&self, buffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetQuitLockString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetQuitLockString(&self, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetQuitLockString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } pub unsafe fn SetQuitLockString<'a, P0>(&self, string: P0) -> ::windows::core::Result<()> where @@ -19510,8 +19510,8 @@ impl IDebugClient6 { { (::windows::core::Interface::vtable(self).SetQuitLockString)(::windows::core::Interface::as_raw(self), string.into()).ok() } - pub unsafe fn GetQuitLockStringWide(&self, buffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetQuitLockStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetQuitLockStringWide(&self, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetQuitLockStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } pub unsafe fn SetQuitLockStringWide<'a, P0>(&self, string: P0) -> ::windows::core::Result<()> where @@ -19669,8 +19669,8 @@ impl IDebugClient7 { { (::windows::core::Interface::vtable(self).AttachKernel)(::windows::core::Interface::as_raw(self), flags, connectoptions.into()).ok() } - pub unsafe fn GetKernelConnectionOptions(&self, buffer: &mut [u8], optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetKernelConnectionOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(optionssize)).ok() + pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetKernelConnectionOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize)).ok() } pub unsafe fn SetKernelConnectionOptions<'a, P0>(&self, options: P0) -> ::windows::core::Result<()> where @@ -19694,8 +19694,8 @@ impl IDebugClient7 { pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DisconnectProcessServer)(::windows::core::Interface::as_raw(self), server).ok() } - pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: &mut [u32], actualcount: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ids)), ids.len() as _, ::core::mem::transmute(actualcount)).ok() + pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualcount)).ok() } pub unsafe fn GetRunningProcessSystemIdByExecutableName<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result where @@ -19704,8 +19704,8 @@ impl IDebugClient7 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows::core::Interface::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: &mut [u8], actualexenamesize: ::core::option::Option<&mut u32>, description: &mut [u8], actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessDescription)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(exename)), exename.len() as _, ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(actualdescriptionsize)).ok() + pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessDescription)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), exename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), description.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualdescriptionsize)).ok() } pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AttachProcess)(::windows::core::Interface::as_raw(self), server, processid, attachflags).ok() @@ -19835,8 +19835,8 @@ impl IDebugClient7 { pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetOutputWidth)(::windows::core::Interface::as_raw(self), columns).ok() } - pub unsafe fn GetOutputLinePrefix(&self, buffer: &mut [u8], prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOutputLinePrefix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(prefixsize)).ok() + pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOutputLinePrefix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize)).ok() } pub unsafe fn SetOutputLinePrefix<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()> where @@ -19844,8 +19844,8 @@ impl IDebugClient7 { { (::windows::core::Interface::vtable(self).SetOutputLinePrefix)(::windows::core::Interface::as_raw(self), prefix.into()).ok() } - pub unsafe fn GetIdentity(&self, buffer: &mut [u8], identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(identitysize)).ok() + pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize)).ok() } pub unsafe fn OutputIdentity<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()> where @@ -19904,8 +19904,8 @@ impl IDebugClient7 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows::core::Interface::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: &mut [u16], actualexenamesize: ::core::option::Option<&mut u32>, description: &mut [u16], actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessDescriptionWide)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(exename)), exename.len() as _, ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(actualdescriptionsize)).ok() + pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessDescriptionWide)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), exename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), description.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualdescriptionsize)).ok() } pub unsafe fn CreateProcessWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()> where @@ -19942,11 +19942,11 @@ impl IDebugClient7 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberDumpFiles)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetDumpFile(&self, index: u32, buffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDumpFile)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() + pub unsafe fn GetDumpFile(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDumpFile)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() } - pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: &mut [u16], namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDumpFileWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() + pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDumpFileWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() } pub unsafe fn AttachKernelWide<'a, P0>(&self, flags: u32, connectoptions: P0) -> ::windows::core::Result<()> where @@ -19954,8 +19954,8 @@ impl IDebugClient7 { { (::windows::core::Interface::vtable(self).AttachKernelWide)(::windows::core::Interface::as_raw(self), flags, connectoptions.into()).ok() } - pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: &mut [u16], optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetKernelConnectionOptionsWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(optionssize)).ok() + pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: ::core::option::Option<&mut [u16]>, optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetKernelConnectionOptionsWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize)).ok() } pub unsafe fn SetKernelConnectionOptionsWide<'a, P0>(&self, options: P0) -> ::windows::core::Result<()> where @@ -19998,8 +19998,8 @@ impl IDebugClient7 { { (::windows::core::Interface::vtable(self).SetOutputCallbacksWide)(::windows::core::Interface::as_raw(self), callbacks.into().abi()).ok() } - pub unsafe fn GetOutputLinePrefixWide(&self, buffer: &mut [u16], prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOutputLinePrefixWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(prefixsize)).ok() + pub unsafe fn GetOutputLinePrefixWide(&self, buffer: ::core::option::Option<&mut [u16]>, prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOutputLinePrefixWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize)).ok() } pub unsafe fn SetOutputLinePrefixWide<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()> where @@ -20007,8 +20007,8 @@ impl IDebugClient7 { { (::windows::core::Interface::vtable(self).SetOutputLinePrefixWide)(::windows::core::Interface::as_raw(self), prefix.into()).ok() } - pub unsafe fn GetIdentityWide(&self, buffer: &mut [u16], identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIdentityWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(identitysize)).ok() + pub unsafe fn GetIdentityWide(&self, buffer: ::core::option::Option<&mut [u16]>, identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetIdentityWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize)).ok() } pub unsafe fn OutputIdentityWide<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()> where @@ -20026,37 +20026,37 @@ impl IDebugClient7 { { (::windows::core::Interface::vtable(self).SetEventCallbacksWide)(::windows::core::Interface::as_raw(self), callbacks.into().abi()).ok() } - pub unsafe fn CreateProcess2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows::core::Result<()> + pub unsafe fn CreateProcess2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: &[u8], initialdirectory: P1, environment: P2) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, P2: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).CreateProcess2)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into()).ok() + (::windows::core::Interface::vtable(self).CreateProcess2)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer.as_ptr()), optionsbuffer.len() as _, initialdirectory.into(), environment.into()).ok() } - pub unsafe fn CreateProcess2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows::core::Result<()> + pub unsafe fn CreateProcess2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: &[u8], initialdirectory: P1, environment: P2) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, P2: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).CreateProcess2Wide)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into()).ok() + (::windows::core::Interface::vtable(self).CreateProcess2Wide)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer.as_ptr()), optionsbuffer.len() as _, initialdirectory.into(), environment.into()).ok() } - pub unsafe fn CreateProcessAndAttach2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()> + pub unsafe fn CreateProcessAndAttach2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: &[u8], initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, P2: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).CreateProcessAndAttach2)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into(), processid, attachflags).ok() + (::windows::core::Interface::vtable(self).CreateProcessAndAttach2)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer.as_ptr()), optionsbuffer.len() as _, initialdirectory.into(), environment.into(), processid, attachflags).ok() } - pub unsafe fn CreateProcessAndAttach2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()> + pub unsafe fn CreateProcessAndAttach2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: &[u8], initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, P2: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).CreateProcessAndAttach2Wide)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into(), processid, attachflags).ok() + (::windows::core::Interface::vtable(self).CreateProcessAndAttach2Wide)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer.as_ptr()), optionsbuffer.len() as _, initialdirectory.into(), environment.into(), processid, attachflags).ok() } pub unsafe fn PushOutputLinePrefix<'a, P0>(&self, newprefix: P0) -> ::windows::core::Result where @@ -20087,8 +20087,8 @@ impl IDebugClient7 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberEventCallbacks)(::windows::core::Interface::as_raw(self), eventflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetQuitLockString(&self, buffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetQuitLockString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetQuitLockString(&self, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetQuitLockString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } pub unsafe fn SetQuitLockString<'a, P0>(&self, string: P0) -> ::windows::core::Result<()> where @@ -20096,8 +20096,8 @@ impl IDebugClient7 { { (::windows::core::Interface::vtable(self).SetQuitLockString)(::windows::core::Interface::as_raw(self), string.into()).ok() } - pub unsafe fn GetQuitLockStringWide(&self, buffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetQuitLockStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetQuitLockStringWide(&self, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetQuitLockStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } pub unsafe fn SetQuitLockStringWide<'a, P0>(&self, string: P0) -> ::windows::core::Result<()> where @@ -20111,8 +20111,8 @@ impl IDebugClient7 { { (::windows::core::Interface::vtable(self).SetEventContextCallbacks)(::windows::core::Interface::as_raw(self), callbacks.into().abi()).ok() } - pub unsafe fn SetClientContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetClientContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn SetClientContext(&self, context: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetClientContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -20259,8 +20259,8 @@ impl IDebugClient8 { { (::windows::core::Interface::vtable(self).AttachKernel)(::windows::core::Interface::as_raw(self), flags, connectoptions.into()).ok() } - pub unsafe fn GetKernelConnectionOptions(&self, buffer: &mut [u8], optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetKernelConnectionOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(optionssize)).ok() + pub unsafe fn GetKernelConnectionOptions(&self, buffer: ::core::option::Option<&mut [u8]>, optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetKernelConnectionOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize)).ok() } pub unsafe fn SetKernelConnectionOptions<'a, P0>(&self, options: P0) -> ::windows::core::Result<()> where @@ -20284,8 +20284,8 @@ impl IDebugClient8 { pub unsafe fn DisconnectProcessServer(&self, server: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DisconnectProcessServer)(::windows::core::Interface::as_raw(self), server).ok() } - pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: &mut [u32], actualcount: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ids)), ids.len() as _, ::core::mem::transmute(actualcount)).ok() + pub unsafe fn GetRunningProcessSystemIds(&self, server: u64, ids: ::core::option::Option<&mut [u32]>, actualcount: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessSystemIds)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualcount)).ok() } pub unsafe fn GetRunningProcessSystemIdByExecutableName<'a, P0>(&self, server: u64, exename: P0, flags: u32) -> ::windows::core::Result where @@ -20294,8 +20294,8 @@ impl IDebugClient8 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableName)(::windows::core::Interface::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: &mut [u8], actualexenamesize: ::core::option::Option<&mut u32>, description: &mut [u8], actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessDescription)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(exename)), exename.len() as _, ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(actualdescriptionsize)).ok() + pub unsafe fn GetRunningProcessDescription(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u8]>, actualexenamesize: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u8]>, actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessDescription)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), exename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), description.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualdescriptionsize)).ok() } pub unsafe fn AttachProcess(&self, server: u64, processid: u32, attachflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AttachProcess)(::windows::core::Interface::as_raw(self), server, processid, attachflags).ok() @@ -20425,8 +20425,8 @@ impl IDebugClient8 { pub unsafe fn SetOutputWidth(&self, columns: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetOutputWidth)(::windows::core::Interface::as_raw(self), columns).ok() } - pub unsafe fn GetOutputLinePrefix(&self, buffer: &mut [u8], prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOutputLinePrefix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(prefixsize)).ok() + pub unsafe fn GetOutputLinePrefix(&self, buffer: ::core::option::Option<&mut [u8]>, prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOutputLinePrefix)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize)).ok() } pub unsafe fn SetOutputLinePrefix<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()> where @@ -20434,8 +20434,8 @@ impl IDebugClient8 { { (::windows::core::Interface::vtable(self).SetOutputLinePrefix)(::windows::core::Interface::as_raw(self), prefix.into()).ok() } - pub unsafe fn GetIdentity(&self, buffer: &mut [u8], identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(identitysize)).ok() + pub unsafe fn GetIdentity(&self, buffer: ::core::option::Option<&mut [u8]>, identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetIdentity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize)).ok() } pub unsafe fn OutputIdentity<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()> where @@ -20494,8 +20494,8 @@ impl IDebugClient8 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetRunningProcessSystemIdByExecutableNameWide)(::windows::core::Interface::as_raw(self), server, exename.into(), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: &mut [u16], actualexenamesize: ::core::option::Option<&mut u32>, description: &mut [u16], actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRunningProcessDescriptionWide)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(exename)), exename.len() as _, ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(actualdescriptionsize)).ok() + pub unsafe fn GetRunningProcessDescriptionWide(&self, server: u64, systemid: u32, flags: u32, exename: ::core::option::Option<&mut [u16]>, actualexenamesize: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u16]>, actualdescriptionsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetRunningProcessDescriptionWide)(::windows::core::Interface::as_raw(self), server, systemid, flags, ::core::mem::transmute(exename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), exename.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualexenamesize), ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), description.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(actualdescriptionsize)).ok() } pub unsafe fn CreateProcessWide<'a, P0>(&self, server: u64, commandline: P0, createflags: u32) -> ::windows::core::Result<()> where @@ -20532,11 +20532,11 @@ impl IDebugClient8 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberDumpFiles)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetDumpFile(&self, index: u32, buffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDumpFile)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() + pub unsafe fn GetDumpFile(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDumpFile)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() } - pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: &mut [u16], namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDumpFileWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() + pub unsafe fn GetDumpFileWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>, handle: ::core::option::Option<&mut u64>, r#type: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDumpFileWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(handle), ::core::mem::transmute(r#type)).ok() } pub unsafe fn AttachKernelWide<'a, P0>(&self, flags: u32, connectoptions: P0) -> ::windows::core::Result<()> where @@ -20544,8 +20544,8 @@ impl IDebugClient8 { { (::windows::core::Interface::vtable(self).AttachKernelWide)(::windows::core::Interface::as_raw(self), flags, connectoptions.into()).ok() } - pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: &mut [u16], optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetKernelConnectionOptionsWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(optionssize)).ok() + pub unsafe fn GetKernelConnectionOptionsWide(&self, buffer: ::core::option::Option<&mut [u16]>, optionssize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetKernelConnectionOptionsWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(optionssize)).ok() } pub unsafe fn SetKernelConnectionOptionsWide<'a, P0>(&self, options: P0) -> ::windows::core::Result<()> where @@ -20588,8 +20588,8 @@ impl IDebugClient8 { { (::windows::core::Interface::vtable(self).SetOutputCallbacksWide)(::windows::core::Interface::as_raw(self), callbacks.into().abi()).ok() } - pub unsafe fn GetOutputLinePrefixWide(&self, buffer: &mut [u16], prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOutputLinePrefixWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(prefixsize)).ok() + pub unsafe fn GetOutputLinePrefixWide(&self, buffer: ::core::option::Option<&mut [u16]>, prefixsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOutputLinePrefixWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prefixsize)).ok() } pub unsafe fn SetOutputLinePrefixWide<'a, P0>(&self, prefix: P0) -> ::windows::core::Result<()> where @@ -20597,8 +20597,8 @@ impl IDebugClient8 { { (::windows::core::Interface::vtable(self).SetOutputLinePrefixWide)(::windows::core::Interface::as_raw(self), prefix.into()).ok() } - pub unsafe fn GetIdentityWide(&self, buffer: &mut [u16], identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIdentityWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(identitysize)).ok() + pub unsafe fn GetIdentityWide(&self, buffer: ::core::option::Option<&mut [u16]>, identitysize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetIdentityWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(identitysize)).ok() } pub unsafe fn OutputIdentityWide<'a, P0>(&self, outputcontrol: u32, flags: u32, format: P0) -> ::windows::core::Result<()> where @@ -20616,37 +20616,37 @@ impl IDebugClient8 { { (::windows::core::Interface::vtable(self).SetEventCallbacksWide)(::windows::core::Interface::as_raw(self), callbacks.into().abi()).ok() } - pub unsafe fn CreateProcess2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows::core::Result<()> + pub unsafe fn CreateProcess2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: &[u8], initialdirectory: P1, environment: P2) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, P2: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).CreateProcess2)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into()).ok() + (::windows::core::Interface::vtable(self).CreateProcess2)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer.as_ptr()), optionsbuffer.len() as _, initialdirectory.into(), environment.into()).ok() } - pub unsafe fn CreateProcess2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2) -> ::windows::core::Result<()> + pub unsafe fn CreateProcess2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: &[u8], initialdirectory: P1, environment: P2) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, P2: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).CreateProcess2Wide)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into()).ok() + (::windows::core::Interface::vtable(self).CreateProcess2Wide)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer.as_ptr()), optionsbuffer.len() as _, initialdirectory.into(), environment.into()).ok() } - pub unsafe fn CreateProcessAndAttach2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()> + pub unsafe fn CreateProcessAndAttach2<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: &[u8], initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, P2: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).CreateProcessAndAttach2)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into(), processid, attachflags).ok() + (::windows::core::Interface::vtable(self).CreateProcessAndAttach2)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer.as_ptr()), optionsbuffer.len() as _, initialdirectory.into(), environment.into(), processid, attachflags).ok() } - pub unsafe fn CreateProcessAndAttach2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: *const ::core::ffi::c_void, optionsbuffersize: u32, initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()> + pub unsafe fn CreateProcessAndAttach2Wide<'a, P0, P1, P2>(&self, server: u64, commandline: P0, optionsbuffer: &[u8], initialdirectory: P1, environment: P2, processid: u32, attachflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, P2: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).CreateProcessAndAttach2Wide)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer), optionsbuffersize, initialdirectory.into(), environment.into(), processid, attachflags).ok() + (::windows::core::Interface::vtable(self).CreateProcessAndAttach2Wide)(::windows::core::Interface::as_raw(self), server, commandline.into(), ::core::mem::transmute(optionsbuffer.as_ptr()), optionsbuffer.len() as _, initialdirectory.into(), environment.into(), processid, attachflags).ok() } pub unsafe fn PushOutputLinePrefix<'a, P0>(&self, newprefix: P0) -> ::windows::core::Result where @@ -20677,8 +20677,8 @@ impl IDebugClient8 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberEventCallbacks)(::windows::core::Interface::as_raw(self), eventflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetQuitLockString(&self, buffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetQuitLockString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetQuitLockString(&self, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetQuitLockString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } pub unsafe fn SetQuitLockString<'a, P0>(&self, string: P0) -> ::windows::core::Result<()> where @@ -20686,8 +20686,8 @@ impl IDebugClient8 { { (::windows::core::Interface::vtable(self).SetQuitLockString)(::windows::core::Interface::as_raw(self), string.into()).ok() } - pub unsafe fn GetQuitLockStringWide(&self, buffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetQuitLockStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetQuitLockStringWide(&self, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetQuitLockStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } pub unsafe fn SetQuitLockStringWide<'a, P0>(&self, string: P0) -> ::windows::core::Result<()> where @@ -20701,8 +20701,8 @@ impl IDebugClient8 { { (::windows::core::Interface::vtable(self).SetEventContextCallbacks)(::windows::core::Interface::as_raw(self), callbacks.into().abi()).ok() } - pub unsafe fn SetClientContext(&self, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetClientContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn SetClientContext(&self, context: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetClientContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } pub unsafe fn OpenDumpFileWide2<'a, P0>(&self, filename: P0, filehandle: u64, alternatearch: u32) -> ::windows::core::Result<()> where @@ -20919,8 +20919,8 @@ impl IDebugControl { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLogFile(&self, buffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() + pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -20942,7 +20942,7 @@ impl IDebugControl { (::windows::core::Interface::vtable(self).SetLogMask)(::windows::core::Interface::as_raw(self), mask).ok() } pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Input)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() + (::windows::core::Interface::vtable(self).Input)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() } pub unsafe fn ReturnInput<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()> where @@ -20986,8 +20986,8 @@ impl IDebugControl { { (::windows::core::Interface::vtable(self).OutputPromptVaList)(::windows::core::Interface::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok() } - pub unsafe fn GetPromptText(&self, buffer: &mut [u8], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPromptText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPromptText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputCurrentState)(::windows::core::Interface::as_raw(self), outputcontrol, flags).ok() @@ -21009,8 +21009,8 @@ impl IDebugControl { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).Assemble)(::windows::core::Interface::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: &mut [u8], disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Disassemble)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() + pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Disassemble)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() } pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21020,8 +21020,8 @@ impl IDebugControl { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).OutputDisassembly)(::windows::core::Interface::as_raw(self), outputcontrol, offset, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<&mut u32>, startoffset: ::core::option::Option<&mut u64>, endoffset: ::core::option::Option<&mut u64>, lineoffsets: &mut [u64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputDisassemblyLines)(::windows::core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.len() as _, offset, flags, ::core::mem::transmute(offsetline), ::core::mem::transmute(startoffset), ::core::mem::transmute(endoffset), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lineoffsets))).ok() + pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<&mut u32>, startoffset: ::core::option::Option<&mut u64>, endoffset: ::core::option::Option<&mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputDisassemblyLines)(::windows::core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len() as _), offset, flags, ::core::mem::transmute(offsetline), ::core::mem::transmute(startoffset), ::core::mem::transmute(endoffset), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21030,7 +21030,7 @@ impl IDebugControl { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStackTrace)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() + (::windows::core::Interface::vtable(self).GetStackTrace)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() } pub unsafe fn GetReturnOffset(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21038,8 +21038,8 @@ impl IDebugControl { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, flags).ok() + pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok() } pub unsafe fn GetDebuggeeType(&self, class: &mut u32, qualifier: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDebuggeeType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(class), ::core::mem::transmute(qualifier)).ok() @@ -21057,14 +21057,27 @@ impl IDebugControl { (::windows::core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(types))).ok() + (::windows::core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok() } pub unsafe fn GetNumberProcessors(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberProcessors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetSystemVersion(&self, platformid: &mut u32, major: &mut u32, minor: &mut u32, servicepackstring: &mut [u8], servicepackstringused: ::core::option::Option<&mut u32>, servicepacknumber: &mut u32, buildstring: &mut [u8], buildstringused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemVersion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(platformid), ::core::mem::transmute(major), ::core::mem::transmute(minor), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(servicepackstring)), servicepackstring.len() as _, ::core::mem::transmute(servicepackstringused), ::core::mem::transmute(servicepacknumber), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buildstring)), buildstring.len() as _, ::core::mem::transmute(buildstringused)).ok() + pub unsafe fn GetSystemVersion(&self, platformid: &mut u32, major: &mut u32, minor: &mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<&mut u32>, servicepacknumber: &mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemVersion)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(platformid), + ::core::mem::transmute(major), + ::core::mem::transmute(minor), + ::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + servicepackstring.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(servicepackstringused), + ::core::mem::transmute(servicepacknumber), + ::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + buildstring.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(buildstringused), + ) + .ok() } pub unsafe fn GetPageSize(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21081,10 +21094,10 @@ impl IDebugControl { (::windows::core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(types))).ok() + (::windows::core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok() } - pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: &mut [u8], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u8], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProcessorTypeNames)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProcessorTypeNames)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21126,8 +21139,8 @@ impl IDebugControl { pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetSystemErrorControl)(::windows::core::Interface::as_raw(self), outputlevel, breaklevel).ok() } - pub unsafe fn GetTextMacro(&self, slot: u32, buffer: &mut [u8], macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTextMacro)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(macrosize)).ok() + pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTextMacro)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize)).ok() } pub unsafe fn SetTextMacro<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()> where @@ -21158,7 +21171,7 @@ impl IDebugControl { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn CoerceValues(&self, count: u32, r#in: &DEBUG_VALUE, outtypes: &u32, out: &mut DEBUG_VALUE) -> ::windows::core::Result<()> { + pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CoerceValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(r#in), ::core::mem::transmute(outtypes), ::core::mem::transmute(out)).ok() } pub unsafe fn Execute<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()> @@ -21185,7 +21198,7 @@ impl IDebugControl { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetBreakpointById)(::windows::core::Interface::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<&u32>, start: u32, params: &mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetBreakpointParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(ids), start, ::core::mem::transmute(params)).ok() } pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result { @@ -21243,11 +21256,11 @@ impl IDebugControl { pub unsafe fn GetNumberEventFilters(&self, specificevents: &mut u32, specificexceptions: &mut u32, arbitraryexceptions: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetNumberEventFilters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(specificevents), ::core::mem::transmute(specificexceptions), ::core::mem::transmute(arbitraryexceptions)).ok() } - pub unsafe fn GetEventFilterText(&self, index: u32, buffer: &mut [u8], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterText)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterText)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } - pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetEventFilterCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -21256,13 +21269,13 @@ impl IDebugControl { (::windows::core::Interface::vtable(self).SetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, command.into()).ok() } pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).GetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).SetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } - pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: &mut [u8], argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(argumentsize)).ok() + pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize)).ok() } pub unsafe fn SetSpecificFilterArgument<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()> where @@ -21270,14 +21283,14 @@ impl IDebugControl { { (::windows::core::Interface::vtable(self).SetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, argument.into()).ok() } - pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<&u32>, start: u32, params: &mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(codes), start, ::core::mem::transmute(params)).ok() } pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), params.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).SetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } - pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetExceptionFilterSecondCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -21288,8 +21301,20 @@ impl IDebugControl { pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WaitForEvent)(::windows::core::Interface::as_raw(self), flags, timeout).ok() } - pub unsafe fn GetLastEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: ::core::option::Option<&mut u32>, description: &mut [u8], descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLastEventInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(extrainformation), extrainformationsize, ::core::mem::transmute(extrainformationused), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(descriptionused)).ok() + pub unsafe fn GetLastEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: ::core::option::Option<&mut [u8]>, extrainformationused: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLastEventInformation)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(r#type), + ::core::mem::transmute(processid), + ::core::mem::transmute(threadid), + ::core::mem::transmute(extrainformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + extrainformation.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(extrainformationused), + ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + description.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(descriptionused), + ) + .ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -21473,8 +21498,8 @@ impl IDebugControl2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLogFile(&self, buffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() + pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -21496,7 +21521,7 @@ impl IDebugControl2 { (::windows::core::Interface::vtable(self).SetLogMask)(::windows::core::Interface::as_raw(self), mask).ok() } pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Input)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() + (::windows::core::Interface::vtable(self).Input)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() } pub unsafe fn ReturnInput<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()> where @@ -21540,8 +21565,8 @@ impl IDebugControl2 { { (::windows::core::Interface::vtable(self).OutputPromptVaList)(::windows::core::Interface::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok() } - pub unsafe fn GetPromptText(&self, buffer: &mut [u8], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPromptText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPromptText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputCurrentState)(::windows::core::Interface::as_raw(self), outputcontrol, flags).ok() @@ -21563,8 +21588,8 @@ impl IDebugControl2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).Assemble)(::windows::core::Interface::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: &mut [u8], disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Disassemble)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() + pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Disassemble)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() } pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21574,8 +21599,8 @@ impl IDebugControl2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).OutputDisassembly)(::windows::core::Interface::as_raw(self), outputcontrol, offset, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<&mut u32>, startoffset: ::core::option::Option<&mut u64>, endoffset: ::core::option::Option<&mut u64>, lineoffsets: &mut [u64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputDisassemblyLines)(::windows::core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.len() as _, offset, flags, ::core::mem::transmute(offsetline), ::core::mem::transmute(startoffset), ::core::mem::transmute(endoffset), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lineoffsets))).ok() + pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<&mut u32>, startoffset: ::core::option::Option<&mut u64>, endoffset: ::core::option::Option<&mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputDisassemblyLines)(::windows::core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len() as _), offset, flags, ::core::mem::transmute(offsetline), ::core::mem::transmute(startoffset), ::core::mem::transmute(endoffset), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21584,7 +21609,7 @@ impl IDebugControl2 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStackTrace)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() + (::windows::core::Interface::vtable(self).GetStackTrace)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() } pub unsafe fn GetReturnOffset(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21592,8 +21617,8 @@ impl IDebugControl2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, flags).ok() + pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok() } pub unsafe fn GetDebuggeeType(&self, class: &mut u32, qualifier: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDebuggeeType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(class), ::core::mem::transmute(qualifier)).ok() @@ -21611,14 +21636,27 @@ impl IDebugControl2 { (::windows::core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(types))).ok() + (::windows::core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok() } pub unsafe fn GetNumberProcessors(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberProcessors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetSystemVersion(&self, platformid: &mut u32, major: &mut u32, minor: &mut u32, servicepackstring: &mut [u8], servicepackstringused: ::core::option::Option<&mut u32>, servicepacknumber: &mut u32, buildstring: &mut [u8], buildstringused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemVersion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(platformid), ::core::mem::transmute(major), ::core::mem::transmute(minor), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(servicepackstring)), servicepackstring.len() as _, ::core::mem::transmute(servicepackstringused), ::core::mem::transmute(servicepacknumber), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buildstring)), buildstring.len() as _, ::core::mem::transmute(buildstringused)).ok() + pub unsafe fn GetSystemVersion(&self, platformid: &mut u32, major: &mut u32, minor: &mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<&mut u32>, servicepacknumber: &mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemVersion)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(platformid), + ::core::mem::transmute(major), + ::core::mem::transmute(minor), + ::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + servicepackstring.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(servicepackstringused), + ::core::mem::transmute(servicepacknumber), + ::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + buildstring.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(buildstringused), + ) + .ok() } pub unsafe fn GetPageSize(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21635,10 +21673,10 @@ impl IDebugControl2 { (::windows::core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(types))).ok() + (::windows::core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok() } - pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: &mut [u8], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u8], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProcessorTypeNames)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProcessorTypeNames)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21680,8 +21718,8 @@ impl IDebugControl2 { pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetSystemErrorControl)(::windows::core::Interface::as_raw(self), outputlevel, breaklevel).ok() } - pub unsafe fn GetTextMacro(&self, slot: u32, buffer: &mut [u8], macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTextMacro)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(macrosize)).ok() + pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTextMacro)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize)).ok() } pub unsafe fn SetTextMacro<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()> where @@ -21712,7 +21750,7 @@ impl IDebugControl2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn CoerceValues(&self, count: u32, r#in: &DEBUG_VALUE, outtypes: &u32, out: &mut DEBUG_VALUE) -> ::windows::core::Result<()> { + pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CoerceValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(r#in), ::core::mem::transmute(outtypes), ::core::mem::transmute(out)).ok() } pub unsafe fn Execute<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()> @@ -21739,7 +21777,7 @@ impl IDebugControl2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetBreakpointById)(::windows::core::Interface::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<&u32>, start: u32, params: &mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetBreakpointParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(ids), start, ::core::mem::transmute(params)).ok() } pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result { @@ -21797,11 +21835,11 @@ impl IDebugControl2 { pub unsafe fn GetNumberEventFilters(&self, specificevents: &mut u32, specificexceptions: &mut u32, arbitraryexceptions: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetNumberEventFilters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(specificevents), ::core::mem::transmute(specificexceptions), ::core::mem::transmute(arbitraryexceptions)).ok() } - pub unsafe fn GetEventFilterText(&self, index: u32, buffer: &mut [u8], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterText)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterText)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } - pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetEventFilterCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -21810,13 +21848,13 @@ impl IDebugControl2 { (::windows::core::Interface::vtable(self).SetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, command.into()).ok() } pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).GetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).SetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } - pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: &mut [u8], argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(argumentsize)).ok() + pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize)).ok() } pub unsafe fn SetSpecificFilterArgument<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()> where @@ -21824,14 +21862,14 @@ impl IDebugControl2 { { (::windows::core::Interface::vtable(self).SetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, argument.into()).ok() } - pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<&u32>, start: u32, params: &mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(codes), start, ::core::mem::transmute(params)).ok() } pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), params.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).SetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } - pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetExceptionFilterSecondCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -21842,8 +21880,20 @@ impl IDebugControl2 { pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WaitForEvent)(::windows::core::Interface::as_raw(self), flags, timeout).ok() } - pub unsafe fn GetLastEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: ::core::option::Option<&mut u32>, description: &mut [u8], descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLastEventInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(extrainformation), extrainformationsize, ::core::mem::transmute(extrainformationused), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(descriptionused)).ok() + pub unsafe fn GetLastEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: ::core::option::Option<&mut [u8]>, extrainformationused: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLastEventInformation)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(r#type), + ::core::mem::transmute(processid), + ::core::mem::transmute(threadid), + ::core::mem::transmute(extrainformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + extrainformation.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(extrainformationused), + ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + description.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(descriptionused), + ) + .ok() } pub unsafe fn GetCurrentTimeDate(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -21861,11 +21911,11 @@ impl IDebugControl2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberTextReplacements)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: &mut [u8], srcsize: ::core::option::Option<&mut u32>, dstbuffer: &mut [u8], dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<&mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetTextReplacement)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(srcbuffer)), srcbuffer.len() as _, ::core::mem::transmute(srcsize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dstbuffer)), dstbuffer.len() as _, ::core::mem::transmute(dstsize)).ok() + (::windows::core::Interface::vtable(self).GetTextReplacement)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), srcbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(srcsize), ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dstbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(dstsize)).ok() } pub unsafe fn SetTextReplacement<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()> where @@ -22070,8 +22120,8 @@ impl IDebugControl3 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLogFile(&self, buffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() + pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -22093,7 +22143,7 @@ impl IDebugControl3 { (::windows::core::Interface::vtable(self).SetLogMask)(::windows::core::Interface::as_raw(self), mask).ok() } pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Input)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() + (::windows::core::Interface::vtable(self).Input)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() } pub unsafe fn ReturnInput<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()> where @@ -22137,8 +22187,8 @@ impl IDebugControl3 { { (::windows::core::Interface::vtable(self).OutputPromptVaList)(::windows::core::Interface::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok() } - pub unsafe fn GetPromptText(&self, buffer: &mut [u8], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPromptText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPromptText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputCurrentState)(::windows::core::Interface::as_raw(self), outputcontrol, flags).ok() @@ -22160,8 +22210,8 @@ impl IDebugControl3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).Assemble)(::windows::core::Interface::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: &mut [u8], disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Disassemble)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() + pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Disassemble)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() } pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -22171,8 +22221,8 @@ impl IDebugControl3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).OutputDisassembly)(::windows::core::Interface::as_raw(self), outputcontrol, offset, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<&mut u32>, startoffset: ::core::option::Option<&mut u64>, endoffset: ::core::option::Option<&mut u64>, lineoffsets: &mut [u64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputDisassemblyLines)(::windows::core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.len() as _, offset, flags, ::core::mem::transmute(offsetline), ::core::mem::transmute(startoffset), ::core::mem::transmute(endoffset), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lineoffsets))).ok() + pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<&mut u32>, startoffset: ::core::option::Option<&mut u64>, endoffset: ::core::option::Option<&mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputDisassemblyLines)(::windows::core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len() as _), offset, flags, ::core::mem::transmute(offsetline), ::core::mem::transmute(startoffset), ::core::mem::transmute(endoffset), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -22181,7 +22231,7 @@ impl IDebugControl3 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStackTrace)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() + (::windows::core::Interface::vtable(self).GetStackTrace)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() } pub unsafe fn GetReturnOffset(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -22189,8 +22239,8 @@ impl IDebugControl3 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, flags).ok() + pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok() } pub unsafe fn GetDebuggeeType(&self, class: &mut u32, qualifier: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDebuggeeType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(class), ::core::mem::transmute(qualifier)).ok() @@ -22208,14 +22258,27 @@ impl IDebugControl3 { (::windows::core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(types))).ok() + (::windows::core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok() } pub unsafe fn GetNumberProcessors(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberProcessors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetSystemVersion(&self, platformid: &mut u32, major: &mut u32, minor: &mut u32, servicepackstring: &mut [u8], servicepackstringused: ::core::option::Option<&mut u32>, servicepacknumber: &mut u32, buildstring: &mut [u8], buildstringused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemVersion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(platformid), ::core::mem::transmute(major), ::core::mem::transmute(minor), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(servicepackstring)), servicepackstring.len() as _, ::core::mem::transmute(servicepackstringused), ::core::mem::transmute(servicepacknumber), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buildstring)), buildstring.len() as _, ::core::mem::transmute(buildstringused)).ok() + pub unsafe fn GetSystemVersion(&self, platformid: &mut u32, major: &mut u32, minor: &mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<&mut u32>, servicepacknumber: &mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemVersion)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(platformid), + ::core::mem::transmute(major), + ::core::mem::transmute(minor), + ::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + servicepackstring.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(servicepackstringused), + ::core::mem::transmute(servicepacknumber), + ::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + buildstring.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(buildstringused), + ) + .ok() } pub unsafe fn GetPageSize(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -22232,10 +22295,10 @@ impl IDebugControl3 { (::windows::core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(types))).ok() + (::windows::core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok() } - pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: &mut [u8], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u8], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProcessorTypeNames)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProcessorTypeNames)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -22277,8 +22340,8 @@ impl IDebugControl3 { pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetSystemErrorControl)(::windows::core::Interface::as_raw(self), outputlevel, breaklevel).ok() } - pub unsafe fn GetTextMacro(&self, slot: u32, buffer: &mut [u8], macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTextMacro)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(macrosize)).ok() + pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTextMacro)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize)).ok() } pub unsafe fn SetTextMacro<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()> where @@ -22309,7 +22372,7 @@ impl IDebugControl3 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn CoerceValues(&self, count: u32, r#in: &DEBUG_VALUE, outtypes: &u32, out: &mut DEBUG_VALUE) -> ::windows::core::Result<()> { + pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CoerceValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(r#in), ::core::mem::transmute(outtypes), ::core::mem::transmute(out)).ok() } pub unsafe fn Execute<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()> @@ -22336,7 +22399,7 @@ impl IDebugControl3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetBreakpointById)(::windows::core::Interface::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<&u32>, start: u32, params: &mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetBreakpointParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(ids), start, ::core::mem::transmute(params)).ok() } pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result { @@ -22394,11 +22457,11 @@ impl IDebugControl3 { pub unsafe fn GetNumberEventFilters(&self, specificevents: &mut u32, specificexceptions: &mut u32, arbitraryexceptions: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetNumberEventFilters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(specificevents), ::core::mem::transmute(specificexceptions), ::core::mem::transmute(arbitraryexceptions)).ok() } - pub unsafe fn GetEventFilterText(&self, index: u32, buffer: &mut [u8], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterText)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterText)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } - pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetEventFilterCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -22407,13 +22470,13 @@ impl IDebugControl3 { (::windows::core::Interface::vtable(self).SetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, command.into()).ok() } pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).GetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).SetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } - pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: &mut [u8], argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(argumentsize)).ok() + pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize)).ok() } pub unsafe fn SetSpecificFilterArgument<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()> where @@ -22421,14 +22484,14 @@ impl IDebugControl3 { { (::windows::core::Interface::vtable(self).SetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, argument.into()).ok() } - pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<&u32>, start: u32, params: &mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(codes), start, ::core::mem::transmute(params)).ok() } pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), params.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).SetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } - pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetExceptionFilterSecondCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -22439,8 +22502,20 @@ impl IDebugControl3 { pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WaitForEvent)(::windows::core::Interface::as_raw(self), flags, timeout).ok() } - pub unsafe fn GetLastEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: ::core::option::Option<&mut u32>, description: &mut [u8], descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLastEventInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(extrainformation), extrainformationsize, ::core::mem::transmute(extrainformationused), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(descriptionused)).ok() + pub unsafe fn GetLastEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: ::core::option::Option<&mut [u8]>, extrainformationused: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLastEventInformation)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(r#type), + ::core::mem::transmute(processid), + ::core::mem::transmute(threadid), + ::core::mem::transmute(extrainformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + extrainformation.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(extrainformationused), + ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + description.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(descriptionused), + ) + .ok() } pub unsafe fn GetCurrentTimeDate(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -22458,11 +22533,11 @@ impl IDebugControl3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberTextReplacements)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: &mut [u8], srcsize: ::core::option::Option<&mut u32>, dstbuffer: &mut [u8], dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<&mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetTextReplacement)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(srcbuffer)), srcbuffer.len() as _, ::core::mem::transmute(srcsize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dstbuffer)), dstbuffer.len() as _, ::core::mem::transmute(dstsize)).ok() + (::windows::core::Interface::vtable(self).GetTextReplacement)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), srcbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(srcsize), ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dstbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(dstsize)).ok() } pub unsafe fn SetTextReplacement<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()> where @@ -22507,8 +22582,8 @@ impl IDebugControl3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberExpressionSyntaxes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: &mut [u8], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u8], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExpressionSyntaxNames)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExpressionSyntaxNames)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } pub unsafe fn GetNumberEvents(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -22732,8 +22807,8 @@ impl IDebugControl4 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLogFile(&self, buffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() + pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -22755,7 +22830,7 @@ impl IDebugControl4 { (::windows::core::Interface::vtable(self).SetLogMask)(::windows::core::Interface::as_raw(self), mask).ok() } pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Input)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() + (::windows::core::Interface::vtable(self).Input)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() } pub unsafe fn ReturnInput<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()> where @@ -22799,8 +22874,8 @@ impl IDebugControl4 { { (::windows::core::Interface::vtable(self).OutputPromptVaList)(::windows::core::Interface::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok() } - pub unsafe fn GetPromptText(&self, buffer: &mut [u8], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPromptText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPromptText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputCurrentState)(::windows::core::Interface::as_raw(self), outputcontrol, flags).ok() @@ -22822,8 +22897,8 @@ impl IDebugControl4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).Assemble)(::windows::core::Interface::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: &mut [u8], disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Disassemble)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() + pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Disassemble)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() } pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -22833,8 +22908,8 @@ impl IDebugControl4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).OutputDisassembly)(::windows::core::Interface::as_raw(self), outputcontrol, offset, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<&mut u32>, startoffset: ::core::option::Option<&mut u64>, endoffset: ::core::option::Option<&mut u64>, lineoffsets: &mut [u64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputDisassemblyLines)(::windows::core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.len() as _, offset, flags, ::core::mem::transmute(offsetline), ::core::mem::transmute(startoffset), ::core::mem::transmute(endoffset), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lineoffsets))).ok() + pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<&mut u32>, startoffset: ::core::option::Option<&mut u64>, endoffset: ::core::option::Option<&mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputDisassemblyLines)(::windows::core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len() as _), offset, flags, ::core::mem::transmute(offsetline), ::core::mem::transmute(startoffset), ::core::mem::transmute(endoffset), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -22843,7 +22918,7 @@ impl IDebugControl4 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStackTrace)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() + (::windows::core::Interface::vtable(self).GetStackTrace)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() } pub unsafe fn GetReturnOffset(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -22851,8 +22926,8 @@ impl IDebugControl4 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, flags).ok() + pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok() } pub unsafe fn GetDebuggeeType(&self, class: &mut u32, qualifier: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDebuggeeType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(class), ::core::mem::transmute(qualifier)).ok() @@ -22870,14 +22945,27 @@ impl IDebugControl4 { (::windows::core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(types))).ok() + (::windows::core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok() } pub unsafe fn GetNumberProcessors(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberProcessors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetSystemVersion(&self, platformid: &mut u32, major: &mut u32, minor: &mut u32, servicepackstring: &mut [u8], servicepackstringused: ::core::option::Option<&mut u32>, servicepacknumber: &mut u32, buildstring: &mut [u8], buildstringused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemVersion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(platformid), ::core::mem::transmute(major), ::core::mem::transmute(minor), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(servicepackstring)), servicepackstring.len() as _, ::core::mem::transmute(servicepackstringused), ::core::mem::transmute(servicepacknumber), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buildstring)), buildstring.len() as _, ::core::mem::transmute(buildstringused)).ok() + pub unsafe fn GetSystemVersion(&self, platformid: &mut u32, major: &mut u32, minor: &mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<&mut u32>, servicepacknumber: &mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemVersion)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(platformid), + ::core::mem::transmute(major), + ::core::mem::transmute(minor), + ::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + servicepackstring.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(servicepackstringused), + ::core::mem::transmute(servicepacknumber), + ::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + buildstring.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(buildstringused), + ) + .ok() } pub unsafe fn GetPageSize(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -22894,10 +22982,10 @@ impl IDebugControl4 { (::windows::core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(types))).ok() + (::windows::core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok() } - pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: &mut [u8], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u8], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProcessorTypeNames)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProcessorTypeNames)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -22939,8 +23027,8 @@ impl IDebugControl4 { pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetSystemErrorControl)(::windows::core::Interface::as_raw(self), outputlevel, breaklevel).ok() } - pub unsafe fn GetTextMacro(&self, slot: u32, buffer: &mut [u8], macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTextMacro)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(macrosize)).ok() + pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTextMacro)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize)).ok() } pub unsafe fn SetTextMacro<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()> where @@ -22971,7 +23059,7 @@ impl IDebugControl4 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn CoerceValues(&self, count: u32, r#in: &DEBUG_VALUE, outtypes: &u32, out: &mut DEBUG_VALUE) -> ::windows::core::Result<()> { + pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CoerceValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(r#in), ::core::mem::transmute(outtypes), ::core::mem::transmute(out)).ok() } pub unsafe fn Execute<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()> @@ -22998,7 +23086,7 @@ impl IDebugControl4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetBreakpointById)(::windows::core::Interface::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<&u32>, start: u32, params: &mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetBreakpointParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(ids), start, ::core::mem::transmute(params)).ok() } pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result { @@ -23056,11 +23144,11 @@ impl IDebugControl4 { pub unsafe fn GetNumberEventFilters(&self, specificevents: &mut u32, specificexceptions: &mut u32, arbitraryexceptions: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetNumberEventFilters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(specificevents), ::core::mem::transmute(specificexceptions), ::core::mem::transmute(arbitraryexceptions)).ok() } - pub unsafe fn GetEventFilterText(&self, index: u32, buffer: &mut [u8], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterText)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterText)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } - pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetEventFilterCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -23069,13 +23157,13 @@ impl IDebugControl4 { (::windows::core::Interface::vtable(self).SetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, command.into()).ok() } pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).GetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).SetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } - pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: &mut [u8], argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(argumentsize)).ok() + pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize)).ok() } pub unsafe fn SetSpecificFilterArgument<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()> where @@ -23083,14 +23171,14 @@ impl IDebugControl4 { { (::windows::core::Interface::vtable(self).SetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, argument.into()).ok() } - pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<&u32>, start: u32, params: &mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(codes), start, ::core::mem::transmute(params)).ok() } pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), params.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).SetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } - pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetExceptionFilterSecondCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -23101,8 +23189,20 @@ impl IDebugControl4 { pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WaitForEvent)(::windows::core::Interface::as_raw(self), flags, timeout).ok() } - pub unsafe fn GetLastEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: ::core::option::Option<&mut u32>, description: &mut [u8], descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLastEventInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(extrainformation), extrainformationsize, ::core::mem::transmute(extrainformationused), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(descriptionused)).ok() + pub unsafe fn GetLastEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: ::core::option::Option<&mut [u8]>, extrainformationused: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLastEventInformation)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(r#type), + ::core::mem::transmute(processid), + ::core::mem::transmute(threadid), + ::core::mem::transmute(extrainformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + extrainformation.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(extrainformationused), + ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + description.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(descriptionused), + ) + .ok() } pub unsafe fn GetCurrentTimeDate(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -23120,11 +23220,11 @@ impl IDebugControl4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberTextReplacements)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: &mut [u8], srcsize: ::core::option::Option<&mut u32>, dstbuffer: &mut [u8], dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<&mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetTextReplacement)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(srcbuffer)), srcbuffer.len() as _, ::core::mem::transmute(srcsize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dstbuffer)), dstbuffer.len() as _, ::core::mem::transmute(dstsize)).ok() + (::windows::core::Interface::vtable(self).GetTextReplacement)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), srcbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(srcsize), ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dstbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(dstsize)).ok() } pub unsafe fn SetTextReplacement<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()> where @@ -23169,8 +23269,8 @@ impl IDebugControl4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberExpressionSyntaxes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: &mut [u8], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u8], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExpressionSyntaxNames)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExpressionSyntaxNames)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } pub unsafe fn GetNumberEvents(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -23193,8 +23293,8 @@ impl IDebugControl4 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLogFileWide(&self, buffer: &mut [u16], filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFileWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() + pub unsafe fn GetLogFileWide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFileWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -23206,7 +23306,7 @@ impl IDebugControl4 { (::windows::core::Interface::vtable(self).OpenLogFileWide)(::windows::core::Interface::as_raw(self), file.into(), append.into()).ok() } pub unsafe fn InputWide(&self, buffer: &mut [u16], inputsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).InputWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() + (::windows::core::Interface::vtable(self).InputWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() } pub unsafe fn ReturnInputWide<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()> where @@ -23250,8 +23350,8 @@ impl IDebugControl4 { { (::windows::core::Interface::vtable(self).OutputPromptVaListWide)(::windows::core::Interface::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok() } - pub unsafe fn GetPromptTextWide(&self, buffer: &mut [u16], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPromptTextWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetPromptTextWide(&self, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPromptTextWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } pub unsafe fn AssembleWide<'a, P0>(&self, offset: u64, instr: P0) -> ::windows::core::Result where @@ -23260,14 +23360,14 @@ impl IDebugControl4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).AssembleWide)(::windows::core::Interface::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: &mut [u16], disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DisassembleWide)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() + pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u16]>, disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).DisassembleWide)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() } - pub unsafe fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: &mut [u16], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u16], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProcessorTypeNamesWide)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProcessorTypeNamesWide)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } - pub unsafe fn GetTextMacroWide(&self, slot: u32, buffer: &mut [u16], macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTextMacroWide)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(macrosize)).ok() + pub unsafe fn GetTextMacroWide(&self, slot: u32, buffer: ::core::option::Option<&mut [u16]>, macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTextMacroWide)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize)).ok() } pub unsafe fn SetTextMacroWide<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()> where @@ -23342,11 +23442,11 @@ impl IDebugControl4 { { (::windows::core::Interface::vtable(self).GetExtensionFunctionWide)(::windows::core::Interface::as_raw(self), handle, funcname.into(), ::core::mem::transmute(function)).ok() } - pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: &mut [u16], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterTextWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterTextWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } - pub unsafe fn GetEventFilterCommandWide(&self, index: u32, buffer: &mut [u16], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterCommandWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetEventFilterCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterCommandWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetEventFilterCommandWide<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -23354,8 +23454,8 @@ impl IDebugControl4 { { (::windows::core::Interface::vtable(self).SetEventFilterCommandWide)(::windows::core::Interface::as_raw(self), index, command.into()).ok() } - pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: &mut [u16], argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterArgumentWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(argumentsize)).ok() + pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSpecificFilterArgumentWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize)).ok() } pub unsafe fn SetSpecificFilterArgumentWide<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()> where @@ -23363,8 +23463,8 @@ impl IDebugControl4 { { (::windows::core::Interface::vtable(self).SetSpecificFilterArgumentWide)(::windows::core::Interface::as_raw(self), index, argument.into()).ok() } - pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: &mut [u16], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommandWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommandWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetExceptionFilterSecondCommandWide<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -23372,14 +23472,26 @@ impl IDebugControl4 { { (::windows::core::Interface::vtable(self).SetExceptionFilterSecondCommandWide)(::windows::core::Interface::as_raw(self), index, command.into()).ok() } - pub unsafe fn GetLastEventInformationWide(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: ::core::option::Option<&mut u32>, description: &mut [u16], descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLastEventInformationWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(extrainformation), extrainformationsize, ::core::mem::transmute(extrainformationused), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(descriptionused)).ok() + pub unsafe fn GetLastEventInformationWide(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: ::core::option::Option<&mut [u8]>, extrainformationused: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u16]>, descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLastEventInformationWide)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(r#type), + ::core::mem::transmute(processid), + ::core::mem::transmute(threadid), + ::core::mem::transmute(extrainformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + extrainformation.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(extrainformationused), + ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + description.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(descriptionused), + ) + .ok() } - pub unsafe fn GetTextReplacementWide<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: &mut [u16], srcsize: ::core::option::Option<&mut u32>, dstbuffer: &mut [u16], dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetTextReplacementWide<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u16]>, srcsize: ::core::option::Option<&mut u32>, dstbuffer: ::core::option::Option<&mut [u16]>, dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetTextReplacementWide)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(srcbuffer)), srcbuffer.len() as _, ::core::mem::transmute(srcsize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dstbuffer)), dstbuffer.len() as _, ::core::mem::transmute(dstsize)).ok() + (::windows::core::Interface::vtable(self).GetTextReplacementWide)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), srcbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(srcsize), ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dstbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(dstsize)).ok() } pub unsafe fn SetTextReplacementWide<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()> where @@ -23394,8 +23506,8 @@ impl IDebugControl4 { { (::windows::core::Interface::vtable(self).SetExpressionSyntaxByNameWide)(::windows::core::Interface::as_raw(self), abbrevname.into()).ok() } - pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: &mut [u16], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u16], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExpressionSyntaxNamesWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExpressionSyntaxNamesWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } pub unsafe fn GetEventIndexDescriptionWide<'a, P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32) -> ::windows::core::Result where @@ -23404,8 +23516,8 @@ impl IDebugControl4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetEventIndexDescriptionWide)(::windows::core::Interface::as_raw(self), index, which, buffer.into(), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetLogFile2(&self, buffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, flags: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFile2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(flags)).ok() + pub unsafe fn GetLogFile2(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, flags: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFile2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(flags)).ok() } pub unsafe fn OpenLogFile2<'a, P0>(&self, file: P0, flags: u32) -> ::windows::core::Result<()> where @@ -23413,8 +23525,8 @@ impl IDebugControl4 { { (::windows::core::Interface::vtable(self).OpenLogFile2)(::windows::core::Interface::as_raw(self), file.into(), flags).ok() } - pub unsafe fn GetLogFile2Wide(&self, buffer: &mut [u16], filesize: ::core::option::Option<&mut u32>, flags: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFile2Wide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(flags)).ok() + pub unsafe fn GetLogFile2Wide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<&mut u32>, flags: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFile2Wide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(flags)).ok() } pub unsafe fn OpenLogFile2Wide<'a, P0>(&self, file: P0, flags: u32) -> ::windows::core::Result<()> where @@ -23425,30 +23537,53 @@ impl IDebugControl4 { pub unsafe fn GetSystemVersionValues(&self, platformid: &mut u32, win32major: &mut u32, win32minor: &mut u32, kdmajor: ::core::option::Option<&mut u32>, kdminor: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSystemVersionValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(platformid), ::core::mem::transmute(win32major), ::core::mem::transmute(win32minor), ::core::mem::transmute(kdmajor), ::core::mem::transmute(kdminor)).ok() } - pub unsafe fn GetSystemVersionString(&self, which: u32, buffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemVersionString)(::windows::core::Interface::as_raw(self), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSystemVersionString(&self, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemVersionString)(::windows::core::Interface::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSystemVersionStringWide(&self, which: u32, buffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemVersionStringWide)(::windows::core::Interface::as_raw(self), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSystemVersionStringWide(&self, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemVersionStringWide)(::windows::core::Interface::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetContextStackTrace(&self, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: &mut [DEBUG_STACK_FRAME], framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetContextStackTrace)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(startcontext), startcontextsize, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled)).ok() + pub unsafe fn GetContextStackTrace(&self, startcontext: ::core::option::Option<&[u8]>, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME]>, framecontexts: ::core::option::Option<&mut [u8]>, framecontextsentrysize: u32, framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetContextStackTrace)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(startcontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + startcontext.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + frames.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(framecontexts.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + framecontexts.as_deref().map_or(0, |slice| slice.len() as _), + framecontextsentrysize, + ::core::mem::transmute(framesfilled), + ) + .ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputContextStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputContextStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, flags).ok() + pub unsafe fn OutputContextStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], framecontexts: &[u8], framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputContextStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framecontexts.as_ptr()), framecontexts.len() as _, framecontextsentrysize, flags).ok() } - pub unsafe fn GetStoredEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, context: *mut ::core::ffi::c_void, contextsize: u32, contextused: ::core::option::Option<&mut u32>, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStoredEventInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(context), contextsize, ::core::mem::transmute(contextused), ::core::mem::transmute(extrainformation), extrainformationsize, ::core::mem::transmute(extrainformationused)).ok() + pub unsafe fn GetStoredEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, context: ::core::option::Option<&mut [u8]>, contextused: ::core::option::Option<&mut u32>, extrainformation: ::core::option::Option<&mut [u8]>, extrainformationused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetStoredEventInformation)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(r#type), + ::core::mem::transmute(processid), + ::core::mem::transmute(threadid), + ::core::mem::transmute(context.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + context.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(contextused), + ::core::mem::transmute(extrainformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + extrainformation.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(extrainformationused), + ) + .ok() } - pub unsafe fn GetManagedStatus(&self, flags: ::core::option::Option<&mut u32>, whichstring: u32, string: &mut [u8], stringneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetManagedStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(flags), whichstring, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(string)), string.len() as _, ::core::mem::transmute(stringneeded)).ok() + pub unsafe fn GetManagedStatus(&self, flags: ::core::option::Option<&mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u8]>, stringneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetManagedStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(flags), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringneeded)).ok() } - pub unsafe fn GetManagedStatusWide(&self, flags: ::core::option::Option<&mut u32>, whichstring: u32, string: &mut [u16], stringneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetManagedStatusWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(flags), whichstring, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(string)), string.len() as _, ::core::mem::transmute(stringneeded)).ok() + pub unsafe fn GetManagedStatusWide(&self, flags: ::core::option::Option<&mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u16]>, stringneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetManagedStatusWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(flags), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringneeded)).ok() } pub unsafe fn ResetManagedStatus(&self, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ResetManagedStatus)(::windows::core::Interface::as_raw(self), flags).ok() @@ -23727,8 +23862,8 @@ impl IDebugControl5 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLogFile(&self, buffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() + pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -23750,7 +23885,7 @@ impl IDebugControl5 { (::windows::core::Interface::vtable(self).SetLogMask)(::windows::core::Interface::as_raw(self), mask).ok() } pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Input)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() + (::windows::core::Interface::vtable(self).Input)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() } pub unsafe fn ReturnInput<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()> where @@ -23794,8 +23929,8 @@ impl IDebugControl5 { { (::windows::core::Interface::vtable(self).OutputPromptVaList)(::windows::core::Interface::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok() } - pub unsafe fn GetPromptText(&self, buffer: &mut [u8], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPromptText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPromptText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputCurrentState)(::windows::core::Interface::as_raw(self), outputcontrol, flags).ok() @@ -23817,8 +23952,8 @@ impl IDebugControl5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).Assemble)(::windows::core::Interface::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: &mut [u8], disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Disassemble)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() + pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Disassemble)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() } pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -23828,8 +23963,8 @@ impl IDebugControl5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).OutputDisassembly)(::windows::core::Interface::as_raw(self), outputcontrol, offset, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<&mut u32>, startoffset: ::core::option::Option<&mut u64>, endoffset: ::core::option::Option<&mut u64>, lineoffsets: &mut [u64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputDisassemblyLines)(::windows::core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.len() as _, offset, flags, ::core::mem::transmute(offsetline), ::core::mem::transmute(startoffset), ::core::mem::transmute(endoffset), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lineoffsets))).ok() + pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<&mut u32>, startoffset: ::core::option::Option<&mut u64>, endoffset: ::core::option::Option<&mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputDisassemblyLines)(::windows::core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len() as _), offset, flags, ::core::mem::transmute(offsetline), ::core::mem::transmute(startoffset), ::core::mem::transmute(endoffset), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -23838,7 +23973,7 @@ impl IDebugControl5 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStackTrace)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() + (::windows::core::Interface::vtable(self).GetStackTrace)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() } pub unsafe fn GetReturnOffset(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -23846,8 +23981,8 @@ impl IDebugControl5 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, flags).ok() + pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok() } pub unsafe fn GetDebuggeeType(&self, class: &mut u32, qualifier: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDebuggeeType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(class), ::core::mem::transmute(qualifier)).ok() @@ -23865,14 +24000,27 @@ impl IDebugControl5 { (::windows::core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(types))).ok() + (::windows::core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok() } pub unsafe fn GetNumberProcessors(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberProcessors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetSystemVersion(&self, platformid: &mut u32, major: &mut u32, minor: &mut u32, servicepackstring: &mut [u8], servicepackstringused: ::core::option::Option<&mut u32>, servicepacknumber: &mut u32, buildstring: &mut [u8], buildstringused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemVersion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(platformid), ::core::mem::transmute(major), ::core::mem::transmute(minor), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(servicepackstring)), servicepackstring.len() as _, ::core::mem::transmute(servicepackstringused), ::core::mem::transmute(servicepacknumber), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buildstring)), buildstring.len() as _, ::core::mem::transmute(buildstringused)).ok() + pub unsafe fn GetSystemVersion(&self, platformid: &mut u32, major: &mut u32, minor: &mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<&mut u32>, servicepacknumber: &mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemVersion)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(platformid), + ::core::mem::transmute(major), + ::core::mem::transmute(minor), + ::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + servicepackstring.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(servicepackstringused), + ::core::mem::transmute(servicepacknumber), + ::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + buildstring.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(buildstringused), + ) + .ok() } pub unsafe fn GetPageSize(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -23889,10 +24037,10 @@ impl IDebugControl5 { (::windows::core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(types))).ok() + (::windows::core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok() } - pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: &mut [u8], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u8], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProcessorTypeNames)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProcessorTypeNames)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -23934,8 +24082,8 @@ impl IDebugControl5 { pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetSystemErrorControl)(::windows::core::Interface::as_raw(self), outputlevel, breaklevel).ok() } - pub unsafe fn GetTextMacro(&self, slot: u32, buffer: &mut [u8], macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTextMacro)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(macrosize)).ok() + pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTextMacro)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize)).ok() } pub unsafe fn SetTextMacro<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()> where @@ -23966,7 +24114,7 @@ impl IDebugControl5 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn CoerceValues(&self, count: u32, r#in: &DEBUG_VALUE, outtypes: &u32, out: &mut DEBUG_VALUE) -> ::windows::core::Result<()> { + pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CoerceValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(r#in), ::core::mem::transmute(outtypes), ::core::mem::transmute(out)).ok() } pub unsafe fn Execute<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()> @@ -23993,7 +24141,7 @@ impl IDebugControl5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetBreakpointById)(::windows::core::Interface::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<&u32>, start: u32, params: &mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetBreakpointParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(ids), start, ::core::mem::transmute(params)).ok() } pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result { @@ -24051,11 +24199,11 @@ impl IDebugControl5 { pub unsafe fn GetNumberEventFilters(&self, specificevents: &mut u32, specificexceptions: &mut u32, arbitraryexceptions: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetNumberEventFilters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(specificevents), ::core::mem::transmute(specificexceptions), ::core::mem::transmute(arbitraryexceptions)).ok() } - pub unsafe fn GetEventFilterText(&self, index: u32, buffer: &mut [u8], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterText)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterText)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } - pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetEventFilterCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -24064,13 +24212,13 @@ impl IDebugControl5 { (::windows::core::Interface::vtable(self).SetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, command.into()).ok() } pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).GetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).SetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } - pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: &mut [u8], argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(argumentsize)).ok() + pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize)).ok() } pub unsafe fn SetSpecificFilterArgument<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()> where @@ -24078,14 +24226,14 @@ impl IDebugControl5 { { (::windows::core::Interface::vtable(self).SetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, argument.into()).ok() } - pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<&u32>, start: u32, params: &mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(codes), start, ::core::mem::transmute(params)).ok() } pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), params.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).SetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } - pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetExceptionFilterSecondCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -24096,8 +24244,20 @@ impl IDebugControl5 { pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WaitForEvent)(::windows::core::Interface::as_raw(self), flags, timeout).ok() } - pub unsafe fn GetLastEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: ::core::option::Option<&mut u32>, description: &mut [u8], descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLastEventInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(extrainformation), extrainformationsize, ::core::mem::transmute(extrainformationused), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(descriptionused)).ok() + pub unsafe fn GetLastEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: ::core::option::Option<&mut [u8]>, extrainformationused: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLastEventInformation)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(r#type), + ::core::mem::transmute(processid), + ::core::mem::transmute(threadid), + ::core::mem::transmute(extrainformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + extrainformation.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(extrainformationused), + ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + description.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(descriptionused), + ) + .ok() } pub unsafe fn GetCurrentTimeDate(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -24115,11 +24275,11 @@ impl IDebugControl5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberTextReplacements)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: &mut [u8], srcsize: ::core::option::Option<&mut u32>, dstbuffer: &mut [u8], dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<&mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetTextReplacement)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(srcbuffer)), srcbuffer.len() as _, ::core::mem::transmute(srcsize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dstbuffer)), dstbuffer.len() as _, ::core::mem::transmute(dstsize)).ok() + (::windows::core::Interface::vtable(self).GetTextReplacement)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), srcbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(srcsize), ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dstbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(dstsize)).ok() } pub unsafe fn SetTextReplacement<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()> where @@ -24164,8 +24324,8 @@ impl IDebugControl5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberExpressionSyntaxes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: &mut [u8], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u8], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExpressionSyntaxNames)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExpressionSyntaxNames)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } pub unsafe fn GetNumberEvents(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -24188,8 +24348,8 @@ impl IDebugControl5 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLogFileWide(&self, buffer: &mut [u16], filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFileWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() + pub unsafe fn GetLogFileWide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFileWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -24201,7 +24361,7 @@ impl IDebugControl5 { (::windows::core::Interface::vtable(self).OpenLogFileWide)(::windows::core::Interface::as_raw(self), file.into(), append.into()).ok() } pub unsafe fn InputWide(&self, buffer: &mut [u16], inputsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).InputWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() + (::windows::core::Interface::vtable(self).InputWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() } pub unsafe fn ReturnInputWide<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()> where @@ -24245,8 +24405,8 @@ impl IDebugControl5 { { (::windows::core::Interface::vtable(self).OutputPromptVaListWide)(::windows::core::Interface::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok() } - pub unsafe fn GetPromptTextWide(&self, buffer: &mut [u16], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPromptTextWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetPromptTextWide(&self, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPromptTextWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } pub unsafe fn AssembleWide<'a, P0>(&self, offset: u64, instr: P0) -> ::windows::core::Result where @@ -24255,14 +24415,14 @@ impl IDebugControl5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).AssembleWide)(::windows::core::Interface::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: &mut [u16], disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DisassembleWide)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() + pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u16]>, disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).DisassembleWide)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() } - pub unsafe fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: &mut [u16], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u16], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProcessorTypeNamesWide)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProcessorTypeNamesWide)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } - pub unsafe fn GetTextMacroWide(&self, slot: u32, buffer: &mut [u16], macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTextMacroWide)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(macrosize)).ok() + pub unsafe fn GetTextMacroWide(&self, slot: u32, buffer: ::core::option::Option<&mut [u16]>, macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTextMacroWide)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize)).ok() } pub unsafe fn SetTextMacroWide<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()> where @@ -24337,11 +24497,11 @@ impl IDebugControl5 { { (::windows::core::Interface::vtable(self).GetExtensionFunctionWide)(::windows::core::Interface::as_raw(self), handle, funcname.into(), ::core::mem::transmute(function)).ok() } - pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: &mut [u16], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterTextWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterTextWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } - pub unsafe fn GetEventFilterCommandWide(&self, index: u32, buffer: &mut [u16], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterCommandWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetEventFilterCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterCommandWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetEventFilterCommandWide<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -24349,8 +24509,8 @@ impl IDebugControl5 { { (::windows::core::Interface::vtable(self).SetEventFilterCommandWide)(::windows::core::Interface::as_raw(self), index, command.into()).ok() } - pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: &mut [u16], argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterArgumentWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(argumentsize)).ok() + pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSpecificFilterArgumentWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize)).ok() } pub unsafe fn SetSpecificFilterArgumentWide<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()> where @@ -24358,8 +24518,8 @@ impl IDebugControl5 { { (::windows::core::Interface::vtable(self).SetSpecificFilterArgumentWide)(::windows::core::Interface::as_raw(self), index, argument.into()).ok() } - pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: &mut [u16], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommandWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommandWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetExceptionFilterSecondCommandWide<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -24367,14 +24527,26 @@ impl IDebugControl5 { { (::windows::core::Interface::vtable(self).SetExceptionFilterSecondCommandWide)(::windows::core::Interface::as_raw(self), index, command.into()).ok() } - pub unsafe fn GetLastEventInformationWide(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: ::core::option::Option<&mut u32>, description: &mut [u16], descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLastEventInformationWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(extrainformation), extrainformationsize, ::core::mem::transmute(extrainformationused), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(descriptionused)).ok() + pub unsafe fn GetLastEventInformationWide(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: ::core::option::Option<&mut [u8]>, extrainformationused: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u16]>, descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLastEventInformationWide)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(r#type), + ::core::mem::transmute(processid), + ::core::mem::transmute(threadid), + ::core::mem::transmute(extrainformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + extrainformation.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(extrainformationused), + ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + description.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(descriptionused), + ) + .ok() } - pub unsafe fn GetTextReplacementWide<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: &mut [u16], srcsize: ::core::option::Option<&mut u32>, dstbuffer: &mut [u16], dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetTextReplacementWide<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u16]>, srcsize: ::core::option::Option<&mut u32>, dstbuffer: ::core::option::Option<&mut [u16]>, dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetTextReplacementWide)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(srcbuffer)), srcbuffer.len() as _, ::core::mem::transmute(srcsize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dstbuffer)), dstbuffer.len() as _, ::core::mem::transmute(dstsize)).ok() + (::windows::core::Interface::vtable(self).GetTextReplacementWide)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), srcbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(srcsize), ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dstbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(dstsize)).ok() } pub unsafe fn SetTextReplacementWide<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()> where @@ -24389,8 +24561,8 @@ impl IDebugControl5 { { (::windows::core::Interface::vtable(self).SetExpressionSyntaxByNameWide)(::windows::core::Interface::as_raw(self), abbrevname.into()).ok() } - pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: &mut [u16], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u16], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExpressionSyntaxNamesWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExpressionSyntaxNamesWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } pub unsafe fn GetEventIndexDescriptionWide<'a, P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32) -> ::windows::core::Result where @@ -24399,8 +24571,8 @@ impl IDebugControl5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetEventIndexDescriptionWide)(::windows::core::Interface::as_raw(self), index, which, buffer.into(), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetLogFile2(&self, buffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, flags: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFile2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(flags)).ok() + pub unsafe fn GetLogFile2(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, flags: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFile2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(flags)).ok() } pub unsafe fn OpenLogFile2<'a, P0>(&self, file: P0, flags: u32) -> ::windows::core::Result<()> where @@ -24408,8 +24580,8 @@ impl IDebugControl5 { { (::windows::core::Interface::vtable(self).OpenLogFile2)(::windows::core::Interface::as_raw(self), file.into(), flags).ok() } - pub unsafe fn GetLogFile2Wide(&self, buffer: &mut [u16], filesize: ::core::option::Option<&mut u32>, flags: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFile2Wide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(flags)).ok() + pub unsafe fn GetLogFile2Wide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<&mut u32>, flags: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFile2Wide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(flags)).ok() } pub unsafe fn OpenLogFile2Wide<'a, P0>(&self, file: P0, flags: u32) -> ::windows::core::Result<()> where @@ -24420,30 +24592,53 @@ impl IDebugControl5 { pub unsafe fn GetSystemVersionValues(&self, platformid: &mut u32, win32major: &mut u32, win32minor: &mut u32, kdmajor: ::core::option::Option<&mut u32>, kdminor: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSystemVersionValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(platformid), ::core::mem::transmute(win32major), ::core::mem::transmute(win32minor), ::core::mem::transmute(kdmajor), ::core::mem::transmute(kdminor)).ok() } - pub unsafe fn GetSystemVersionString(&self, which: u32, buffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemVersionString)(::windows::core::Interface::as_raw(self), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSystemVersionString(&self, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemVersionString)(::windows::core::Interface::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSystemVersionStringWide(&self, which: u32, buffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemVersionStringWide)(::windows::core::Interface::as_raw(self), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSystemVersionStringWide(&self, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemVersionStringWide)(::windows::core::Interface::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetContextStackTrace(&self, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: &mut [DEBUG_STACK_FRAME], framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetContextStackTrace)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(startcontext), startcontextsize, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled)).ok() + pub unsafe fn GetContextStackTrace(&self, startcontext: ::core::option::Option<&[u8]>, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME]>, framecontexts: ::core::option::Option<&mut [u8]>, framecontextsentrysize: u32, framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetContextStackTrace)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(startcontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + startcontext.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + frames.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(framecontexts.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + framecontexts.as_deref().map_or(0, |slice| slice.len() as _), + framecontextsentrysize, + ::core::mem::transmute(framesfilled), + ) + .ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputContextStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputContextStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, flags).ok() + pub unsafe fn OutputContextStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], framecontexts: &[u8], framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputContextStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framecontexts.as_ptr()), framecontexts.len() as _, framecontextsentrysize, flags).ok() } - pub unsafe fn GetStoredEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, context: *mut ::core::ffi::c_void, contextsize: u32, contextused: ::core::option::Option<&mut u32>, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStoredEventInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(context), contextsize, ::core::mem::transmute(contextused), ::core::mem::transmute(extrainformation), extrainformationsize, ::core::mem::transmute(extrainformationused)).ok() + pub unsafe fn GetStoredEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, context: ::core::option::Option<&mut [u8]>, contextused: ::core::option::Option<&mut u32>, extrainformation: ::core::option::Option<&mut [u8]>, extrainformationused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetStoredEventInformation)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(r#type), + ::core::mem::transmute(processid), + ::core::mem::transmute(threadid), + ::core::mem::transmute(context.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + context.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(contextused), + ::core::mem::transmute(extrainformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + extrainformation.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(extrainformationused), + ) + .ok() } - pub unsafe fn GetManagedStatus(&self, flags: ::core::option::Option<&mut u32>, whichstring: u32, string: &mut [u8], stringneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetManagedStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(flags), whichstring, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(string)), string.len() as _, ::core::mem::transmute(stringneeded)).ok() + pub unsafe fn GetManagedStatus(&self, flags: ::core::option::Option<&mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u8]>, stringneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetManagedStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(flags), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringneeded)).ok() } - pub unsafe fn GetManagedStatusWide(&self, flags: ::core::option::Option<&mut u32>, whichstring: u32, string: &mut [u16], stringneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetManagedStatusWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(flags), whichstring, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(string)), string.len() as _, ::core::mem::transmute(stringneeded)).ok() + pub unsafe fn GetManagedStatusWide(&self, flags: ::core::option::Option<&mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u16]>, stringneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetManagedStatusWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(flags), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringneeded)).ok() } pub unsafe fn ResetManagedStatus(&self, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ResetManagedStatus)(::windows::core::Interface::as_raw(self), flags).ok() @@ -24451,22 +24646,33 @@ impl IDebugControl5 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetStackTraceEx(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME_EX], framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStackTraceEx)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() + (::windows::core::Interface::vtable(self).GetStackTraceEx)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputStackTraceEx(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME_EX], flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputStackTraceEx)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, flags).ok() + pub unsafe fn OutputStackTraceEx(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME_EX]>, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputStackTraceEx)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetContextStackTraceEx(&self, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: &mut [DEBUG_STACK_FRAME_EX], framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetContextStackTraceEx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(startcontext), startcontextsize, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled)).ok() + pub unsafe fn GetContextStackTraceEx(&self, startcontext: ::core::option::Option<&[u8]>, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME_EX]>, framecontexts: ::core::option::Option<&mut [u8]>, framecontextsentrysize: u32, framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetContextStackTraceEx)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(startcontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + startcontext.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + frames.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(framecontexts.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + framecontexts.as_deref().map_or(0, |slice| slice.len() as _), + framecontextsentrysize, + ::core::mem::transmute(framesfilled), + ) + .ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputContextStackTraceEx(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME_EX], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputContextStackTraceEx)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, flags).ok() + pub unsafe fn OutputContextStackTraceEx(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME_EX], framecontexts: &[u8], framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputContextStackTraceEx)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framecontexts.as_ptr()), framecontexts.len() as _, framecontextsentrysize, flags).ok() } pub unsafe fn GetBreakpointByGuid(&self, guid: &::windows::core::GUID) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -24763,8 +24969,8 @@ impl IDebugControl6 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLogFile(&self, buffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() + pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -24786,7 +24992,7 @@ impl IDebugControl6 { (::windows::core::Interface::vtable(self).SetLogMask)(::windows::core::Interface::as_raw(self), mask).ok() } pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Input)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() + (::windows::core::Interface::vtable(self).Input)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() } pub unsafe fn ReturnInput<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()> where @@ -24830,8 +25036,8 @@ impl IDebugControl6 { { (::windows::core::Interface::vtable(self).OutputPromptVaList)(::windows::core::Interface::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok() } - pub unsafe fn GetPromptText(&self, buffer: &mut [u8], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPromptText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPromptText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputCurrentState)(::windows::core::Interface::as_raw(self), outputcontrol, flags).ok() @@ -24853,8 +25059,8 @@ impl IDebugControl6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).Assemble)(::windows::core::Interface::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: &mut [u8], disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Disassemble)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() + pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Disassemble)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() } pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -24864,8 +25070,8 @@ impl IDebugControl6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).OutputDisassembly)(::windows::core::Interface::as_raw(self), outputcontrol, offset, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<&mut u32>, startoffset: ::core::option::Option<&mut u64>, endoffset: ::core::option::Option<&mut u64>, lineoffsets: &mut [u64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputDisassemblyLines)(::windows::core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.len() as _, offset, flags, ::core::mem::transmute(offsetline), ::core::mem::transmute(startoffset), ::core::mem::transmute(endoffset), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lineoffsets))).ok() + pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<&mut u32>, startoffset: ::core::option::Option<&mut u64>, endoffset: ::core::option::Option<&mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputDisassemblyLines)(::windows::core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len() as _), offset, flags, ::core::mem::transmute(offsetline), ::core::mem::transmute(startoffset), ::core::mem::transmute(endoffset), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -24874,7 +25080,7 @@ impl IDebugControl6 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStackTrace)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() + (::windows::core::Interface::vtable(self).GetStackTrace)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() } pub unsafe fn GetReturnOffset(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -24882,8 +25088,8 @@ impl IDebugControl6 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, flags).ok() + pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok() } pub unsafe fn GetDebuggeeType(&self, class: &mut u32, qualifier: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDebuggeeType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(class), ::core::mem::transmute(qualifier)).ok() @@ -24901,14 +25107,27 @@ impl IDebugControl6 { (::windows::core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(types))).ok() + (::windows::core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok() } pub unsafe fn GetNumberProcessors(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberProcessors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetSystemVersion(&self, platformid: &mut u32, major: &mut u32, minor: &mut u32, servicepackstring: &mut [u8], servicepackstringused: ::core::option::Option<&mut u32>, servicepacknumber: &mut u32, buildstring: &mut [u8], buildstringused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemVersion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(platformid), ::core::mem::transmute(major), ::core::mem::transmute(minor), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(servicepackstring)), servicepackstring.len() as _, ::core::mem::transmute(servicepackstringused), ::core::mem::transmute(servicepacknumber), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buildstring)), buildstring.len() as _, ::core::mem::transmute(buildstringused)).ok() + pub unsafe fn GetSystemVersion(&self, platformid: &mut u32, major: &mut u32, minor: &mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<&mut u32>, servicepacknumber: &mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemVersion)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(platformid), + ::core::mem::transmute(major), + ::core::mem::transmute(minor), + ::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + servicepackstring.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(servicepackstringused), + ::core::mem::transmute(servicepacknumber), + ::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + buildstring.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(buildstringused), + ) + .ok() } pub unsafe fn GetPageSize(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -24925,10 +25144,10 @@ impl IDebugControl6 { (::windows::core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(types))).ok() + (::windows::core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok() } - pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: &mut [u8], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u8], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProcessorTypeNames)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProcessorTypeNames)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -24970,8 +25189,8 @@ impl IDebugControl6 { pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetSystemErrorControl)(::windows::core::Interface::as_raw(self), outputlevel, breaklevel).ok() } - pub unsafe fn GetTextMacro(&self, slot: u32, buffer: &mut [u8], macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTextMacro)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(macrosize)).ok() + pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTextMacro)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize)).ok() } pub unsafe fn SetTextMacro<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()> where @@ -25002,7 +25221,7 @@ impl IDebugControl6 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn CoerceValues(&self, count: u32, r#in: &DEBUG_VALUE, outtypes: &u32, out: &mut DEBUG_VALUE) -> ::windows::core::Result<()> { + pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CoerceValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(r#in), ::core::mem::transmute(outtypes), ::core::mem::transmute(out)).ok() } pub unsafe fn Execute<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()> @@ -25029,7 +25248,7 @@ impl IDebugControl6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetBreakpointById)(::windows::core::Interface::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<&u32>, start: u32, params: &mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetBreakpointParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(ids), start, ::core::mem::transmute(params)).ok() } pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result { @@ -25087,11 +25306,11 @@ impl IDebugControl6 { pub unsafe fn GetNumberEventFilters(&self, specificevents: &mut u32, specificexceptions: &mut u32, arbitraryexceptions: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetNumberEventFilters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(specificevents), ::core::mem::transmute(specificexceptions), ::core::mem::transmute(arbitraryexceptions)).ok() } - pub unsafe fn GetEventFilterText(&self, index: u32, buffer: &mut [u8], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterText)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterText)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } - pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetEventFilterCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -25100,13 +25319,13 @@ impl IDebugControl6 { (::windows::core::Interface::vtable(self).SetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, command.into()).ok() } pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).GetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).SetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } - pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: &mut [u8], argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(argumentsize)).ok() + pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize)).ok() } pub unsafe fn SetSpecificFilterArgument<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()> where @@ -25114,14 +25333,14 @@ impl IDebugControl6 { { (::windows::core::Interface::vtable(self).SetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, argument.into()).ok() } - pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<&u32>, start: u32, params: &mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(codes), start, ::core::mem::transmute(params)).ok() } pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), params.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).SetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } - pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetExceptionFilterSecondCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -25132,8 +25351,20 @@ impl IDebugControl6 { pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WaitForEvent)(::windows::core::Interface::as_raw(self), flags, timeout).ok() } - pub unsafe fn GetLastEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: ::core::option::Option<&mut u32>, description: &mut [u8], descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLastEventInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(extrainformation), extrainformationsize, ::core::mem::transmute(extrainformationused), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(descriptionused)).ok() + pub unsafe fn GetLastEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: ::core::option::Option<&mut [u8]>, extrainformationused: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLastEventInformation)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(r#type), + ::core::mem::transmute(processid), + ::core::mem::transmute(threadid), + ::core::mem::transmute(extrainformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + extrainformation.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(extrainformationused), + ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + description.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(descriptionused), + ) + .ok() } pub unsafe fn GetCurrentTimeDate(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -25151,11 +25382,11 @@ impl IDebugControl6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberTextReplacements)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: &mut [u8], srcsize: ::core::option::Option<&mut u32>, dstbuffer: &mut [u8], dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<&mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetTextReplacement)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(srcbuffer)), srcbuffer.len() as _, ::core::mem::transmute(srcsize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dstbuffer)), dstbuffer.len() as _, ::core::mem::transmute(dstsize)).ok() + (::windows::core::Interface::vtable(self).GetTextReplacement)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), srcbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(srcsize), ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dstbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(dstsize)).ok() } pub unsafe fn SetTextReplacement<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()> where @@ -25200,8 +25431,8 @@ impl IDebugControl6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberExpressionSyntaxes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: &mut [u8], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u8], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExpressionSyntaxNames)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExpressionSyntaxNames)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } pub unsafe fn GetNumberEvents(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -25224,8 +25455,8 @@ impl IDebugControl6 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLogFileWide(&self, buffer: &mut [u16], filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFileWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() + pub unsafe fn GetLogFileWide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFileWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -25237,7 +25468,7 @@ impl IDebugControl6 { (::windows::core::Interface::vtable(self).OpenLogFileWide)(::windows::core::Interface::as_raw(self), file.into(), append.into()).ok() } pub unsafe fn InputWide(&self, buffer: &mut [u16], inputsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).InputWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() + (::windows::core::Interface::vtable(self).InputWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() } pub unsafe fn ReturnInputWide<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()> where @@ -25281,8 +25512,8 @@ impl IDebugControl6 { { (::windows::core::Interface::vtable(self).OutputPromptVaListWide)(::windows::core::Interface::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok() } - pub unsafe fn GetPromptTextWide(&self, buffer: &mut [u16], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPromptTextWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetPromptTextWide(&self, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPromptTextWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } pub unsafe fn AssembleWide<'a, P0>(&self, offset: u64, instr: P0) -> ::windows::core::Result where @@ -25291,14 +25522,14 @@ impl IDebugControl6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).AssembleWide)(::windows::core::Interface::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: &mut [u16], disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DisassembleWide)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() + pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u16]>, disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).DisassembleWide)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() } - pub unsafe fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: &mut [u16], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u16], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProcessorTypeNamesWide)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProcessorTypeNamesWide)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } - pub unsafe fn GetTextMacroWide(&self, slot: u32, buffer: &mut [u16], macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTextMacroWide)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(macrosize)).ok() + pub unsafe fn GetTextMacroWide(&self, slot: u32, buffer: ::core::option::Option<&mut [u16]>, macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTextMacroWide)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize)).ok() } pub unsafe fn SetTextMacroWide<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()> where @@ -25373,11 +25604,11 @@ impl IDebugControl6 { { (::windows::core::Interface::vtable(self).GetExtensionFunctionWide)(::windows::core::Interface::as_raw(self), handle, funcname.into(), ::core::mem::transmute(function)).ok() } - pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: &mut [u16], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterTextWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterTextWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } - pub unsafe fn GetEventFilterCommandWide(&self, index: u32, buffer: &mut [u16], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterCommandWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetEventFilterCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterCommandWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetEventFilterCommandWide<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -25385,8 +25616,8 @@ impl IDebugControl6 { { (::windows::core::Interface::vtable(self).SetEventFilterCommandWide)(::windows::core::Interface::as_raw(self), index, command.into()).ok() } - pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: &mut [u16], argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterArgumentWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(argumentsize)).ok() + pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSpecificFilterArgumentWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize)).ok() } pub unsafe fn SetSpecificFilterArgumentWide<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()> where @@ -25394,8 +25625,8 @@ impl IDebugControl6 { { (::windows::core::Interface::vtable(self).SetSpecificFilterArgumentWide)(::windows::core::Interface::as_raw(self), index, argument.into()).ok() } - pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: &mut [u16], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommandWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommandWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetExceptionFilterSecondCommandWide<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -25403,14 +25634,26 @@ impl IDebugControl6 { { (::windows::core::Interface::vtable(self).SetExceptionFilterSecondCommandWide)(::windows::core::Interface::as_raw(self), index, command.into()).ok() } - pub unsafe fn GetLastEventInformationWide(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: ::core::option::Option<&mut u32>, description: &mut [u16], descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLastEventInformationWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(extrainformation), extrainformationsize, ::core::mem::transmute(extrainformationused), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(descriptionused)).ok() + pub unsafe fn GetLastEventInformationWide(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: ::core::option::Option<&mut [u8]>, extrainformationused: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u16]>, descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLastEventInformationWide)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(r#type), + ::core::mem::transmute(processid), + ::core::mem::transmute(threadid), + ::core::mem::transmute(extrainformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + extrainformation.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(extrainformationused), + ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + description.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(descriptionused), + ) + .ok() } - pub unsafe fn GetTextReplacementWide<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: &mut [u16], srcsize: ::core::option::Option<&mut u32>, dstbuffer: &mut [u16], dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetTextReplacementWide<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u16]>, srcsize: ::core::option::Option<&mut u32>, dstbuffer: ::core::option::Option<&mut [u16]>, dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetTextReplacementWide)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(srcbuffer)), srcbuffer.len() as _, ::core::mem::transmute(srcsize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dstbuffer)), dstbuffer.len() as _, ::core::mem::transmute(dstsize)).ok() + (::windows::core::Interface::vtable(self).GetTextReplacementWide)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), srcbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(srcsize), ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dstbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(dstsize)).ok() } pub unsafe fn SetTextReplacementWide<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()> where @@ -25425,8 +25668,8 @@ impl IDebugControl6 { { (::windows::core::Interface::vtable(self).SetExpressionSyntaxByNameWide)(::windows::core::Interface::as_raw(self), abbrevname.into()).ok() } - pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: &mut [u16], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u16], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExpressionSyntaxNamesWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExpressionSyntaxNamesWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } pub unsafe fn GetEventIndexDescriptionWide<'a, P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32) -> ::windows::core::Result where @@ -25435,8 +25678,8 @@ impl IDebugControl6 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetEventIndexDescriptionWide)(::windows::core::Interface::as_raw(self), index, which, buffer.into(), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetLogFile2(&self, buffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, flags: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFile2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(flags)).ok() + pub unsafe fn GetLogFile2(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, flags: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFile2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(flags)).ok() } pub unsafe fn OpenLogFile2<'a, P0>(&self, file: P0, flags: u32) -> ::windows::core::Result<()> where @@ -25444,8 +25687,8 @@ impl IDebugControl6 { { (::windows::core::Interface::vtable(self).OpenLogFile2)(::windows::core::Interface::as_raw(self), file.into(), flags).ok() } - pub unsafe fn GetLogFile2Wide(&self, buffer: &mut [u16], filesize: ::core::option::Option<&mut u32>, flags: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFile2Wide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(flags)).ok() + pub unsafe fn GetLogFile2Wide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<&mut u32>, flags: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFile2Wide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(flags)).ok() } pub unsafe fn OpenLogFile2Wide<'a, P0>(&self, file: P0, flags: u32) -> ::windows::core::Result<()> where @@ -25456,30 +25699,53 @@ impl IDebugControl6 { pub unsafe fn GetSystemVersionValues(&self, platformid: &mut u32, win32major: &mut u32, win32minor: &mut u32, kdmajor: ::core::option::Option<&mut u32>, kdminor: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSystemVersionValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(platformid), ::core::mem::transmute(win32major), ::core::mem::transmute(win32minor), ::core::mem::transmute(kdmajor), ::core::mem::transmute(kdminor)).ok() } - pub unsafe fn GetSystemVersionString(&self, which: u32, buffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemVersionString)(::windows::core::Interface::as_raw(self), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSystemVersionString(&self, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemVersionString)(::windows::core::Interface::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSystemVersionStringWide(&self, which: u32, buffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemVersionStringWide)(::windows::core::Interface::as_raw(self), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSystemVersionStringWide(&self, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemVersionStringWide)(::windows::core::Interface::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetContextStackTrace(&self, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: &mut [DEBUG_STACK_FRAME], framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetContextStackTrace)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(startcontext), startcontextsize, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled)).ok() + pub unsafe fn GetContextStackTrace(&self, startcontext: ::core::option::Option<&[u8]>, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME]>, framecontexts: ::core::option::Option<&mut [u8]>, framecontextsentrysize: u32, framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetContextStackTrace)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(startcontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + startcontext.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + frames.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(framecontexts.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + framecontexts.as_deref().map_or(0, |slice| slice.len() as _), + framecontextsentrysize, + ::core::mem::transmute(framesfilled), + ) + .ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputContextStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputContextStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, flags).ok() + pub unsafe fn OutputContextStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], framecontexts: &[u8], framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputContextStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framecontexts.as_ptr()), framecontexts.len() as _, framecontextsentrysize, flags).ok() } - pub unsafe fn GetStoredEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, context: *mut ::core::ffi::c_void, contextsize: u32, contextused: ::core::option::Option<&mut u32>, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStoredEventInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(context), contextsize, ::core::mem::transmute(contextused), ::core::mem::transmute(extrainformation), extrainformationsize, ::core::mem::transmute(extrainformationused)).ok() + pub unsafe fn GetStoredEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, context: ::core::option::Option<&mut [u8]>, contextused: ::core::option::Option<&mut u32>, extrainformation: ::core::option::Option<&mut [u8]>, extrainformationused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetStoredEventInformation)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(r#type), + ::core::mem::transmute(processid), + ::core::mem::transmute(threadid), + ::core::mem::transmute(context.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + context.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(contextused), + ::core::mem::transmute(extrainformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + extrainformation.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(extrainformationused), + ) + .ok() } - pub unsafe fn GetManagedStatus(&self, flags: ::core::option::Option<&mut u32>, whichstring: u32, string: &mut [u8], stringneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetManagedStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(flags), whichstring, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(string)), string.len() as _, ::core::mem::transmute(stringneeded)).ok() + pub unsafe fn GetManagedStatus(&self, flags: ::core::option::Option<&mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u8]>, stringneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetManagedStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(flags), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringneeded)).ok() } - pub unsafe fn GetManagedStatusWide(&self, flags: ::core::option::Option<&mut u32>, whichstring: u32, string: &mut [u16], stringneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetManagedStatusWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(flags), whichstring, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(string)), string.len() as _, ::core::mem::transmute(stringneeded)).ok() + pub unsafe fn GetManagedStatusWide(&self, flags: ::core::option::Option<&mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u16]>, stringneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetManagedStatusWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(flags), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringneeded)).ok() } pub unsafe fn ResetManagedStatus(&self, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ResetManagedStatus)(::windows::core::Interface::as_raw(self), flags).ok() @@ -25487,22 +25753,33 @@ impl IDebugControl6 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetStackTraceEx(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME_EX], framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStackTraceEx)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() + (::windows::core::Interface::vtable(self).GetStackTraceEx)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputStackTraceEx(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME_EX], flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputStackTraceEx)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, flags).ok() + pub unsafe fn OutputStackTraceEx(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME_EX]>, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputStackTraceEx)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetContextStackTraceEx(&self, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: &mut [DEBUG_STACK_FRAME_EX], framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetContextStackTraceEx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(startcontext), startcontextsize, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled)).ok() + pub unsafe fn GetContextStackTraceEx(&self, startcontext: ::core::option::Option<&[u8]>, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME_EX]>, framecontexts: ::core::option::Option<&mut [u8]>, framecontextsentrysize: u32, framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetContextStackTraceEx)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(startcontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + startcontext.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + frames.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(framecontexts.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + framecontexts.as_deref().map_or(0, |slice| slice.len() as _), + framecontextsentrysize, + ::core::mem::transmute(framesfilled), + ) + .ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputContextStackTraceEx(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME_EX], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputContextStackTraceEx)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, flags).ok() + pub unsafe fn OutputContextStackTraceEx(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME_EX], framecontexts: &[u8], framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputContextStackTraceEx)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framecontexts.as_ptr()), framecontexts.len() as _, framecontextsentrysize, flags).ok() } pub unsafe fn GetBreakpointByGuid(&self, guid: &::windows::core::GUID) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -25808,8 +26085,8 @@ impl IDebugControl7 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLogFile(&self, buffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() + pub unsafe fn GetLogFile(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -25831,7 +26108,7 @@ impl IDebugControl7 { (::windows::core::Interface::vtable(self).SetLogMask)(::windows::core::Interface::as_raw(self), mask).ok() } pub unsafe fn Input(&self, buffer: &mut [u8], inputsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Input)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() + (::windows::core::Interface::vtable(self).Input)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() } pub unsafe fn ReturnInput<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()> where @@ -25875,8 +26152,8 @@ impl IDebugControl7 { { (::windows::core::Interface::vtable(self).OutputPromptVaList)(::windows::core::Interface::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok() } - pub unsafe fn GetPromptText(&self, buffer: &mut [u8], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPromptText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetPromptText(&self, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPromptText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } pub unsafe fn OutputCurrentState(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputCurrentState)(::windows::core::Interface::as_raw(self), outputcontrol, flags).ok() @@ -25898,8 +26175,8 @@ impl IDebugControl7 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).Assemble)(::windows::core::Interface::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: &mut [u8], disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Disassemble)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() + pub unsafe fn Disassemble(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Disassemble)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() } pub unsafe fn GetDisassembleEffectiveOffset(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -25909,8 +26186,8 @@ impl IDebugControl7 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).OutputDisassembly)(::windows::core::Interface::as_raw(self), outputcontrol, offset, flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<&mut u32>, startoffset: ::core::option::Option<&mut u64>, endoffset: ::core::option::Option<&mut u64>, lineoffsets: &mut [u64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputDisassemblyLines)(::windows::core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.len() as _, offset, flags, ::core::mem::transmute(offsetline), ::core::mem::transmute(startoffset), ::core::mem::transmute(endoffset), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lineoffsets))).ok() + pub unsafe fn OutputDisassemblyLines(&self, outputcontrol: u32, previouslines: u32, offset: u64, flags: u32, offsetline: ::core::option::Option<&mut u32>, startoffset: ::core::option::Option<&mut u64>, endoffset: ::core::option::Option<&mut u64>, lineoffsets: ::core::option::Option<&mut [u64]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputDisassemblyLines)(::windows::core::Interface::as_raw(self), outputcontrol, previouslines, lineoffsets.as_deref().map_or(0, |slice| slice.len() as _), offset, flags, ::core::mem::transmute(offsetline), ::core::mem::transmute(startoffset), ::core::mem::transmute(endoffset), ::core::mem::transmute(lineoffsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn GetNearInstruction(&self, offset: u64, delta: i32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -25919,7 +26196,7 @@ impl IDebugControl7 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetStackTrace(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME], framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStackTrace)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() + (::windows::core::Interface::vtable(self).GetStackTrace)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() } pub unsafe fn GetReturnOffset(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -25927,8 +26204,8 @@ impl IDebugControl7 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, flags).ok() + pub unsafe fn OutputStackTrace(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME]>, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok() } pub unsafe fn GetDebuggeeType(&self, class: &mut u32, qualifier: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDebuggeeType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(class), ::core::mem::transmute(qualifier)).ok() @@ -25946,14 +26223,27 @@ impl IDebugControl7 { (::windows::core::Interface::vtable(self).GetNumberPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetPossibleExecutingProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(types))).ok() + (::windows::core::Interface::vtable(self).GetPossibleExecutingProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok() } pub unsafe fn GetNumberProcessors(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberProcessors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetSystemVersion(&self, platformid: &mut u32, major: &mut u32, minor: &mut u32, servicepackstring: &mut [u8], servicepackstringused: ::core::option::Option<&mut u32>, servicepacknumber: &mut u32, buildstring: &mut [u8], buildstringused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemVersion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(platformid), ::core::mem::transmute(major), ::core::mem::transmute(minor), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(servicepackstring)), servicepackstring.len() as _, ::core::mem::transmute(servicepackstringused), ::core::mem::transmute(servicepacknumber), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buildstring)), buildstring.len() as _, ::core::mem::transmute(buildstringused)).ok() + pub unsafe fn GetSystemVersion(&self, platformid: &mut u32, major: &mut u32, minor: &mut u32, servicepackstring: ::core::option::Option<&mut [u8]>, servicepackstringused: ::core::option::Option<&mut u32>, servicepacknumber: &mut u32, buildstring: ::core::option::Option<&mut [u8]>, buildstringused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemVersion)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(platformid), + ::core::mem::transmute(major), + ::core::mem::transmute(minor), + ::core::mem::transmute(servicepackstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + servicepackstring.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(servicepackstringused), + ::core::mem::transmute(servicepacknumber), + ::core::mem::transmute(buildstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + buildstring.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(buildstringused), + ) + .ok() } pub unsafe fn GetPageSize(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -25970,10 +26260,10 @@ impl IDebugControl7 { (::windows::core::Interface::vtable(self).GetNumberSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetSupportedProcessorTypes(&self, start: u32, types: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(types))).ok() + (::windows::core::Interface::vtable(self).GetSupportedProcessorTypes)(::windows::core::Interface::as_raw(self), start, types.len() as _, ::core::mem::transmute(types.as_ptr())).ok() } - pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: &mut [u8], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u8], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProcessorTypeNames)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetProcessorTypeNames(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProcessorTypeNames)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } pub unsafe fn GetEffectiveProcessorType(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -26015,8 +26305,8 @@ impl IDebugControl7 { pub unsafe fn SetSystemErrorControl(&self, outputlevel: u32, breaklevel: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetSystemErrorControl)(::windows::core::Interface::as_raw(self), outputlevel, breaklevel).ok() } - pub unsafe fn GetTextMacro(&self, slot: u32, buffer: &mut [u8], macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTextMacro)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(macrosize)).ok() + pub unsafe fn GetTextMacro(&self, slot: u32, buffer: ::core::option::Option<&mut [u8]>, macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTextMacro)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize)).ok() } pub unsafe fn SetTextMacro<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()> where @@ -26047,7 +26337,7 @@ impl IDebugControl7 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn CoerceValues(&self, count: u32, r#in: &DEBUG_VALUE, outtypes: &u32, out: &mut DEBUG_VALUE) -> ::windows::core::Result<()> { + pub unsafe fn CoerceValues(&self, count: u32, r#in: *const DEBUG_VALUE, outtypes: *const u32, out: *mut DEBUG_VALUE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CoerceValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(r#in), ::core::mem::transmute(outtypes), ::core::mem::transmute(out)).ok() } pub unsafe fn Execute<'a, P0>(&self, outputcontrol: u32, command: P0, flags: u32) -> ::windows::core::Result<()> @@ -26074,7 +26364,7 @@ impl IDebugControl7 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetBreakpointById)(::windows::core::Interface::as_raw(self), id, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: ::core::option::Option<&u32>, start: u32, params: &mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetBreakpointParameters(&self, count: u32, ids: *const u32, start: u32, params: *mut DEBUG_BREAKPOINT_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetBreakpointParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(ids), start, ::core::mem::transmute(params)).ok() } pub unsafe fn AddBreakpoint(&self, r#type: u32, desiredid: u32) -> ::windows::core::Result { @@ -26132,11 +26422,11 @@ impl IDebugControl7 { pub unsafe fn GetNumberEventFilters(&self, specificevents: &mut u32, specificexceptions: &mut u32, arbitraryexceptions: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetNumberEventFilters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(specificevents), ::core::mem::transmute(specificexceptions), ::core::mem::transmute(arbitraryexceptions)).ok() } - pub unsafe fn GetEventFilterText(&self, index: u32, buffer: &mut [u8], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterText)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetEventFilterText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterText)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } - pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetEventFilterCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetEventFilterCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -26145,13 +26435,13 @@ impl IDebugControl7 { (::windows::core::Interface::vtable(self).SetEventFilterCommand)(::windows::core::Interface::as_raw(self), index, command.into()).ok() } pub unsafe fn GetSpecificFilterParameters(&self, start: u32, params: &mut [DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).GetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } pub unsafe fn SetSpecificFilterParameters(&self, start: u32, params: &[DEBUG_SPECIFIC_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).SetSpecificFilterParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } - pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: &mut [u8], argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(argumentsize)).ok() + pub unsafe fn GetSpecificFilterArgument(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize)).ok() } pub unsafe fn SetSpecificFilterArgument<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()> where @@ -26159,14 +26449,14 @@ impl IDebugControl7 { { (::windows::core::Interface::vtable(self).SetSpecificFilterArgument)(::windows::core::Interface::as_raw(self), index, argument.into()).ok() } - pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: ::core::option::Option<&u32>, start: u32, params: &mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetExceptionFilterParameters(&self, count: u32, codes: *const u32, start: u32, params: *mut DEBUG_EXCEPTION_FILTER_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(codes), start, ::core::mem::transmute(params)).ok() } pub unsafe fn SetExceptionFilterParameters(&self, params: &[DEBUG_EXCEPTION_FILTER_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), params.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).SetExceptionFilterParameters)(::windows::core::Interface::as_raw(self), params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } - pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: &mut [u8], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetExceptionFilterSecondCommand(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommand)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetExceptionFilterSecondCommand<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -26177,8 +26467,20 @@ impl IDebugControl7 { pub unsafe fn WaitForEvent(&self, flags: u32, timeout: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WaitForEvent)(::windows::core::Interface::as_raw(self), flags, timeout).ok() } - pub unsafe fn GetLastEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: ::core::option::Option<&mut u32>, description: &mut [u8], descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLastEventInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(extrainformation), extrainformationsize, ::core::mem::transmute(extrainformationused), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(descriptionused)).ok() + pub unsafe fn GetLastEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: ::core::option::Option<&mut [u8]>, extrainformationused: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u8]>, descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLastEventInformation)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(r#type), + ::core::mem::transmute(processid), + ::core::mem::transmute(threadid), + ::core::mem::transmute(extrainformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + extrainformation.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(extrainformationused), + ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + description.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(descriptionused), + ) + .ok() } pub unsafe fn GetCurrentTimeDate(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -26196,11 +26498,11 @@ impl IDebugControl7 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberTextReplacements)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: &mut [u8], srcsize: ::core::option::Option<&mut u32>, dstbuffer: &mut [u8], dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetTextReplacement<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u8]>, srcsize: ::core::option::Option<&mut u32>, dstbuffer: ::core::option::Option<&mut [u8]>, dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetTextReplacement)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(srcbuffer)), srcbuffer.len() as _, ::core::mem::transmute(srcsize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dstbuffer)), dstbuffer.len() as _, ::core::mem::transmute(dstsize)).ok() + (::windows::core::Interface::vtable(self).GetTextReplacement)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), srcbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(srcsize), ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dstbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(dstsize)).ok() } pub unsafe fn SetTextReplacement<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()> where @@ -26245,8 +26547,8 @@ impl IDebugControl7 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberExpressionSyntaxes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: &mut [u8], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u8], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExpressionSyntaxNames)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetExpressionSyntaxNames(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u8]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u8]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExpressionSyntaxNames)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } pub unsafe fn GetNumberEvents(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -26269,8 +26571,8 @@ impl IDebugControl7 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLogFileWide(&self, buffer: &mut [u16], filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFileWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() + pub unsafe fn GetLogFileWide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<&mut u32>, append: &mut super::super::super::Foundation::BOOL) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFileWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(append)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -26282,7 +26584,7 @@ impl IDebugControl7 { (::windows::core::Interface::vtable(self).OpenLogFileWide)(::windows::core::Interface::as_raw(self), file.into(), append.into()).ok() } pub unsafe fn InputWide(&self, buffer: &mut [u16], inputsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).InputWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() + (::windows::core::Interface::vtable(self).InputWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(inputsize)).ok() } pub unsafe fn ReturnInputWide<'a, P0>(&self, buffer: P0) -> ::windows::core::Result<()> where @@ -26326,8 +26628,8 @@ impl IDebugControl7 { { (::windows::core::Interface::vtable(self).OutputPromptVaListWide)(::windows::core::Interface::as_raw(self), outputcontrol, format.into(), ::core::mem::transmute(args)).ok() } - pub unsafe fn GetPromptTextWide(&self, buffer: &mut [u16], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPromptTextWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetPromptTextWide(&self, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPromptTextWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } pub unsafe fn AssembleWide<'a, P0>(&self, offset: u64, instr: P0) -> ::windows::core::Result where @@ -26336,14 +26638,14 @@ impl IDebugControl7 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).AssembleWide)(::windows::core::Interface::as_raw(self), offset, instr.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: &mut [u16], disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DisassembleWide)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() + pub unsafe fn DisassembleWide(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u16]>, disassemblysize: ::core::option::Option<&mut u32>, endoffset: &mut u64) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).DisassembleWide)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(disassemblysize), ::core::mem::transmute(endoffset)).ok() } - pub unsafe fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: &mut [u16], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u16], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProcessorTypeNamesWide)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetProcessorTypeNamesWide(&self, r#type: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProcessorTypeNamesWide)(::windows::core::Interface::as_raw(self), r#type, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } - pub unsafe fn GetTextMacroWide(&self, slot: u32, buffer: &mut [u16], macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTextMacroWide)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(macrosize)).ok() + pub unsafe fn GetTextMacroWide(&self, slot: u32, buffer: ::core::option::Option<&mut [u16]>, macrosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTextMacroWide)(::windows::core::Interface::as_raw(self), slot, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(macrosize)).ok() } pub unsafe fn SetTextMacroWide<'a, P0>(&self, slot: u32, r#macro: P0) -> ::windows::core::Result<()> where @@ -26418,11 +26720,11 @@ impl IDebugControl7 { { (::windows::core::Interface::vtable(self).GetExtensionFunctionWide)(::windows::core::Interface::as_raw(self), handle, funcname.into(), ::core::mem::transmute(function)).ok() } - pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: &mut [u16], textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterTextWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(textsize)).ok() + pub unsafe fn GetEventFilterTextWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, textsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterTextWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textsize)).ok() } - pub unsafe fn GetEventFilterCommandWide(&self, index: u32, buffer: &mut [u16], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetEventFilterCommandWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetEventFilterCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetEventFilterCommandWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetEventFilterCommandWide<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -26430,8 +26732,8 @@ impl IDebugControl7 { { (::windows::core::Interface::vtable(self).SetEventFilterCommandWide)(::windows::core::Interface::as_raw(self), index, command.into()).ok() } - pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: &mut [u16], argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSpecificFilterArgumentWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(argumentsize)).ok() + pub unsafe fn GetSpecificFilterArgumentWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, argumentsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSpecificFilterArgumentWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(argumentsize)).ok() } pub unsafe fn SetSpecificFilterArgumentWide<'a, P0>(&self, index: u32, argument: P0) -> ::windows::core::Result<()> where @@ -26439,8 +26741,8 @@ impl IDebugControl7 { { (::windows::core::Interface::vtable(self).SetSpecificFilterArgumentWide)(::windows::core::Interface::as_raw(self), index, argument.into()).ok() } - pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: &mut [u16], commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommandWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(commandsize)).ok() + pub unsafe fn GetExceptionFilterSecondCommandWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, commandsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExceptionFilterSecondCommandWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(commandsize)).ok() } pub unsafe fn SetExceptionFilterSecondCommandWide<'a, P0>(&self, index: u32, command: P0) -> ::windows::core::Result<()> where @@ -26448,14 +26750,26 @@ impl IDebugControl7 { { (::windows::core::Interface::vtable(self).SetExceptionFilterSecondCommandWide)(::windows::core::Interface::as_raw(self), index, command.into()).ok() } - pub unsafe fn GetLastEventInformationWide(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: ::core::option::Option<&mut u32>, description: &mut [u16], descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLastEventInformationWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(extrainformation), extrainformationsize, ::core::mem::transmute(extrainformationused), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(descriptionused)).ok() + pub unsafe fn GetLastEventInformationWide(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, extrainformation: ::core::option::Option<&mut [u8]>, extrainformationused: ::core::option::Option<&mut u32>, description: ::core::option::Option<&mut [u16]>, descriptionused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLastEventInformationWide)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(r#type), + ::core::mem::transmute(processid), + ::core::mem::transmute(threadid), + ::core::mem::transmute(extrainformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + extrainformation.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(extrainformationused), + ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + description.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(descriptionused), + ) + .ok() } - pub unsafe fn GetTextReplacementWide<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: &mut [u16], srcsize: ::core::option::Option<&mut u32>, dstbuffer: &mut [u16], dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetTextReplacementWide<'a, P0>(&self, srctext: P0, index: u32, srcbuffer: ::core::option::Option<&mut [u16]>, srcsize: ::core::option::Option<&mut u32>, dstbuffer: ::core::option::Option<&mut [u16]>, dstsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetTextReplacementWide)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(srcbuffer)), srcbuffer.len() as _, ::core::mem::transmute(srcsize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dstbuffer)), dstbuffer.len() as _, ::core::mem::transmute(dstsize)).ok() + (::windows::core::Interface::vtable(self).GetTextReplacementWide)(::windows::core::Interface::as_raw(self), srctext.into(), index, ::core::mem::transmute(srcbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), srcbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(srcsize), ::core::mem::transmute(dstbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dstbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(dstsize)).ok() } pub unsafe fn SetTextReplacementWide<'a, P0, P1>(&self, srctext: P0, dsttext: P1) -> ::windows::core::Result<()> where @@ -26470,8 +26784,8 @@ impl IDebugControl7 { { (::windows::core::Interface::vtable(self).SetExpressionSyntaxByNameWide)(::windows::core::Interface::as_raw(self), abbrevname.into()).ok() } - pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: &mut [u16], fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: &mut [u16], abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExpressionSyntaxNamesWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(fullnamebuffer)), fullnamebuffer.len() as _, ::core::mem::transmute(fullnamesize), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(abbrevnamebuffer)), abbrevnamebuffer.len() as _, ::core::mem::transmute(abbrevnamesize)).ok() + pub unsafe fn GetExpressionSyntaxNamesWide(&self, index: u32, fullnamebuffer: ::core::option::Option<&mut [u16]>, fullnamesize: ::core::option::Option<&mut u32>, abbrevnamebuffer: ::core::option::Option<&mut [u16]>, abbrevnamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetExpressionSyntaxNamesWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(fullnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fullnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(fullnamesize), ::core::mem::transmute(abbrevnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), abbrevnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(abbrevnamesize)).ok() } pub unsafe fn GetEventIndexDescriptionWide<'a, P0>(&self, index: u32, which: u32, buffer: P0, buffersize: u32) -> ::windows::core::Result where @@ -26480,8 +26794,8 @@ impl IDebugControl7 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetEventIndexDescriptionWide)(::windows::core::Interface::as_raw(self), index, which, buffer.into(), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetLogFile2(&self, buffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, flags: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFile2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(flags)).ok() + pub unsafe fn GetLogFile2(&self, buffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, flags: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFile2)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(flags)).ok() } pub unsafe fn OpenLogFile2<'a, P0>(&self, file: P0, flags: u32) -> ::windows::core::Result<()> where @@ -26489,8 +26803,8 @@ impl IDebugControl7 { { (::windows::core::Interface::vtable(self).OpenLogFile2)(::windows::core::Interface::as_raw(self), file.into(), flags).ok() } - pub unsafe fn GetLogFile2Wide(&self, buffer: &mut [u16], filesize: ::core::option::Option<&mut u32>, flags: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLogFile2Wide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(flags)).ok() + pub unsafe fn GetLogFile2Wide(&self, buffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<&mut u32>, flags: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLogFile2Wide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(flags)).ok() } pub unsafe fn OpenLogFile2Wide<'a, P0>(&self, file: P0, flags: u32) -> ::windows::core::Result<()> where @@ -26501,30 +26815,53 @@ impl IDebugControl7 { pub unsafe fn GetSystemVersionValues(&self, platformid: &mut u32, win32major: &mut u32, win32minor: &mut u32, kdmajor: ::core::option::Option<&mut u32>, kdminor: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSystemVersionValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(platformid), ::core::mem::transmute(win32major), ::core::mem::transmute(win32minor), ::core::mem::transmute(kdmajor), ::core::mem::transmute(kdminor)).ok() } - pub unsafe fn GetSystemVersionString(&self, which: u32, buffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemVersionString)(::windows::core::Interface::as_raw(self), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSystemVersionString(&self, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemVersionString)(::windows::core::Interface::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSystemVersionStringWide(&self, which: u32, buffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemVersionStringWide)(::windows::core::Interface::as_raw(self), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSystemVersionStringWide(&self, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSystemVersionStringWide)(::windows::core::Interface::as_raw(self), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetContextStackTrace(&self, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: &mut [DEBUG_STACK_FRAME], framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetContextStackTrace)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(startcontext), startcontextsize, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled)).ok() + pub unsafe fn GetContextStackTrace(&self, startcontext: ::core::option::Option<&[u8]>, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME]>, framecontexts: ::core::option::Option<&mut [u8]>, framecontextsentrysize: u32, framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetContextStackTrace)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(startcontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + startcontext.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + frames.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(framecontexts.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + framecontexts.as_deref().map_or(0, |slice| slice.len() as _), + framecontextsentrysize, + ::core::mem::transmute(framesfilled), + ) + .ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputContextStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputContextStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, flags).ok() + pub unsafe fn OutputContextStackTrace(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME], framecontexts: &[u8], framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputContextStackTrace)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framecontexts.as_ptr()), framecontexts.len() as _, framecontextsentrysize, flags).ok() } - pub unsafe fn GetStoredEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, context: *mut ::core::ffi::c_void, contextsize: u32, contextused: ::core::option::Option<&mut u32>, extrainformation: *mut ::core::ffi::c_void, extrainformationsize: u32, extrainformationused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStoredEventInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(r#type), ::core::mem::transmute(processid), ::core::mem::transmute(threadid), ::core::mem::transmute(context), contextsize, ::core::mem::transmute(contextused), ::core::mem::transmute(extrainformation), extrainformationsize, ::core::mem::transmute(extrainformationused)).ok() + pub unsafe fn GetStoredEventInformation(&self, r#type: &mut u32, processid: &mut u32, threadid: &mut u32, context: ::core::option::Option<&mut [u8]>, contextused: ::core::option::Option<&mut u32>, extrainformation: ::core::option::Option<&mut [u8]>, extrainformationused: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetStoredEventInformation)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(r#type), + ::core::mem::transmute(processid), + ::core::mem::transmute(threadid), + ::core::mem::transmute(context.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + context.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(contextused), + ::core::mem::transmute(extrainformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + extrainformation.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(extrainformationused), + ) + .ok() } - pub unsafe fn GetManagedStatus(&self, flags: ::core::option::Option<&mut u32>, whichstring: u32, string: &mut [u8], stringneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetManagedStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(flags), whichstring, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(string)), string.len() as _, ::core::mem::transmute(stringneeded)).ok() + pub unsafe fn GetManagedStatus(&self, flags: ::core::option::Option<&mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u8]>, stringneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetManagedStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(flags), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringneeded)).ok() } - pub unsafe fn GetManagedStatusWide(&self, flags: ::core::option::Option<&mut u32>, whichstring: u32, string: &mut [u16], stringneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetManagedStatusWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(flags), whichstring, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(string)), string.len() as _, ::core::mem::transmute(stringneeded)).ok() + pub unsafe fn GetManagedStatusWide(&self, flags: ::core::option::Option<&mut u32>, whichstring: u32, string: ::core::option::Option<&mut [u16]>, stringneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetManagedStatusWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(flags), whichstring, ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringneeded)).ok() } pub unsafe fn ResetManagedStatus(&self, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ResetManagedStatus)(::windows::core::Interface::as_raw(self), flags).ok() @@ -26532,22 +26869,33 @@ impl IDebugControl7 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetStackTraceEx(&self, frameoffset: u64, stackoffset: u64, instructionoffset: u64, frames: &mut [DEBUG_STACK_FRAME_EX], framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetStackTraceEx)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() + (::windows::core::Interface::vtable(self).GetStackTraceEx)(::windows::core::Interface::as_raw(self), frameoffset, stackoffset, instructionoffset, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framesfilled)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputStackTraceEx(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME_EX], flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputStackTraceEx)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, flags).ok() + pub unsafe fn OutputStackTraceEx(&self, outputcontrol: u32, frames: ::core::option::Option<&[DEBUG_STACK_FRAME_EX]>, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputStackTraceEx)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), frames.as_deref().map_or(0, |slice| slice.len() as _), flags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetContextStackTraceEx(&self, startcontext: *const ::core::ffi::c_void, startcontextsize: u32, frames: &mut [DEBUG_STACK_FRAME_EX], framecontexts: *mut ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetContextStackTraceEx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(startcontext), startcontextsize, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, ::core::mem::transmute(framesfilled)).ok() + pub unsafe fn GetContextStackTraceEx(&self, startcontext: ::core::option::Option<&[u8]>, frames: ::core::option::Option<&mut [DEBUG_STACK_FRAME_EX]>, framecontexts: ::core::option::Option<&mut [u8]>, framecontextsentrysize: u32, framesfilled: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetContextStackTraceEx)( + ::windows::core::Interface::as_raw(self), + ::core::mem::transmute(startcontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + startcontext.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(frames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + frames.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(framecontexts.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + framecontexts.as_deref().map_or(0, |slice| slice.len() as _), + framecontextsentrysize, + ::core::mem::transmute(framesfilled), + ) + .ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn OutputContextStackTraceEx(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME_EX], framecontexts: *const ::core::ffi::c_void, framecontextssize: u32, framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OutputContextStackTraceEx)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(::windows::core::as_ptr_or_null(frames)), frames.len() as _, ::core::mem::transmute(framecontexts), framecontextssize, framecontextsentrysize, flags).ok() + pub unsafe fn OutputContextStackTraceEx(&self, outputcontrol: u32, frames: &[DEBUG_STACK_FRAME_EX], framecontexts: &[u8], framecontextsentrysize: u32, flags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).OutputContextStackTraceEx)(::windows::core::Interface::as_raw(self), outputcontrol, ::core::mem::transmute(frames.as_ptr()), frames.len() as _, ::core::mem::transmute(framecontexts.as_ptr()), framecontexts.len() as _, framecontextsentrysize, flags).ok() } pub unsafe fn GetBreakpointByGuid(&self, guid: &::windows::core::GUID) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -26891,50 +27239,50 @@ pub struct IDebugCookie_Vtbl { #[repr(transparent)] pub struct IDebugDataSpaces(::windows::core::IUnknown); impl IDebugDataSpaces { - pub unsafe fn ReadVirtual(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadVirtual)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadVirtual(&self, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadVirtual)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteVirtual(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteVirtual(&self, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteVirtual)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteVirtual)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn SearchVirtual(&self, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows::core::Result { + pub unsafe fn SearchVirtual(&self, offset: u64, length: u64, pattern: &[u8], patterngranularity: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).SearchVirtual)(::windows::core::Interface::as_raw(self), offset, length, ::core::mem::transmute(pattern), patternsize, patterngranularity, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).SearchVirtual)(::windows::core::Interface::as_raw(self), offset, length, ::core::mem::transmute(pattern.as_ptr()), pattern.len() as _, patterngranularity, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadVirtualUncached)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadVirtualUncached)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteVirtualUncached(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteVirtualUncached(&self, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteVirtualUncached)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteVirtualUncached)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn ReadPointersVirtual(&self, offset: u64, ptrs: &mut [u64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadPointersVirtual)(::windows::core::Interface::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ptrs))).ok() + (::windows::core::Interface::vtable(self).ReadPointersVirtual)(::windows::core::Interface::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(ptrs.as_ptr())).ok() } pub unsafe fn WritePointersVirtual(&self, offset: u64, ptrs: &[u64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WritePointersVirtual)(::windows::core::Interface::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(::windows::core::as_ptr_or_null(ptrs))).ok() + (::windows::core::Interface::vtable(self).WritePointersVirtual)(::windows::core::Interface::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(ptrs.as_ptr())).ok() } - pub unsafe fn ReadPhysical(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadPhysical)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadPhysical(&self, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadPhysical)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WritePhysical(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WritePhysical(&self, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WritePhysical)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WritePhysical)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ReadControl(&self, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadControl)(::windows::core::Interface::as_raw(self), processor, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadControl(&self, processor: u32, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadControl)(::windows::core::Interface::as_raw(self), processor, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteControl(&self, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteControl(&self, processor: u32, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteControl)(::windows::core::Interface::as_raw(self), processor, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteControl)(::windows::core::Interface::as_raw(self), processor, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadIo)(::windows::core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadIo)(::windows::core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteIo)(::windows::core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteIo)(::windows::core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn ReadMsr(&self, msr: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -26943,21 +27291,21 @@ impl IDebugDataSpaces { pub unsafe fn WriteMsr(&self, msr: u32, value: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WriteMsr)(::windows::core::Interface::as_raw(self), msr, value).ok() } - pub unsafe fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadBusData)(::windows::core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadBusData)(::windows::core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteBusData)(::windows::core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteBusData)(::windows::core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CheckLowMemory(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CheckLowMemory)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn ReadDebuggerData(&self, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadDebuggerData)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize)).ok() + pub unsafe fn ReadDebuggerData(&self, index: u32, buffer: &mut [u8], datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadDebuggerData)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(datasize)).ok() } - pub unsafe fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadProcessorSystemData)(::windows::core::Interface::as_raw(self), processor, index, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize)).ok() + pub unsafe fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: &mut [u8], datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadProcessorSystemData)(::windows::core::Interface::as_raw(self), processor, index, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(datasize)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -27024,50 +27372,50 @@ pub struct IDebugDataSpaces_Vtbl { #[repr(transparent)] pub struct IDebugDataSpaces2(::windows::core::IUnknown); impl IDebugDataSpaces2 { - pub unsafe fn ReadVirtual(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadVirtual)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadVirtual(&self, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadVirtual)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteVirtual(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteVirtual(&self, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteVirtual)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteVirtual)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn SearchVirtual(&self, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows::core::Result { + pub unsafe fn SearchVirtual(&self, offset: u64, length: u64, pattern: &[u8], patterngranularity: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).SearchVirtual)(::windows::core::Interface::as_raw(self), offset, length, ::core::mem::transmute(pattern), patternsize, patterngranularity, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).SearchVirtual)(::windows::core::Interface::as_raw(self), offset, length, ::core::mem::transmute(pattern.as_ptr()), pattern.len() as _, patterngranularity, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadVirtualUncached)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadVirtualUncached)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteVirtualUncached(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteVirtualUncached(&self, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteVirtualUncached)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteVirtualUncached)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn ReadPointersVirtual(&self, offset: u64, ptrs: &mut [u64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadPointersVirtual)(::windows::core::Interface::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ptrs))).ok() + (::windows::core::Interface::vtable(self).ReadPointersVirtual)(::windows::core::Interface::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(ptrs.as_ptr())).ok() } pub unsafe fn WritePointersVirtual(&self, offset: u64, ptrs: &[u64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WritePointersVirtual)(::windows::core::Interface::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(::windows::core::as_ptr_or_null(ptrs))).ok() + (::windows::core::Interface::vtable(self).WritePointersVirtual)(::windows::core::Interface::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(ptrs.as_ptr())).ok() } - pub unsafe fn ReadPhysical(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadPhysical)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadPhysical(&self, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadPhysical)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WritePhysical(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WritePhysical(&self, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WritePhysical)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WritePhysical)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ReadControl(&self, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadControl)(::windows::core::Interface::as_raw(self), processor, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadControl(&self, processor: u32, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadControl)(::windows::core::Interface::as_raw(self), processor, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteControl(&self, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteControl(&self, processor: u32, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteControl)(::windows::core::Interface::as_raw(self), processor, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteControl)(::windows::core::Interface::as_raw(self), processor, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadIo)(::windows::core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadIo)(::windows::core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteIo)(::windows::core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteIo)(::windows::core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn ReadMsr(&self, msr: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -27076,39 +27424,39 @@ impl IDebugDataSpaces2 { pub unsafe fn WriteMsr(&self, msr: u32, value: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WriteMsr)(::windows::core::Interface::as_raw(self), msr, value).ok() } - pub unsafe fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadBusData)(::windows::core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadBusData)(::windows::core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteBusData)(::windows::core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteBusData)(::windows::core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CheckLowMemory(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CheckLowMemory)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn ReadDebuggerData(&self, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadDebuggerData)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize)).ok() + pub unsafe fn ReadDebuggerData(&self, index: u32, buffer: &mut [u8], datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadDebuggerData)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(datasize)).ok() } - pub unsafe fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadProcessorSystemData)(::windows::core::Interface::as_raw(self), processor, index, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize)).ok() + pub unsafe fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: &mut [u8], datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadProcessorSystemData)(::windows::core::Interface::as_raw(self), processor, index, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(datasize)).ok() } pub unsafe fn VirtualToPhysical(&self, r#virtual: u64) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).VirtualToPhysical)(::windows::core::Interface::as_raw(self), r#virtual, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: &mut [u64], levels: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetVirtualTranslationPhysicalOffsets)(::windows::core::Interface::as_raw(self), r#virtual, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(offsets)), offsets.len() as _, ::core::mem::transmute(levels)).ok() + pub unsafe fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: ::core::option::Option<&mut [u64]>, levels: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetVirtualTranslationPhysicalOffsets)(::windows::core::Interface::as_raw(self), r#virtual, ::core::mem::transmute(offsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), offsets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(levels)).ok() } - pub unsafe fn ReadHandleData(&self, handle: u64, datatype: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadHandleData)(::windows::core::Interface::as_raw(self), handle, datatype, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize)).ok() + pub unsafe fn ReadHandleData(&self, handle: u64, datatype: u32, buffer: ::core::option::Option<&mut [u8]>, datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadHandleData)(::windows::core::Interface::as_raw(self), handle, datatype, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(datasize)).ok() } - pub unsafe fn FillVirtual(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32) -> ::windows::core::Result { + pub unsafe fn FillVirtual(&self, start: u64, size: u32, pattern: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).FillVirtual)(::windows::core::Interface::as_raw(self), start, size, ::core::mem::transmute(pattern), patternsize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).FillVirtual)(::windows::core::Interface::as_raw(self), start, size, ::core::mem::transmute(pattern.as_ptr()), pattern.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn FillPhysical(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32) -> ::windows::core::Result { + pub unsafe fn FillPhysical(&self, start: u64, size: u32, pattern: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).FillPhysical)(::windows::core::Interface::as_raw(self), start, size, ::core::mem::transmute(pattern), patternsize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).FillPhysical)(::windows::core::Interface::as_raw(self), start, size, ::core::mem::transmute(pattern.as_ptr()), pattern.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_System_Memory\"`*"] #[cfg(feature = "Win32_System_Memory")] @@ -27190,50 +27538,50 @@ pub struct IDebugDataSpaces2_Vtbl { #[repr(transparent)] pub struct IDebugDataSpaces3(::windows::core::IUnknown); impl IDebugDataSpaces3 { - pub unsafe fn ReadVirtual(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadVirtual)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadVirtual(&self, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadVirtual)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteVirtual(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteVirtual(&self, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteVirtual)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteVirtual)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn SearchVirtual(&self, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows::core::Result { + pub unsafe fn SearchVirtual(&self, offset: u64, length: u64, pattern: &[u8], patterngranularity: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).SearchVirtual)(::windows::core::Interface::as_raw(self), offset, length, ::core::mem::transmute(pattern), patternsize, patterngranularity, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).SearchVirtual)(::windows::core::Interface::as_raw(self), offset, length, ::core::mem::transmute(pattern.as_ptr()), pattern.len() as _, patterngranularity, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadVirtualUncached)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadVirtualUncached)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteVirtualUncached(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteVirtualUncached(&self, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteVirtualUncached)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteVirtualUncached)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn ReadPointersVirtual(&self, offset: u64, ptrs: &mut [u64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadPointersVirtual)(::windows::core::Interface::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ptrs))).ok() + (::windows::core::Interface::vtable(self).ReadPointersVirtual)(::windows::core::Interface::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(ptrs.as_ptr())).ok() } pub unsafe fn WritePointersVirtual(&self, offset: u64, ptrs: &[u64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WritePointersVirtual)(::windows::core::Interface::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(::windows::core::as_ptr_or_null(ptrs))).ok() + (::windows::core::Interface::vtable(self).WritePointersVirtual)(::windows::core::Interface::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(ptrs.as_ptr())).ok() } - pub unsafe fn ReadPhysical(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadPhysical)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadPhysical(&self, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadPhysical)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WritePhysical(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WritePhysical(&self, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WritePhysical)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WritePhysical)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ReadControl(&self, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadControl)(::windows::core::Interface::as_raw(self), processor, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadControl(&self, processor: u32, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadControl)(::windows::core::Interface::as_raw(self), processor, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteControl(&self, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteControl(&self, processor: u32, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteControl)(::windows::core::Interface::as_raw(self), processor, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteControl)(::windows::core::Interface::as_raw(self), processor, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadIo)(::windows::core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadIo)(::windows::core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteIo)(::windows::core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteIo)(::windows::core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn ReadMsr(&self, msr: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -27242,39 +27590,39 @@ impl IDebugDataSpaces3 { pub unsafe fn WriteMsr(&self, msr: u32, value: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WriteMsr)(::windows::core::Interface::as_raw(self), msr, value).ok() } - pub unsafe fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadBusData)(::windows::core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadBusData)(::windows::core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteBusData)(::windows::core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteBusData)(::windows::core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CheckLowMemory(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CheckLowMemory)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn ReadDebuggerData(&self, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadDebuggerData)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize)).ok() + pub unsafe fn ReadDebuggerData(&self, index: u32, buffer: &mut [u8], datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadDebuggerData)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(datasize)).ok() } - pub unsafe fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadProcessorSystemData)(::windows::core::Interface::as_raw(self), processor, index, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize)).ok() + pub unsafe fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: &mut [u8], datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadProcessorSystemData)(::windows::core::Interface::as_raw(self), processor, index, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(datasize)).ok() } pub unsafe fn VirtualToPhysical(&self, r#virtual: u64) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).VirtualToPhysical)(::windows::core::Interface::as_raw(self), r#virtual, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: &mut [u64], levels: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetVirtualTranslationPhysicalOffsets)(::windows::core::Interface::as_raw(self), r#virtual, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(offsets)), offsets.len() as _, ::core::mem::transmute(levels)).ok() + pub unsafe fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: ::core::option::Option<&mut [u64]>, levels: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetVirtualTranslationPhysicalOffsets)(::windows::core::Interface::as_raw(self), r#virtual, ::core::mem::transmute(offsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), offsets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(levels)).ok() } - pub unsafe fn ReadHandleData(&self, handle: u64, datatype: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadHandleData)(::windows::core::Interface::as_raw(self), handle, datatype, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize)).ok() + pub unsafe fn ReadHandleData(&self, handle: u64, datatype: u32, buffer: ::core::option::Option<&mut [u8]>, datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadHandleData)(::windows::core::Interface::as_raw(self), handle, datatype, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(datasize)).ok() } - pub unsafe fn FillVirtual(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32) -> ::windows::core::Result { + pub unsafe fn FillVirtual(&self, start: u64, size: u32, pattern: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).FillVirtual)(::windows::core::Interface::as_raw(self), start, size, ::core::mem::transmute(pattern), patternsize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).FillVirtual)(::windows::core::Interface::as_raw(self), start, size, ::core::mem::transmute(pattern.as_ptr()), pattern.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn FillPhysical(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32) -> ::windows::core::Result { + pub unsafe fn FillPhysical(&self, start: u64, size: u32, pattern: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).FillPhysical)(::windows::core::Interface::as_raw(self), start, size, ::core::mem::transmute(pattern), patternsize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).FillPhysical)(::windows::core::Interface::as_raw(self), start, size, ::core::mem::transmute(pattern.as_ptr()), pattern.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_System_Memory\"`*"] #[cfg(feature = "Win32_System_Memory")] @@ -27288,8 +27636,8 @@ impl IDebugDataSpaces3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).ReadImageNtHeaders)(::windows::core::Interface::as_raw(self), imagebase, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ReadTagged(&self, tag: &::windows::core::GUID, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, totalsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadTagged)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(tag), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(totalsize)).ok() + pub unsafe fn ReadTagged(&self, tag: &::windows::core::GUID, offset: u32, buffer: ::core::option::Option<&mut [u8]>, totalsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadTagged)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(tag), offset, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(totalsize)).ok() } pub unsafe fn StartEnumTagged(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -27383,50 +27731,50 @@ pub struct IDebugDataSpaces3_Vtbl { #[repr(transparent)] pub struct IDebugDataSpaces4(::windows::core::IUnknown); impl IDebugDataSpaces4 { - pub unsafe fn ReadVirtual(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadVirtual)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadVirtual(&self, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadVirtual)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteVirtual(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteVirtual(&self, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteVirtual)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteVirtual)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn SearchVirtual(&self, offset: u64, length: u64, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows::core::Result { + pub unsafe fn SearchVirtual(&self, offset: u64, length: u64, pattern: &[u8], patterngranularity: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).SearchVirtual)(::windows::core::Interface::as_raw(self), offset, length, ::core::mem::transmute(pattern), patternsize, patterngranularity, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).SearchVirtual)(::windows::core::Interface::as_raw(self), offset, length, ::core::mem::transmute(pattern.as_ptr()), pattern.len() as _, patterngranularity, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadVirtualUncached)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadVirtualUncached(&self, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadVirtualUncached)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteVirtualUncached(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteVirtualUncached(&self, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteVirtualUncached)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteVirtualUncached)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn ReadPointersVirtual(&self, offset: u64, ptrs: &mut [u64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadPointersVirtual)(::windows::core::Interface::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ptrs))).ok() + (::windows::core::Interface::vtable(self).ReadPointersVirtual)(::windows::core::Interface::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(ptrs.as_ptr())).ok() } pub unsafe fn WritePointersVirtual(&self, offset: u64, ptrs: &[u64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WritePointersVirtual)(::windows::core::Interface::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(::windows::core::as_ptr_or_null(ptrs))).ok() + (::windows::core::Interface::vtable(self).WritePointersVirtual)(::windows::core::Interface::as_raw(self), ptrs.len() as _, offset, ::core::mem::transmute(ptrs.as_ptr())).ok() } - pub unsafe fn ReadPhysical(&self, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadPhysical)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadPhysical(&self, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadPhysical)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WritePhysical(&self, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WritePhysical(&self, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WritePhysical)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WritePhysical)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ReadControl(&self, processor: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadControl)(::windows::core::Interface::as_raw(self), processor, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadControl(&self, processor: u32, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadControl)(::windows::core::Interface::as_raw(self), processor, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteControl(&self, processor: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteControl(&self, processor: u32, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteControl)(::windows::core::Interface::as_raw(self), processor, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteControl)(::windows::core::Interface::as_raw(self), processor, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadIo)(::windows::core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadIo)(::windows::core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteIo(&self, interfacetype: u32, busnumber: u32, addressspace: u32, offset: u64, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteIo)(::windows::core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteIo)(::windows::core::Interface::as_raw(self), interfacetype, busnumber, addressspace, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn ReadMsr(&self, msr: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -27435,39 +27783,39 @@ impl IDebugDataSpaces4 { pub unsafe fn WriteMsr(&self, msr: u32, value: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WriteMsr)(::windows::core::Interface::as_raw(self), msr, value).ok() } - pub unsafe fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadBusData)(::windows::core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadBusData)(::windows::core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteBusData(&self, busdatatype: u32, busnumber: u32, slotnumber: u32, offset: u32, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteBusData)(::windows::core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteBusData)(::windows::core::Interface::as_raw(self), busdatatype, busnumber, slotnumber, offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CheckLowMemory(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CheckLowMemory)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn ReadDebuggerData(&self, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadDebuggerData)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize)).ok() + pub unsafe fn ReadDebuggerData(&self, index: u32, buffer: &mut [u8], datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadDebuggerData)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(datasize)).ok() } - pub unsafe fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadProcessorSystemData)(::windows::core::Interface::as_raw(self), processor, index, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize)).ok() + pub unsafe fn ReadProcessorSystemData(&self, processor: u32, index: u32, buffer: &mut [u8], datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadProcessorSystemData)(::windows::core::Interface::as_raw(self), processor, index, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(datasize)).ok() } pub unsafe fn VirtualToPhysical(&self, r#virtual: u64) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).VirtualToPhysical)(::windows::core::Interface::as_raw(self), r#virtual, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: &mut [u64], levels: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetVirtualTranslationPhysicalOffsets)(::windows::core::Interface::as_raw(self), r#virtual, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(offsets)), offsets.len() as _, ::core::mem::transmute(levels)).ok() + pub unsafe fn GetVirtualTranslationPhysicalOffsets(&self, r#virtual: u64, offsets: ::core::option::Option<&mut [u64]>, levels: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetVirtualTranslationPhysicalOffsets)(::windows::core::Interface::as_raw(self), r#virtual, ::core::mem::transmute(offsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), offsets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(levels)).ok() } - pub unsafe fn ReadHandleData(&self, handle: u64, datatype: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadHandleData)(::windows::core::Interface::as_raw(self), handle, datatype, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(datasize)).ok() + pub unsafe fn ReadHandleData(&self, handle: u64, datatype: u32, buffer: ::core::option::Option<&mut [u8]>, datasize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadHandleData)(::windows::core::Interface::as_raw(self), handle, datatype, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(datasize)).ok() } - pub unsafe fn FillVirtual(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32) -> ::windows::core::Result { + pub unsafe fn FillVirtual(&self, start: u64, size: u32, pattern: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).FillVirtual)(::windows::core::Interface::as_raw(self), start, size, ::core::mem::transmute(pattern), patternsize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).FillVirtual)(::windows::core::Interface::as_raw(self), start, size, ::core::mem::transmute(pattern.as_ptr()), pattern.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn FillPhysical(&self, start: u64, size: u32, pattern: *const ::core::ffi::c_void, patternsize: u32) -> ::windows::core::Result { + pub unsafe fn FillPhysical(&self, start: u64, size: u32, pattern: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).FillPhysical)(::windows::core::Interface::as_raw(self), start, size, ::core::mem::transmute(pattern), patternsize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).FillPhysical)(::windows::core::Interface::as_raw(self), start, size, ::core::mem::transmute(pattern.as_ptr()), pattern.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_System_Memory\"`*"] #[cfg(feature = "Win32_System_Memory")] @@ -27481,8 +27829,8 @@ impl IDebugDataSpaces4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).ReadImageNtHeaders)(::windows::core::Interface::as_raw(self), imagebase, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ReadTagged(&self, tag: &::windows::core::GUID, offset: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, totalsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadTagged)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(tag), offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(totalsize)).ok() + pub unsafe fn ReadTagged(&self, tag: &::windows::core::GUID, offset: u32, buffer: ::core::option::Option<&mut [u8]>, totalsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadTagged)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(tag), offset, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(totalsize)).ok() } pub unsafe fn StartEnumTagged(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -27494,8 +27842,8 @@ impl IDebugDataSpaces4 { pub unsafe fn EndEnumTagged(&self, handle: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).EndEnumTagged)(::windows::core::Interface::as_raw(self), handle).ok() } - pub unsafe fn GetOffsetInformation(&self, space: u32, which: u32, offset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOffsetInformation)(::windows::core::Interface::as_raw(self), space, which, offset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(infosize)).ok() + pub unsafe fn GetOffsetInformation(&self, space: u32, which: u32, offset: u64, buffer: ::core::option::Option<&mut [u8]>, infosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetOffsetInformation)(::windows::core::Interface::as_raw(self), space, which, offset, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(infosize)).ok() } pub unsafe fn GetNextDifferentlyValidOffsetVirtual(&self, offset: u64) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -27504,28 +27852,28 @@ impl IDebugDataSpaces4 { pub unsafe fn GetValidRegionVirtual(&self, base: u64, size: u32, validbase: &mut u64, validsize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetValidRegionVirtual)(::windows::core::Interface::as_raw(self), base, size, ::core::mem::transmute(validbase), ::core::mem::transmute(validsize)).ok() } - pub unsafe fn SearchVirtual2(&self, offset: u64, length: u64, flags: u32, pattern: *const ::core::ffi::c_void, patternsize: u32, patterngranularity: u32) -> ::windows::core::Result { + pub unsafe fn SearchVirtual2(&self, offset: u64, length: u64, flags: u32, pattern: &[u8], patterngranularity: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).SearchVirtual2)(::windows::core::Interface::as_raw(self), offset, length, flags, ::core::mem::transmute(pattern), patternsize, patterngranularity, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).SearchVirtual2)(::windows::core::Interface::as_raw(self), offset, length, flags, ::core::mem::transmute(pattern.as_ptr()), pattern.len() as _, patterngranularity, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ReadMultiByteStringVirtual(&self, offset: u64, maxbytes: u32, buffer: &mut [u8], stringbytes: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadMultiByteStringVirtual)(::windows::core::Interface::as_raw(self), offset, maxbytes, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringbytes)).ok() + pub unsafe fn ReadMultiByteStringVirtual(&self, offset: u64, maxbytes: u32, buffer: ::core::option::Option<&mut [u8]>, stringbytes: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadMultiByteStringVirtual)(::windows::core::Interface::as_raw(self), offset, maxbytes, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringbytes)).ok() } - pub unsafe fn ReadMultiByteStringVirtualWide(&self, offset: u64, maxbytes: u32, codepage: u32, buffer: &mut [u16], stringbytes: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadMultiByteStringVirtualWide)(::windows::core::Interface::as_raw(self), offset, maxbytes, codepage, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringbytes)).ok() + pub unsafe fn ReadMultiByteStringVirtualWide(&self, offset: u64, maxbytes: u32, codepage: u32, buffer: ::core::option::Option<&mut [u16]>, stringbytes: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadMultiByteStringVirtualWide)(::windows::core::Interface::as_raw(self), offset, maxbytes, codepage, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringbytes)).ok() } - pub unsafe fn ReadUnicodeStringVirtual(&self, offset: u64, maxbytes: u32, codepage: u32, buffer: &mut [u8], stringbytes: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadUnicodeStringVirtual)(::windows::core::Interface::as_raw(self), offset, maxbytes, codepage, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringbytes)).ok() + pub unsafe fn ReadUnicodeStringVirtual(&self, offset: u64, maxbytes: u32, codepage: u32, buffer: ::core::option::Option<&mut [u8]>, stringbytes: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadUnicodeStringVirtual)(::windows::core::Interface::as_raw(self), offset, maxbytes, codepage, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringbytes)).ok() } - pub unsafe fn ReadUnicodeStringVirtualWide(&self, offset: u64, maxbytes: u32, buffer: &mut [u16], stringbytes: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadUnicodeStringVirtualWide)(::windows::core::Interface::as_raw(self), offset, maxbytes, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringbytes)).ok() + pub unsafe fn ReadUnicodeStringVirtualWide(&self, offset: u64, maxbytes: u32, buffer: ::core::option::Option<&mut [u16]>, stringbytes: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadUnicodeStringVirtualWide)(::windows::core::Interface::as_raw(self), offset, maxbytes, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringbytes)).ok() } - pub unsafe fn ReadPhysical2(&self, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadPhysical2)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadPhysical2(&self, offset: u64, flags: u32, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadPhysical2)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WritePhysical2(&self, offset: u64, flags: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WritePhysical2(&self, offset: u64, flags: u32, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WritePhysical2)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WritePhysical2)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -27796,7 +28144,7 @@ impl IDebugDocumentHelper32 { (::windows::core::Interface::vtable(self).SetDefaultTextAttr)(::windows::core::Interface::as_raw(self), statextattr).ok() } pub unsafe fn SetTextAttributes(&self, ulcharoffset: u32, pstatextattr: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetTextAttributes)(::windows::core::Interface::as_raw(self), ulcharoffset, pstatextattr.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pstatextattr))).ok() + (::windows::core::Interface::vtable(self).SetTextAttributes)(::windows::core::Interface::as_raw(self), ulcharoffset, pstatextattr.len() as _, ::core::mem::transmute(pstatextattr.as_ptr())).ok() } pub unsafe fn SetLongName<'a, P0>(&self, pszlongname: P0) -> ::windows::core::Result<()> where @@ -27951,7 +28299,7 @@ impl IDebugDocumentHelper64 { (::windows::core::Interface::vtable(self).SetDefaultTextAttr)(::windows::core::Interface::as_raw(self), statextattr).ok() } pub unsafe fn SetTextAttributes(&self, ulcharoffset: u32, pstatextattr: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetTextAttributes)(::windows::core::Interface::as_raw(self), ulcharoffset, pstatextattr.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pstatextattr))).ok() + (::windows::core::Interface::vtable(self).SetTextAttributes)(::windows::core::Interface::as_raw(self), ulcharoffset, pstatextattr.len() as _, ::core::mem::transmute(pstatextattr.as_ptr())).ok() } pub unsafe fn SetLongName<'a, P0>(&self, pszlongname: P0) -> ::windows::core::Result<()> where @@ -28054,10 +28402,10 @@ pub struct IDebugDocumentHelper64_Vtbl { #[repr(transparent)] pub struct IDebugDocumentHost(::windows::core::IUnknown); impl IDebugDocumentHost { - pub unsafe fn GetDeferredText(&self, dwtextstartcookie: u32, pchartext: ::windows::core::PWSTR, pstatextattr: &mut u16, pcnumchars: &mut u32, cmaxchars: u32) -> ::windows::core::Result<()> { + pub unsafe fn GetDeferredText(&self, dwtextstartcookie: u32, pchartext: ::windows::core::PWSTR, pstatextattr: *mut u16, pcnumchars: &mut u32, cmaxchars: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDeferredText)(::windows::core::Interface::as_raw(self), dwtextstartcookie, ::core::mem::transmute(pchartext), ::core::mem::transmute(pstatextattr), ::core::mem::transmute(pcnumchars), ::core::mem::transmute(cmaxchars)).ok() } - pub unsafe fn GetScriptTextAttributes<'a, P0>(&self, pstrcode: ::windows::core::PCWSTR, unumcodechars: u32, pstrdelimiter: P0, dwflags: u32, pattr: &mut u16) -> ::windows::core::Result<()> + pub unsafe fn GetScriptTextAttributes<'a, P0>(&self, pstrcode: ::windows::core::PCWSTR, unumcodechars: u32, pstrdelimiter: P0, dwflags: u32, pattr: *mut u16) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -28297,8 +28645,8 @@ impl IDebugDocumentText { pub unsafe fn GetLineOfPosition(&self, ccharacterposition: u32, pclinenumber: &mut u32, pccharacteroffsetinline: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetLineOfPosition)(::windows::core::Interface::as_raw(self), ccharacterposition, ::core::mem::transmute(pclinenumber), ::core::mem::transmute(pccharacteroffsetinline)).ok() } - pub unsafe fn GetText(&self, ccharacterposition: u32, pchartext: &mut [u16], pstatextattr: ::core::option::Option<&mut u16>, pcnumchars: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetText)(::windows::core::Interface::as_raw(self), ccharacterposition, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pchartext)), ::core::mem::transmute(pstatextattr), ::core::mem::transmute(pcnumchars), pchartext.len() as _).ok() + pub unsafe fn GetText(&self, ccharacterposition: u32, pchartext: &mut [u16], pstatextattr: *mut u16, pcnumchars: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetText)(::windows::core::Interface::as_raw(self), ccharacterposition, ::core::mem::transmute(pchartext.as_ptr()), ::core::mem::transmute(pstatextattr), ::core::mem::transmute(pcnumchars), pchartext.len() as _).ok() } pub unsafe fn GetPositionOfContext<'a, P0>(&self, psc: P0, pccharacterposition: &mut u32, cnumchars: &mut u32) -> ::windows::core::Result<()> where @@ -28416,8 +28764,8 @@ impl IDebugDocumentTextAuthor { pub unsafe fn GetLineOfPosition(&self, ccharacterposition: u32, pclinenumber: &mut u32, pccharacteroffsetinline: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetLineOfPosition)(::windows::core::Interface::as_raw(self), ccharacterposition, ::core::mem::transmute(pclinenumber), ::core::mem::transmute(pccharacteroffsetinline)).ok() } - pub unsafe fn GetText(&self, ccharacterposition: u32, pchartext: &mut [u16], pstatextattr: ::core::option::Option<&mut u16>, pcnumchars: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetText)(::windows::core::Interface::as_raw(self), ccharacterposition, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pchartext)), ::core::mem::transmute(pstatextattr), ::core::mem::transmute(pcnumchars), pchartext.len() as _).ok() + pub unsafe fn GetText(&self, ccharacterposition: u32, pchartext: &mut [u16], pstatextattr: *mut u16, pcnumchars: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetText)(::windows::core::Interface::as_raw(self), ccharacterposition, ::core::mem::transmute(pchartext.as_ptr()), ::core::mem::transmute(pstatextattr), ::core::mem::transmute(pcnumchars), pchartext.len() as _).ok() } pub unsafe fn GetPositionOfContext<'a, P0>(&self, psc: P0, pccharacterposition: &mut u32, cnumchars: &mut u32) -> ::windows::core::Result<()> where @@ -28430,13 +28778,13 @@ impl IDebugDocumentTextAuthor { (::windows::core::Interface::vtable(self).base__.GetContextOfPosition)(::windows::core::Interface::as_raw(self), ccharacterposition, cnumchars, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn InsertText(&self, ccharacterposition: u32, pchartext: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).InsertText)(::windows::core::Interface::as_raw(self), ccharacterposition, pchartext.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pchartext))).ok() + (::windows::core::Interface::vtable(self).InsertText)(::windows::core::Interface::as_raw(self), ccharacterposition, pchartext.len() as _, ::core::mem::transmute(pchartext.as_ptr())).ok() } pub unsafe fn RemoveText(&self, ccharacterposition: u32, cnumtoremove: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).RemoveText)(::windows::core::Interface::as_raw(self), ccharacterposition, cnumtoremove).ok() } pub unsafe fn ReplaceText(&self, ccharacterposition: u32, pchartext: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReplaceText)(::windows::core::Interface::as_raw(self), ccharacterposition, pchartext.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pchartext))).ok() + (::windows::core::Interface::vtable(self).ReplaceText)(::windows::core::Interface::as_raw(self), ccharacterposition, pchartext.len() as _, ::core::mem::transmute(pchartext.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -28914,57 +29262,57 @@ impl IDebugEventContextCallbacks { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetInterestMask)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn Breakpoint<'a, P0>(&self, bp: P0, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> + pub unsafe fn Breakpoint<'a, P0>(&self, bp: P0, context: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugBreakpoint2>>, { - (::windows::core::Interface::vtable(self).Breakpoint)(::windows::core::Interface::as_raw(self), bp.into().abi(), ::core::mem::transmute(context), contextsize).ok() + (::windows::core::Interface::vtable(self).Breakpoint)(::windows::core::Interface::as_raw(self), bp.into().abi(), ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn Exception(&self, exception: &EXCEPTION_RECORD64, firstchance: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Exception)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(exception), firstchance, ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn Exception(&self, exception: &EXCEPTION_RECORD64, firstchance: u32, context: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Exception)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(exception), firstchance, ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } - pub unsafe fn CreateThread(&self, handle: u64, dataoffset: u64, startoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CreateThread)(::windows::core::Interface::as_raw(self), handle, dataoffset, startoffset, ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn CreateThread(&self, handle: u64, dataoffset: u64, startoffset: u64, context: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).CreateThread)(::windows::core::Interface::as_raw(self), handle, dataoffset, startoffset, ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } - pub unsafe fn ExitThread(&self, exitcode: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ExitThread)(::windows::core::Interface::as_raw(self), exitcode, ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn ExitThread(&self, exitcode: u32, context: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ExitThread)(::windows::core::Interface::as_raw(self), exitcode, ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } - pub unsafe fn CreateProcessA<'a, P0, P1>(&self, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> + pub unsafe fn CreateProcessA<'a, P0, P1>(&self, imagefilehandle: u64, handle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32, initialthreadhandle: u64, threaddataoffset: u64, startoffset: u64, context: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).CreateProcessA)(::windows::core::Interface::as_raw(self), imagefilehandle, handle, baseoffset, modulesize, modulename.into(), imagename.into(), checksum, timedatestamp, initialthreadhandle, threaddataoffset, startoffset, ::core::mem::transmute(context), contextsize).ok() + (::windows::core::Interface::vtable(self).CreateProcessA)(::windows::core::Interface::as_raw(self), imagefilehandle, handle, baseoffset, modulesize, modulename.into(), imagename.into(), checksum, timedatestamp, initialthreadhandle, threaddataoffset, startoffset, ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } - pub unsafe fn ExitProcess(&self, exitcode: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ExitProcess)(::windows::core::Interface::as_raw(self), exitcode, ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn ExitProcess(&self, exitcode: u32, context: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ExitProcess)(::windows::core::Interface::as_raw(self), exitcode, ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } - pub unsafe fn LoadModule<'a, P0, P1>(&self, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> + pub unsafe fn LoadModule<'a, P0, P1>(&self, imagefilehandle: u64, baseoffset: u64, modulesize: u32, modulename: P0, imagename: P1, checksum: u32, timedatestamp: u32, context: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).LoadModule)(::windows::core::Interface::as_raw(self), imagefilehandle, baseoffset, modulesize, modulename.into(), imagename.into(), checksum, timedatestamp, ::core::mem::transmute(context), contextsize).ok() + (::windows::core::Interface::vtable(self).LoadModule)(::windows::core::Interface::as_raw(self), imagefilehandle, baseoffset, modulesize, modulename.into(), imagename.into(), checksum, timedatestamp, ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } - pub unsafe fn UnloadModule<'a, P0>(&self, imagebasename: P0, baseoffset: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> + pub unsafe fn UnloadModule<'a, P0>(&self, imagebasename: P0, baseoffset: u64, context: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).UnloadModule)(::windows::core::Interface::as_raw(self), imagebasename.into(), baseoffset, ::core::mem::transmute(context), contextsize).ok() + (::windows::core::Interface::vtable(self).UnloadModule)(::windows::core::Interface::as_raw(self), imagebasename.into(), baseoffset, ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } - pub unsafe fn SystemError(&self, error: u32, level: u32, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SystemError)(::windows::core::Interface::as_raw(self), error, level, ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn SystemError(&self, error: u32, level: u32, context: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SystemError)(::windows::core::Interface::as_raw(self), error, level, ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } pub unsafe fn SessionStatus(&self, status: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SessionStatus)(::windows::core::Interface::as_raw(self), status).ok() } - pub unsafe fn ChangeDebuggeeState(&self, flags: u32, argument: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ChangeDebuggeeState)(::windows::core::Interface::as_raw(self), flags, argument, ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn ChangeDebuggeeState(&self, flags: u32, argument: u64, context: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ChangeDebuggeeState)(::windows::core::Interface::as_raw(self), flags, argument, ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } - pub unsafe fn ChangeEngineState(&self, flags: u32, argument: u64, context: *const ::core::ffi::c_void, contextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ChangeEngineState)(::windows::core::Interface::as_raw(self), flags, argument, ::core::mem::transmute(context), contextsize).ok() + pub unsafe fn ChangeEngineState(&self, flags: u32, argument: u64, context: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ChangeEngineState)(::windows::core::Interface::as_raw(self), flags, argument, ::core::mem::transmute(context.as_ptr()), context.len() as _).ok() } pub unsafe fn ChangeSymbolState(&self, flags: u32, argument: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ChangeSymbolState)(::windows::core::Interface::as_raw(self), flags, argument).ok() @@ -29224,7 +29572,7 @@ impl IDebugExtendedProperty { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetExtendedInfo(&self, cinfos: u32, rgguidextendedinfo: &::windows::core::GUID, rgvar: &mut super::super::Com::VARIANT) -> ::windows::core::Result<()> { + pub unsafe fn GetExtendedInfo(&self, cinfos: u32, rgguidextendedinfo: *const ::windows::core::GUID, rgvar: *mut super::super::Com::VARIANT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetExtendedInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cinfos), ::core::mem::transmute(rgguidextendedinfo), ::core::mem::transmute(rgvar)).ok() } pub unsafe fn SetValueAsString<'a, P0>(&self, pszvalue: P0, nradix: u32) -> ::windows::core::Result<()> @@ -30297,30 +30645,30 @@ pub struct IDebugHostField_Vtbl { #[repr(transparent)] pub struct IDebugHostMemory(::windows::core::IUnknown); impl IDebugHostMemory { - pub unsafe fn ReadBytes<'a, P0>(&self, context: P0, location: Location, buffer: *mut ::core::ffi::c_void, buffersize: u64, bytesread: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> + pub unsafe fn ReadBytes<'a, P0>(&self, context: P0, location: Location, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>, { - (::windows::core::Interface::vtable(self).ReadBytes)(::windows::core::Interface::as_raw(self), context.into().abi(), ::core::mem::transmute(location), ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + (::windows::core::Interface::vtable(self).ReadBytes)(::windows::core::Interface::as_raw(self), context.into().abi(), ::core::mem::transmute(location), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteBytes<'a, P0>(&self, context: P0, location: Location, buffer: *const ::core::ffi::c_void, buffersize: u64) -> ::windows::core::Result + pub unsafe fn WriteBytes<'a, P0>(&self, context: P0, location: Location, buffer: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteBytes)(::windows::core::Interface::as_raw(self), context.into().abi(), ::core::mem::transmute(location), ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteBytes)(::windows::core::Interface::as_raw(self), context.into().abi(), ::core::mem::transmute(location), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn ReadPointers<'a, P0>(&self, context: P0, location: Location, pointers: &mut [u64]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>, { - (::windows::core::Interface::vtable(self).ReadPointers)(::windows::core::Interface::as_raw(self), context.into().abi(), ::core::mem::transmute(location), pointers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pointers))).ok() + (::windows::core::Interface::vtable(self).ReadPointers)(::windows::core::Interface::as_raw(self), context.into().abi(), ::core::mem::transmute(location), pointers.len() as _, ::core::mem::transmute(pointers.as_ptr())).ok() } pub unsafe fn WritePointers<'a, P0>(&self, context: P0, location: Location, pointers: &[u64]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>, { - (::windows::core::Interface::vtable(self).WritePointers)(::windows::core::Interface::as_raw(self), context.into().abi(), ::core::mem::transmute(location), pointers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pointers))).ok() + (::windows::core::Interface::vtable(self).WritePointers)(::windows::core::Interface::as_raw(self), context.into().abi(), ::core::mem::transmute(location), pointers.len() as _, ::core::mem::transmute(pointers.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -30384,30 +30732,30 @@ pub struct IDebugHostMemory_Vtbl { #[repr(transparent)] pub struct IDebugHostMemory2(::windows::core::IUnknown); impl IDebugHostMemory2 { - pub unsafe fn ReadBytes<'a, P0>(&self, context: P0, location: Location, buffer: *mut ::core::ffi::c_void, buffersize: u64, bytesread: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> + pub unsafe fn ReadBytes<'a, P0>(&self, context: P0, location: Location, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>, { - (::windows::core::Interface::vtable(self).base__.ReadBytes)(::windows::core::Interface::as_raw(self), context.into().abi(), ::core::mem::transmute(location), ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + (::windows::core::Interface::vtable(self).base__.ReadBytes)(::windows::core::Interface::as_raw(self), context.into().abi(), ::core::mem::transmute(location), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteBytes<'a, P0>(&self, context: P0, location: Location, buffer: *const ::core::ffi::c_void, buffersize: u64) -> ::windows::core::Result + pub unsafe fn WriteBytes<'a, P0>(&self, context: P0, location: Location, buffer: &[u8]) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.WriteBytes)(::windows::core::Interface::as_raw(self), context.into().abi(), ::core::mem::transmute(location), ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.WriteBytes)(::windows::core::Interface::as_raw(self), context.into().abi(), ::core::mem::transmute(location), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn ReadPointers<'a, P0>(&self, context: P0, location: Location, pointers: &mut [u64]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>, { - (::windows::core::Interface::vtable(self).base__.ReadPointers)(::windows::core::Interface::as_raw(self), context.into().abi(), ::core::mem::transmute(location), pointers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pointers))).ok() + (::windows::core::Interface::vtable(self).base__.ReadPointers)(::windows::core::Interface::as_raw(self), context.into().abi(), ::core::mem::transmute(location), pointers.len() as _, ::core::mem::transmute(pointers.as_ptr())).ok() } pub unsafe fn WritePointers<'a, P0>(&self, context: P0, location: Location, pointers: &[u64]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IDebugHostContext>>, { - (::windows::core::Interface::vtable(self).base__.WritePointers)(::windows::core::Interface::as_raw(self), context.into().abi(), ::core::mem::transmute(location), pointers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pointers))).ok() + (::windows::core::Interface::vtable(self).base__.WritePointers)(::windows::core::Interface::as_raw(self), context.into().abi(), ::core::mem::transmute(location), pointers.len() as _, ::core::mem::transmute(pointers.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -31459,11 +31807,11 @@ impl IDebugHostType { (::windows::core::Interface::vtable(self).GetArrayDimensionality)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetArrayDimensions(&self, pdimensions: &mut [ArrayDimension]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetArrayDimensions)(::windows::core::Interface::as_raw(self), pdimensions.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pdimensions))).ok() + (::windows::core::Interface::vtable(self).GetArrayDimensions)(::windows::core::Interface::as_raw(self), pdimensions.len() as _, ::core::mem::transmute(pdimensions.as_ptr())).ok() } pub unsafe fn CreateArrayOf(&self, pdimensions: &[ArrayDimension]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateArrayOf)(::windows::core::Interface::as_raw(self), pdimensions.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdimensions)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateArrayOf)(::windows::core::Interface::as_raw(self), pdimensions.len() as _, ::core::mem::transmute(pdimensions.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetFunctionCallingConvention(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -31647,11 +31995,11 @@ impl IDebugHostType2 { (::windows::core::Interface::vtable(self).base__.GetArrayDimensionality)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetArrayDimensions(&self, pdimensions: &mut [ArrayDimension]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetArrayDimensions)(::windows::core::Interface::as_raw(self), pdimensions.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pdimensions))).ok() + (::windows::core::Interface::vtable(self).base__.GetArrayDimensions)(::windows::core::Interface::as_raw(self), pdimensions.len() as _, ::core::mem::transmute(pdimensions.as_ptr())).ok() } pub unsafe fn CreateArrayOf(&self, pdimensions: &[ArrayDimension]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateArrayOf)(::windows::core::Interface::as_raw(self), pdimensions.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdimensions)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateArrayOf)(::windows::core::Interface::as_raw(self), pdimensions.len() as _, ::core::mem::transmute(pdimensions.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetFunctionCallingConvention(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -32372,7 +32720,7 @@ impl IDebugProperty { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetExtendedInfo(&self, cinfos: u32, rgguidextendedinfo: &::windows::core::GUID, rgvar: &mut super::super::Com::VARIANT) -> ::windows::core::Result<()> { + pub unsafe fn GetExtendedInfo(&self, cinfos: u32, rgguidextendedinfo: *const ::windows::core::GUID, rgvar: *mut super::super::Com::VARIANT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetExtendedInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cinfos), ::core::mem::transmute(rgguidextendedinfo), ::core::mem::transmute(rgvar)).ok() } pub unsafe fn SetValueAsString<'a, P0>(&self, pszvalue: P0, nradix: u32) -> ::windows::core::Result<()> @@ -32768,8 +33116,8 @@ impl IDebugRegisters { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberRegisters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetDescription(&self, register: u32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, desc: ::core::option::Option<&mut DEBUG_REGISTER_DESCRIPTION>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDescription)(::windows::core::Interface::as_raw(self), register, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(desc)).ok() + pub unsafe fn GetDescription(&self, register: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, desc: ::core::option::Option<&mut DEBUG_REGISTER_DESCRIPTION>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDescription)(::windows::core::Interface::as_raw(self), register, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(desc)).ok() } pub unsafe fn GetIndexByName<'a, P0>(&self, name: P0) -> ::windows::core::Result where @@ -32791,12 +33139,12 @@ impl IDebugRegisters { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetValues(&self, count: u32, indices: ::core::option::Option<&u32>, start: u32, values: &mut DEBUG_VALUE) -> ::windows::core::Result<()> { + pub unsafe fn GetValues(&self, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(indices), start, ::core::mem::transmute(values)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetValues(&self, count: u32, indices: ::core::option::Option<&u32>, start: u32, values: &DEBUG_VALUE) -> ::windows::core::Result<()> { + pub unsafe fn SetValues(&self, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(indices), start, ::core::mem::transmute(values)).ok() } pub unsafe fn OutputRegisters(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> { @@ -32886,8 +33234,8 @@ impl IDebugRegisters2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberRegisters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetDescription(&self, register: u32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, desc: ::core::option::Option<&mut DEBUG_REGISTER_DESCRIPTION>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDescription)(::windows::core::Interface::as_raw(self), register, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(desc)).ok() + pub unsafe fn GetDescription(&self, register: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, desc: ::core::option::Option<&mut DEBUG_REGISTER_DESCRIPTION>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDescription)(::windows::core::Interface::as_raw(self), register, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(desc)).ok() } pub unsafe fn GetIndexByName<'a, P0>(&self, name: P0) -> ::windows::core::Result where @@ -32909,12 +33257,12 @@ impl IDebugRegisters2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetValues(&self, count: u32, indices: ::core::option::Option<&u32>, start: u32, values: &mut DEBUG_VALUE) -> ::windows::core::Result<()> { + pub unsafe fn GetValues(&self, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(indices), start, ::core::mem::transmute(values)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetValues(&self, count: u32, indices: ::core::option::Option<&u32>, start: u32, values: &DEBUG_VALUE) -> ::windows::core::Result<()> { + pub unsafe fn SetValues(&self, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(indices), start, ::core::mem::transmute(values)).ok() } pub unsafe fn OutputRegisters(&self, outputcontrol: u32, flags: u32) -> ::windows::core::Result<()> { @@ -32932,8 +33280,8 @@ impl IDebugRegisters2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetFrameOffset)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetDescriptionWide(&self, register: u32, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>, desc: ::core::option::Option<&mut DEBUG_REGISTER_DESCRIPTION>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDescriptionWide)(::windows::core::Interface::as_raw(self), register, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(desc)).ok() + pub unsafe fn GetDescriptionWide(&self, register: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>, desc: ::core::option::Option<&mut DEBUG_REGISTER_DESCRIPTION>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetDescriptionWide)(::windows::core::Interface::as_raw(self), register, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(desc)).ok() } pub unsafe fn GetIndexByNameWide<'a, P0>(&self, name: P0) -> ::windows::core::Result where @@ -32946,11 +33294,11 @@ impl IDebugRegisters2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberPseudoRegisters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetPseudoDescription(&self, register: u32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, typemodule: ::core::option::Option<&mut u64>, typeid: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPseudoDescription)(::windows::core::Interface::as_raw(self), register, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(typemodule), ::core::mem::transmute(typeid)).ok() + pub unsafe fn GetPseudoDescription(&self, register: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, typemodule: ::core::option::Option<&mut u64>, typeid: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPseudoDescription)(::windows::core::Interface::as_raw(self), register, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(typemodule), ::core::mem::transmute(typeid)).ok() } - pub unsafe fn GetPseudoDescriptionWide(&self, register: u32, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>, typemodule: ::core::option::Option<&mut u64>, typeid: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPseudoDescriptionWide)(::windows::core::Interface::as_raw(self), register, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(typemodule), ::core::mem::transmute(typeid)).ok() + pub unsafe fn GetPseudoDescriptionWide(&self, register: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>, typemodule: ::core::option::Option<&mut u64>, typeid: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPseudoDescriptionWide)(::windows::core::Interface::as_raw(self), register, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(typemodule), ::core::mem::transmute(typeid)).ok() } pub unsafe fn GetPseudoIndexByName<'a, P0>(&self, name: P0) -> ::windows::core::Result where @@ -32968,22 +33316,22 @@ impl IDebugRegisters2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetPseudoValues(&self, source: u32, count: u32, indices: ::core::option::Option<&u32>, start: u32, values: &mut DEBUG_VALUE) -> ::windows::core::Result<()> { + pub unsafe fn GetPseudoValues(&self, source: u32, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPseudoValues)(::windows::core::Interface::as_raw(self), source, ::core::mem::transmute(count), ::core::mem::transmute(indices), start, ::core::mem::transmute(values)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetPseudoValues(&self, source: u32, count: u32, indices: ::core::option::Option<&u32>, start: u32, values: &DEBUG_VALUE) -> ::windows::core::Result<()> { + pub unsafe fn SetPseudoValues(&self, source: u32, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetPseudoValues)(::windows::core::Interface::as_raw(self), source, ::core::mem::transmute(count), ::core::mem::transmute(indices), start, ::core::mem::transmute(values)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetValues2(&self, source: u32, count: u32, indices: ::core::option::Option<&u32>, start: u32, values: &mut DEBUG_VALUE) -> ::windows::core::Result<()> { + pub unsafe fn GetValues2(&self, source: u32, count: u32, indices: *const u32, start: u32, values: *mut DEBUG_VALUE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetValues2)(::windows::core::Interface::as_raw(self), source, ::core::mem::transmute(count), ::core::mem::transmute(indices), start, ::core::mem::transmute(values)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetValues2(&self, source: u32, count: u32, indices: ::core::option::Option<&u32>, start: u32, values: &DEBUG_VALUE) -> ::windows::core::Result<()> { + pub unsafe fn SetValues2(&self, source: u32, count: u32, indices: *const u32, start: u32, values: *const DEBUG_VALUE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetValues2)(::windows::core::Interface::as_raw(self), source, ::core::mem::transmute(count), ::core::mem::transmute(indices), start, ::core::mem::transmute(values)).ok() } pub unsafe fn OutputRegisters2(&self, outputcontrol: u32, source: u32, flags: u32) -> ::windows::core::Result<()> { @@ -33541,11 +33889,11 @@ impl IDebugSymbolGroup { pub unsafe fn RemoveSymbolByIndex(&self, index: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).RemoveSymbolByIndex)(::windows::core::Interface::as_raw(self), index).ok() } - pub unsafe fn GetSymbolName(&self, index: u32, buffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolName)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetSymbolName(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolName)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn GetSymbolParameters(&self, start: u32, params: &mut [DEBUG_SYMBOL_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).GetSymbolParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -33647,11 +33995,11 @@ impl IDebugSymbolGroup2 { pub unsafe fn RemoveSymbolByIndex(&self, index: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).RemoveSymbolByIndex)(::windows::core::Interface::as_raw(self), index).ok() } - pub unsafe fn GetSymbolName(&self, index: u32, buffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolName)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetSymbolName(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolName)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn GetSymbolParameters(&self, start: u32, params: &mut [DEBUG_SYMBOL_PARAMETERS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(params))).ok() + (::windows::core::Interface::vtable(self).GetSymbolParameters)(::windows::core::Interface::as_raw(self), start, params.len() as _, ::core::mem::transmute(params.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -33688,8 +34036,8 @@ impl IDebugSymbolGroup2 { { (::windows::core::Interface::vtable(self).RemoveSymbolByNameWide)(::windows::core::Interface::as_raw(self), name.into()).ok() } - pub unsafe fn GetSymbolNameWide(&self, index: u32, buffer: &mut [u16], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolNameWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetSymbolNameWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolNameWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn WriteSymbolWide<'a, P0>(&self, index: u32, value: P0) -> ::windows::core::Result<()> where @@ -33703,11 +34051,11 @@ impl IDebugSymbolGroup2 { { (::windows::core::Interface::vtable(self).OutputAsTypeWide)(::windows::core::Interface::as_raw(self), index, r#type.into()).ok() } - pub unsafe fn GetSymbolTypeName(&self, index: u32, buffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolTypeName)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetSymbolTypeName(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolTypeName)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetSymbolTypeNameWide(&self, index: u32, buffer: &mut [u16], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolTypeNameWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetSymbolTypeNameWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolTypeNameWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn GetSymbolSize(&self, index: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -33721,11 +34069,11 @@ impl IDebugSymbolGroup2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSymbolRegister)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetSymbolValueText(&self, index: u32, buffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolValueText)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetSymbolValueText(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolValueText)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetSymbolValueTextWide(&self, index: u32, buffer: &mut [u16], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolValueTextWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetSymbolValueTextWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolValueTextWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn GetSymbolEntryInformation(&self, index: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -33815,8 +34163,8 @@ impl IDebugSymbols { pub unsafe fn SetSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetSymbolOptions)(::windows::core::Interface::as_raw(self), options).ok() } - pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNameByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNameByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn GetOffsetByName<'a, P0>(&self, symbol: P0) -> ::windows::core::Result where @@ -33825,11 +34173,11 @@ impl IDebugSymbols { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetOffsetByName)(::windows::core::Interface::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNearNameByOffset)(::windows::core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNearNameByOffset)(::windows::core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } - pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<&mut u32>, filebuffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLineByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(line), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filebuffer)), filebuffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<&mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLineByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(line), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn GetOffsetByLine<'a, P0>(&self, line: u32, file: P0) -> ::windows::core::Result where @@ -33854,24 +34202,24 @@ impl IDebugSymbols { pub unsafe fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: ::core::option::Option<&mut u32>, base: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetModuleByOffset)(::windows::core::Interface::as_raw(self), offset, startindex, ::core::mem::transmute(index), ::core::mem::transmute(base)).ok() } - pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: &mut [u8], imagenamesize: ::core::option::Option<&mut u32>, modulenamebuffer: &mut [u8], modulenamesize: ::core::option::Option<&mut u32>, loadedimagenamebuffer: &mut [u8], loadedimagenamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::core::option::Option<&mut [u8]>, imagenamesize: ::core::option::Option<&mut u32>, modulenamebuffer: ::core::option::Option<&mut [u8]>, modulenamesize: ::core::option::Option<&mut u32>, loadedimagenamebuffer: ::core::option::Option<&mut [u8]>, loadedimagenamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetModuleNames)( ::windows::core::Interface::as_raw(self), index, base, - ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(imagenamebuffer)), - imagenamebuffer.len() as _, + ::core::mem::transmute(imagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + imagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(imagenamesize), - ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(modulenamebuffer)), - modulenamebuffer.len() as _, + ::core::mem::transmute(modulenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + modulenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(modulenamesize), - ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(loadedimagenamebuffer)), - loadedimagenamebuffer.len() as _, + ::core::mem::transmute(loadedimagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + loadedimagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(loadedimagenamesize), ) .ok() } - pub unsafe fn GetModuleParameters(&self, count: u32, bases: ::core::option::Option<&u64>, start: u32, params: &mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetModuleParameters(&self, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetModuleParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(bases), start, ::core::mem::transmute(params)).ok() } pub unsafe fn GetSymbolModule<'a, P0>(&self, symbol: P0) -> ::windows::core::Result @@ -33881,8 +34229,8 @@ impl IDebugSymbols { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSymbolModule)(::windows::core::Interface::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTypeName)(::windows::core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTypeName)(::windows::core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn GetTypeId<'a, P0>(&self, module: u64, name: P0) -> ::windows::core::Result where @@ -33911,35 +34259,35 @@ impl IDebugSymbols { pub unsafe fn GetOffsetTypeId(&self, offset: u64, typeid: &mut u32, module: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetOffsetTypeId)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(typeid), ::core::mem::transmute(module)).ok() } - pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputTypedDataVirtual)(::windows::core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok() } - pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputTypedDataPhysical)(::windows::core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<&mut u64>, scopeframe: ::core::option::Option<&mut DEBUG_STACK_FRAME>, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetScope)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset), ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext), scopecontextsize).ok() + pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<&mut u64>, scopeframe: ::core::option::Option<&mut DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<&mut [u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetScope)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset), ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), scopecontext.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<&DEBUG_STACK_FRAME>, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetScope)(::windows::core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext), scopecontextsize).ok() + pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<&DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetScope)(::windows::core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), scopecontext.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn ResetScope(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ResetScope)(::windows::core::Interface::as_raw(self)).ok() @@ -33962,8 +34310,8 @@ impl IDebugSymbols { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).StartSymbolMatch)(::windows::core::Interface::as_raw(self), pattern.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: &mut [u8], matchsize: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNextSymbolMatch)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(matchsize), ::core::mem::transmute(offset)).ok() + pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: ::core::option::Option<&mut [u8]>, matchsize: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNextSymbolMatch)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(matchsize), ::core::mem::transmute(offset)).ok() } pub unsafe fn EndSymbolMatch(&self, handle: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).EndSymbolMatch)(::windows::core::Interface::as_raw(self), handle).ok() @@ -33974,8 +34322,8 @@ impl IDebugSymbols { { (::windows::core::Interface::vtable(self).Reload)(::windows::core::Interface::as_raw(self), module.into()).ok() } - pub unsafe fn GetSymbolPath(&self, buffer: &mut [u8], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetSymbolPath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } pub unsafe fn SetSymbolPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -33989,8 +34337,8 @@ impl IDebugSymbols { { (::windows::core::Interface::vtable(self).AppendSymbolPath)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn GetImagePath(&self, buffer: &mut [u8], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetImagePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetImagePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetImagePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } pub unsafe fn SetImagePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -34004,11 +34352,11 @@ impl IDebugSymbols { { (::windows::core::Interface::vtable(self).AppendImagePath)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn GetSourcePath(&self, buffer: &mut [u8], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourcePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetSourcePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourcePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } - pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: &mut [u8], elementsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourcePathElement)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(elementsize)).ok() + pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, elementsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourcePathElement)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(elementsize)).ok() } pub unsafe fn SetSourcePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -34022,17 +34370,17 @@ impl IDebugSymbols { { (::windows::core::Interface::vtable(self).AppendSourcePath)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn FindSourceFile<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<&mut u32>, buffer: &mut [u8], foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn FindSourceFile<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<&mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).FindSourceFile)(::windows::core::Interface::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(foundsize)).ok() + (::windows::core::Interface::vtable(self).FindSourceFile)(::windows::core::Interface::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize)).ok() } - pub unsafe fn GetSourceFileLineOffsets<'a, P0>(&self, file: P0, buffer: &mut [u64], filelines: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceFileLineOffsets<'a, P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetSourceFileLineOffsets)(::windows::core::Interface::as_raw(self), file.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filelines)).ok() + (::windows::core::Interface::vtable(self).GetSourceFileLineOffsets)(::windows::core::Interface::as_raw(self), file.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filelines)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -34147,8 +34495,8 @@ impl IDebugSymbols2 { pub unsafe fn SetSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetSymbolOptions)(::windows::core::Interface::as_raw(self), options).ok() } - pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNameByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNameByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn GetOffsetByName<'a, P0>(&self, symbol: P0) -> ::windows::core::Result where @@ -34157,11 +34505,11 @@ impl IDebugSymbols2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetOffsetByName)(::windows::core::Interface::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNearNameByOffset)(::windows::core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNearNameByOffset)(::windows::core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } - pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<&mut u32>, filebuffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLineByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(line), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filebuffer)), filebuffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<&mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLineByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(line), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn GetOffsetByLine<'a, P0>(&self, line: u32, file: P0) -> ::windows::core::Result where @@ -34186,24 +34534,24 @@ impl IDebugSymbols2 { pub unsafe fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: ::core::option::Option<&mut u32>, base: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetModuleByOffset)(::windows::core::Interface::as_raw(self), offset, startindex, ::core::mem::transmute(index), ::core::mem::transmute(base)).ok() } - pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: &mut [u8], imagenamesize: ::core::option::Option<&mut u32>, modulenamebuffer: &mut [u8], modulenamesize: ::core::option::Option<&mut u32>, loadedimagenamebuffer: &mut [u8], loadedimagenamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::core::option::Option<&mut [u8]>, imagenamesize: ::core::option::Option<&mut u32>, modulenamebuffer: ::core::option::Option<&mut [u8]>, modulenamesize: ::core::option::Option<&mut u32>, loadedimagenamebuffer: ::core::option::Option<&mut [u8]>, loadedimagenamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetModuleNames)( ::windows::core::Interface::as_raw(self), index, base, - ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(imagenamebuffer)), - imagenamebuffer.len() as _, + ::core::mem::transmute(imagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + imagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(imagenamesize), - ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(modulenamebuffer)), - modulenamebuffer.len() as _, + ::core::mem::transmute(modulenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + modulenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(modulenamesize), - ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(loadedimagenamebuffer)), - loadedimagenamebuffer.len() as _, + ::core::mem::transmute(loadedimagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + loadedimagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(loadedimagenamesize), ) .ok() } - pub unsafe fn GetModuleParameters(&self, count: u32, bases: ::core::option::Option<&u64>, start: u32, params: &mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetModuleParameters(&self, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetModuleParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(bases), start, ::core::mem::transmute(params)).ok() } pub unsafe fn GetSymbolModule<'a, P0>(&self, symbol: P0) -> ::windows::core::Result @@ -34213,8 +34561,8 @@ impl IDebugSymbols2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSymbolModule)(::windows::core::Interface::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTypeName)(::windows::core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTypeName)(::windows::core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn GetTypeId<'a, P0>(&self, module: u64, name: P0) -> ::windows::core::Result where @@ -34243,35 +34591,35 @@ impl IDebugSymbols2 { pub unsafe fn GetOffsetTypeId(&self, offset: u64, typeid: &mut u32, module: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetOffsetTypeId)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(typeid), ::core::mem::transmute(module)).ok() } - pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputTypedDataVirtual)(::windows::core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok() } - pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputTypedDataPhysical)(::windows::core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<&mut u64>, scopeframe: ::core::option::Option<&mut DEBUG_STACK_FRAME>, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetScope)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset), ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext), scopecontextsize).ok() + pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<&mut u64>, scopeframe: ::core::option::Option<&mut DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<&mut [u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetScope)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset), ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), scopecontext.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<&DEBUG_STACK_FRAME>, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetScope)(::windows::core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext), scopecontextsize).ok() + pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<&DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetScope)(::windows::core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), scopecontext.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn ResetScope(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ResetScope)(::windows::core::Interface::as_raw(self)).ok() @@ -34294,8 +34642,8 @@ impl IDebugSymbols2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).StartSymbolMatch)(::windows::core::Interface::as_raw(self), pattern.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: &mut [u8], matchsize: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNextSymbolMatch)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(matchsize), ::core::mem::transmute(offset)).ok() + pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: ::core::option::Option<&mut [u8]>, matchsize: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNextSymbolMatch)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(matchsize), ::core::mem::transmute(offset)).ok() } pub unsafe fn EndSymbolMatch(&self, handle: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).EndSymbolMatch)(::windows::core::Interface::as_raw(self), handle).ok() @@ -34306,8 +34654,8 @@ impl IDebugSymbols2 { { (::windows::core::Interface::vtable(self).Reload)(::windows::core::Interface::as_raw(self), module.into()).ok() } - pub unsafe fn GetSymbolPath(&self, buffer: &mut [u8], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetSymbolPath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } pub unsafe fn SetSymbolPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -34321,8 +34669,8 @@ impl IDebugSymbols2 { { (::windows::core::Interface::vtable(self).AppendSymbolPath)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn GetImagePath(&self, buffer: &mut [u8], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetImagePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetImagePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetImagePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } pub unsafe fn SetImagePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -34336,11 +34684,11 @@ impl IDebugSymbols2 { { (::windows::core::Interface::vtable(self).AppendImagePath)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn GetSourcePath(&self, buffer: &mut [u8], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourcePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetSourcePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourcePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } - pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: &mut [u8], elementsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourcePathElement)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(elementsize)).ok() + pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, elementsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourcePathElement)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(elementsize)).ok() } pub unsafe fn SetSourcePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -34354,32 +34702,32 @@ impl IDebugSymbols2 { { (::windows::core::Interface::vtable(self).AppendSourcePath)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn FindSourceFile<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<&mut u32>, buffer: &mut [u8], foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn FindSourceFile<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<&mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).FindSourceFile)(::windows::core::Interface::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(foundsize)).ok() + (::windows::core::Interface::vtable(self).FindSourceFile)(::windows::core::Interface::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize)).ok() } - pub unsafe fn GetSourceFileLineOffsets<'a, P0>(&self, file: P0, buffer: &mut [u64], filelines: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceFileLineOffsets<'a, P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetSourceFileLineOffsets)(::windows::core::Interface::as_raw(self), file.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filelines)).ok() + (::windows::core::Interface::vtable(self).GetSourceFileLineOffsets)(::windows::core::Interface::as_raw(self), file.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filelines)).ok() } - pub unsafe fn GetModuleVersionInformation<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetModuleVersionInformation<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<&mut [u8]>, verinfosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetModuleVersionInformation)(::windows::core::Interface::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(verinfosize)).ok() + (::windows::core::Interface::vtable(self).GetModuleVersionInformation)(::windows::core::Interface::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(verinfosize)).ok() } - pub unsafe fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetModuleNameString)(::windows::core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetModuleNameString)(::windows::core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetConstantName)(::windows::core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetConstantName)(::windows::core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFieldName)(::windows::core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetFieldName)(::windows::core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn GetTypeOptions(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -34515,8 +34863,8 @@ impl IDebugSymbols3 { pub unsafe fn SetSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetSymbolOptions)(::windows::core::Interface::as_raw(self), options).ok() } - pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNameByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNameByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn GetOffsetByName<'a, P0>(&self, symbol: P0) -> ::windows::core::Result where @@ -34525,11 +34873,11 @@ impl IDebugSymbols3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetOffsetByName)(::windows::core::Interface::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNearNameByOffset)(::windows::core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNearNameByOffset)(::windows::core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } - pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<&mut u32>, filebuffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLineByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(line), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filebuffer)), filebuffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<&mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLineByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(line), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn GetOffsetByLine<'a, P0>(&self, line: u32, file: P0) -> ::windows::core::Result where @@ -34554,24 +34902,24 @@ impl IDebugSymbols3 { pub unsafe fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: ::core::option::Option<&mut u32>, base: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetModuleByOffset)(::windows::core::Interface::as_raw(self), offset, startindex, ::core::mem::transmute(index), ::core::mem::transmute(base)).ok() } - pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: &mut [u8], imagenamesize: ::core::option::Option<&mut u32>, modulenamebuffer: &mut [u8], modulenamesize: ::core::option::Option<&mut u32>, loadedimagenamebuffer: &mut [u8], loadedimagenamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::core::option::Option<&mut [u8]>, imagenamesize: ::core::option::Option<&mut u32>, modulenamebuffer: ::core::option::Option<&mut [u8]>, modulenamesize: ::core::option::Option<&mut u32>, loadedimagenamebuffer: ::core::option::Option<&mut [u8]>, loadedimagenamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetModuleNames)( ::windows::core::Interface::as_raw(self), index, base, - ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(imagenamebuffer)), - imagenamebuffer.len() as _, + ::core::mem::transmute(imagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + imagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(imagenamesize), - ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(modulenamebuffer)), - modulenamebuffer.len() as _, + ::core::mem::transmute(modulenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + modulenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(modulenamesize), - ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(loadedimagenamebuffer)), - loadedimagenamebuffer.len() as _, + ::core::mem::transmute(loadedimagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + loadedimagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(loadedimagenamesize), ) .ok() } - pub unsafe fn GetModuleParameters(&self, count: u32, bases: ::core::option::Option<&u64>, start: u32, params: &mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetModuleParameters(&self, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetModuleParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(bases), start, ::core::mem::transmute(params)).ok() } pub unsafe fn GetSymbolModule<'a, P0>(&self, symbol: P0) -> ::windows::core::Result @@ -34581,8 +34929,8 @@ impl IDebugSymbols3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSymbolModule)(::windows::core::Interface::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTypeName)(::windows::core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTypeName)(::windows::core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn GetTypeId<'a, P0>(&self, module: u64, name: P0) -> ::windows::core::Result where @@ -34611,35 +34959,35 @@ impl IDebugSymbols3 { pub unsafe fn GetOffsetTypeId(&self, offset: u64, typeid: &mut u32, module: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetOffsetTypeId)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(typeid), ::core::mem::transmute(module)).ok() } - pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputTypedDataVirtual)(::windows::core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok() } - pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputTypedDataPhysical)(::windows::core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<&mut u64>, scopeframe: ::core::option::Option<&mut DEBUG_STACK_FRAME>, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetScope)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset), ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext), scopecontextsize).ok() + pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<&mut u64>, scopeframe: ::core::option::Option<&mut DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<&mut [u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetScope)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset), ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), scopecontext.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<&DEBUG_STACK_FRAME>, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetScope)(::windows::core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext), scopecontextsize).ok() + pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<&DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetScope)(::windows::core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), scopecontext.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn ResetScope(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ResetScope)(::windows::core::Interface::as_raw(self)).ok() @@ -34662,8 +35010,8 @@ impl IDebugSymbols3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).StartSymbolMatch)(::windows::core::Interface::as_raw(self), pattern.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: &mut [u8], matchsize: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNextSymbolMatch)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(matchsize), ::core::mem::transmute(offset)).ok() + pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: ::core::option::Option<&mut [u8]>, matchsize: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNextSymbolMatch)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(matchsize), ::core::mem::transmute(offset)).ok() } pub unsafe fn EndSymbolMatch(&self, handle: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).EndSymbolMatch)(::windows::core::Interface::as_raw(self), handle).ok() @@ -34674,8 +35022,8 @@ impl IDebugSymbols3 { { (::windows::core::Interface::vtable(self).Reload)(::windows::core::Interface::as_raw(self), module.into()).ok() } - pub unsafe fn GetSymbolPath(&self, buffer: &mut [u8], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetSymbolPath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } pub unsafe fn SetSymbolPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -34689,8 +35037,8 @@ impl IDebugSymbols3 { { (::windows::core::Interface::vtable(self).AppendSymbolPath)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn GetImagePath(&self, buffer: &mut [u8], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetImagePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetImagePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetImagePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } pub unsafe fn SetImagePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -34704,11 +35052,11 @@ impl IDebugSymbols3 { { (::windows::core::Interface::vtable(self).AppendImagePath)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn GetSourcePath(&self, buffer: &mut [u8], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourcePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetSourcePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourcePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } - pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: &mut [u8], elementsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourcePathElement)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(elementsize)).ok() + pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, elementsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourcePathElement)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(elementsize)).ok() } pub unsafe fn SetSourcePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -34722,32 +35070,32 @@ impl IDebugSymbols3 { { (::windows::core::Interface::vtable(self).AppendSourcePath)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn FindSourceFile<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<&mut u32>, buffer: &mut [u8], foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn FindSourceFile<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<&mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).FindSourceFile)(::windows::core::Interface::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(foundsize)).ok() + (::windows::core::Interface::vtable(self).FindSourceFile)(::windows::core::Interface::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize)).ok() } - pub unsafe fn GetSourceFileLineOffsets<'a, P0>(&self, file: P0, buffer: &mut [u64], filelines: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceFileLineOffsets<'a, P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetSourceFileLineOffsets)(::windows::core::Interface::as_raw(self), file.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filelines)).ok() + (::windows::core::Interface::vtable(self).GetSourceFileLineOffsets)(::windows::core::Interface::as_raw(self), file.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filelines)).ok() } - pub unsafe fn GetModuleVersionInformation<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetModuleVersionInformation<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<&mut [u8]>, verinfosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetModuleVersionInformation)(::windows::core::Interface::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(verinfosize)).ok() + (::windows::core::Interface::vtable(self).GetModuleVersionInformation)(::windows::core::Interface::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(verinfosize)).ok() } - pub unsafe fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetModuleNameString)(::windows::core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetModuleNameString)(::windows::core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetConstantName)(::windows::core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetConstantName)(::windows::core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFieldName)(::windows::core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetFieldName)(::windows::core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn GetTypeOptions(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -34762,8 +35110,8 @@ impl IDebugSymbols3 { pub unsafe fn SetTypeOptions(&self, options: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetTypeOptions)(::windows::core::Interface::as_raw(self), options).ok() } - pub unsafe fn GetNameByOffsetWide(&self, offset: u64, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNameByOffsetWide)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNameByOffsetWide(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNameByOffsetWide)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn GetOffsetByNameWide<'a, P0>(&self, symbol: P0) -> ::windows::core::Result where @@ -34772,11 +35120,11 @@ impl IDebugSymbols3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetOffsetByNameWide)(::windows::core::Interface::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNearNameByOffsetWide)(::windows::core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNearNameByOffsetWide)(::windows::core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } - pub unsafe fn GetLineByOffsetWide(&self, offset: u64, line: ::core::option::Option<&mut u32>, filebuffer: &mut [u16], filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLineByOffsetWide)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(line), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filebuffer)), filebuffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetLineByOffsetWide(&self, offset: u64, line: ::core::option::Option<&mut u32>, filebuffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLineByOffsetWide)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(line), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn GetOffsetByLineWide<'a, P0>(&self, line: u32, file: P0) -> ::windows::core::Result where @@ -34798,8 +35146,8 @@ impl IDebugSymbols3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSymbolModuleWide)(::windows::core::Interface::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTypeNameWide)(::windows::core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTypeNameWide)(::windows::core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn GetTypeIdWide<'a, P0>(&self, module: u64, name: P0) -> ::windows::core::Result where @@ -34839,8 +35187,8 @@ impl IDebugSymbols3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).StartSymbolMatchWide)(::windows::core::Interface::as_raw(self), pattern.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetNextSymbolMatchWide(&self, handle: u64, buffer: &mut [u16], matchsize: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNextSymbolMatchWide)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(matchsize), ::core::mem::transmute(offset)).ok() + pub unsafe fn GetNextSymbolMatchWide(&self, handle: u64, buffer: ::core::option::Option<&mut [u16]>, matchsize: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNextSymbolMatchWide)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(matchsize), ::core::mem::transmute(offset)).ok() } pub unsafe fn ReloadWide<'a, P0>(&self, module: P0) -> ::windows::core::Result<()> where @@ -34848,8 +35196,8 @@ impl IDebugSymbols3 { { (::windows::core::Interface::vtable(self).ReloadWide)(::windows::core::Interface::as_raw(self), module.into()).ok() } - pub unsafe fn GetSymbolPathWide(&self, buffer: &mut [u16], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolPathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetSymbolPathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolPathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } pub unsafe fn SetSymbolPathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -34863,8 +35211,8 @@ impl IDebugSymbols3 { { (::windows::core::Interface::vtable(self).AppendSymbolPathWide)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn GetImagePathWide(&self, buffer: &mut [u16], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetImagePathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetImagePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetImagePathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } pub unsafe fn SetImagePathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -34878,11 +35226,11 @@ impl IDebugSymbols3 { { (::windows::core::Interface::vtable(self).AppendImagePathWide)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn GetSourcePathWide(&self, buffer: &mut [u16], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourcePathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetSourcePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourcePathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } - pub unsafe fn GetSourcePathElementWide(&self, index: u32, buffer: &mut [u16], elementsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourcePathElementWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(elementsize)).ok() + pub unsafe fn GetSourcePathElementWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, elementsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourcePathElementWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(elementsize)).ok() } pub unsafe fn SetSourcePathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -34896,32 +35244,32 @@ impl IDebugSymbols3 { { (::windows::core::Interface::vtable(self).AppendSourcePathWide)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn FindSourceFileWide<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<&mut u32>, buffer: &mut [u16], foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn FindSourceFileWide<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<&mut u32>, buffer: ::core::option::Option<&mut [u16]>, foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).FindSourceFileWide)(::windows::core::Interface::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(foundsize)).ok() + (::windows::core::Interface::vtable(self).FindSourceFileWide)(::windows::core::Interface::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize)).ok() } - pub unsafe fn GetSourceFileLineOffsetsWide<'a, P0>(&self, file: P0, buffer: &mut [u64], filelines: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceFileLineOffsetsWide<'a, P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetSourceFileLineOffsetsWide)(::windows::core::Interface::as_raw(self), file.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filelines)).ok() + (::windows::core::Interface::vtable(self).GetSourceFileLineOffsetsWide)(::windows::core::Interface::as_raw(self), file.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filelines)).ok() } - pub unsafe fn GetModuleVersionInformationWide<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetModuleVersionInformationWide<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<&mut [u8]>, verinfosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetModuleVersionInformationWide)(::windows::core::Interface::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(verinfosize)).ok() + (::windows::core::Interface::vtable(self).GetModuleVersionInformationWide)(::windows::core::Interface::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(verinfosize)).ok() } - pub unsafe fn GetModuleNameStringWide(&self, which: u32, index: u32, base: u64, buffer: &mut [u16], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetModuleNameStringWide)(::windows::core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetModuleNameStringWide(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetModuleNameStringWide)(::windows::core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetConstantNameWide(&self, module: u64, typeid: u32, value: u64, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetConstantNameWide)(::windows::core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetConstantNameWide(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetConstantNameWide)(::windows::core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetFieldNameWide(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFieldNameWide)(::windows::core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetFieldNameWide(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetFieldNameWide)(::windows::core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn IsManagedModule(&self, index: u32, base: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).IsManagedModule)(::windows::core::Interface::as_raw(self), index, base).ok() @@ -34974,8 +35322,8 @@ impl IDebugSymbols3 { pub unsafe fn OutputSymbolByOffset(&self, outputcontrol: u32, flags: u32, offset: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputSymbolByOffset)(::windows::core::Interface::as_raw(self), outputcontrol, flags, offset).ok() } - pub unsafe fn GetFunctionEntryByOffset(&self, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bufferneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFunctionEntryByOffset)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bufferneeded)).ok() + pub unsafe fn GetFunctionEntryByOffset(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, bufferneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetFunctionEntryByOffset)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(bufferneeded)).ok() } pub unsafe fn GetFieldTypeAndOffset<'a, P0>(&self, module: u64, containertypeid: u32, field: P0, fieldtypeid: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where @@ -35006,20 +35354,20 @@ impl IDebugSymbols3 { pub unsafe fn RemoveSyntheticSymbol(&self, id: &DEBUG_MODULE_AND_ID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).RemoveSyntheticSymbol)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id)).ok() } - pub unsafe fn GetSymbolEntriesByOffset(&self, offset: u64, flags: u32, ids: ::core::option::Option<&mut DEBUG_MODULE_AND_ID>, displacements: ::core::option::Option<&mut u64>, idscount: u32, entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetSymbolEntriesByOffset(&self, offset: u64, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, displacements: *mut u64, idscount: u32, entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSymbolEntriesByOffset)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(ids), ::core::mem::transmute(displacements), ::core::mem::transmute(idscount), ::core::mem::transmute(entries)).ok() } - pub unsafe fn GetSymbolEntriesByName<'a, P0>(&self, symbol: P0, flags: u32, ids: &mut [DEBUG_MODULE_AND_ID], entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSymbolEntriesByName<'a, P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetSymbolEntriesByName)(::windows::core::Interface::as_raw(self), symbol.into(), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ids)), ids.len() as _, ::core::mem::transmute(entries)).ok() + (::windows::core::Interface::vtable(self).GetSymbolEntriesByName)(::windows::core::Interface::as_raw(self), symbol.into(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entries)).ok() } - pub unsafe fn GetSymbolEntriesByNameWide<'a, P0>(&self, symbol: P0, flags: u32, ids: &mut [DEBUG_MODULE_AND_ID], entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSymbolEntriesByNameWide<'a, P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetSymbolEntriesByNameWide)(::windows::core::Interface::as_raw(self), symbol.into(), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ids)), ids.len() as _, ::core::mem::transmute(entries)).ok() + (::windows::core::Interface::vtable(self).GetSymbolEntriesByNameWide)(::windows::core::Interface::as_raw(self), symbol.into(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entries)).ok() } pub unsafe fn GetSymbolEntryByToken(&self, modulebase: u64, token: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -35029,42 +35377,42 @@ impl IDebugSymbols3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSymbolEntryInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetSymbolEntryString(&self, id: &DEBUG_MODULE_AND_ID, which: u32, buffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolEntryString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSymbolEntryString(&self, id: &DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolEntryString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSymbolEntryStringWide(&self, id: &DEBUG_MODULE_AND_ID, which: u32, buffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolEntryStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSymbolEntryStringWide(&self, id: &DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolEntryStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSymbolEntryOffsetRegions(&self, id: &DEBUG_MODULE_AND_ID, flags: u32, regions: &mut [DEBUG_OFFSET_REGION], regionsavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolEntryOffsetRegions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(regions)), regions.len() as _, ::core::mem::transmute(regionsavail)).ok() + pub unsafe fn GetSymbolEntryOffsetRegions(&self, id: &DEBUG_MODULE_AND_ID, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolEntryOffsetRegions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(regionsavail)).ok() } pub unsafe fn GetSymbolEntryBySymbolEntry(&self, fromid: &DEBUG_MODULE_AND_ID, flags: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSymbolEntryBySymbolEntry)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fromid), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: &mut [DEBUG_SYMBOL_SOURCE_ENTRY], entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourceEntriesByOffset)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(entries)), entries.len() as _, ::core::mem::transmute(entriesavail)).ok() + pub unsafe fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourceEntriesByOffset)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail)).ok() } - pub unsafe fn GetSourceEntriesByLine<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: &mut [DEBUG_SYMBOL_SOURCE_ENTRY], entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceEntriesByLine<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetSourceEntriesByLine)(::windows::core::Interface::as_raw(self), line, file.into(), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(entries)), entries.len() as _, ::core::mem::transmute(entriesavail)).ok() + (::windows::core::Interface::vtable(self).GetSourceEntriesByLine)(::windows::core::Interface::as_raw(self), line, file.into(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail)).ok() } - pub unsafe fn GetSourceEntriesByLineWide<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: &mut [DEBUG_SYMBOL_SOURCE_ENTRY], entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceEntriesByLineWide<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetSourceEntriesByLineWide)(::windows::core::Interface::as_raw(self), line, file.into(), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(entries)), entries.len() as _, ::core::mem::transmute(entriesavail)).ok() + (::windows::core::Interface::vtable(self).GetSourceEntriesByLineWide)(::windows::core::Interface::as_raw(self), line, file.into(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail)).ok() } - pub unsafe fn GetSourceEntryString(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourceEntryString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSourceEntryString(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourceEntryString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSourceEntryStringWide(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourceEntryStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSourceEntryStringWide(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourceEntryStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSourceEntryOffsetRegions(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: &mut [DEBUG_OFFSET_REGION], regionsavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourceEntryOffsetRegions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(regions)), regions.len() as _, ::core::mem::transmute(regionsavail)).ok() + pub unsafe fn GetSourceEntryOffsetRegions(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourceEntryOffsetRegions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(regionsavail)).ok() } pub unsafe fn GetSourceEntryBySourceEntry(&self, fromentry: &DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -35257,8 +35605,8 @@ impl IDebugSymbols4 { pub unsafe fn SetSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetSymbolOptions)(::windows::core::Interface::as_raw(self), options).ok() } - pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNameByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNameByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn GetOffsetByName<'a, P0>(&self, symbol: P0) -> ::windows::core::Result where @@ -35267,11 +35615,11 @@ impl IDebugSymbols4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetOffsetByName)(::windows::core::Interface::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNearNameByOffset)(::windows::core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNearNameByOffset)(::windows::core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } - pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<&mut u32>, filebuffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLineByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(line), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filebuffer)), filebuffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<&mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLineByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(line), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn GetOffsetByLine<'a, P0>(&self, line: u32, file: P0) -> ::windows::core::Result where @@ -35296,24 +35644,24 @@ impl IDebugSymbols4 { pub unsafe fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: ::core::option::Option<&mut u32>, base: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetModuleByOffset)(::windows::core::Interface::as_raw(self), offset, startindex, ::core::mem::transmute(index), ::core::mem::transmute(base)).ok() } - pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: &mut [u8], imagenamesize: ::core::option::Option<&mut u32>, modulenamebuffer: &mut [u8], modulenamesize: ::core::option::Option<&mut u32>, loadedimagenamebuffer: &mut [u8], loadedimagenamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::core::option::Option<&mut [u8]>, imagenamesize: ::core::option::Option<&mut u32>, modulenamebuffer: ::core::option::Option<&mut [u8]>, modulenamesize: ::core::option::Option<&mut u32>, loadedimagenamebuffer: ::core::option::Option<&mut [u8]>, loadedimagenamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetModuleNames)( ::windows::core::Interface::as_raw(self), index, base, - ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(imagenamebuffer)), - imagenamebuffer.len() as _, + ::core::mem::transmute(imagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + imagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(imagenamesize), - ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(modulenamebuffer)), - modulenamebuffer.len() as _, + ::core::mem::transmute(modulenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + modulenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(modulenamesize), - ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(loadedimagenamebuffer)), - loadedimagenamebuffer.len() as _, + ::core::mem::transmute(loadedimagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + loadedimagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(loadedimagenamesize), ) .ok() } - pub unsafe fn GetModuleParameters(&self, count: u32, bases: ::core::option::Option<&u64>, start: u32, params: &mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetModuleParameters(&self, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetModuleParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(bases), start, ::core::mem::transmute(params)).ok() } pub unsafe fn GetSymbolModule<'a, P0>(&self, symbol: P0) -> ::windows::core::Result @@ -35323,8 +35671,8 @@ impl IDebugSymbols4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSymbolModule)(::windows::core::Interface::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTypeName)(::windows::core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTypeName)(::windows::core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn GetTypeId<'a, P0>(&self, module: u64, name: P0) -> ::windows::core::Result where @@ -35353,35 +35701,35 @@ impl IDebugSymbols4 { pub unsafe fn GetOffsetTypeId(&self, offset: u64, typeid: &mut u32, module: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetOffsetTypeId)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(typeid), ::core::mem::transmute(module)).ok() } - pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputTypedDataVirtual)(::windows::core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok() } - pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputTypedDataPhysical)(::windows::core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<&mut u64>, scopeframe: ::core::option::Option<&mut DEBUG_STACK_FRAME>, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetScope)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset), ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext), scopecontextsize).ok() + pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<&mut u64>, scopeframe: ::core::option::Option<&mut DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<&mut [u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetScope)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset), ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), scopecontext.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<&DEBUG_STACK_FRAME>, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetScope)(::windows::core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext), scopecontextsize).ok() + pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<&DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetScope)(::windows::core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), scopecontext.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn ResetScope(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ResetScope)(::windows::core::Interface::as_raw(self)).ok() @@ -35404,8 +35752,8 @@ impl IDebugSymbols4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).StartSymbolMatch)(::windows::core::Interface::as_raw(self), pattern.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: &mut [u8], matchsize: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNextSymbolMatch)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(matchsize), ::core::mem::transmute(offset)).ok() + pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: ::core::option::Option<&mut [u8]>, matchsize: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNextSymbolMatch)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(matchsize), ::core::mem::transmute(offset)).ok() } pub unsafe fn EndSymbolMatch(&self, handle: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).EndSymbolMatch)(::windows::core::Interface::as_raw(self), handle).ok() @@ -35416,8 +35764,8 @@ impl IDebugSymbols4 { { (::windows::core::Interface::vtable(self).Reload)(::windows::core::Interface::as_raw(self), module.into()).ok() } - pub unsafe fn GetSymbolPath(&self, buffer: &mut [u8], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetSymbolPath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } pub unsafe fn SetSymbolPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -35431,8 +35779,8 @@ impl IDebugSymbols4 { { (::windows::core::Interface::vtable(self).AppendSymbolPath)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn GetImagePath(&self, buffer: &mut [u8], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetImagePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetImagePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetImagePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } pub unsafe fn SetImagePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -35446,11 +35794,11 @@ impl IDebugSymbols4 { { (::windows::core::Interface::vtable(self).AppendImagePath)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn GetSourcePath(&self, buffer: &mut [u8], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourcePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetSourcePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourcePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } - pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: &mut [u8], elementsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourcePathElement)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(elementsize)).ok() + pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, elementsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourcePathElement)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(elementsize)).ok() } pub unsafe fn SetSourcePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -35464,32 +35812,32 @@ impl IDebugSymbols4 { { (::windows::core::Interface::vtable(self).AppendSourcePath)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn FindSourceFile<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<&mut u32>, buffer: &mut [u8], foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn FindSourceFile<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<&mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).FindSourceFile)(::windows::core::Interface::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(foundsize)).ok() + (::windows::core::Interface::vtable(self).FindSourceFile)(::windows::core::Interface::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize)).ok() } - pub unsafe fn GetSourceFileLineOffsets<'a, P0>(&self, file: P0, buffer: &mut [u64], filelines: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceFileLineOffsets<'a, P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetSourceFileLineOffsets)(::windows::core::Interface::as_raw(self), file.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filelines)).ok() + (::windows::core::Interface::vtable(self).GetSourceFileLineOffsets)(::windows::core::Interface::as_raw(self), file.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filelines)).ok() } - pub unsafe fn GetModuleVersionInformation<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetModuleVersionInformation<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<&mut [u8]>, verinfosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetModuleVersionInformation)(::windows::core::Interface::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(verinfosize)).ok() + (::windows::core::Interface::vtable(self).GetModuleVersionInformation)(::windows::core::Interface::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(verinfosize)).ok() } - pub unsafe fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetModuleNameString)(::windows::core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetModuleNameString)(::windows::core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetConstantName)(::windows::core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetConstantName)(::windows::core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFieldName)(::windows::core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetFieldName)(::windows::core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn GetTypeOptions(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -35504,8 +35852,8 @@ impl IDebugSymbols4 { pub unsafe fn SetTypeOptions(&self, options: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetTypeOptions)(::windows::core::Interface::as_raw(self), options).ok() } - pub unsafe fn GetNameByOffsetWide(&self, offset: u64, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNameByOffsetWide)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNameByOffsetWide(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNameByOffsetWide)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn GetOffsetByNameWide<'a, P0>(&self, symbol: P0) -> ::windows::core::Result where @@ -35514,11 +35862,11 @@ impl IDebugSymbols4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetOffsetByNameWide)(::windows::core::Interface::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNearNameByOffsetWide)(::windows::core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNearNameByOffsetWide)(::windows::core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } - pub unsafe fn GetLineByOffsetWide(&self, offset: u64, line: ::core::option::Option<&mut u32>, filebuffer: &mut [u16], filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLineByOffsetWide)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(line), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filebuffer)), filebuffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetLineByOffsetWide(&self, offset: u64, line: ::core::option::Option<&mut u32>, filebuffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLineByOffsetWide)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(line), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn GetOffsetByLineWide<'a, P0>(&self, line: u32, file: P0) -> ::windows::core::Result where @@ -35540,8 +35888,8 @@ impl IDebugSymbols4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSymbolModuleWide)(::windows::core::Interface::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTypeNameWide)(::windows::core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTypeNameWide)(::windows::core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn GetTypeIdWide<'a, P0>(&self, module: u64, name: P0) -> ::windows::core::Result where @@ -35581,8 +35929,8 @@ impl IDebugSymbols4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).StartSymbolMatchWide)(::windows::core::Interface::as_raw(self), pattern.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetNextSymbolMatchWide(&self, handle: u64, buffer: &mut [u16], matchsize: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNextSymbolMatchWide)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(matchsize), ::core::mem::transmute(offset)).ok() + pub unsafe fn GetNextSymbolMatchWide(&self, handle: u64, buffer: ::core::option::Option<&mut [u16]>, matchsize: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNextSymbolMatchWide)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(matchsize), ::core::mem::transmute(offset)).ok() } pub unsafe fn ReloadWide<'a, P0>(&self, module: P0) -> ::windows::core::Result<()> where @@ -35590,8 +35938,8 @@ impl IDebugSymbols4 { { (::windows::core::Interface::vtable(self).ReloadWide)(::windows::core::Interface::as_raw(self), module.into()).ok() } - pub unsafe fn GetSymbolPathWide(&self, buffer: &mut [u16], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolPathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetSymbolPathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolPathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } pub unsafe fn SetSymbolPathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -35605,8 +35953,8 @@ impl IDebugSymbols4 { { (::windows::core::Interface::vtable(self).AppendSymbolPathWide)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn GetImagePathWide(&self, buffer: &mut [u16], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetImagePathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetImagePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetImagePathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } pub unsafe fn SetImagePathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -35620,11 +35968,11 @@ impl IDebugSymbols4 { { (::windows::core::Interface::vtable(self).AppendImagePathWide)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn GetSourcePathWide(&self, buffer: &mut [u16], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourcePathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetSourcePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourcePathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } - pub unsafe fn GetSourcePathElementWide(&self, index: u32, buffer: &mut [u16], elementsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourcePathElementWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(elementsize)).ok() + pub unsafe fn GetSourcePathElementWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, elementsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourcePathElementWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(elementsize)).ok() } pub unsafe fn SetSourcePathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -35638,32 +35986,32 @@ impl IDebugSymbols4 { { (::windows::core::Interface::vtable(self).AppendSourcePathWide)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn FindSourceFileWide<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<&mut u32>, buffer: &mut [u16], foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn FindSourceFileWide<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<&mut u32>, buffer: ::core::option::Option<&mut [u16]>, foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).FindSourceFileWide)(::windows::core::Interface::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(foundsize)).ok() + (::windows::core::Interface::vtable(self).FindSourceFileWide)(::windows::core::Interface::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize)).ok() } - pub unsafe fn GetSourceFileLineOffsetsWide<'a, P0>(&self, file: P0, buffer: &mut [u64], filelines: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceFileLineOffsetsWide<'a, P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetSourceFileLineOffsetsWide)(::windows::core::Interface::as_raw(self), file.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filelines)).ok() + (::windows::core::Interface::vtable(self).GetSourceFileLineOffsetsWide)(::windows::core::Interface::as_raw(self), file.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filelines)).ok() } - pub unsafe fn GetModuleVersionInformationWide<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetModuleVersionInformationWide<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<&mut [u8]>, verinfosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetModuleVersionInformationWide)(::windows::core::Interface::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(verinfosize)).ok() + (::windows::core::Interface::vtable(self).GetModuleVersionInformationWide)(::windows::core::Interface::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(verinfosize)).ok() } - pub unsafe fn GetModuleNameStringWide(&self, which: u32, index: u32, base: u64, buffer: &mut [u16], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetModuleNameStringWide)(::windows::core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetModuleNameStringWide(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetModuleNameStringWide)(::windows::core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetConstantNameWide(&self, module: u64, typeid: u32, value: u64, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetConstantNameWide)(::windows::core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetConstantNameWide(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetConstantNameWide)(::windows::core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetFieldNameWide(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFieldNameWide)(::windows::core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetFieldNameWide(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetFieldNameWide)(::windows::core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn IsManagedModule(&self, index: u32, base: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).IsManagedModule)(::windows::core::Interface::as_raw(self), index, base).ok() @@ -35716,8 +36064,8 @@ impl IDebugSymbols4 { pub unsafe fn OutputSymbolByOffset(&self, outputcontrol: u32, flags: u32, offset: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputSymbolByOffset)(::windows::core::Interface::as_raw(self), outputcontrol, flags, offset).ok() } - pub unsafe fn GetFunctionEntryByOffset(&self, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bufferneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFunctionEntryByOffset)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bufferneeded)).ok() + pub unsafe fn GetFunctionEntryByOffset(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, bufferneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetFunctionEntryByOffset)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(bufferneeded)).ok() } pub unsafe fn GetFieldTypeAndOffset<'a, P0>(&self, module: u64, containertypeid: u32, field: P0, fieldtypeid: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where @@ -35748,20 +36096,20 @@ impl IDebugSymbols4 { pub unsafe fn RemoveSyntheticSymbol(&self, id: &DEBUG_MODULE_AND_ID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).RemoveSyntheticSymbol)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id)).ok() } - pub unsafe fn GetSymbolEntriesByOffset(&self, offset: u64, flags: u32, ids: ::core::option::Option<&mut DEBUG_MODULE_AND_ID>, displacements: ::core::option::Option<&mut u64>, idscount: u32, entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetSymbolEntriesByOffset(&self, offset: u64, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, displacements: *mut u64, idscount: u32, entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSymbolEntriesByOffset)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(ids), ::core::mem::transmute(displacements), ::core::mem::transmute(idscount), ::core::mem::transmute(entries)).ok() } - pub unsafe fn GetSymbolEntriesByName<'a, P0>(&self, symbol: P0, flags: u32, ids: &mut [DEBUG_MODULE_AND_ID], entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSymbolEntriesByName<'a, P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetSymbolEntriesByName)(::windows::core::Interface::as_raw(self), symbol.into(), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ids)), ids.len() as _, ::core::mem::transmute(entries)).ok() + (::windows::core::Interface::vtable(self).GetSymbolEntriesByName)(::windows::core::Interface::as_raw(self), symbol.into(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entries)).ok() } - pub unsafe fn GetSymbolEntriesByNameWide<'a, P0>(&self, symbol: P0, flags: u32, ids: &mut [DEBUG_MODULE_AND_ID], entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSymbolEntriesByNameWide<'a, P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetSymbolEntriesByNameWide)(::windows::core::Interface::as_raw(self), symbol.into(), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ids)), ids.len() as _, ::core::mem::transmute(entries)).ok() + (::windows::core::Interface::vtable(self).GetSymbolEntriesByNameWide)(::windows::core::Interface::as_raw(self), symbol.into(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entries)).ok() } pub unsafe fn GetSymbolEntryByToken(&self, modulebase: u64, token: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -35771,42 +36119,42 @@ impl IDebugSymbols4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSymbolEntryInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetSymbolEntryString(&self, id: &DEBUG_MODULE_AND_ID, which: u32, buffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolEntryString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSymbolEntryString(&self, id: &DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolEntryString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSymbolEntryStringWide(&self, id: &DEBUG_MODULE_AND_ID, which: u32, buffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolEntryStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSymbolEntryStringWide(&self, id: &DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolEntryStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSymbolEntryOffsetRegions(&self, id: &DEBUG_MODULE_AND_ID, flags: u32, regions: &mut [DEBUG_OFFSET_REGION], regionsavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolEntryOffsetRegions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(regions)), regions.len() as _, ::core::mem::transmute(regionsavail)).ok() + pub unsafe fn GetSymbolEntryOffsetRegions(&self, id: &DEBUG_MODULE_AND_ID, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolEntryOffsetRegions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(regionsavail)).ok() } pub unsafe fn GetSymbolEntryBySymbolEntry(&self, fromid: &DEBUG_MODULE_AND_ID, flags: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSymbolEntryBySymbolEntry)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fromid), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: &mut [DEBUG_SYMBOL_SOURCE_ENTRY], entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourceEntriesByOffset)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(entries)), entries.len() as _, ::core::mem::transmute(entriesavail)).ok() + pub unsafe fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourceEntriesByOffset)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail)).ok() } - pub unsafe fn GetSourceEntriesByLine<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: &mut [DEBUG_SYMBOL_SOURCE_ENTRY], entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceEntriesByLine<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetSourceEntriesByLine)(::windows::core::Interface::as_raw(self), line, file.into(), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(entries)), entries.len() as _, ::core::mem::transmute(entriesavail)).ok() + (::windows::core::Interface::vtable(self).GetSourceEntriesByLine)(::windows::core::Interface::as_raw(self), line, file.into(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail)).ok() } - pub unsafe fn GetSourceEntriesByLineWide<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: &mut [DEBUG_SYMBOL_SOURCE_ENTRY], entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceEntriesByLineWide<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetSourceEntriesByLineWide)(::windows::core::Interface::as_raw(self), line, file.into(), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(entries)), entries.len() as _, ::core::mem::transmute(entriesavail)).ok() + (::windows::core::Interface::vtable(self).GetSourceEntriesByLineWide)(::windows::core::Interface::as_raw(self), line, file.into(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail)).ok() } - pub unsafe fn GetSourceEntryString(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourceEntryString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSourceEntryString(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourceEntryString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSourceEntryStringWide(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourceEntryStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSourceEntryStringWide(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourceEntryStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSourceEntryOffsetRegions(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: &mut [DEBUG_OFFSET_REGION], regionsavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourceEntryOffsetRegions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(regions)), regions.len() as _, ::core::mem::transmute(regionsavail)).ok() + pub unsafe fn GetSourceEntryOffsetRegions(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourceEntryOffsetRegions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(regionsavail)).ok() } pub unsafe fn GetSourceEntryBySourceEntry(&self, fromentry: &DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -35814,25 +36162,25 @@ impl IDebugSymbols4 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetScopeEx(&self, instructionoffset: ::core::option::Option<&mut u64>, scopeframe: ::core::option::Option<&mut DEBUG_STACK_FRAME_EX>, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetScopeEx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset), ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext), scopecontextsize).ok() + pub unsafe fn GetScopeEx(&self, instructionoffset: ::core::option::Option<&mut u64>, scopeframe: ::core::option::Option<&mut DEBUG_STACK_FRAME_EX>, scopecontext: ::core::option::Option<&mut [u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetScopeEx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset), ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), scopecontext.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetScopeEx(&self, instructionoffset: u64, scopeframe: ::core::option::Option<&DEBUG_STACK_FRAME_EX>, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetScopeEx)(::windows::core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext), scopecontextsize).ok() + pub unsafe fn SetScopeEx(&self, instructionoffset: u64, scopeframe: ::core::option::Option<&DEBUG_STACK_FRAME_EX>, scopecontext: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetScopeEx)(::windows::core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), scopecontext.as_deref().map_or(0, |slice| slice.len() as _)).ok() } - pub unsafe fn GetNameByInlineContext(&self, offset: u64, inlinecontext: u32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNameByInlineContext)(::windows::core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNameByInlineContext(&self, offset: u64, inlinecontext: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNameByInlineContext)(::windows::core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } - pub unsafe fn GetNameByInlineContextWide(&self, offset: u64, inlinecontext: u32, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNameByInlineContextWide)(::windows::core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNameByInlineContextWide(&self, offset: u64, inlinecontext: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNameByInlineContextWide)(::windows::core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } - pub unsafe fn GetLineByInlineContext(&self, offset: u64, inlinecontext: u32, line: ::core::option::Option<&mut u32>, filebuffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLineByInlineContext)(::windows::core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(line), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filebuffer)), filebuffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetLineByInlineContext(&self, offset: u64, inlinecontext: u32, line: ::core::option::Option<&mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLineByInlineContext)(::windows::core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(line), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() } - pub unsafe fn GetLineByInlineContextWide(&self, offset: u64, inlinecontext: u32, line: ::core::option::Option<&mut u32>, filebuffer: &mut [u16], filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLineByInlineContextWide)(::windows::core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(line), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filebuffer)), filebuffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetLineByInlineContextWide(&self, offset: u64, inlinecontext: u32, line: ::core::option::Option<&mut u32>, filebuffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLineByInlineContextWide)(::windows::core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(line), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn OutputSymbolByInlineContext(&self, outputcontrol: u32, flags: u32, offset: u64, inlinecontext: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputSymbolByInlineContext)(::windows::core::Interface::as_raw(self), outputcontrol, flags, offset, inlinecontext).ok() @@ -36037,8 +36385,8 @@ impl IDebugSymbols5 { pub unsafe fn SetSymbolOptions(&self, options: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetSymbolOptions)(::windows::core::Interface::as_raw(self), options).ok() } - pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNameByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNameByOffset(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNameByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn GetOffsetByName<'a, P0>(&self, symbol: P0) -> ::windows::core::Result where @@ -36047,11 +36395,11 @@ impl IDebugSymbols5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetOffsetByName)(::windows::core::Interface::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNearNameByOffset)(::windows::core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNearNameByOffset(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNearNameByOffset)(::windows::core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } - pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<&mut u32>, filebuffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLineByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(line), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filebuffer)), filebuffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetLineByOffset(&self, offset: u64, line: ::core::option::Option<&mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLineByOffset)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(line), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn GetOffsetByLine<'a, P0>(&self, line: u32, file: P0) -> ::windows::core::Result where @@ -36076,24 +36424,24 @@ impl IDebugSymbols5 { pub unsafe fn GetModuleByOffset(&self, offset: u64, startindex: u32, index: ::core::option::Option<&mut u32>, base: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetModuleByOffset)(::windows::core::Interface::as_raw(self), offset, startindex, ::core::mem::transmute(index), ::core::mem::transmute(base)).ok() } - pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: &mut [u8], imagenamesize: ::core::option::Option<&mut u32>, modulenamebuffer: &mut [u8], modulenamesize: ::core::option::Option<&mut u32>, loadedimagenamebuffer: &mut [u8], loadedimagenamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetModuleNames(&self, index: u32, base: u64, imagenamebuffer: ::core::option::Option<&mut [u8]>, imagenamesize: ::core::option::Option<&mut u32>, modulenamebuffer: ::core::option::Option<&mut [u8]>, modulenamesize: ::core::option::Option<&mut u32>, loadedimagenamebuffer: ::core::option::Option<&mut [u8]>, loadedimagenamesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetModuleNames)( ::windows::core::Interface::as_raw(self), index, base, - ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(imagenamebuffer)), - imagenamebuffer.len() as _, + ::core::mem::transmute(imagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + imagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(imagenamesize), - ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(modulenamebuffer)), - modulenamebuffer.len() as _, + ::core::mem::transmute(modulenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + modulenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(modulenamesize), - ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(loadedimagenamebuffer)), - loadedimagenamebuffer.len() as _, + ::core::mem::transmute(loadedimagenamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + loadedimagenamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(loadedimagenamesize), ) .ok() } - pub unsafe fn GetModuleParameters(&self, count: u32, bases: ::core::option::Option<&u64>, start: u32, params: &mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::Result<()> { + pub unsafe fn GetModuleParameters(&self, count: u32, bases: *const u64, start: u32, params: *mut DEBUG_MODULE_PARAMETERS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetModuleParameters)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(count), ::core::mem::transmute(bases), start, ::core::mem::transmute(params)).ok() } pub unsafe fn GetSymbolModule<'a, P0>(&self, symbol: P0) -> ::windows::core::Result @@ -36103,8 +36451,8 @@ impl IDebugSymbols5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSymbolModule)(::windows::core::Interface::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTypeName)(::windows::core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetTypeName(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTypeName)(::windows::core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn GetTypeId<'a, P0>(&self, module: u64, name: P0) -> ::windows::core::Result where @@ -36133,35 +36481,35 @@ impl IDebugSymbols5 { pub unsafe fn GetOffsetTypeId(&self, offset: u64, typeid: &mut u32, module: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetOffsetTypeId)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(typeid), ::core::mem::transmute(module)).ok() } - pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteTypedDataVirtual(&self, offset: u64, module: u64, typeid: u32, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteTypedDataVirtual)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn OutputTypedDataVirtual(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputTypedDataVirtual)(::windows::core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok() } - pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + pub unsafe fn ReadTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } - pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: *const ::core::ffi::c_void, buffersize: u32) -> ::windows::core::Result { + pub unsafe fn WriteTypedDataPhysical(&self, offset: u64, module: u64, typeid: u32, buffer: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).WriteTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).WriteTypedDataPhysical)(::windows::core::Interface::as_raw(self), offset, module, typeid, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn OutputTypedDataPhysical(&self, outputcontrol: u32, offset: u64, module: u64, typeid: u32, flags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputTypedDataPhysical)(::windows::core::Interface::as_raw(self), outputcontrol, offset, module, typeid, flags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<&mut u64>, scopeframe: ::core::option::Option<&mut DEBUG_STACK_FRAME>, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetScope)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset), ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext), scopecontextsize).ok() + pub unsafe fn GetScope(&self, instructionoffset: ::core::option::Option<&mut u64>, scopeframe: ::core::option::Option<&mut DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<&mut [u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetScope)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset), ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), scopecontext.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<&DEBUG_STACK_FRAME>, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetScope)(::windows::core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext), scopecontextsize).ok() + pub unsafe fn SetScope(&self, instructionoffset: u64, scopeframe: ::core::option::Option<&DEBUG_STACK_FRAME>, scopecontext: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetScope)(::windows::core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), scopecontext.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn ResetScope(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ResetScope)(::windows::core::Interface::as_raw(self)).ok() @@ -36184,8 +36532,8 @@ impl IDebugSymbols5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).StartSymbolMatch)(::windows::core::Interface::as_raw(self), pattern.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: &mut [u8], matchsize: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNextSymbolMatch)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(matchsize), ::core::mem::transmute(offset)).ok() + pub unsafe fn GetNextSymbolMatch(&self, handle: u64, buffer: ::core::option::Option<&mut [u8]>, matchsize: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNextSymbolMatch)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(matchsize), ::core::mem::transmute(offset)).ok() } pub unsafe fn EndSymbolMatch(&self, handle: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).EndSymbolMatch)(::windows::core::Interface::as_raw(self), handle).ok() @@ -36196,8 +36544,8 @@ impl IDebugSymbols5 { { (::windows::core::Interface::vtable(self).Reload)(::windows::core::Interface::as_raw(self), module.into()).ok() } - pub unsafe fn GetSymbolPath(&self, buffer: &mut [u8], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetSymbolPath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } pub unsafe fn SetSymbolPath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -36211,8 +36559,8 @@ impl IDebugSymbols5 { { (::windows::core::Interface::vtable(self).AppendSymbolPath)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn GetImagePath(&self, buffer: &mut [u8], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetImagePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetImagePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetImagePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } pub unsafe fn SetImagePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -36226,11 +36574,11 @@ impl IDebugSymbols5 { { (::windows::core::Interface::vtable(self).AppendImagePath)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn GetSourcePath(&self, buffer: &mut [u8], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourcePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetSourcePath(&self, buffer: ::core::option::Option<&mut [u8]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourcePath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } - pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: &mut [u8], elementsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourcePathElement)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(elementsize)).ok() + pub unsafe fn GetSourcePathElement(&self, index: u32, buffer: ::core::option::Option<&mut [u8]>, elementsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourcePathElement)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(elementsize)).ok() } pub unsafe fn SetSourcePath<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -36244,32 +36592,32 @@ impl IDebugSymbols5 { { (::windows::core::Interface::vtable(self).AppendSourcePath)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn FindSourceFile<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<&mut u32>, buffer: &mut [u8], foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn FindSourceFile<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<&mut u32>, buffer: ::core::option::Option<&mut [u8]>, foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).FindSourceFile)(::windows::core::Interface::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(foundsize)).ok() + (::windows::core::Interface::vtable(self).FindSourceFile)(::windows::core::Interface::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize)).ok() } - pub unsafe fn GetSourceFileLineOffsets<'a, P0>(&self, file: P0, buffer: &mut [u64], filelines: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceFileLineOffsets<'a, P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetSourceFileLineOffsets)(::windows::core::Interface::as_raw(self), file.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filelines)).ok() + (::windows::core::Interface::vtable(self).GetSourceFileLineOffsets)(::windows::core::Interface::as_raw(self), file.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filelines)).ok() } - pub unsafe fn GetModuleVersionInformation<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetModuleVersionInformation<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<&mut [u8]>, verinfosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetModuleVersionInformation)(::windows::core::Interface::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(verinfosize)).ok() + (::windows::core::Interface::vtable(self).GetModuleVersionInformation)(::windows::core::Interface::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(verinfosize)).ok() } - pub unsafe fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetModuleNameString)(::windows::core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetModuleNameString(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetModuleNameString)(::windows::core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetConstantName)(::windows::core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetConstantName(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetConstantName)(::windows::core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFieldName)(::windows::core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetFieldName(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetFieldName)(::windows::core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn GetTypeOptions(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -36284,8 +36632,8 @@ impl IDebugSymbols5 { pub unsafe fn SetTypeOptions(&self, options: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetTypeOptions)(::windows::core::Interface::as_raw(self), options).ok() } - pub unsafe fn GetNameByOffsetWide(&self, offset: u64, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNameByOffsetWide)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNameByOffsetWide(&self, offset: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNameByOffsetWide)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn GetOffsetByNameWide<'a, P0>(&self, symbol: P0) -> ::windows::core::Result where @@ -36294,11 +36642,11 @@ impl IDebugSymbols5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetOffsetByNameWide)(::windows::core::Interface::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNearNameByOffsetWide)(::windows::core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNearNameByOffsetWide(&self, offset: u64, delta: i32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNearNameByOffsetWide)(::windows::core::Interface::as_raw(self), offset, delta, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } - pub unsafe fn GetLineByOffsetWide(&self, offset: u64, line: ::core::option::Option<&mut u32>, filebuffer: &mut [u16], filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLineByOffsetWide)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(line), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filebuffer)), filebuffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetLineByOffsetWide(&self, offset: u64, line: ::core::option::Option<&mut u32>, filebuffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLineByOffsetWide)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(line), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn GetOffsetByLineWide<'a, P0>(&self, line: u32, file: P0) -> ::windows::core::Result where @@ -36320,8 +36668,8 @@ impl IDebugSymbols5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSymbolModuleWide)(::windows::core::Interface::as_raw(self), symbol.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetTypeNameWide)(::windows::core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetTypeNameWide(&self, module: u64, typeid: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetTypeNameWide)(::windows::core::Interface::as_raw(self), module, typeid, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn GetTypeIdWide<'a, P0>(&self, module: u64, name: P0) -> ::windows::core::Result where @@ -36361,8 +36709,8 @@ impl IDebugSymbols5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).StartSymbolMatchWide)(::windows::core::Interface::as_raw(self), pattern.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetNextSymbolMatchWide(&self, handle: u64, buffer: &mut [u16], matchsize: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNextSymbolMatchWide)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(matchsize), ::core::mem::transmute(offset)).ok() + pub unsafe fn GetNextSymbolMatchWide(&self, handle: u64, buffer: ::core::option::Option<&mut [u16]>, matchsize: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNextSymbolMatchWide)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(matchsize), ::core::mem::transmute(offset)).ok() } pub unsafe fn ReloadWide<'a, P0>(&self, module: P0) -> ::windows::core::Result<()> where @@ -36370,8 +36718,8 @@ impl IDebugSymbols5 { { (::windows::core::Interface::vtable(self).ReloadWide)(::windows::core::Interface::as_raw(self), module.into()).ok() } - pub unsafe fn GetSymbolPathWide(&self, buffer: &mut [u16], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolPathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetSymbolPathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolPathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } pub unsafe fn SetSymbolPathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -36385,8 +36733,8 @@ impl IDebugSymbols5 { { (::windows::core::Interface::vtable(self).AppendSymbolPathWide)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn GetImagePathWide(&self, buffer: &mut [u16], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetImagePathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetImagePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetImagePathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } pub unsafe fn SetImagePathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -36400,11 +36748,11 @@ impl IDebugSymbols5 { { (::windows::core::Interface::vtable(self).AppendImagePathWide)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn GetSourcePathWide(&self, buffer: &mut [u16], pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourcePathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(pathsize)).ok() + pub unsafe fn GetSourcePathWide(&self, buffer: ::core::option::Option<&mut [u16]>, pathsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourcePathWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pathsize)).ok() } - pub unsafe fn GetSourcePathElementWide(&self, index: u32, buffer: &mut [u16], elementsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourcePathElementWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(elementsize)).ok() + pub unsafe fn GetSourcePathElementWide(&self, index: u32, buffer: ::core::option::Option<&mut [u16]>, elementsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourcePathElementWide)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(elementsize)).ok() } pub unsafe fn SetSourcePathWide<'a, P0>(&self, path: P0) -> ::windows::core::Result<()> where @@ -36418,32 +36766,32 @@ impl IDebugSymbols5 { { (::windows::core::Interface::vtable(self).AppendSourcePathWide)(::windows::core::Interface::as_raw(self), addition.into()).ok() } - pub unsafe fn FindSourceFileWide<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<&mut u32>, buffer: &mut [u16], foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn FindSourceFileWide<'a, P0>(&self, startelement: u32, file: P0, flags: u32, foundelement: ::core::option::Option<&mut u32>, buffer: ::core::option::Option<&mut [u16]>, foundsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).FindSourceFileWide)(::windows::core::Interface::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(foundsize)).ok() + (::windows::core::Interface::vtable(self).FindSourceFileWide)(::windows::core::Interface::as_raw(self), startelement, file.into(), flags, ::core::mem::transmute(foundelement), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(foundsize)).ok() } - pub unsafe fn GetSourceFileLineOffsetsWide<'a, P0>(&self, file: P0, buffer: &mut [u64], filelines: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceFileLineOffsetsWide<'a, P0>(&self, file: P0, buffer: ::core::option::Option<&mut [u64]>, filelines: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetSourceFileLineOffsetsWide)(::windows::core::Interface::as_raw(self), file.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(filelines)).ok() + (::windows::core::Interface::vtable(self).GetSourceFileLineOffsetsWide)(::windows::core::Interface::as_raw(self), file.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filelines)).ok() } - pub unsafe fn GetModuleVersionInformationWide<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: *mut ::core::ffi::c_void, buffersize: u32, verinfosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetModuleVersionInformationWide<'a, P0>(&self, index: u32, base: u64, item: P0, buffer: ::core::option::Option<&mut [u8]>, verinfosize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetModuleVersionInformationWide)(::windows::core::Interface::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(verinfosize)).ok() + (::windows::core::Interface::vtable(self).GetModuleVersionInformationWide)(::windows::core::Interface::as_raw(self), index, base, item.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(verinfosize)).ok() } - pub unsafe fn GetModuleNameStringWide(&self, which: u32, index: u32, base: u64, buffer: &mut [u16], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetModuleNameStringWide)(::windows::core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetModuleNameStringWide(&self, which: u32, index: u32, base: u64, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetModuleNameStringWide)(::windows::core::Interface::as_raw(self), which, index, base, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetConstantNameWide(&self, module: u64, typeid: u32, value: u64, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetConstantNameWide)(::windows::core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetConstantNameWide(&self, module: u64, typeid: u32, value: u64, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetConstantNameWide)(::windows::core::Interface::as_raw(self), module, typeid, value, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetFieldNameWide(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFieldNameWide)(::windows::core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetFieldNameWide(&self, module: u64, typeid: u32, fieldindex: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetFieldNameWide)(::windows::core::Interface::as_raw(self), module, typeid, fieldindex, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } pub unsafe fn IsManagedModule(&self, index: u32, base: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).IsManagedModule)(::windows::core::Interface::as_raw(self), index, base).ok() @@ -36496,8 +36844,8 @@ impl IDebugSymbols5 { pub unsafe fn OutputSymbolByOffset(&self, outputcontrol: u32, flags: u32, offset: u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputSymbolByOffset)(::windows::core::Interface::as_raw(self), outputcontrol, flags, offset).ok() } - pub unsafe fn GetFunctionEntryByOffset(&self, offset: u64, flags: u32, buffer: *mut ::core::ffi::c_void, buffersize: u32, bufferneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFunctionEntryByOffset)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bufferneeded)).ok() + pub unsafe fn GetFunctionEntryByOffset(&self, offset: u64, flags: u32, buffer: ::core::option::Option<&mut [u8]>, bufferneeded: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetFunctionEntryByOffset)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(bufferneeded)).ok() } pub unsafe fn GetFieldTypeAndOffset<'a, P0>(&self, module: u64, containertypeid: u32, field: P0, fieldtypeid: ::core::option::Option<&mut u32>, offset: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where @@ -36528,20 +36876,20 @@ impl IDebugSymbols5 { pub unsafe fn RemoveSyntheticSymbol(&self, id: &DEBUG_MODULE_AND_ID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).RemoveSyntheticSymbol)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id)).ok() } - pub unsafe fn GetSymbolEntriesByOffset(&self, offset: u64, flags: u32, ids: ::core::option::Option<&mut DEBUG_MODULE_AND_ID>, displacements: ::core::option::Option<&mut u64>, idscount: u32, entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetSymbolEntriesByOffset(&self, offset: u64, flags: u32, ids: *mut DEBUG_MODULE_AND_ID, displacements: *mut u64, idscount: u32, entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSymbolEntriesByOffset)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(ids), ::core::mem::transmute(displacements), ::core::mem::transmute(idscount), ::core::mem::transmute(entries)).ok() } - pub unsafe fn GetSymbolEntriesByName<'a, P0>(&self, symbol: P0, flags: u32, ids: &mut [DEBUG_MODULE_AND_ID], entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSymbolEntriesByName<'a, P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetSymbolEntriesByName)(::windows::core::Interface::as_raw(self), symbol.into(), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ids)), ids.len() as _, ::core::mem::transmute(entries)).ok() + (::windows::core::Interface::vtable(self).GetSymbolEntriesByName)(::windows::core::Interface::as_raw(self), symbol.into(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entries)).ok() } - pub unsafe fn GetSymbolEntriesByNameWide<'a, P0>(&self, symbol: P0, flags: u32, ids: &mut [DEBUG_MODULE_AND_ID], entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSymbolEntriesByNameWide<'a, P0>(&self, symbol: P0, flags: u32, ids: ::core::option::Option<&mut [DEBUG_MODULE_AND_ID]>, entries: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetSymbolEntriesByNameWide)(::windows::core::Interface::as_raw(self), symbol.into(), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ids)), ids.len() as _, ::core::mem::transmute(entries)).ok() + (::windows::core::Interface::vtable(self).GetSymbolEntriesByNameWide)(::windows::core::Interface::as_raw(self), symbol.into(), flags, ::core::mem::transmute(ids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entries)).ok() } pub unsafe fn GetSymbolEntryByToken(&self, modulebase: u64, token: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -36551,42 +36899,42 @@ impl IDebugSymbols5 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSymbolEntryInformation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetSymbolEntryString(&self, id: &DEBUG_MODULE_AND_ID, which: u32, buffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolEntryString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSymbolEntryString(&self, id: &DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolEntryString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSymbolEntryStringWide(&self, id: &DEBUG_MODULE_AND_ID, which: u32, buffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolEntryStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSymbolEntryStringWide(&self, id: &DEBUG_MODULE_AND_ID, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolEntryStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSymbolEntryOffsetRegions(&self, id: &DEBUG_MODULE_AND_ID, flags: u32, regions: &mut [DEBUG_OFFSET_REGION], regionsavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSymbolEntryOffsetRegions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(regions)), regions.len() as _, ::core::mem::transmute(regionsavail)).ok() + pub unsafe fn GetSymbolEntryOffsetRegions(&self, id: &DEBUG_MODULE_AND_ID, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSymbolEntryOffsetRegions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(id), flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(regionsavail)).ok() } pub unsafe fn GetSymbolEntryBySymbolEntry(&self, fromid: &DEBUG_MODULE_AND_ID, flags: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSymbolEntryBySymbolEntry)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fromid), flags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: &mut [DEBUG_SYMBOL_SOURCE_ENTRY], entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourceEntriesByOffset)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(entries)), entries.len() as _, ::core::mem::transmute(entriesavail)).ok() + pub unsafe fn GetSourceEntriesByOffset(&self, offset: u64, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourceEntriesByOffset)(::windows::core::Interface::as_raw(self), offset, flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail)).ok() } - pub unsafe fn GetSourceEntriesByLine<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: &mut [DEBUG_SYMBOL_SOURCE_ENTRY], entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceEntriesByLine<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { - (::windows::core::Interface::vtable(self).GetSourceEntriesByLine)(::windows::core::Interface::as_raw(self), line, file.into(), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(entries)), entries.len() as _, ::core::mem::transmute(entriesavail)).ok() + (::windows::core::Interface::vtable(self).GetSourceEntriesByLine)(::windows::core::Interface::as_raw(self), line, file.into(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail)).ok() } - pub unsafe fn GetSourceEntriesByLineWide<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: &mut [DEBUG_SYMBOL_SOURCE_ENTRY], entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetSourceEntriesByLineWide<'a, P0>(&self, line: u32, file: P0, flags: u32, entries: ::core::option::Option<&mut [DEBUG_SYMBOL_SOURCE_ENTRY]>, entriesavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetSourceEntriesByLineWide)(::windows::core::Interface::as_raw(self), line, file.into(), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(entries)), entries.len() as _, ::core::mem::transmute(entriesavail)).ok() + (::windows::core::Interface::vtable(self).GetSourceEntriesByLineWide)(::windows::core::Interface::as_raw(self), line, file.into(), flags, ::core::mem::transmute(entries.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), entries.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(entriesavail)).ok() } - pub unsafe fn GetSourceEntryString(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: &mut [u8], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourceEntryString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSourceEntryString(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u8]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourceEntryString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSourceEntryStringWide(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: &mut [u16], stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourceEntryStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(stringsize)).ok() + pub unsafe fn GetSourceEntryStringWide(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, which: u32, buffer: ::core::option::Option<&mut [u16]>, stringsize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourceEntryStringWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), which, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringsize)).ok() } - pub unsafe fn GetSourceEntryOffsetRegions(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: &mut [DEBUG_OFFSET_REGION], regionsavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSourceEntryOffsetRegions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(regions)), regions.len() as _, ::core::mem::transmute(regionsavail)).ok() + pub unsafe fn GetSourceEntryOffsetRegions(&self, entry: &DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32, regions: ::core::option::Option<&mut [DEBUG_OFFSET_REGION]>, regionsavail: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetSourceEntryOffsetRegions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(entry), flags, ::core::mem::transmute(regions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), regions.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(regionsavail)).ok() } pub unsafe fn GetSourceEntryBySourceEntry(&self, fromentry: &DEBUG_SYMBOL_SOURCE_ENTRY, flags: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -36594,25 +36942,25 @@ impl IDebugSymbols5 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetScopeEx(&self, instructionoffset: ::core::option::Option<&mut u64>, scopeframe: ::core::option::Option<&mut DEBUG_STACK_FRAME_EX>, scopecontext: *mut ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetScopeEx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset), ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext), scopecontextsize).ok() + pub unsafe fn GetScopeEx(&self, instructionoffset: ::core::option::Option<&mut u64>, scopeframe: ::core::option::Option<&mut DEBUG_STACK_FRAME_EX>, scopecontext: ::core::option::Option<&mut [u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetScopeEx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(instructionoffset), ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), scopecontext.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SetScopeEx(&self, instructionoffset: u64, scopeframe: ::core::option::Option<&DEBUG_STACK_FRAME_EX>, scopecontext: *const ::core::ffi::c_void, scopecontextsize: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetScopeEx)(::windows::core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext), scopecontextsize).ok() + pub unsafe fn SetScopeEx(&self, instructionoffset: u64, scopeframe: ::core::option::Option<&DEBUG_STACK_FRAME_EX>, scopecontext: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetScopeEx)(::windows::core::Interface::as_raw(self), instructionoffset, ::core::mem::transmute(scopeframe), ::core::mem::transmute(scopecontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), scopecontext.as_deref().map_or(0, |slice| slice.len() as _)).ok() } - pub unsafe fn GetNameByInlineContext(&self, offset: u64, inlinecontext: u32, namebuffer: &mut [u8], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNameByInlineContext)(::windows::core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNameByInlineContext(&self, offset: u64, inlinecontext: u32, namebuffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNameByInlineContext)(::windows::core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } - pub unsafe fn GetNameByInlineContextWide(&self, offset: u64, inlinecontext: u32, namebuffer: &mut [u16], namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNameByInlineContextWide)(::windows::core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(namebuffer)), namebuffer.len() as _, ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetNameByInlineContextWide(&self, offset: u64, inlinecontext: u32, namebuffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNameByInlineContextWide)(::windows::core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(namebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), namebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize), ::core::mem::transmute(displacement)).ok() } - pub unsafe fn GetLineByInlineContext(&self, offset: u64, inlinecontext: u32, line: ::core::option::Option<&mut u32>, filebuffer: &mut [u8], filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLineByInlineContext)(::windows::core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(line), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filebuffer)), filebuffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetLineByInlineContext(&self, offset: u64, inlinecontext: u32, line: ::core::option::Option<&mut u32>, filebuffer: ::core::option::Option<&mut [u8]>, filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLineByInlineContext)(::windows::core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(line), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() } - pub unsafe fn GetLineByInlineContextWide(&self, offset: u64, inlinecontext: u32, line: ::core::option::Option<&mut u32>, filebuffer: &mut [u16], filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLineByInlineContextWide)(::windows::core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(line), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filebuffer)), filebuffer.len() as _, ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() + pub unsafe fn GetLineByInlineContextWide(&self, offset: u64, inlinecontext: u32, line: ::core::option::Option<&mut u32>, filebuffer: ::core::option::Option<&mut [u16]>, filesize: ::core::option::Option<&mut u32>, displacement: ::core::option::Option<&mut u64>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLineByInlineContextWide)(::windows::core::Interface::as_raw(self), offset, inlinecontext, ::core::mem::transmute(line), ::core::mem::transmute(filebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), filebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(filesize), ::core::mem::transmute(displacement)).ok() } pub unsafe fn OutputSymbolByInlineContext(&self, outputcontrol: u32, flags: u32, offset: u64, inlinecontext: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OutputSymbolByInlineContext)(::windows::core::Interface::as_raw(self), outputcontrol, flags, offset, inlinecontext).ok() @@ -36901,7 +37249,7 @@ impl IDebugSystemObjects { pub unsafe fn GetTotalNumberThreads(&self, total: &mut u32, largestprocess: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetTotalNumberThreads)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(total), ::core::mem::transmute(largestprocess)).ok() } - pub unsafe fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<&mut u32>, sysids: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetThreadIdsByIndex)(::windows::core::Interface::as_raw(self), start, ::core::mem::transmute(count), ::core::mem::transmute(ids), ::core::mem::transmute(sysids)).ok() } pub unsafe fn GetThreadIdByProcessor(&self, processor: u32) -> ::windows::core::Result { @@ -36944,7 +37292,7 @@ impl IDebugSystemObjects { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberProcesses)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<&mut u32>, sysids: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetProcessIdsByIndex)(::windows::core::Interface::as_raw(self), start, ::core::mem::transmute(count), ::core::mem::transmute(ids), ::core::mem::transmute(sysids)).ok() } pub unsafe fn GetCurrentProcessDataOffset(&self) -> ::windows::core::Result { @@ -36979,8 +37327,8 @@ impl IDebugSystemObjects { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetProcessIdByHandle)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: &mut [u8], exesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCurrentProcessExecutableName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(exesize)).ok() + pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: ::core::option::Option<&mut [u8]>, exesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetCurrentProcessExecutableName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(exesize)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -37085,7 +37433,7 @@ impl IDebugSystemObjects2 { pub unsafe fn GetTotalNumberThreads(&self, total: &mut u32, largestprocess: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetTotalNumberThreads)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(total), ::core::mem::transmute(largestprocess)).ok() } - pub unsafe fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<&mut u32>, sysids: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetThreadIdsByIndex)(::windows::core::Interface::as_raw(self), start, ::core::mem::transmute(count), ::core::mem::transmute(ids), ::core::mem::transmute(sysids)).ok() } pub unsafe fn GetThreadIdByProcessor(&self, processor: u32) -> ::windows::core::Result { @@ -37128,7 +37476,7 @@ impl IDebugSystemObjects2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberProcesses)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<&mut u32>, sysids: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetProcessIdsByIndex)(::windows::core::Interface::as_raw(self), start, ::core::mem::transmute(count), ::core::mem::transmute(ids), ::core::mem::transmute(sysids)).ok() } pub unsafe fn GetCurrentProcessDataOffset(&self) -> ::windows::core::Result { @@ -37163,8 +37511,8 @@ impl IDebugSystemObjects2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetProcessIdByHandle)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: &mut [u8], exesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCurrentProcessExecutableName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(exesize)).ok() + pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: ::core::option::Option<&mut [u8]>, exesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetCurrentProcessExecutableName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(exesize)).ok() } pub unsafe fn GetCurrentProcessUpTime(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -37292,7 +37640,7 @@ impl IDebugSystemObjects3 { pub unsafe fn GetTotalNumberThreads(&self, total: &mut u32, largestprocess: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetTotalNumberThreads)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(total), ::core::mem::transmute(largestprocess)).ok() } - pub unsafe fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<&mut u32>, sysids: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetThreadIdsByIndex)(::windows::core::Interface::as_raw(self), start, ::core::mem::transmute(count), ::core::mem::transmute(ids), ::core::mem::transmute(sysids)).ok() } pub unsafe fn GetThreadIdByProcessor(&self, processor: u32) -> ::windows::core::Result { @@ -37335,7 +37683,7 @@ impl IDebugSystemObjects3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberProcesses)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<&mut u32>, sysids: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetProcessIdsByIndex)(::windows::core::Interface::as_raw(self), start, ::core::mem::transmute(count), ::core::mem::transmute(ids), ::core::mem::transmute(sysids)).ok() } pub unsafe fn GetCurrentProcessDataOffset(&self) -> ::windows::core::Result { @@ -37370,8 +37718,8 @@ impl IDebugSystemObjects3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetProcessIdByHandle)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: &mut [u8], exesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCurrentProcessExecutableName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(exesize)).ok() + pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: ::core::option::Option<&mut [u8]>, exesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetCurrentProcessExecutableName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(exesize)).ok() } pub unsafe fn GetCurrentProcessUpTime(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -37407,7 +37755,7 @@ impl IDebugSystemObjects3 { (::windows::core::Interface::vtable(self).GetNumberSystems)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetSystemIdsByIndex(&self, start: u32, ids: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemIdsByIndex)(::windows::core::Interface::as_raw(self), start, ids.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ids))).ok() + (::windows::core::Interface::vtable(self).GetSystemIdsByIndex)(::windows::core::Interface::as_raw(self), start, ids.len() as _, ::core::mem::transmute(ids.as_ptr())).ok() } pub unsafe fn GetTotalNumberThreadsAndProcesses(&self, totalthreads: &mut u32, totalprocesses: &mut u32, largestprocessthreads: &mut u32, largestsystemthreads: &mut u32, largestsystemprocesses: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetTotalNumberThreadsAndProcesses)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(totalthreads), ::core::mem::transmute(totalprocesses), ::core::mem::transmute(largestprocessthreads), ::core::mem::transmute(largestsystemthreads), ::core::mem::transmute(largestsystemprocesses)).ok() @@ -37420,8 +37768,8 @@ impl IDebugSystemObjects3 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSystemByServer)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetCurrentSystemServerName(&self, buffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCurrentSystemServerName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetCurrentSystemServerName(&self, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetCurrentSystemServerName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -37540,7 +37888,7 @@ impl IDebugSystemObjects4 { pub unsafe fn GetTotalNumberThreads(&self, total: &mut u32, largestprocess: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetTotalNumberThreads)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(total), ::core::mem::transmute(largestprocess)).ok() } - pub unsafe fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<&mut u32>, sysids: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetThreadIdsByIndex(&self, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetThreadIdsByIndex)(::windows::core::Interface::as_raw(self), start, ::core::mem::transmute(count), ::core::mem::transmute(ids), ::core::mem::transmute(sysids)).ok() } pub unsafe fn GetThreadIdByProcessor(&self, processor: u32) -> ::windows::core::Result { @@ -37583,7 +37931,7 @@ impl IDebugSystemObjects4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNumberProcesses)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: ::core::option::Option<&mut u32>, sysids: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn GetProcessIdsByIndex(&self, start: u32, count: u32, ids: *mut u32, sysids: *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetProcessIdsByIndex)(::windows::core::Interface::as_raw(self), start, ::core::mem::transmute(count), ::core::mem::transmute(ids), ::core::mem::transmute(sysids)).ok() } pub unsafe fn GetCurrentProcessDataOffset(&self) -> ::windows::core::Result { @@ -37618,8 +37966,8 @@ impl IDebugSystemObjects4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetProcessIdByHandle)(::windows::core::Interface::as_raw(self), handle, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: &mut [u8], exesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCurrentProcessExecutableName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(exesize)).ok() + pub unsafe fn GetCurrentProcessExecutableName(&self, buffer: ::core::option::Option<&mut [u8]>, exesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetCurrentProcessExecutableName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(exesize)).ok() } pub unsafe fn GetCurrentProcessUpTime(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -37655,7 +38003,7 @@ impl IDebugSystemObjects4 { (::windows::core::Interface::vtable(self).GetNumberSystems)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetSystemIdsByIndex(&self, start: u32, ids: &mut [u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSystemIdsByIndex)(::windows::core::Interface::as_raw(self), start, ids.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ids))).ok() + (::windows::core::Interface::vtable(self).GetSystemIdsByIndex)(::windows::core::Interface::as_raw(self), start, ids.len() as _, ::core::mem::transmute(ids.as_ptr())).ok() } pub unsafe fn GetTotalNumberThreadsAndProcesses(&self, totalthreads: &mut u32, totalprocesses: &mut u32, largestprocessthreads: &mut u32, largestsystemthreads: &mut u32, largestsystemprocesses: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetTotalNumberThreadsAndProcesses)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(totalthreads), ::core::mem::transmute(totalprocesses), ::core::mem::transmute(largestprocessthreads), ::core::mem::transmute(largestsystemthreads), ::core::mem::transmute(largestsystemprocesses)).ok() @@ -37668,14 +38016,14 @@ impl IDebugSystemObjects4 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetSystemByServer)(::windows::core::Interface::as_raw(self), server, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetCurrentSystemServerName(&self, buffer: &mut [u8], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCurrentSystemServerName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetCurrentSystemServerName(&self, buffer: ::core::option::Option<&mut [u8]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetCurrentSystemServerName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } - pub unsafe fn GetCurrentProcessExecutableNameWide(&self, buffer: &mut [u16], exesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCurrentProcessExecutableNameWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(exesize)).ok() + pub unsafe fn GetCurrentProcessExecutableNameWide(&self, buffer: ::core::option::Option<&mut [u16]>, exesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetCurrentProcessExecutableNameWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(exesize)).ok() } - pub unsafe fn GetCurrentSystemServerNameWide(&self, buffer: &mut [u16], namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCurrentSystemServerNameWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _, ::core::mem::transmute(namesize)).ok() + pub unsafe fn GetCurrentSystemServerNameWide(&self, buffer: ::core::option::Option<&mut [u16]>, namesize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetCurrentSystemServerNameWide)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namesize)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -38204,7 +38552,7 @@ impl IEnumDebugExtendedPropertyInfo { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole"))] pub unsafe fn Next(&self, rgextendedpropertyinfo: &mut [ExtendedDebugPropertyInfo], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgextendedpropertyinfo.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgextendedpropertyinfo)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgextendedpropertyinfo.len() as _, ::core::mem::transmute(rgextendedpropertyinfo.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -38276,7 +38624,7 @@ impl IEnumDebugPropertyInfo { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn Next(&self, pi: &mut [DebugPropertyInfo], pceltsfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pi.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pi)), ::core::mem::transmute(pceltsfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pi.len() as _, ::core::mem::transmute(pi.as_ptr()), ::core::mem::transmute(pceltsfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -38497,7 +38845,7 @@ pub struct IEnumDebugStackFrames64_Vtbl { pub struct IEnumJsStackFrames(::windows::core::IUnknown); impl IEnumJsStackFrames { pub unsafe fn Next(&self, pframes: &mut [JS_NATIVE_FRAME], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pframes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pframes)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pframes.len() as _, ::core::mem::transmute(pframes.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -38887,14 +39235,14 @@ impl IIndexableConcept { where P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>, { - (::windows::core::Interface::vtable(self).GetAt)(::windows::core::Interface::as_raw(self), contextobject.into().abi(), indexers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(indexers)), ::core::mem::transmute(object), ::core::mem::transmute(metadata)).ok() + (::windows::core::Interface::vtable(self).GetAt)(::windows::core::Interface::as_raw(self), contextobject.into().abi(), indexers.len() as _, ::core::mem::transmute(indexers.as_ptr()), ::core::mem::transmute(object), ::core::mem::transmute(metadata)).ok() } pub unsafe fn SetAt<'a, P0, P1>(&self, contextobject: P0, indexers: &[::core::option::Option], value: P1) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>, { - (::windows::core::Interface::vtable(self).SetAt)(::windows::core::Interface::as_raw(self), contextobject.into().abi(), indexers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(indexers)), value.into().abi()).ok() + (::windows::core::Interface::vtable(self).SetAt)(::windows::core::Interface::as_raw(self), contextobject.into().abi(), indexers.len() as _, ::core::mem::transmute(indexers.as_ptr()), value.into().abi()).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -39130,10 +39478,10 @@ pub struct IJsDebugBreakPoint_Vtbl { pub struct IJsDebugDataTarget(::windows::core::IUnknown); impl IJsDebugDataTarget { pub unsafe fn ReadMemory(&self, address: u64, flags: JsDebugReadMemoryFlags, pbuffer: &mut [u8], pbytesread: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadMemory)(::windows::core::Interface::as_raw(self), address, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pbuffer)), pbuffer.len() as _, ::core::mem::transmute(pbytesread)).ok() + (::windows::core::Interface::vtable(self).ReadMemory)(::windows::core::Interface::as_raw(self), address, flags, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _, ::core::mem::transmute(pbytesread)).ok() } pub unsafe fn WriteMemory(&self, address: u64, pmemory: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteMemory)(::windows::core::Interface::as_raw(self), address, ::core::mem::transmute(::windows::core::as_ptr_or_null(pmemory)), pmemory.len() as _).ok() + (::windows::core::Interface::vtable(self).WriteMemory)(::windows::core::Interface::as_raw(self), address, ::core::mem::transmute(pmemory.as_ptr()), pmemory.len() as _).ok() } pub unsafe fn AllocateVirtualMemory(&self, address: u64, size: u32, allocationtype: u32, pageprotection: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -39163,7 +39511,7 @@ impl IJsDebugDataTarget { (::windows::core::Interface::vtable(self).CreateStackFrameEnumerator)(::windows::core::Interface::as_raw(self), threadid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetThreadContext(&self, threadid: u32, contextflags: u32, pcontext: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetThreadContext)(::windows::core::Interface::as_raw(self), threadid, contextflags, pcontext.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pcontext))).ok() + (::windows::core::Interface::vtable(self).GetThreadContext)(::windows::core::Interface::as_raw(self), threadid, contextflags, pcontext.len() as _, ::core::mem::transmute(pcontext.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -39502,7 +39850,7 @@ pub struct IJsDebugStackWalker_Vtbl { pub struct IJsEnumDebugProperty(::windows::core::IUnknown); impl IJsEnumDebugProperty { pub unsafe fn Next(&self, ppdebugproperty: &mut [::core::option::Option], pactualcount: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppdebugproperty.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppdebugproperty)), ::core::mem::transmute(pactualcount)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppdebugproperty.len() as _, ::core::mem::transmute(ppdebugproperty.as_ptr()), ::core::mem::transmute(pactualcount)).ok() } pub unsafe fn GetCount(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -43264,8 +43612,8 @@ impl IModelIterator { pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() } - pub unsafe fn GetNext(&self, object: &mut ::core::option::Option, indexers: &mut [::core::option::Option], metadata: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(object), indexers.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(indexers)), ::core::mem::transmute(metadata)).ok() + pub unsafe fn GetNext(&self, object: &mut ::core::option::Option, indexers: ::core::option::Option<&mut [::core::option::Option]>, metadata: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetNext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(object), indexers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(indexers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(metadata)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -43506,7 +43854,7 @@ impl IModelMethod { where P0: ::std::convert::Into<::windows::core::InParam<'a, IModelObject>>, { - (::windows::core::Interface::vtable(self).Call)(::windows::core::Interface::as_raw(self), pcontextobject.into().abi(), pparguments.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pparguments)), ::core::mem::transmute(ppresult), ::core::mem::transmute(ppmetadata)).ok() + (::windows::core::Interface::vtable(self).Call)(::windows::core::Interface::as_raw(self), pcontextobject.into().abi(), pparguments.len() as _, ::core::mem::transmute(pparguments.as_ptr()), ::core::mem::transmute(ppresult), ::core::mem::transmute(ppmetadata)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -45199,7 +45547,7 @@ impl IScriptEntry { P3: ::std::convert::Into<::windows::core::InParam<'a, super::super::Com::ITypeInfo>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateChildHandler)(::windows::core::Interface::as_raw(self), pszdefaultname.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(prgpsznames)), prgpsznames.len() as _, pszevent.into(), pszdelimiter.into(), ptisignature.into().abi(), imethodsignature, isn, dwcookie, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateChildHandler)(::windows::core::Interface::as_raw(self), pszdefaultname.into(), ::core::mem::transmute(prgpsznames.as_ptr()), prgpsznames.len() as _, pszevent.into(), pszdelimiter.into(), ptisignature.into().abi(), imethodsignature, isn, dwcookie, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -45468,7 +45816,7 @@ impl IScriptNode { P3: ::std::convert::Into<::windows::core::InParam<'a, super::super::Com::ITypeInfo>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateChildHandler)(::windows::core::Interface::as_raw(self), pszdefaultname.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(prgpsznames)), prgpsznames.len() as _, pszevent.into(), pszdelimiter.into(), ptisignature.into().abi(), imethodsignature, isn, dwcookie, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateChildHandler)(::windows::core::Interface::as_raw(self), pszdefaultname.into(), ::core::mem::transmute(prgpsznames.as_ptr()), prgpsznames.len() as _, pszevent.into(), pszdelimiter.into(), ptisignature.into().abi(), imethodsignature, isn, dwcookie, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -45580,7 +45928,7 @@ impl IScriptScriptlet { P3: ::std::convert::Into<::windows::core::InParam<'a, super::super::Com::ITypeInfo>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateChildHandler)(::windows::core::Interface::as_raw(self), pszdefaultname.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(prgpsznames)), prgpsznames.len() as _, pszevent.into(), pszdelimiter.into(), ptisignature.into().abi(), imethodsignature, isn, dwcookie, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateChildHandler)(::windows::core::Interface::as_raw(self), pszdefaultname.into(), ::core::mem::transmute(prgpsznames.as_ptr()), prgpsznames.len() as _, pszevent.into(), pszdelimiter.into(), ptisignature.into().abi(), imethodsignature, isn, dwcookie, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -45778,7 +46126,7 @@ impl ISimpleConnectionPoint { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn DescribeEvents(&self, ievent: u32, cevents: u32, prgid: &mut i32, prgbstr: &mut super::super::super::Foundation::BSTR, pceventsfetched: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn DescribeEvents(&self, ievent: u32, cevents: u32, prgid: *mut i32, prgbstr: *mut super::super::super::Foundation::BSTR, pceventsfetched: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DescribeEvents)(::windows::core::Interface::as_raw(self), ievent, ::core::mem::transmute(cevents), ::core::mem::transmute(prgid), ::core::mem::transmute(prgbstr), ::core::mem::transmute(pceventsfetched)).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] @@ -46114,7 +46462,7 @@ where #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ImageEnumerateCertificates<'a, P0>(filehandle: P0, typefilter: u16, certificatecount: &mut u32, indices: &mut [u32]) -> super::super::super::Foundation::BOOL +pub unsafe fn ImageEnumerateCertificates<'a, P0>(filehandle: P0, typefilter: u16, certificatecount: &mut u32, indices: ::core::option::Option<&mut [u32]>) -> super::super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -46122,7 +46470,7 @@ where extern "system" { fn ImageEnumerateCertificates(filehandle: super::super::super::Foundation::HANDLE, typefilter: u16, certificatecount: *mut u32, indices: *mut u32, indexcount: u32) -> super::super::super::Foundation::BOOL; } - ImageEnumerateCertificates(filehandle.into(), typefilter, ::core::mem::transmute(certificatecount), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(indices)), indices.len() as _) + ImageEnumerateCertificates(filehandle.into(), typefilter, ::core::mem::transmute(certificatecount), ::core::mem::transmute(indices.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), indices.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_Security_WinTrust\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security_WinTrust"))] @@ -53666,12 +54014,12 @@ impl ::core::fmt::Debug for RTL_VIRTUAL_UNWIND_HANDLER_TYPE { } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"] #[inline] -pub unsafe fn RaiseException(dwexceptioncode: u32, dwexceptionflags: u32, lparguments: &[usize]) { +pub unsafe fn RaiseException(dwexceptioncode: u32, dwexceptionflags: u32, lparguments: ::core::option::Option<&[usize]>) { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RaiseException(dwexceptioncode: u32, dwexceptionflags: u32, nnumberofarguments: u32, lparguments: *const usize); } - RaiseException(dwexceptioncode, dwexceptionflags, lparguments.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lparguments))) + RaiseException(dwexceptioncode, dwexceptionflags, lparguments.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lparguments.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel"))] @@ -53686,7 +54034,7 @@ pub unsafe fn RaiseFailFastException(pexceptionrecord: ::core::option::Option<&E #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RangeMapAddPeImageSections<'a, P0>(rmaphandle: *const ::core::ffi::c_void, imagename: P0, mappedimage: *const ::core::ffi::c_void, mappingbytes: u32, imagebase: u64, usertag: u64, mappingflags: u32) -> super::super::super::Foundation::BOOL +pub unsafe fn RangeMapAddPeImageSections<'a, P0>(rmaphandle: *const ::core::ffi::c_void, imagename: P0, mappedimage: &[u8], imagebase: u64, usertag: u64, mappingflags: u32) -> super::super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -53694,7 +54042,7 @@ where extern "system" { fn RangeMapAddPeImageSections(rmaphandle: *const ::core::ffi::c_void, imagename: ::windows::core::PCWSTR, mappedimage: *const ::core::ffi::c_void, mappingbytes: u32, imagebase: u64, usertag: u64, mappingflags: u32) -> super::super::super::Foundation::BOOL; } - RangeMapAddPeImageSections(::core::mem::transmute(rmaphandle), imagename.into(), ::core::mem::transmute(mappedimage), mappingbytes, imagebase, usertag, mappingflags) + RangeMapAddPeImageSections(::core::mem::transmute(rmaphandle), imagename.into(), ::core::mem::transmute(mappedimage.as_ptr()), mappedimage.len() as _, imagebase, usertag, mappingflags) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"] #[inline] @@ -53717,12 +54065,12 @@ pub unsafe fn RangeMapFree(rmaphandle: *const ::core::ffi::c_void) { #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RangeMapRead(rmaphandle: *const ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, requestbytes: u32, flags: u32, donebytes: ::core::option::Option<&mut u32>) -> super::super::super::Foundation::BOOL { +pub unsafe fn RangeMapRead(rmaphandle: *const ::core::ffi::c_void, offset: u64, buffer: &mut [u8], flags: u32, donebytes: ::core::option::Option<&mut u32>) -> super::super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RangeMapRead(rmaphandle: *const ::core::ffi::c_void, offset: u64, buffer: *mut ::core::ffi::c_void, requestbytes: u32, flags: u32, donebytes: *mut u32) -> super::super::super::Foundation::BOOL; } - RangeMapRead(::core::mem::transmute(rmaphandle), offset, ::core::mem::transmute(buffer), requestbytes, flags, ::core::mem::transmute(donebytes)) + RangeMapRead(::core::mem::transmute(rmaphandle), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, flags, ::core::mem::transmute(donebytes)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -53737,12 +54085,12 @@ pub unsafe fn RangeMapRemove(rmaphandle: *const ::core::ffi::c_void, usertag: u6 #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RangeMapWrite(rmaphandle: *const ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, requestbytes: u32, flags: u32, donebytes: ::core::option::Option<&mut u32>) -> super::super::super::Foundation::BOOL { +pub unsafe fn RangeMapWrite(rmaphandle: *const ::core::ffi::c_void, offset: u64, buffer: &[u8], flags: u32, donebytes: ::core::option::Option<&mut u32>) -> super::super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RangeMapWrite(rmaphandle: *const ::core::ffi::c_void, offset: u64, buffer: *const ::core::ffi::c_void, requestbytes: u32, flags: u32, donebytes: *mut u32) -> super::super::super::Foundation::BOOL; } - RangeMapWrite(::core::mem::transmute(rmaphandle), offset, ::core::mem::transmute(buffer), requestbytes, flags, ::core::mem::transmute(donebytes)) + RangeMapWrite(::core::mem::transmute(rmaphandle), offset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, flags, ::core::mem::transmute(donebytes)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"] #[repr(transparent)] @@ -53808,7 +54156,7 @@ where #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ReadProcessMemory<'a, P0>(hprocess: P0, lpbaseaddress: *const ::core::ffi::c_void, lpbuffer: *mut ::core::ffi::c_void, nsize: usize, lpnumberofbytesread: ::core::option::Option<&mut usize>) -> super::super::super::Foundation::BOOL +pub unsafe fn ReadProcessMemory<'a, P0>(hprocess: P0, lpbaseaddress: *const ::core::ffi::c_void, lpbuffer: &mut [u8], lpnumberofbytesread: ::core::option::Option<&mut usize>) -> super::super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -53816,7 +54164,7 @@ where extern "system" { fn ReadProcessMemory(hprocess: super::super::super::Foundation::HANDLE, lpbaseaddress: *const ::core::ffi::c_void, lpbuffer: *mut ::core::ffi::c_void, nsize: usize, lpnumberofbytesread: *mut usize) -> super::super::super::Foundation::BOOL; } - ReadProcessMemory(hprocess.into(), ::core::mem::transmute(lpbaseaddress), ::core::mem::transmute(lpbuffer), nsize, ::core::mem::transmute(lpnumberofbytesread)) + ReadProcessMemory(hprocess.into(), ::core::mem::transmute(lpbaseaddress), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofbytesread)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"] #[inline] @@ -53881,7 +54229,7 @@ pub unsafe fn RtlAddFunctionTable(functiontable: &[IMAGE_ARM64_RUNTIME_FUNCTION_ extern "system" { fn RtlAddFunctionTable(functiontable: *const IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, entrycount: u32, baseaddress: usize) -> super::super::super::Foundation::BOOLEAN; } - RtlAddFunctionTable(::core::mem::transmute(::windows::core::as_ptr_or_null(functiontable)), functiontable.len() as _, baseaddress) + RtlAddFunctionTable(::core::mem::transmute(functiontable.as_ptr()), functiontable.len() as _, baseaddress) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(target_arch = "x86_64")] @@ -53892,7 +54240,7 @@ pub unsafe fn RtlAddFunctionTable(functiontable: &[IMAGE_RUNTIME_FUNCTION_ENTRY] extern "system" { fn RtlAddFunctionTable(functiontable: *const IMAGE_RUNTIME_FUNCTION_ENTRY, entrycount: u32, baseaddress: u64) -> super::super::super::Foundation::BOOLEAN; } - RtlAddFunctionTable(::core::mem::transmute(::windows::core::as_ptr_or_null(functiontable)), functiontable.len() as _, baseaddress) + RtlAddFunctionTable(::core::mem::transmute(functiontable.as_ptr()), functiontable.len() as _, baseaddress) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"] #[cfg(target_arch = "aarch64")] @@ -53902,7 +54250,7 @@ pub unsafe fn RtlAddGrowableFunctionTable(dynamictable: *mut *mut ::core::ffi::c extern "system" { fn RtlAddGrowableFunctionTable(dynamictable: *mut *mut ::core::ffi::c_void, functiontable: *const IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, entrycount: u32, maximumentrycount: u32, rangebase: usize, rangeend: usize) -> u32; } - RtlAddGrowableFunctionTable(::core::mem::transmute(dynamictable), ::core::mem::transmute(::windows::core::as_ptr_or_null(functiontable)), entrycount, functiontable.len() as _, rangebase, rangeend) + RtlAddGrowableFunctionTable(::core::mem::transmute(dynamictable), ::core::mem::transmute(functiontable.as_ptr()), entrycount, functiontable.len() as _, rangebase, rangeend) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"] #[cfg(target_arch = "x86_64")] @@ -53912,7 +54260,7 @@ pub unsafe fn RtlAddGrowableFunctionTable(dynamictable: *mut *mut ::core::ffi::c extern "system" { fn RtlAddGrowableFunctionTable(dynamictable: *mut *mut ::core::ffi::c_void, functiontable: *const IMAGE_RUNTIME_FUNCTION_ENTRY, entrycount: u32, maximumentrycount: u32, rangebase: usize, rangeend: usize) -> u32; } - RtlAddGrowableFunctionTable(::core::mem::transmute(dynamictable), ::core::mem::transmute(::windows::core::as_ptr_or_null(functiontable)), entrycount, functiontable.len() as _, rangebase, rangeend) + RtlAddGrowableFunctionTable(::core::mem::transmute(dynamictable), ::core::mem::transmute(functiontable.as_ptr()), entrycount, functiontable.len() as _, rangebase, rangeend) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_System_Kernel\"`*"] #[cfg(feature = "Win32_System_Kernel")] @@ -53942,7 +54290,7 @@ pub unsafe fn RtlCaptureStackBackTrace(framestoskip: u32, backtrace: &mut [*mut extern "system" { fn RtlCaptureStackBackTrace(framestoskip: u32, framestocapture: u32, backtrace: *mut *mut ::core::ffi::c_void, backtracehash: *mut u32) -> u16; } - RtlCaptureStackBackTrace(framestoskip, backtrace.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(backtrace)), ::core::mem::transmute(backtracehash)) + RtlCaptureStackBackTrace(framestoskip, backtrace.len() as _, ::core::mem::transmute(backtrace.as_ptr()), ::core::mem::transmute(backtracehash)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(target_arch = "aarch64")] @@ -56412,7 +56760,7 @@ where #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SymAddSourceStream<'a, P0, P1>(hprocess: P0, base: u64, streamfile: P1, buffer: ::core::option::Option<&u8>, size: usize) -> super::super::super::Foundation::BOOL +pub unsafe fn SymAddSourceStream<'a, P0, P1>(hprocess: P0, base: u64, streamfile: P1, buffer: ::core::option::Option<&[u8]>) -> super::super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -56421,12 +56769,12 @@ where extern "system" { fn SymAddSourceStream(hprocess: super::super::super::Foundation::HANDLE, base: u64, streamfile: ::windows::core::PCSTR, buffer: *const u8, size: usize) -> super::super::super::Foundation::BOOL; } - SymAddSourceStream(hprocess.into(), base, streamfile.into(), ::core::mem::transmute(buffer), size) + SymAddSourceStream(hprocess.into(), base, streamfile.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SymAddSourceStreamA<'a, P0, P1>(hprocess: P0, base: u64, streamfile: P1, buffer: ::core::option::Option<&u8>, size: usize) -> super::super::super::Foundation::BOOL +pub unsafe fn SymAddSourceStreamA<'a, P0, P1>(hprocess: P0, base: u64, streamfile: P1, buffer: ::core::option::Option<&[u8]>) -> super::super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -56435,12 +56783,12 @@ where extern "system" { fn SymAddSourceStreamA(hprocess: super::super::super::Foundation::HANDLE, base: u64, streamfile: ::windows::core::PCSTR, buffer: *const u8, size: usize) -> super::super::super::Foundation::BOOL; } - SymAddSourceStreamA(hprocess.into(), base, streamfile.into(), ::core::mem::transmute(buffer), size) + SymAddSourceStreamA(hprocess.into(), base, streamfile.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SymAddSourceStreamW<'a, P0, P1>(hprocess: P0, base: u64, filespec: P1, buffer: ::core::option::Option<&u8>, size: usize) -> super::super::super::Foundation::BOOL +pub unsafe fn SymAddSourceStreamW<'a, P0, P1>(hprocess: P0, base: u64, filespec: P1, buffer: ::core::option::Option<&[u8]>) -> super::super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -56449,7 +56797,7 @@ where extern "system" { fn SymAddSourceStreamW(hprocess: super::super::super::Foundation::HANDLE, base: u64, filespec: ::windows::core::PCWSTR, buffer: *const u8, size: usize) -> super::super::super::Foundation::BOOL; } - SymAddSourceStreamW(hprocess.into(), base, filespec.into(), ::core::mem::transmute(buffer), size) + SymAddSourceStreamW(hprocess.into(), base, filespec.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -57185,7 +57533,7 @@ where extern "system" { fn SymGetFileLineOffsets64(hprocess: super::super::super::Foundation::HANDLE, modulename: ::windows::core::PCSTR, filename: ::windows::core::PCSTR, buffer: *mut u64, bufferlines: u32) -> u32; } - SymGetFileLineOffsets64(hprocess.into(), modulename.into(), filename.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _) + SymGetFileLineOffsets64(hprocess.into(), modulename.into(), filename.into(), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"] #[inline] @@ -57194,7 +57542,7 @@ pub unsafe fn SymGetHomeDirectory(r#type: IMAGEHLP_HD_TYPE, dir: &mut [u8]) -> : extern "system" { fn SymGetHomeDirectory(r#type: IMAGEHLP_HD_TYPE, dir: ::windows::core::PSTR, size: usize) -> ::windows::core::PSTR; } - SymGetHomeDirectory(r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dir)), dir.len() as _) + SymGetHomeDirectory(r#type, ::core::mem::transmute(dir.as_ptr()), dir.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"] #[inline] @@ -57203,7 +57551,7 @@ pub unsafe fn SymGetHomeDirectoryW(r#type: IMAGEHLP_HD_TYPE, dir: &mut [u16]) -> extern "system" { fn SymGetHomeDirectoryW(r#type: IMAGEHLP_HD_TYPE, dir: ::windows::core::PWSTR, size: usize) -> ::windows::core::PWSTR; } - SymGetHomeDirectoryW(r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dir)), dir.len() as _) + SymGetHomeDirectoryW(r#type, ::core::mem::transmute(dir.as_ptr()), dir.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(target_arch = "x86")] @@ -57537,7 +57885,7 @@ where extern "system" { fn SymGetSearchPath(hprocess: super::super::super::Foundation::HANDLE, searchpatha: ::windows::core::PSTR, searchpathlength: u32) -> super::super::super::Foundation::BOOL; } - SymGetSearchPath(hprocess.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(searchpatha)), searchpatha.len() as _) + SymGetSearchPath(hprocess.into(), ::core::mem::transmute(searchpatha.as_ptr()), searchpatha.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -57550,7 +57898,7 @@ where extern "system" { fn SymGetSearchPathW(hprocess: super::super::super::Foundation::HANDLE, searchpatha: ::windows::core::PWSTR, searchpathlength: u32) -> super::super::super::Foundation::BOOL; } - SymGetSearchPathW(hprocess.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(searchpatha)), searchpatha.len() as _) + SymGetSearchPathW(hprocess.into(), ::core::mem::transmute(searchpatha.as_ptr()), searchpatha.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -57565,7 +57913,7 @@ where extern "system" { fn SymGetSourceFile(hprocess: super::super::super::Foundation::HANDLE, base: u64, params: ::windows::core::PCSTR, filespec: ::windows::core::PCSTR, filepath: ::windows::core::PSTR, size: u32) -> super::super::super::Foundation::BOOL; } - SymGetSourceFile(hprocess.into(), base, params.into(), filespec.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filepath)), filepath.len() as _) + SymGetSourceFile(hprocess.into(), base, params.into(), filespec.into(), ::core::mem::transmute(filepath.as_ptr()), filepath.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -57579,7 +57927,7 @@ where extern "system" { fn SymGetSourceFileChecksum(hprocess: super::super::super::Foundation::HANDLE, base: u64, filespec: ::windows::core::PCSTR, pchecksumtype: *mut u32, pchecksum: *mut u8, checksumsize: u32, pactualbyteswritten: *mut u32) -> super::super::super::Foundation::BOOL; } - SymGetSourceFileChecksum(hprocess.into(), base, filespec.into(), ::core::mem::transmute(pchecksumtype), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pchecksum)), pchecksum.len() as _, ::core::mem::transmute(pactualbyteswritten)) + SymGetSourceFileChecksum(hprocess.into(), base, filespec.into(), ::core::mem::transmute(pchecksumtype), ::core::mem::transmute(pchecksum.as_ptr()), pchecksum.len() as _, ::core::mem::transmute(pactualbyteswritten)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -57593,7 +57941,7 @@ where extern "system" { fn SymGetSourceFileChecksumW(hprocess: super::super::super::Foundation::HANDLE, base: u64, filespec: ::windows::core::PCWSTR, pchecksumtype: *mut u32, pchecksum: *mut u8, checksumsize: u32, pactualbyteswritten: *mut u32) -> super::super::super::Foundation::BOOL; } - SymGetSourceFileChecksumW(hprocess.into(), base, filespec.into(), ::core::mem::transmute(pchecksumtype), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pchecksum)), pchecksum.len() as _, ::core::mem::transmute(pactualbyteswritten)) + SymGetSourceFileChecksumW(hprocess.into(), base, filespec.into(), ::core::mem::transmute(pchecksumtype), ::core::mem::transmute(pchecksum.as_ptr()), pchecksum.len() as _, ::core::mem::transmute(pactualbyteswritten)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -57607,7 +57955,7 @@ where extern "system" { fn SymGetSourceFileFromToken(hprocess: super::super::super::Foundation::HANDLE, token: *const ::core::ffi::c_void, params: ::windows::core::PCSTR, filepath: ::windows::core::PSTR, size: u32) -> super::super::super::Foundation::BOOL; } - SymGetSourceFileFromToken(hprocess.into(), ::core::mem::transmute(token), params.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filepath)), filepath.len() as _) + SymGetSourceFileFromToken(hprocess.into(), ::core::mem::transmute(token), params.into(), ::core::mem::transmute(filepath.as_ptr()), filepath.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -57622,7 +57970,7 @@ where extern "system" { fn SymGetSourceFileFromTokenByTokenName(hprocess: super::super::super::Foundation::HANDLE, token: *const ::core::ffi::c_void, tokenname: ::windows::core::PCSTR, params: ::windows::core::PCSTR, filepath: ::windows::core::PSTR, size: u32) -> super::super::super::Foundation::BOOL; } - SymGetSourceFileFromTokenByTokenName(hprocess.into(), ::core::mem::transmute(token), tokenname.into(), params.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filepath)), filepath.len() as _) + SymGetSourceFileFromTokenByTokenName(hprocess.into(), ::core::mem::transmute(token), tokenname.into(), params.into(), ::core::mem::transmute(filepath.as_ptr()), filepath.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -57637,7 +57985,7 @@ where extern "system" { fn SymGetSourceFileFromTokenByTokenNameW(hprocess: super::super::super::Foundation::HANDLE, token: *const ::core::ffi::c_void, tokenname: ::windows::core::PCWSTR, params: ::windows::core::PCWSTR, filepath: ::windows::core::PWSTR, size: u32) -> super::super::super::Foundation::BOOL; } - SymGetSourceFileFromTokenByTokenNameW(hprocess.into(), ::core::mem::transmute(token), tokenname.into(), params.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filepath)), filepath.len() as _) + SymGetSourceFileFromTokenByTokenNameW(hprocess.into(), ::core::mem::transmute(token), tokenname.into(), params.into(), ::core::mem::transmute(filepath.as_ptr()), filepath.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -57651,7 +57999,7 @@ where extern "system" { fn SymGetSourceFileFromTokenW(hprocess: super::super::super::Foundation::HANDLE, token: *const ::core::ffi::c_void, params: ::windows::core::PCWSTR, filepath: ::windows::core::PWSTR, size: u32) -> super::super::super::Foundation::BOOL; } - SymGetSourceFileFromTokenW(hprocess.into(), ::core::mem::transmute(token), params.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filepath)), filepath.len() as _) + SymGetSourceFileFromTokenW(hprocess.into(), ::core::mem::transmute(token), params.into(), ::core::mem::transmute(filepath.as_ptr()), filepath.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -57726,7 +58074,7 @@ where extern "system" { fn SymGetSourceFileW(hprocess: super::super::super::Foundation::HANDLE, base: u64, params: ::windows::core::PCWSTR, filespec: ::windows::core::PCWSTR, filepath: ::windows::core::PWSTR, size: u32) -> super::super::super::Foundation::BOOL; } - SymGetSourceFileW(hprocess.into(), base, params.into(), filespec.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(filepath)), filepath.len() as _) + SymGetSourceFileW(hprocess.into(), base, params.into(), filespec.into(), ::core::mem::transmute(filepath.as_ptr()), filepath.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -57741,7 +58089,7 @@ where extern "system" { fn SymGetSourceVarFromToken(hprocess: super::super::super::Foundation::HANDLE, token: *const ::core::ffi::c_void, params: ::windows::core::PCSTR, varname: ::windows::core::PCSTR, value: ::windows::core::PSTR, size: u32) -> super::super::super::Foundation::BOOL; } - SymGetSourceVarFromToken(hprocess.into(), ::core::mem::transmute(token), params.into(), varname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(value)), value.len() as _) + SymGetSourceVarFromToken(hprocess.into(), ::core::mem::transmute(token), params.into(), varname.into(), ::core::mem::transmute(value.as_ptr()), value.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -57756,7 +58104,7 @@ where extern "system" { fn SymGetSourceVarFromTokenW(hprocess: super::super::super::Foundation::HANDLE, token: *const ::core::ffi::c_void, params: ::windows::core::PCWSTR, varname: ::windows::core::PCWSTR, value: ::windows::core::PWSTR, size: u32) -> super::super::super::Foundation::BOOL; } - SymGetSourceVarFromTokenW(hprocess.into(), ::core::mem::transmute(token), params.into(), varname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(value)), value.len() as _) + SymGetSourceVarFromTokenW(hprocess.into(), ::core::mem::transmute(token), params.into(), varname.into(), ::core::mem::transmute(value.as_ptr()), value.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(target_arch = "x86")] @@ -57881,7 +58229,7 @@ where extern "system" { fn SymGetSymbolFile(hprocess: super::super::super::Foundation::HANDLE, sympath: ::windows::core::PCSTR, imagefile: ::windows::core::PCSTR, r#type: IMAGEHLP_SF_TYPE, symbolfile: ::windows::core::PSTR, csymbolfile: usize, dbgfile: ::windows::core::PSTR, cdbgfile: usize) -> super::super::super::Foundation::BOOL; } - SymGetSymbolFile(hprocess.into(), sympath.into(), imagefile.into(), r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(symbolfile)), symbolfile.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dbgfile)), dbgfile.len() as _) + SymGetSymbolFile(hprocess.into(), sympath.into(), imagefile.into(), r#type, ::core::mem::transmute(symbolfile.as_ptr()), symbolfile.len() as _, ::core::mem::transmute(dbgfile.as_ptr()), dbgfile.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -57896,7 +58244,7 @@ where extern "system" { fn SymGetSymbolFileW(hprocess: super::super::super::Foundation::HANDLE, sympath: ::windows::core::PCWSTR, imagefile: ::windows::core::PCWSTR, r#type: IMAGEHLP_SF_TYPE, symbolfile: ::windows::core::PWSTR, csymbolfile: usize, dbgfile: ::windows::core::PWSTR, cdbgfile: usize) -> super::super::super::Foundation::BOOL; } - SymGetSymbolFileW(hprocess.into(), sympath.into(), imagefile.into(), r#type, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(symbolfile)), symbolfile.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(dbgfile)), dbgfile.len() as _) + SymGetSymbolFileW(hprocess.into(), sympath.into(), imagefile.into(), r#type, ::core::mem::transmute(symbolfile.as_ptr()), symbolfile.len() as _, ::core::mem::transmute(dbgfile.as_ptr()), dbgfile.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -58522,7 +58870,7 @@ where extern "system" { fn SymSrvGetFileIndexString(hprocess: super::super::super::Foundation::HANDLE, srvpath: ::windows::core::PCSTR, file: ::windows::core::PCSTR, index: ::windows::core::PSTR, size: usize, flags: u32) -> super::super::super::Foundation::BOOL; } - SymSrvGetFileIndexString(hprocess.into(), srvpath.into(), file.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(index)), index.len() as _, flags) + SymSrvGetFileIndexString(hprocess.into(), srvpath.into(), file.into(), ::core::mem::transmute(index.as_ptr()), index.len() as _, flags) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -58537,7 +58885,7 @@ where extern "system" { fn SymSrvGetFileIndexStringW(hprocess: super::super::super::Foundation::HANDLE, srvpath: ::windows::core::PCWSTR, file: ::windows::core::PCWSTR, index: ::windows::core::PWSTR, size: usize, flags: u32) -> super::super::super::Foundation::BOOL; } - SymSrvGetFileIndexStringW(hprocess.into(), srvpath.into(), file.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(index)), index.len() as _, flags) + SymSrvGetFileIndexStringW(hprocess.into(), srvpath.into(), file.into(), ::core::mem::transmute(index.as_ptr()), index.len() as _, flags) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -58696,7 +59044,7 @@ pub unsafe fn SymUnDName(sym: &IMAGEHLP_SYMBOL, undecname: &mut [u8]) -> super:: extern "system" { fn SymUnDName(sym: *const IMAGEHLP_SYMBOL, undecname: ::windows::core::PSTR, undecnamelength: u32) -> super::super::super::Foundation::BOOL; } - SymUnDName(::core::mem::transmute(sym), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(undecname)), undecname.len() as _) + SymUnDName(::core::mem::transmute(sym), ::core::mem::transmute(undecname.as_ptr()), undecname.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -58706,7 +59054,7 @@ pub unsafe fn SymUnDName64(sym: &IMAGEHLP_SYMBOL64, undecname: &mut [u8]) -> sup extern "system" { fn SymUnDName64(sym: *const IMAGEHLP_SYMBOL64, undecname: ::windows::core::PSTR, undecnamelength: u32) -> super::super::super::Foundation::BOOL; } - SymUnDName64(::core::mem::transmute(sym), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(undecname)), undecname.len() as _) + SymUnDName64(::core::mem::transmute(sym), ::core::mem::transmute(undecname.as_ptr()), undecname.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(target_arch = "x86")] @@ -59275,7 +59623,7 @@ where extern "system" { fn UnDecorateSymbolName(name: ::windows::core::PCSTR, outputstring: ::windows::core::PSTR, maxstringlength: u32, flags: u32) -> u32; } - UnDecorateSymbolName(name.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(outputstring)), outputstring.len() as _, flags) + UnDecorateSymbolName(name.into(), ::core::mem::transmute(outputstring.as_ptr()), outputstring.len() as _, flags) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"] #[inline] @@ -59287,7 +59635,7 @@ where extern "system" { fn UnDecorateSymbolNameW(name: ::windows::core::PCWSTR, outputstring: ::windows::core::PWSTR, maxstringlength: u32, flags: u32) -> u32; } - UnDecorateSymbolNameW(name.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(outputstring)), outputstring.len() as _, flags) + UnDecorateSymbolNameW(name.into(), ::core::mem::transmute(outputstring.as_ptr()), outputstring.len() as _, flags) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`, `\"Win32_System_Kernel\"`, `\"Win32_System_SystemInformation\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Kernel", feature = "Win32_System_SystemInformation"))] @@ -61839,7 +62187,7 @@ where #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WriteProcessMemory<'a, P0>(hprocess: P0, lpbaseaddress: *const ::core::ffi::c_void, lpbuffer: *const ::core::ffi::c_void, nsize: usize, lpnumberofbyteswritten: ::core::option::Option<&mut usize>) -> super::super::super::Foundation::BOOL +pub unsafe fn WriteProcessMemory<'a, P0>(hprocess: P0, lpbaseaddress: *const ::core::ffi::c_void, lpbuffer: &[u8], lpnumberofbyteswritten: ::core::option::Option<&mut usize>) -> super::super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -61847,7 +62195,7 @@ where extern "system" { fn WriteProcessMemory(hprocess: super::super::super::Foundation::HANDLE, lpbaseaddress: *const ::core::ffi::c_void, lpbuffer: *const ::core::ffi::c_void, nsize: usize, lpnumberofbyteswritten: *mut usize) -> super::super::super::Foundation::BOOL; } - WriteProcessMemory(hprocess.into(), ::core::mem::transmute(lpbaseaddress), ::core::mem::transmute(lpbuffer), nsize, ::core::mem::transmute(lpnumberofbyteswritten)) + WriteProcessMemory(hprocess.into(), ::core::mem::transmute(lpbaseaddress), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(lpnumberofbyteswritten)) } #[repr(C, packed(1))] #[doc = "*Required features: `\"Win32_System_Diagnostics_Debug\"`*"] diff --git a/crates/libs/windows/src/Windows/Win32/System/Diagnostics/Etw/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Diagnostics/Etw/mod.rs index 9f92d8720a..c3d9ee48b6 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Diagnostics/Etw/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Diagnostics/Etw/mod.rs @@ -3684,16 +3684,16 @@ pub unsafe fn EnumerateTraceGuids(guidpropertiesarray: &mut [*mut TRACE_GUID_PRO extern "system" { fn EnumerateTraceGuids(guidpropertiesarray: *mut *mut TRACE_GUID_PROPERTIES, propertyarraycount: u32, guidcount: *mut u32) -> u32; } - EnumerateTraceGuids(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(guidpropertiesarray)), guidpropertiesarray.len() as _, ::core::mem::transmute(guidcount)) + EnumerateTraceGuids(::core::mem::transmute(guidpropertiesarray.as_ptr()), guidpropertiesarray.len() as _, ::core::mem::transmute(guidcount)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn EnumerateTraceGuidsEx(tracequeryinfoclass: TRACE_QUERY_INFO_CLASS, inbuffer: *const ::core::ffi::c_void, inbuffersize: u32, outbuffer: *mut ::core::ffi::c_void, outbuffersize: u32, returnlength: &mut u32) -> u32 { +pub unsafe fn EnumerateTraceGuidsEx(tracequeryinfoclass: TRACE_QUERY_INFO_CLASS, inbuffer: ::core::option::Option<&[u8]>, outbuffer: ::core::option::Option<&mut [u8]>, returnlength: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EnumerateTraceGuidsEx(tracequeryinfoclass: TRACE_QUERY_INFO_CLASS, inbuffer: *const ::core::ffi::c_void, inbuffersize: u32, outbuffer: *mut ::core::ffi::c_void, outbuffersize: u32, returnlength: *mut u32) -> u32; } - EnumerateTraceGuidsEx(tracequeryinfoclass, ::core::mem::transmute(inbuffer), inbuffersize, ::core::mem::transmute(outbuffer), outbuffersize, ::core::mem::transmute(returnlength)) + EnumerateTraceGuidsEx(tracequeryinfoclass, ::core::mem::transmute(inbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), inbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(outbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), outbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(returnlength)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3768,12 +3768,12 @@ pub unsafe fn EventRegister(providerid: &::windows::core::GUID, enablecallback: } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn EventSetInformation(reghandle: u64, informationclass: EVENT_INFO_CLASS, eventinformation: *const ::core::ffi::c_void, informationlength: u32) -> u32 { +pub unsafe fn EventSetInformation(reghandle: u64, informationclass: EVENT_INFO_CLASS, eventinformation: &[u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EventSetInformation(reghandle: u64, informationclass: EVENT_INFO_CLASS, eventinformation: *const ::core::ffi::c_void, informationlength: u32) -> u32; } - EventSetInformation(reghandle, informationclass, ::core::mem::transmute(eventinformation), informationlength) + EventSetInformation(reghandle, informationclass, ::core::mem::transmute(eventinformation.as_ptr()), eventinformation.len() as _) } pub const EventTraceConfigGuid: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x01853a65_418f_4f36_aefc_dc0f1d2fd235); pub const EventTraceGuid: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x68fdd900_4a3e_11d1_84f4_0000f80464e3); @@ -3788,21 +3788,21 @@ pub unsafe fn EventUnregister(reghandle: u64) -> u32 { } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn EventWrite(reghandle: u64, eventdescriptor: &EVENT_DESCRIPTOR, userdata: &[EVENT_DATA_DESCRIPTOR]) -> u32 { +pub unsafe fn EventWrite(reghandle: u64, eventdescriptor: &EVENT_DESCRIPTOR, userdata: ::core::option::Option<&[EVENT_DATA_DESCRIPTOR]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EventWrite(reghandle: u64, eventdescriptor: *const EVENT_DESCRIPTOR, userdatacount: u32, userdata: *const EVENT_DATA_DESCRIPTOR) -> u32; } - EventWrite(reghandle, ::core::mem::transmute(eventdescriptor), userdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(userdata))) + EventWrite(reghandle, ::core::mem::transmute(eventdescriptor), userdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(userdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn EventWriteEx(reghandle: u64, eventdescriptor: &EVENT_DESCRIPTOR, filter: u64, flags: u32, activityid: ::core::option::Option<&::windows::core::GUID>, relatedactivityid: ::core::option::Option<&::windows::core::GUID>, userdata: &[EVENT_DATA_DESCRIPTOR]) -> u32 { +pub unsafe fn EventWriteEx(reghandle: u64, eventdescriptor: &EVENT_DESCRIPTOR, filter: u64, flags: u32, activityid: ::core::option::Option<&::windows::core::GUID>, relatedactivityid: ::core::option::Option<&::windows::core::GUID>, userdata: ::core::option::Option<&[EVENT_DATA_DESCRIPTOR]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EventWriteEx(reghandle: u64, eventdescriptor: *const EVENT_DESCRIPTOR, filter: u64, flags: u32, activityid: *const ::windows::core::GUID, relatedactivityid: *const ::windows::core::GUID, userdatacount: u32, userdata: *const EVENT_DATA_DESCRIPTOR) -> u32; } - EventWriteEx(reghandle, ::core::mem::transmute(eventdescriptor), filter, flags, ::core::mem::transmute(activityid), ::core::mem::transmute(relatedactivityid), userdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(userdata))) + EventWriteEx(reghandle, ::core::mem::transmute(eventdescriptor), filter, flags, ::core::mem::transmute(activityid), ::core::mem::transmute(relatedactivityid), userdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(userdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] @@ -3818,12 +3818,12 @@ where } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn EventWriteTransfer(reghandle: u64, eventdescriptor: &EVENT_DESCRIPTOR, activityid: ::core::option::Option<&::windows::core::GUID>, relatedactivityid: ::core::option::Option<&::windows::core::GUID>, userdata: &[EVENT_DATA_DESCRIPTOR]) -> u32 { +pub unsafe fn EventWriteTransfer(reghandle: u64, eventdescriptor: &EVENT_DESCRIPTOR, activityid: ::core::option::Option<&::windows::core::GUID>, relatedactivityid: ::core::option::Option<&::windows::core::GUID>, userdata: ::core::option::Option<&[EVENT_DATA_DESCRIPTOR]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EventWriteTransfer(reghandle: u64, eventdescriptor: *const EVENT_DESCRIPTOR, activityid: *const ::windows::core::GUID, relatedactivityid: *const ::windows::core::GUID, userdatacount: u32, userdata: *const EVENT_DATA_DESCRIPTOR) -> u32; } - EventWriteTransfer(reghandle, ::core::mem::transmute(eventdescriptor), ::core::mem::transmute(activityid), ::core::mem::transmute(relatedactivityid), userdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(userdata))) + EventWriteTransfer(reghandle, ::core::mem::transmute(eventdescriptor), ::core::mem::transmute(activityid), ::core::mem::transmute(relatedactivityid), userdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(userdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3901,7 +3901,7 @@ impl ITraceEvent { (::windows::core::Interface::vtable(self).GetEventRecord)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut EVENT_RECORD>(result__) } pub unsafe fn SetPayload(&self, payload: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPayload)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(payload)), payload.len() as _).ok() + (::windows::core::Interface::vtable(self).SetPayload)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(payload.as_ptr()), payload.len() as _).ok() } pub unsafe fn SetEventDescriptor(&self, eventdescriptor: &EVENT_DESCRIPTOR) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetEventDescriptor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(eventdescriptor)).ok() @@ -4715,7 +4715,7 @@ pub unsafe fn ProcessTrace(handlearray: &[u64], starttime: ::core::option::Optio extern "system" { fn ProcessTrace(handlearray: *const u64, handlecount: u32, starttime: *const super::super::super::Foundation::FILETIME, endtime: *const super::super::super::Foundation::FILETIME) -> u32; } - ProcessTrace(::core::mem::transmute(::windows::core::as_ptr_or_null(handlearray)), handlearray.len() as _, ::core::mem::transmute(starttime), ::core::mem::transmute(endtime)) + ProcessTrace(::core::mem::transmute(handlearray.as_ptr()), handlearray.len() as _, ::core::mem::transmute(starttime), ::core::mem::transmute(endtime)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4725,7 +4725,7 @@ pub unsafe fn QueryAllTracesA(propertyarray: &mut [*mut EVENT_TRACE_PROPERTIES], extern "system" { fn QueryAllTracesA(propertyarray: *mut *mut EVENT_TRACE_PROPERTIES, propertyarraycount: u32, loggercount: *mut u32) -> u32; } - QueryAllTracesA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(propertyarray)), propertyarray.len() as _, ::core::mem::transmute(loggercount)) + QueryAllTracesA(::core::mem::transmute(propertyarray.as_ptr()), propertyarray.len() as _, ::core::mem::transmute(loggercount)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4735,7 +4735,7 @@ pub unsafe fn QueryAllTracesW(propertyarray: &mut [*mut EVENT_TRACE_PROPERTIES], extern "system" { fn QueryAllTracesW(propertyarray: *mut *mut EVENT_TRACE_PROPERTIES, propertyarraycount: u32, loggercount: *mut u32) -> u32; } - QueryAllTracesW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(propertyarray)), propertyarray.len() as _, ::core::mem::transmute(loggercount)) + QueryAllTracesW(::core::mem::transmute(propertyarray.as_ptr()), propertyarray.len() as _, ::core::mem::transmute(loggercount)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4775,7 +4775,7 @@ where #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RegisterTraceGuidsA<'a, P0, P1>(requestaddress: WMIDPREQUEST, requestcontext: *const ::core::ffi::c_void, controlguid: &::windows::core::GUID, traceguidreg: &[TRACE_GUID_REGISTRATION], mofimagepath: P0, mofresourcename: P1, registrationhandle: &mut u64) -> u32 +pub unsafe fn RegisterTraceGuidsA<'a, P0, P1>(requestaddress: WMIDPREQUEST, requestcontext: *const ::core::ffi::c_void, controlguid: &::windows::core::GUID, traceguidreg: ::core::option::Option<&[TRACE_GUID_REGISTRATION]>, mofimagepath: P0, mofresourcename: P1, registrationhandle: &mut u64) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -4784,12 +4784,12 @@ where extern "system" { fn RegisterTraceGuidsA(requestaddress: *mut ::core::ffi::c_void, requestcontext: *const ::core::ffi::c_void, controlguid: *const ::windows::core::GUID, guidcount: u32, traceguidreg: *const TRACE_GUID_REGISTRATION, mofimagepath: ::windows::core::PCSTR, mofresourcename: ::windows::core::PCSTR, registrationhandle: *mut u64) -> u32; } - RegisterTraceGuidsA(::core::mem::transmute(requestaddress), ::core::mem::transmute(requestcontext), ::core::mem::transmute(controlguid), traceguidreg.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(traceguidreg)), mofimagepath.into(), mofresourcename.into(), ::core::mem::transmute(registrationhandle)) + RegisterTraceGuidsA(::core::mem::transmute(requestaddress), ::core::mem::transmute(requestcontext), ::core::mem::transmute(controlguid), traceguidreg.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(traceguidreg.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), mofimagepath.into(), mofresourcename.into(), ::core::mem::transmute(registrationhandle)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RegisterTraceGuidsW<'a, P0, P1>(requestaddress: WMIDPREQUEST, requestcontext: *const ::core::ffi::c_void, controlguid: &::windows::core::GUID, traceguidreg: &[TRACE_GUID_REGISTRATION], mofimagepath: P0, mofresourcename: P1, registrationhandle: &mut u64) -> u32 +pub unsafe fn RegisterTraceGuidsW<'a, P0, P1>(requestaddress: WMIDPREQUEST, requestcontext: *const ::core::ffi::c_void, controlguid: &::windows::core::GUID, traceguidreg: ::core::option::Option<&[TRACE_GUID_REGISTRATION]>, mofimagepath: P0, mofresourcename: P1, registrationhandle: &mut u64) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -4798,7 +4798,7 @@ where extern "system" { fn RegisterTraceGuidsW(requestaddress: *mut ::core::ffi::c_void, requestcontext: *const ::core::ffi::c_void, controlguid: *const ::windows::core::GUID, guidcount: u32, traceguidreg: *const TRACE_GUID_REGISTRATION, mofimagepath: ::windows::core::PCWSTR, mofresourcename: ::windows::core::PCWSTR, registrationhandle: *mut u64) -> u32; } - RegisterTraceGuidsW(::core::mem::transmute(requestaddress), ::core::mem::transmute(requestcontext), ::core::mem::transmute(controlguid), traceguidreg.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(traceguidreg)), mofimagepath.into(), mofresourcename.into(), ::core::mem::transmute(registrationhandle)) + RegisterTraceGuidsW(::core::mem::transmute(requestaddress), ::core::mem::transmute(requestcontext), ::core::mem::transmute(controlguid), traceguidreg.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(traceguidreg.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), mofimagepath.into(), mofresourcename.into(), ::core::mem::transmute(registrationhandle)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] @@ -6503,7 +6503,7 @@ impl ::core::default::Default for TRACE_VERSION_INFO { #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn TdhAggregatePayloadFilters(payloadfiltercount: u32, payloadfilterptrs: *const *const ::core::ffi::c_void, eventmatchallflags: ::core::option::Option<&super::super::super::Foundation::BOOLEAN>, eventfilterdescriptor: &mut EVENT_FILTER_DESCRIPTOR) -> u32 { +pub unsafe fn TdhAggregatePayloadFilters(payloadfiltercount: u32, payloadfilterptrs: *const *const ::core::ffi::c_void, eventmatchallflags: *const super::super::super::Foundation::BOOLEAN, eventfilterdescriptor: &mut EVENT_FILTER_DESCRIPTOR) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TdhAggregatePayloadFilters(payloadfiltercount: u32, payloadfilterptrs: *const *const ::core::ffi::c_void, eventmatchallflags: *const super::super::super::Foundation::BOOLEAN, eventfilterdescriptor: *mut EVENT_FILTER_DESCRIPTOR) -> u32; @@ -6542,7 +6542,7 @@ where extern "system" { fn TdhCreatePayloadFilter(providerguid: *const ::windows::core::GUID, eventdescriptor: *const EVENT_DESCRIPTOR, eventmatchany: super::super::super::Foundation::BOOLEAN, payloadpredicatecount: u32, payloadpredicates: *const PAYLOAD_FILTER_PREDICATE, payloadfilter: *mut *mut ::core::ffi::c_void) -> u32; } - TdhCreatePayloadFilter(::core::mem::transmute(providerguid), ::core::mem::transmute(eventdescriptor), eventmatchany.into(), payloadpredicates.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(payloadpredicates)), ::core::mem::transmute(payloadfilter)) + TdhCreatePayloadFilter(::core::mem::transmute(providerguid), ::core::mem::transmute(eventdescriptor), eventmatchany.into(), payloadpredicates.len() as _, ::core::mem::transmute(payloadpredicates.as_ptr()), ::core::mem::transmute(payloadfilter)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] @@ -6555,7 +6555,7 @@ pub unsafe fn TdhDeletePayloadFilter(payloadfilter: *mut *mut ::core::ffi::c_voi } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TdhEnumerateManifestProviderEvents(providerguid: &::windows::core::GUID, buffer: ::core::option::Option<&mut PROVIDER_EVENT_INFO>, buffersize: &mut u32) -> u32 { +pub unsafe fn TdhEnumerateManifestProviderEvents(providerguid: &::windows::core::GUID, buffer: *mut PROVIDER_EVENT_INFO, buffersize: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TdhEnumerateManifestProviderEvents(providerguid: *const ::windows::core::GUID, buffer: *mut PROVIDER_EVENT_INFO, buffersize: *mut u32) -> u32; @@ -6564,7 +6564,7 @@ pub unsafe fn TdhEnumerateManifestProviderEvents(providerguid: &::windows::core: } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TdhEnumerateProviderFieldInformation(pguid: &::windows::core::GUID, eventfieldtype: EVENT_FIELD_TYPE, pbuffer: ::core::option::Option<&mut PROVIDER_FIELD_INFOARRAY>, pbuffersize: &mut u32) -> u32 { +pub unsafe fn TdhEnumerateProviderFieldInformation(pguid: &::windows::core::GUID, eventfieldtype: EVENT_FIELD_TYPE, pbuffer: *mut PROVIDER_FIELD_INFOARRAY, pbuffersize: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TdhEnumerateProviderFieldInformation(pguid: *const ::windows::core::GUID, eventfieldtype: EVENT_FIELD_TYPE, pbuffer: *mut PROVIDER_FIELD_INFOARRAY, pbuffersize: *mut u32) -> u32; @@ -6573,16 +6573,16 @@ pub unsafe fn TdhEnumerateProviderFieldInformation(pguid: &::windows::core::GUID } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TdhEnumerateProviderFilters(guid: &::windows::core::GUID, tdhcontext: &[TDH_CONTEXT], filtercount: &mut u32, buffer: ::core::option::Option<&mut *mut PROVIDER_FILTER_INFO>, buffersize: &mut u32) -> u32 { +pub unsafe fn TdhEnumerateProviderFilters(guid: &::windows::core::GUID, tdhcontext: ::core::option::Option<&[TDH_CONTEXT]>, filtercount: &mut u32, buffer: *mut *mut PROVIDER_FILTER_INFO, buffersize: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TdhEnumerateProviderFilters(guid: *const ::windows::core::GUID, tdhcontextcount: u32, tdhcontext: *const TDH_CONTEXT, filtercount: *mut u32, buffer: *mut *mut PROVIDER_FILTER_INFO, buffersize: *mut u32) -> u32; } - TdhEnumerateProviderFilters(::core::mem::transmute(guid), tdhcontext.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(tdhcontext)), ::core::mem::transmute(filtercount), ::core::mem::transmute(buffer), ::core::mem::transmute(buffersize)) + TdhEnumerateProviderFilters(::core::mem::transmute(guid), tdhcontext.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(tdhcontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(filtercount), ::core::mem::transmute(buffer), ::core::mem::transmute(buffersize)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TdhEnumerateProviders(pbuffer: ::core::option::Option<&mut PROVIDER_ENUMERATION_INFO>, pbuffersize: &mut u32) -> u32 { +pub unsafe fn TdhEnumerateProviders(pbuffer: *mut PROVIDER_ENUMERATION_INFO, pbuffersize: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TdhEnumerateProviders(pbuffer: *mut PROVIDER_ENUMERATION_INFO, pbuffersize: *mut u32) -> u32; @@ -6591,21 +6591,21 @@ pub unsafe fn TdhEnumerateProviders(pbuffer: ::core::option::Option<&mut PROVIDE } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TdhEnumerateProvidersForDecodingSource(filter: DECODING_SOURCE, buffer: ::core::option::Option<&mut PROVIDER_ENUMERATION_INFO>, buffersize: u32, bufferrequired: &mut u32) -> u32 { +pub unsafe fn TdhEnumerateProvidersForDecodingSource(filter: DECODING_SOURCE, buffer: ::core::option::Option<&mut [u8]>, bufferrequired: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TdhEnumerateProvidersForDecodingSource(filter: DECODING_SOURCE, buffer: *mut PROVIDER_ENUMERATION_INFO, buffersize: u32, bufferrequired: *mut u32) -> u32; } - TdhEnumerateProvidersForDecodingSource(filter, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bufferrequired)) + TdhEnumerateProvidersForDecodingSource(filter, ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(bufferrequired)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TdhFormatProperty(eventinfo: &TRACE_EVENT_INFO, mapinfo: ::core::option::Option<&EVENT_MAP_INFO>, pointersize: u32, propertyintype: u16, propertyouttype: u16, propertylength: u16, userdatalength: u16, userdata: &u8, buffersize: &mut u32, buffer: ::windows::core::PWSTR, userdataconsumed: &mut u16) -> u32 { +pub unsafe fn TdhFormatProperty(eventinfo: &TRACE_EVENT_INFO, mapinfo: ::core::option::Option<&EVENT_MAP_INFO>, pointersize: u32, propertyintype: u16, propertyouttype: u16, propertylength: u16, userdata: &[u8], buffersize: &mut u32, buffer: ::windows::core::PWSTR, userdataconsumed: &mut u16) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TdhFormatProperty(eventinfo: *const TRACE_EVENT_INFO, mapinfo: *const EVENT_MAP_INFO, pointersize: u32, propertyintype: u16, propertyouttype: u16, propertylength: u16, userdatalength: u16, userdata: *const u8, buffersize: *mut u32, buffer: ::windows::core::PWSTR, userdataconsumed: *mut u16) -> u32; } - TdhFormatProperty(::core::mem::transmute(eventinfo), ::core::mem::transmute(mapinfo), pointersize, propertyintype, propertyouttype, propertylength, userdatalength, ::core::mem::transmute(userdata), ::core::mem::transmute(buffersize), ::core::mem::transmute(buffer), ::core::mem::transmute(userdataconsumed)) + TdhFormatProperty(::core::mem::transmute(eventinfo), ::core::mem::transmute(mapinfo), pointersize, propertyintype, propertyouttype, propertylength, userdata.len() as _, ::core::mem::transmute(userdata.as_ptr()), ::core::mem::transmute(buffersize), ::core::mem::transmute(buffer), ::core::mem::transmute(userdataconsumed)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] @@ -6621,16 +6621,16 @@ where } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TdhGetEventInformation(event: &EVENT_RECORD, tdhcontext: &[TDH_CONTEXT], buffer: ::core::option::Option<&mut TRACE_EVENT_INFO>, buffersize: &mut u32) -> u32 { +pub unsafe fn TdhGetEventInformation(event: &EVENT_RECORD, tdhcontext: ::core::option::Option<&[TDH_CONTEXT]>, buffer: *mut TRACE_EVENT_INFO, buffersize: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TdhGetEventInformation(event: *const EVENT_RECORD, tdhcontextcount: u32, tdhcontext: *const TDH_CONTEXT, buffer: *mut TRACE_EVENT_INFO, buffersize: *mut u32) -> u32; } - TdhGetEventInformation(::core::mem::transmute(event), tdhcontext.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(tdhcontext)), ::core::mem::transmute(buffer), ::core::mem::transmute(buffersize)) + TdhGetEventInformation(::core::mem::transmute(event), tdhcontext.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(tdhcontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(buffer), ::core::mem::transmute(buffersize)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TdhGetEventMapInformation<'a, P0>(pevent: &EVENT_RECORD, pmapname: P0, pbuffer: ::core::option::Option<&mut EVENT_MAP_INFO>, pbuffersize: &mut u32) -> u32 +pub unsafe fn TdhGetEventMapInformation<'a, P0>(pevent: &EVENT_RECORD, pmapname: P0, pbuffer: *mut EVENT_MAP_INFO, pbuffersize: &mut u32) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -6642,7 +6642,7 @@ where } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TdhGetManifestEventInformation(providerguid: &::windows::core::GUID, eventdescriptor: &EVENT_DESCRIPTOR, buffer: ::core::option::Option<&mut TRACE_EVENT_INFO>, buffersize: &mut u32) -> u32 { +pub unsafe fn TdhGetManifestEventInformation(providerguid: &::windows::core::GUID, eventdescriptor: &EVENT_DESCRIPTOR, buffer: *mut TRACE_EVENT_INFO, buffersize: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TdhGetManifestEventInformation(providerguid: *const ::windows::core::GUID, eventdescriptor: *const EVENT_DESCRIPTOR, buffer: *mut TRACE_EVENT_INFO, buffersize: *mut u32) -> u32; @@ -6651,25 +6651,25 @@ pub unsafe fn TdhGetManifestEventInformation(providerguid: &::windows::core::GUI } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TdhGetProperty(pevent: &EVENT_RECORD, ptdhcontext: &[TDH_CONTEXT], ppropertydata: &[PROPERTY_DATA_DESCRIPTOR], buffersize: u32, pbuffer: &mut u8) -> u32 { +pub unsafe fn TdhGetProperty(pevent: &EVENT_RECORD, ptdhcontext: ::core::option::Option<&[TDH_CONTEXT]>, ppropertydata: &[PROPERTY_DATA_DESCRIPTOR], pbuffer: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TdhGetProperty(pevent: *const EVENT_RECORD, tdhcontextcount: u32, ptdhcontext: *const TDH_CONTEXT, propertydatacount: u32, ppropertydata: *const PROPERTY_DATA_DESCRIPTOR, buffersize: u32, pbuffer: *mut u8) -> u32; } - TdhGetProperty(::core::mem::transmute(pevent), ptdhcontext.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ptdhcontext)), ppropertydata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppropertydata)), buffersize, ::core::mem::transmute(pbuffer)) + TdhGetProperty(::core::mem::transmute(pevent), ptdhcontext.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ptdhcontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppropertydata.len() as _, ::core::mem::transmute(ppropertydata.as_ptr()), pbuffer.len() as _, ::core::mem::transmute(pbuffer.as_ptr())) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TdhGetPropertySize(pevent: &EVENT_RECORD, ptdhcontext: &[TDH_CONTEXT], ppropertydata: &[PROPERTY_DATA_DESCRIPTOR], ppropertysize: &mut u32) -> u32 { +pub unsafe fn TdhGetPropertySize(pevent: &EVENT_RECORD, ptdhcontext: ::core::option::Option<&[TDH_CONTEXT]>, ppropertydata: &[PROPERTY_DATA_DESCRIPTOR], ppropertysize: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TdhGetPropertySize(pevent: *const EVENT_RECORD, tdhcontextcount: u32, ptdhcontext: *const TDH_CONTEXT, propertydatacount: u32, ppropertydata: *const PROPERTY_DATA_DESCRIPTOR, ppropertysize: *mut u32) -> u32; } - TdhGetPropertySize(::core::mem::transmute(pevent), ptdhcontext.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ptdhcontext)), ppropertydata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppropertydata)), ::core::mem::transmute(ppropertysize)) + TdhGetPropertySize(::core::mem::transmute(pevent), ptdhcontext.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ptdhcontext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ppropertydata.len() as _, ::core::mem::transmute(ppropertydata.as_ptr()), ::core::mem::transmute(ppropertysize)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TdhGetWppMessage<'a, P0>(handle: P0, eventrecord: &EVENT_RECORD, buffersize: &mut u32, buffer: &mut u8) -> u32 +pub unsafe fn TdhGetWppMessage<'a, P0>(handle: P0, eventrecord: &EVENT_RECORD, buffersize: &mut u32, buffer: *mut u8) -> u32 where P0: ::std::convert::Into, { @@ -6681,7 +6681,7 @@ where } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TdhGetWppProperty<'a, P0, P1>(handle: P0, eventrecord: &EVENT_RECORD, propertyname: P1, buffersize: &mut u32, buffer: &mut u8) -> u32 +pub unsafe fn TdhGetWppProperty<'a, P0, P1>(handle: P0, eventrecord: &EVENT_RECORD, propertyname: P1, buffersize: &mut u32, buffer: *mut u8) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -6718,12 +6718,12 @@ where } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TdhLoadManifestFromMemory(pdata: *const ::core::ffi::c_void, cbdata: u32) -> u32 { +pub unsafe fn TdhLoadManifestFromMemory(pdata: &[u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TdhLoadManifestFromMemory(pdata: *const ::core::ffi::c_void, cbdata: u32) -> u32; } - TdhLoadManifestFromMemory(::core::mem::transmute(pdata), cbdata) + TdhLoadManifestFromMemory(::core::mem::transmute(pdata.as_ptr()), pdata.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] @@ -6736,7 +6736,7 @@ pub unsafe fn TdhOpenDecodingHandle(handle: &mut TDH_HANDLE) -> u32 { } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TdhQueryProviderFieldInformation(pguid: &::windows::core::GUID, eventfieldvalue: u64, eventfieldtype: EVENT_FIELD_TYPE, pbuffer: ::core::option::Option<&mut PROVIDER_FIELD_INFOARRAY>, pbuffersize: &mut u32) -> u32 { +pub unsafe fn TdhQueryProviderFieldInformation(pguid: &::windows::core::GUID, eventfieldvalue: u64, eventfieldtype: EVENT_FIELD_TYPE, pbuffer: *mut PROVIDER_FIELD_INFOARRAY, pbuffersize: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TdhQueryProviderFieldInformation(pguid: *const ::windows::core::GUID, eventfieldvalue: u64, eventfieldtype: EVENT_FIELD_TYPE, pbuffer: *mut PROVIDER_FIELD_INFOARRAY, pbuffersize: *mut u32) -> u32; @@ -6769,12 +6769,12 @@ where } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TdhUnloadManifestFromMemory(pdata: *const ::core::ffi::c_void, cbdata: u32) -> u32 { +pub unsafe fn TdhUnloadManifestFromMemory(pdata: &[u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TdhUnloadManifestFromMemory(pdata: *const ::core::ffi::c_void, cbdata: u32) -> u32; } - TdhUnloadManifestFromMemory(::core::mem::transmute(pdata), cbdata) + TdhUnloadManifestFromMemory(::core::mem::transmute(pdata.as_ptr()), pdata.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] @@ -6815,21 +6815,21 @@ pub unsafe fn TraceMessageVa(loggerhandle: u64, messageflags: TRACE_MESSAGE_FLAG } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TraceQueryInformation(sessionhandle: u64, informationclass: TRACE_QUERY_INFO_CLASS, traceinformation: *mut ::core::ffi::c_void, informationlength: u32, returnlength: ::core::option::Option<&mut u32>) -> u32 { +pub unsafe fn TraceQueryInformation(sessionhandle: u64, informationclass: TRACE_QUERY_INFO_CLASS, traceinformation: &mut [u8], returnlength: ::core::option::Option<&mut u32>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TraceQueryInformation(sessionhandle: u64, informationclass: TRACE_QUERY_INFO_CLASS, traceinformation: *mut ::core::ffi::c_void, informationlength: u32, returnlength: *mut u32) -> u32; } - TraceQueryInformation(sessionhandle, informationclass, ::core::mem::transmute(traceinformation), informationlength, ::core::mem::transmute(returnlength)) + TraceQueryInformation(sessionhandle, informationclass, ::core::mem::transmute(traceinformation.as_ptr()), traceinformation.len() as _, ::core::mem::transmute(returnlength)) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] -pub unsafe fn TraceSetInformation(sessionhandle: u64, informationclass: TRACE_QUERY_INFO_CLASS, traceinformation: *const ::core::ffi::c_void, informationlength: u32) -> u32 { +pub unsafe fn TraceSetInformation(sessionhandle: u64, informationclass: TRACE_QUERY_INFO_CLASS, traceinformation: &[u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TraceSetInformation(sessionhandle: u64, informationclass: TRACE_QUERY_INFO_CLASS, traceinformation: *const ::core::ffi::c_void, informationlength: u32) -> u32; } - TraceSetInformation(sessionhandle, informationclass, ::core::mem::transmute(traceinformation), informationlength) + TraceSetInformation(sessionhandle, informationclass, ::core::mem::transmute(traceinformation.as_ptr()), traceinformation.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_Etw\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/System/Diagnostics/ProcessSnapshotting/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Diagnostics/ProcessSnapshotting/mod.rs index 4eb4858c88..06b1700384 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Diagnostics/ProcessSnapshotting/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Diagnostics/ProcessSnapshotting/mod.rs @@ -1424,7 +1424,7 @@ where } #[doc = "*Required features: `\"Win32_System_Diagnostics_ProcessSnapshotting\"`*"] #[inline] -pub unsafe fn PssQuerySnapshot<'a, P0>(snapshothandle: P0, informationclass: PSS_QUERY_INFORMATION_CLASS, buffer: *mut ::core::ffi::c_void, bufferlength: u32) -> u32 +pub unsafe fn PssQuerySnapshot<'a, P0>(snapshothandle: P0, informationclass: PSS_QUERY_INFORMATION_CLASS, buffer: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -1432,7 +1432,7 @@ where extern "system" { fn PssQuerySnapshot(snapshothandle: HPSS, informationclass: PSS_QUERY_INFORMATION_CLASS, buffer: *mut ::core::ffi::c_void, bufferlength: u32) -> u32; } - PssQuerySnapshot(snapshothandle.into(), informationclass, ::core::mem::transmute(buffer), bufferlength) + PssQuerySnapshot(snapshothandle.into(), informationclass, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _) } #[doc = "*Required features: `\"Win32_System_Diagnostics_ProcessSnapshotting\"`*"] #[inline] @@ -1493,7 +1493,7 @@ where } #[doc = "*Required features: `\"Win32_System_Diagnostics_ProcessSnapshotting\"`*"] #[inline] -pub unsafe fn PssWalkSnapshot<'a, P0, P1>(snapshothandle: P0, informationclass: PSS_WALK_INFORMATION_CLASS, walkmarkerhandle: P1, buffer: &mut [u8]) -> u32 +pub unsafe fn PssWalkSnapshot<'a, P0, P1>(snapshothandle: P0, informationclass: PSS_WALK_INFORMATION_CLASS, walkmarkerhandle: P1, buffer: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -1502,7 +1502,7 @@ where extern "system" { fn PssWalkSnapshot(snapshothandle: HPSS, informationclass: PSS_WALK_INFORMATION_CLASS, walkmarkerhandle: HPSSWALK, buffer: *mut ::core::ffi::c_void, bufferlength: u32) -> u32; } - PssWalkSnapshot(snapshothandle.into(), informationclass, walkmarkerhandle.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), buffer.len() as _) + PssWalkSnapshot(snapshothandle.into(), informationclass, walkmarkerhandle.into(), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), buffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[cfg(feature = "implement")] ::core::include!("impl.rs"); diff --git a/crates/libs/windows/src/Windows/Win32/System/DistributedTransactionCoordinator/mod.rs b/crates/libs/windows/src/Windows/Win32/System/DistributedTransactionCoordinator/mod.rs index e01a0a4983..3a1602acf0 100644 --- a/crates/libs/windows/src/Windows/Win32/System/DistributedTransactionCoordinator/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/DistributedTransactionCoordinator/mod.rs @@ -147,7 +147,7 @@ impl ::core::fmt::Debug for DTC_STATUS_ { } #[doc = "*Required features: `\"Win32_System_DistributedTransactionCoordinator\"`*"] #[inline] -pub unsafe fn DtcGetTransactionManager<'a, P0, P1>(i_pszhost: P0, i_psztmname: P1, i_riid: &::windows::core::GUID, i_dwreserved1: u32, i_wcbreserved2: u16, i_pvreserved2: *const ::core::ffi::c_void, o_ppvobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> +pub unsafe fn DtcGetTransactionManager<'a, P0, P1>(i_pszhost: P0, i_psztmname: P1, i_riid: &::windows::core::GUID, i_dwreserved1: u32, i_pvreserved2: ::core::option::Option<&[u8]>, o_ppvobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -156,11 +156,11 @@ where extern "system" { fn DtcGetTransactionManager(i_pszhost: ::windows::core::PCSTR, i_psztmname: ::windows::core::PCSTR, i_riid: *const ::windows::core::GUID, i_dwreserved1: u32, i_wcbreserved2: u16, i_pvreserved2: *const ::core::ffi::c_void, o_ppvobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - DtcGetTransactionManager(i_pszhost.into(), i_psztmname.into(), ::core::mem::transmute(i_riid), i_dwreserved1, i_wcbreserved2, ::core::mem::transmute(i_pvreserved2), ::core::mem::transmute(o_ppvobject)).ok() + DtcGetTransactionManager(i_pszhost.into(), i_psztmname.into(), ::core::mem::transmute(i_riid), i_dwreserved1, i_pvreserved2.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(i_pvreserved2.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(o_ppvobject)).ok() } #[doc = "*Required features: `\"Win32_System_DistributedTransactionCoordinator\"`*"] #[inline] -pub unsafe fn DtcGetTransactionManagerC<'a, P0, P1>(i_pszhost: P0, i_psztmname: P1, i_riid: &::windows::core::GUID, i_dwreserved1: u32, i_wcbreserved2: u16, i_pvreserved2: *const ::core::ffi::c_void, o_ppvobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> +pub unsafe fn DtcGetTransactionManagerC<'a, P0, P1>(i_pszhost: P0, i_psztmname: P1, i_riid: &::windows::core::GUID, i_dwreserved1: u32, i_pvreserved2: ::core::option::Option<&[u8]>, o_ppvobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -169,7 +169,7 @@ where extern "system" { fn DtcGetTransactionManagerC(i_pszhost: ::windows::core::PCSTR, i_psztmname: ::windows::core::PCSTR, i_riid: *const ::windows::core::GUID, i_dwreserved1: u32, i_wcbreserved2: u16, i_pvreserved2: *const ::core::ffi::c_void, o_ppvobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - DtcGetTransactionManagerC(i_pszhost.into(), i_psztmname.into(), ::core::mem::transmute(i_riid), i_dwreserved1, i_wcbreserved2, ::core::mem::transmute(i_pvreserved2), ::core::mem::transmute(o_ppvobject)).ok() + DtcGetTransactionManagerC(i_pszhost.into(), i_psztmname.into(), ::core::mem::transmute(i_riid), i_dwreserved1, i_pvreserved2.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(i_pvreserved2.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(o_ppvobject)).ok() } #[doc = "*Required features: `\"Win32_System_DistributedTransactionCoordinator\"`*"] #[inline] @@ -202,10 +202,10 @@ where pub struct IDtcLuConfigure(::windows::core::IUnknown); impl IDtcLuConfigure { pub unsafe fn Add(&self, puclupair: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Add)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(puclupair)), puclupair.len() as _).ok() + (::windows::core::Interface::vtable(self).Add)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(puclupair.as_ptr()), puclupair.len() as _).ok() } pub unsafe fn Delete(&self, puclupair: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Delete)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(puclupair)), puclupair.len() as _).ok() + (::windows::core::Interface::vtable(self).Delete)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(puclupair.as_ptr()), puclupair.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -300,7 +300,7 @@ pub struct IDtcLuRecoveryFactory(::windows::core::IUnknown); impl IDtcLuRecoveryFactory { pub unsafe fn Create(&self, puclupair: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).Create)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(puclupair)), puclupair.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).Create)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(puclupair.as_ptr()), puclupair.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2079,7 +2079,7 @@ pub struct IKernelTransaction_Vtbl { pub struct ILastResourceManager(::windows::core::IUnknown); impl ILastResourceManager { pub unsafe fn TransactionCommitted(&self, pprepinfo: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).TransactionCommitted)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pprepinfo)), pprepinfo.len() as _).ok() + (::windows::core::Interface::vtable(self).TransactionCommitted)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprepinfo.as_ptr()), pprepinfo.len() as _).ok() } pub unsafe fn RecoveryDone(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).RecoveryDone)(::windows::core::Interface::as_raw(self)).ok() @@ -2189,7 +2189,7 @@ impl IPrepareInfo2 { (::windows::core::Interface::vtable(self).GetPrepareInfoSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetPrepareInfo(&self, pprepinfo: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPrepareInfo)(::windows::core::Interface::as_raw(self), pprepinfo.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprepinfo))).ok() + (::windows::core::Interface::vtable(self).GetPrepareInfo)(::windows::core::Interface::as_raw(self), pprepinfo.len() as _, ::core::mem::transmute(pprepinfo.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2310,7 +2310,7 @@ impl IResourceManager { } pub unsafe fn Reenlist(&self, pprepinfo: &[u8], ltimeout: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).Reenlist)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pprepinfo)), pprepinfo.len() as _, ltimeout, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).Reenlist)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprepinfo.as_ptr()), pprepinfo.len() as _, ltimeout, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn ReenlistmentComplete(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReenlistmentComplete)(::windows::core::Interface::as_raw(self)).ok() @@ -2376,7 +2376,7 @@ impl IResourceManager2 { } pub unsafe fn Reenlist(&self, pprepinfo: &[u8], ltimeout: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.Reenlist)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pprepinfo)), pprepinfo.len() as _, ltimeout, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.Reenlist)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprepinfo.as_ptr()), pprepinfo.len() as _, ltimeout, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn ReenlistmentComplete(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.ReenlistmentComplete)(::windows::core::Interface::as_raw(self)).ok() @@ -2606,7 +2606,7 @@ impl IResourceManagerRejoinable { } pub unsafe fn Reenlist(&self, pprepinfo: &[u8], ltimeout: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.Reenlist)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pprepinfo)), pprepinfo.len() as _, ltimeout, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.Reenlist)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprepinfo.as_ptr()), pprepinfo.len() as _, ltimeout, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn ReenlistmentComplete(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.ReenlistmentComplete)(::windows::core::Interface::as_raw(self)).ok() @@ -2631,7 +2631,7 @@ impl IResourceManagerRejoinable { } pub unsafe fn Rejoin(&self, pprepinfo: &[u8], ltimeout: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).Rejoin)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pprepinfo)), pprepinfo.len() as _, ltimeout, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).Rejoin)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprepinfo.as_ptr()), pprepinfo.len() as _, ltimeout, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3466,7 +3466,7 @@ impl ITransactionExport { where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).GetTransactionCookie)(::windows::core::Interface::as_raw(self), punktransaction.into().abi(), rgbtransactioncookie.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgbtransactioncookie)), ::core::mem::transmute(pcbused)).ok() + (::windows::core::Interface::vtable(self).GetTransactionCookie)(::windows::core::Interface::as_raw(self), punktransaction.into().abi(), rgbtransactioncookie.len() as _, ::core::mem::transmute(rgbtransactioncookie.as_ptr()), ::core::mem::transmute(pcbused)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3521,7 +3521,7 @@ impl ITransactionExportFactory { } pub unsafe fn Create(&self, rgbwhereabouts: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).Create)(::windows::core::Interface::as_raw(self), rgbwhereabouts.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgbwhereabouts)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).Create)(::windows::core::Interface::as_raw(self), rgbwhereabouts.len() as _, ::core::mem::transmute(rgbwhereabouts.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3575,7 +3575,7 @@ impl ITransactionImport { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).Import)(::windows::core::Interface::as_raw(self), rgbtransactioncookie.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgbtransactioncookie)), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).Import)(::windows::core::Interface::as_raw(self), rgbtransactioncookie.len() as _, ::core::mem::transmute(rgbtransactioncookie.as_ptr()), &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3628,7 +3628,7 @@ impl ITransactionImportWhereabouts { (::windows::core::Interface::vtable(self).GetWhereaboutsSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetWhereabouts(&self, rgbwhereabouts: &mut [u8], pcbused: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetWhereabouts)(::windows::core::Interface::as_raw(self), rgbwhereabouts.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgbwhereabouts)), ::core::mem::transmute(pcbused)).ok() + (::windows::core::Interface::vtable(self).GetWhereabouts)(::windows::core::Interface::as_raw(self), rgbwhereabouts.len() as _, ::core::mem::transmute(rgbwhereabouts.as_ptr()), ::core::mem::transmute(pcbused)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -4091,14 +4091,14 @@ pub struct ITransactionReceiver(::windows::core::IUnknown); impl ITransactionReceiver { pub unsafe fn UnmarshalPropagationToken(&self, rgbtoken: &[u8]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).UnmarshalPropagationToken)(::windows::core::Interface::as_raw(self), rgbtoken.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgbtoken)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).UnmarshalPropagationToken)(::windows::core::Interface::as_raw(self), rgbtoken.len() as _, ::core::mem::transmute(rgbtoken.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetReturnTokenSize(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetReturnTokenSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn MarshalReturnToken(&self, rgbreturntoken: &mut [u8], pcbused: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).MarshalReturnToken)(::windows::core::Interface::as_raw(self), rgbreturntoken.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgbreturntoken)), ::core::mem::transmute(pcbused)).ok() + (::windows::core::Interface::vtable(self).MarshalReturnToken)(::windows::core::Interface::as_raw(self), rgbreturntoken.len() as _, ::core::mem::transmute(rgbreturntoken.as_ptr()), ::core::mem::transmute(pcbused)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -4371,10 +4371,10 @@ impl ITransactionTransmitter { (::windows::core::Interface::vtable(self).GetPropagationTokenSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn MarshalPropagationToken(&self, rgbtoken: &mut [u8], pcbused: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).MarshalPropagationToken)(::windows::core::Interface::as_raw(self), rgbtoken.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgbtoken)), ::core::mem::transmute(pcbused)).ok() + (::windows::core::Interface::vtable(self).MarshalPropagationToken)(::windows::core::Interface::as_raw(self), rgbtoken.len() as _, ::core::mem::transmute(rgbtoken.as_ptr()), ::core::mem::transmute(pcbused)).ok() } pub unsafe fn UnmarshalReturnToken(&self, rgbreturntoken: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UnmarshalReturnToken)(::windows::core::Interface::as_raw(self), rgbreturntoken.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgbreturntoken))).ok() + (::windows::core::Interface::vtable(self).UnmarshalReturnToken)(::windows::core::Interface::as_raw(self), rgbreturntoken.len() as _, ::core::mem::transmute(rgbreturntoken.as_ptr())).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() diff --git a/crates/libs/windows/src/Windows/Win32/System/Environment/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Environment/mod.rs index 7a79362e79..1ffffd7965 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Environment/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Environment/mod.rs @@ -14,7 +14,7 @@ where #[doc = "*Required features: `\"Win32_System_Environment\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CreateEnclave<'a, P0>(hprocess: P0, lpaddress: *const ::core::ffi::c_void, dwsize: usize, dwinitialcommitment: usize, flenclavetype: u32, lpenclaveinformation: *const ::core::ffi::c_void, dwinfolength: u32, lpenclaveerror: ::core::option::Option<&mut u32>) -> *mut ::core::ffi::c_void +pub unsafe fn CreateEnclave<'a, P0>(hprocess: P0, lpaddress: *const ::core::ffi::c_void, dwsize: usize, dwinitialcommitment: usize, flenclavetype: u32, lpenclaveinformation: &[u8], lpenclaveerror: ::core::option::Option<&mut u32>) -> *mut ::core::ffi::c_void where P0: ::std::convert::Into, { @@ -22,7 +22,7 @@ where extern "system" { fn CreateEnclave(hprocess: super::super::Foundation::HANDLE, lpaddress: *const ::core::ffi::c_void, dwsize: usize, dwinitialcommitment: usize, flenclavetype: u32, lpenclaveinformation: *const ::core::ffi::c_void, dwinfolength: u32, lpenclaveerror: *mut u32) -> *mut ::core::ffi::c_void; } - CreateEnclave(hprocess.into(), ::core::mem::transmute(lpaddress), dwsize, dwinitialcommitment, flenclavetype, ::core::mem::transmute(lpenclaveinformation), dwinfolength, ::core::mem::transmute(lpenclaveerror)) + CreateEnclave(hprocess.into(), ::core::mem::transmute(lpaddress), dwsize, dwinitialcommitment, flenclavetype, ::core::mem::transmute(lpenclaveinformation.as_ptr()), lpenclaveinformation.len() as _, ::core::mem::transmute(lpenclaveerror)) } #[doc = "*Required features: `\"Win32_System_Environment\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -215,53 +215,52 @@ impl ::core::default::Default for ENCLAVE_VBS_BASIC_KEY_REQUEST { } #[doc = "*Required features: `\"Win32_System_Environment\"`*"] #[inline] -pub unsafe fn EnclaveGetAttestationReport(enclavedata: ::core::option::Option<&u8>, report: *mut ::core::ffi::c_void, buffersize: u32, outputsize: &mut u32) -> ::windows::core::Result<()> { +pub unsafe fn EnclaveGetAttestationReport(enclavedata: ::core::option::Option<&u8>, report: ::core::option::Option<&mut [u8]>, outputsize: &mut u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EnclaveGetAttestationReport(enclavedata: *const u8, report: *mut ::core::ffi::c_void, buffersize: u32, outputsize: *mut u32) -> ::windows::core::HRESULT; } - EnclaveGetAttestationReport(::core::mem::transmute(enclavedata), ::core::mem::transmute(report), buffersize, ::core::mem::transmute(outputsize)).ok() + EnclaveGetAttestationReport(::core::mem::transmute(enclavedata), ::core::mem::transmute(report.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), report.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(outputsize)).ok() } #[doc = "*Required features: `\"Win32_System_Environment\"`*"] #[inline] -pub unsafe fn EnclaveGetEnclaveInformation(informationsize: u32) -> ::windows::core::Result { +pub unsafe fn EnclaveGetEnclaveInformation(enclaveinformation: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EnclaveGetEnclaveInformation(informationsize: u32, enclaveinformation: *mut ENCLAVE_INFORMATION) -> ::windows::core::HRESULT; } - let mut result__ = ::core::mem::MaybeUninit::zeroed(); - EnclaveGetEnclaveInformation(informationsize, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + EnclaveGetEnclaveInformation(enclaveinformation.len() as _, ::core::mem::transmute(enclaveinformation.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_System_Environment\"`*"] #[inline] -pub unsafe fn EnclaveSealData(datatoencrypt: *const ::core::ffi::c_void, datatoencryptsize: u32, identitypolicy: ENCLAVE_SEALING_IDENTITY_POLICY, runtimepolicy: u32, protectedblob: *mut ::core::ffi::c_void, buffersize: u32, protectedblobsize: &mut u32) -> ::windows::core::Result<()> { +pub unsafe fn EnclaveSealData(datatoencrypt: &[u8], identitypolicy: ENCLAVE_SEALING_IDENTITY_POLICY, runtimepolicy: u32, protectedblob: ::core::option::Option<&mut [u8]>, protectedblobsize: &mut u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EnclaveSealData(datatoencrypt: *const ::core::ffi::c_void, datatoencryptsize: u32, identitypolicy: ENCLAVE_SEALING_IDENTITY_POLICY, runtimepolicy: u32, protectedblob: *mut ::core::ffi::c_void, buffersize: u32, protectedblobsize: *mut u32) -> ::windows::core::HRESULT; } - EnclaveSealData(::core::mem::transmute(datatoencrypt), datatoencryptsize, identitypolicy, runtimepolicy, ::core::mem::transmute(protectedblob), buffersize, ::core::mem::transmute(protectedblobsize)).ok() + EnclaveSealData(::core::mem::transmute(datatoencrypt.as_ptr()), datatoencrypt.len() as _, identitypolicy, runtimepolicy, ::core::mem::transmute(protectedblob.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), protectedblob.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(protectedblobsize)).ok() } #[doc = "*Required features: `\"Win32_System_Environment\"`*"] #[inline] -pub unsafe fn EnclaveUnsealData(protectedblob: *const ::core::ffi::c_void, protectedblobsize: u32, decrypteddata: *mut ::core::ffi::c_void, buffersize: u32, decrypteddatasize: &mut u32, sealingidentity: ::core::option::Option<&mut ENCLAVE_IDENTITY>, unsealingflags: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { +pub unsafe fn EnclaveUnsealData(protectedblob: &[u8], decrypteddata: ::core::option::Option<&mut [u8]>, decrypteddatasize: &mut u32, sealingidentity: ::core::option::Option<&mut ENCLAVE_IDENTITY>, unsealingflags: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EnclaveUnsealData(protectedblob: *const ::core::ffi::c_void, protectedblobsize: u32, decrypteddata: *mut ::core::ffi::c_void, buffersize: u32, decrypteddatasize: *mut u32, sealingidentity: *mut ENCLAVE_IDENTITY, unsealingflags: *mut u32) -> ::windows::core::HRESULT; } - EnclaveUnsealData(::core::mem::transmute(protectedblob), protectedblobsize, ::core::mem::transmute(decrypteddata), buffersize, ::core::mem::transmute(decrypteddatasize), ::core::mem::transmute(sealingidentity), ::core::mem::transmute(unsealingflags)).ok() + EnclaveUnsealData(::core::mem::transmute(protectedblob.as_ptr()), protectedblob.len() as _, ::core::mem::transmute(decrypteddata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), decrypteddata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(decrypteddatasize), ::core::mem::transmute(sealingidentity), ::core::mem::transmute(unsealingflags)).ok() } #[doc = "*Required features: `\"Win32_System_Environment\"`*"] #[inline] -pub unsafe fn EnclaveVerifyAttestationReport(enclavetype: u32, report: *const ::core::ffi::c_void, reportsize: u32) -> ::windows::core::Result<()> { +pub unsafe fn EnclaveVerifyAttestationReport(enclavetype: u32, report: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EnclaveVerifyAttestationReport(enclavetype: u32, report: *const ::core::ffi::c_void, reportsize: u32) -> ::windows::core::HRESULT; } - EnclaveVerifyAttestationReport(enclavetype, ::core::mem::transmute(report), reportsize).ok() + EnclaveVerifyAttestationReport(enclavetype, ::core::mem::transmute(report.as_ptr()), report.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Environment\"`*"] #[inline] -pub unsafe fn ExpandEnvironmentStringsA<'a, P0>(lpsrc: P0, lpdst: &mut [u8]) -> u32 +pub unsafe fn ExpandEnvironmentStringsA<'a, P0>(lpsrc: P0, lpdst: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -269,7 +268,7 @@ where extern "system" { fn ExpandEnvironmentStringsA(lpsrc: ::windows::core::PCSTR, lpdst: ::windows::core::PSTR, nsize: u32) -> u32; } - ExpandEnvironmentStringsA(lpsrc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdst)), lpdst.len() as _) + ExpandEnvironmentStringsA(lpsrc.into(), ::core::mem::transmute(lpdst.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdst.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Environment\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -283,7 +282,7 @@ where extern "system" { fn ExpandEnvironmentStringsForUserA(htoken: super::super::Foundation::HANDLE, lpsrc: ::windows::core::PCSTR, lpdest: ::windows::core::PSTR, dwsize: u32) -> super::super::Foundation::BOOL; } - ExpandEnvironmentStringsForUserA(htoken.into(), lpsrc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdest)), lpdest.len() as _) + ExpandEnvironmentStringsForUserA(htoken.into(), lpsrc.into(), ::core::mem::transmute(lpdest.as_ptr()), lpdest.len() as _) } #[doc = "*Required features: `\"Win32_System_Environment\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -297,11 +296,11 @@ where extern "system" { fn ExpandEnvironmentStringsForUserW(htoken: super::super::Foundation::HANDLE, lpsrc: ::windows::core::PCWSTR, lpdest: ::windows::core::PWSTR, dwsize: u32) -> super::super::Foundation::BOOL; } - ExpandEnvironmentStringsForUserW(htoken.into(), lpsrc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdest)), lpdest.len() as _) + ExpandEnvironmentStringsForUserW(htoken.into(), lpsrc.into(), ::core::mem::transmute(lpdest.as_ptr()), lpdest.len() as _) } #[doc = "*Required features: `\"Win32_System_Environment\"`*"] #[inline] -pub unsafe fn ExpandEnvironmentStringsW<'a, P0>(lpsrc: P0, lpdst: &mut [u16]) -> u32 +pub unsafe fn ExpandEnvironmentStringsW<'a, P0>(lpsrc: P0, lpdst: ::core::option::Option<&mut [u16]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -309,7 +308,7 @@ where extern "system" { fn ExpandEnvironmentStringsW(lpsrc: ::windows::core::PCWSTR, lpdst: ::windows::core::PWSTR, nsize: u32) -> u32; } - ExpandEnvironmentStringsW(lpsrc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpdst)), lpdst.len() as _) + ExpandEnvironmentStringsW(lpsrc.into(), ::core::mem::transmute(lpdst.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdst.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Environment\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -357,21 +356,21 @@ pub unsafe fn GetCommandLineW() -> ::windows::core::PWSTR { } #[doc = "*Required features: `\"Win32_System_Environment\"`*"] #[inline] -pub unsafe fn GetCurrentDirectoryA(lpbuffer: &mut [u8]) -> u32 { +pub unsafe fn GetCurrentDirectoryA(lpbuffer: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetCurrentDirectoryA(nbufferlength: u32, lpbuffer: ::windows::core::PSTR) -> u32; } - GetCurrentDirectoryA(lpbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer))) + GetCurrentDirectoryA(lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_System_Environment\"`*"] #[inline] -pub unsafe fn GetCurrentDirectoryW(lpbuffer: &mut [u16]) -> u32 { +pub unsafe fn GetCurrentDirectoryW(lpbuffer: ::core::option::Option<&mut [u16]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetCurrentDirectoryW(nbufferlength: u32, lpbuffer: ::windows::core::PWSTR) -> u32; } - GetCurrentDirectoryW(lpbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer))) + GetCurrentDirectoryW(lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_System_Environment\"`*"] #[inline] @@ -393,7 +392,7 @@ pub unsafe fn GetEnvironmentStringsW() -> ::windows::core::PWSTR { } #[doc = "*Required features: `\"Win32_System_Environment\"`*"] #[inline] -pub unsafe fn GetEnvironmentVariableA<'a, P0>(lpname: P0, lpbuffer: &mut [u8]) -> u32 +pub unsafe fn GetEnvironmentVariableA<'a, P0>(lpname: P0, lpbuffer: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -401,11 +400,11 @@ where extern "system" { fn GetEnvironmentVariableA(lpname: ::windows::core::PCSTR, lpbuffer: ::windows::core::PSTR, nsize: u32) -> u32; } - GetEnvironmentVariableA(lpname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _) + GetEnvironmentVariableA(lpname.into(), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Environment\"`*"] #[inline] -pub unsafe fn GetEnvironmentVariableW<'a, P0>(lpname: P0, lpbuffer: &mut [u16]) -> u32 +pub unsafe fn GetEnvironmentVariableW<'a, P0>(lpname: P0, lpbuffer: ::core::option::Option<&mut [u16]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -413,12 +412,12 @@ where extern "system" { fn GetEnvironmentVariableW(lpname: ::windows::core::PCWSTR, lpbuffer: ::windows::core::PWSTR, nsize: u32) -> u32; } - GetEnvironmentVariableW(lpname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _) + GetEnvironmentVariableW(lpname.into(), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Environment\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn InitializeEnclave<'a, P0>(hprocess: P0, lpaddress: *const ::core::ffi::c_void, lpenclaveinformation: *const ::core::ffi::c_void, dwinfolength: u32, lpenclaveerror: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn InitializeEnclave<'a, P0>(hprocess: P0, lpaddress: *const ::core::ffi::c_void, lpenclaveinformation: &[u8], lpenclaveerror: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -426,7 +425,7 @@ where extern "system" { fn InitializeEnclave(hprocess: super::super::Foundation::HANDLE, lpaddress: *const ::core::ffi::c_void, lpenclaveinformation: *const ::core::ffi::c_void, dwinfolength: u32, lpenclaveerror: *mut u32) -> super::super::Foundation::BOOL; } - InitializeEnclave(hprocess.into(), ::core::mem::transmute(lpaddress), ::core::mem::transmute(lpenclaveinformation), dwinfolength, ::core::mem::transmute(lpenclaveerror)) + InitializeEnclave(hprocess.into(), ::core::mem::transmute(lpaddress), ::core::mem::transmute(lpenclaveinformation.as_ptr()), lpenclaveinformation.len() as _, ::core::mem::transmute(lpenclaveerror)) } #[doc = "*Required features: `\"Win32_System_Environment\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -441,7 +440,7 @@ pub unsafe fn IsEnclaveTypeSupported(flenclavetype: u32) -> super::super::Founda #[doc = "*Required features: `\"Win32_System_Environment\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn LoadEnclaveData<'a, P0>(hprocess: P0, lpaddress: *const ::core::ffi::c_void, lpbuffer: *const ::core::ffi::c_void, nsize: usize, flprotect: u32, lppageinformation: *const ::core::ffi::c_void, dwinfolength: u32, lpnumberofbyteswritten: &mut usize, lpenclaveerror: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn LoadEnclaveData<'a, P0>(hprocess: P0, lpaddress: *const ::core::ffi::c_void, lpbuffer: &[u8], flprotect: u32, lppageinformation: &[u8], lpnumberofbyteswritten: &mut usize, lpenclaveerror: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -449,7 +448,7 @@ where extern "system" { fn LoadEnclaveData(hprocess: super::super::Foundation::HANDLE, lpaddress: *const ::core::ffi::c_void, lpbuffer: *const ::core::ffi::c_void, nsize: usize, flprotect: u32, lppageinformation: *const ::core::ffi::c_void, dwinfolength: u32, lpnumberofbyteswritten: *mut usize, lpenclaveerror: *mut u32) -> super::super::Foundation::BOOL; } - LoadEnclaveData(hprocess.into(), ::core::mem::transmute(lpaddress), ::core::mem::transmute(lpbuffer), nsize, flprotect, ::core::mem::transmute(lppageinformation), dwinfolength, ::core::mem::transmute(lpnumberofbyteswritten), ::core::mem::transmute(lpenclaveerror)) + LoadEnclaveData(hprocess.into(), ::core::mem::transmute(lpaddress), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, flprotect, ::core::mem::transmute(lppageinformation.as_ptr()), lppageinformation.len() as _, ::core::mem::transmute(lpnumberofbyteswritten), ::core::mem::transmute(lpenclaveerror)) } #[doc = "*Required features: `\"Win32_System_Environment\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/System/EventCollector/mod.rs b/crates/libs/windows/src/Windows/Win32/System/EventCollector/mod.rs index 5852c13830..e0575a8667 100644 --- a/crates/libs/windows/src/Windows/Win32/System/EventCollector/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/EventCollector/mod.rs @@ -451,12 +451,12 @@ where #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EcEnumNextSubscription(subscriptionenum: isize, subscriptionnamebuffer: &mut [u16], subscriptionnamebufferused: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn EcEnumNextSubscription(subscriptionenum: isize, subscriptionnamebuffer: ::core::option::Option<&mut [u16]>, subscriptionnamebufferused: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EcEnumNextSubscription(subscriptionenum: isize, subscriptionnamebuffersize: u32, subscriptionnamebuffer: ::windows::core::PWSTR, subscriptionnamebufferused: *mut u32) -> super::super::Foundation::BOOL; } - EcEnumNextSubscription(subscriptionenum, subscriptionnamebuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(subscriptionnamebuffer)), ::core::mem::transmute(subscriptionnamebufferused)) + EcEnumNextSubscription(subscriptionenum, subscriptionnamebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(subscriptionnamebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(subscriptionnamebufferused)) } #[doc = "*Required features: `\"Win32_System_EventCollector\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/System/EventLog/mod.rs b/crates/libs/windows/src/Windows/Win32/System/EventLog/mod.rs index 65a167a207..f745cbe293 100644 --- a/crates/libs/windows/src/Windows/Win32/System/EventLog/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/EventLog/mod.rs @@ -1387,12 +1387,12 @@ where } #[doc = "*Required features: `\"Win32_System_EventLog\"`*"] #[inline] -pub unsafe fn EvtCreateRenderContext(valuepaths: &[::windows::core::PWSTR], flags: u32) -> isize { +pub unsafe fn EvtCreateRenderContext(valuepaths: ::core::option::Option<&[::windows::core::PWSTR]>, flags: u32) -> isize { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EvtCreateRenderContext(valuepathscount: u32, valuepaths: *const ::windows::core::PWSTR, flags: u32) -> isize; } - EvtCreateRenderContext(valuepaths.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(valuepaths)), flags) + EvtCreateRenderContext(valuepaths.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(valuepaths.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), flags) } #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1412,71 +1412,71 @@ where #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EvtFormatMessage(publishermetadata: isize, event: isize, messageid: u32, values: &[EVT_VARIANT], flags: u32, buffer: &mut [u16], bufferused: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn EvtFormatMessage(publishermetadata: isize, event: isize, messageid: u32, values: ::core::option::Option<&[EVT_VARIANT]>, flags: u32, buffer: ::core::option::Option<&mut [u16]>, bufferused: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EvtFormatMessage(publishermetadata: isize, event: isize, messageid: u32, valuecount: u32, values: *const EVT_VARIANT, flags: u32, buffersize: u32, buffer: ::windows::core::PWSTR, bufferused: *mut u32) -> super::super::Foundation::BOOL; } - EvtFormatMessage(publishermetadata, event, messageid, values.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(values)), flags, buffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), ::core::mem::transmute(bufferused)) + EvtFormatMessage(publishermetadata, event, messageid, values.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(values.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), flags, buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(bufferused)) } #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EvtGetChannelConfigProperty(channelconfig: isize, propertyid: EVT_CHANNEL_CONFIG_PROPERTY_ID, flags: u32, propertyvaluebuffersize: u32, propertyvaluebuffer: ::core::option::Option<&mut EVT_VARIANT>, propertyvaluebufferused: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn EvtGetChannelConfigProperty(channelconfig: isize, propertyid: EVT_CHANNEL_CONFIG_PROPERTY_ID, flags: u32, propertyvaluebuffer: ::core::option::Option<&mut [u8]>, propertyvaluebufferused: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EvtGetChannelConfigProperty(channelconfig: isize, propertyid: EVT_CHANNEL_CONFIG_PROPERTY_ID, flags: u32, propertyvaluebuffersize: u32, propertyvaluebuffer: *mut EVT_VARIANT, propertyvaluebufferused: *mut u32) -> super::super::Foundation::BOOL; } - EvtGetChannelConfigProperty(channelconfig, propertyid, flags, propertyvaluebuffersize, ::core::mem::transmute(propertyvaluebuffer), ::core::mem::transmute(propertyvaluebufferused)) + EvtGetChannelConfigProperty(channelconfig, propertyid, flags, propertyvaluebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(propertyvaluebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(propertyvaluebufferused)) } #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EvtGetEventInfo(event: isize, propertyid: EVT_EVENT_PROPERTY_ID, propertyvaluebuffersize: u32, propertyvaluebuffer: ::core::option::Option<&mut EVT_VARIANT>, propertyvaluebufferused: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn EvtGetEventInfo(event: isize, propertyid: EVT_EVENT_PROPERTY_ID, propertyvaluebuffer: ::core::option::Option<&mut [u8]>, propertyvaluebufferused: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EvtGetEventInfo(event: isize, propertyid: EVT_EVENT_PROPERTY_ID, propertyvaluebuffersize: u32, propertyvaluebuffer: *mut EVT_VARIANT, propertyvaluebufferused: *mut u32) -> super::super::Foundation::BOOL; } - EvtGetEventInfo(event, propertyid, propertyvaluebuffersize, ::core::mem::transmute(propertyvaluebuffer), ::core::mem::transmute(propertyvaluebufferused)) + EvtGetEventInfo(event, propertyid, propertyvaluebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(propertyvaluebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(propertyvaluebufferused)) } #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EvtGetEventMetadataProperty(eventmetadata: isize, propertyid: EVT_EVENT_METADATA_PROPERTY_ID, flags: u32, eventmetadatapropertybuffersize: u32, eventmetadatapropertybuffer: ::core::option::Option<&mut EVT_VARIANT>, eventmetadatapropertybufferused: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn EvtGetEventMetadataProperty(eventmetadata: isize, propertyid: EVT_EVENT_METADATA_PROPERTY_ID, flags: u32, eventmetadatapropertybuffer: ::core::option::Option<&mut [u8]>, eventmetadatapropertybufferused: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EvtGetEventMetadataProperty(eventmetadata: isize, propertyid: EVT_EVENT_METADATA_PROPERTY_ID, flags: u32, eventmetadatapropertybuffersize: u32, eventmetadatapropertybuffer: *mut EVT_VARIANT, eventmetadatapropertybufferused: *mut u32) -> super::super::Foundation::BOOL; } - EvtGetEventMetadataProperty(eventmetadata, propertyid, flags, eventmetadatapropertybuffersize, ::core::mem::transmute(eventmetadatapropertybuffer), ::core::mem::transmute(eventmetadatapropertybufferused)) + EvtGetEventMetadataProperty(eventmetadata, propertyid, flags, eventmetadatapropertybuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(eventmetadatapropertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(eventmetadatapropertybufferused)) } #[doc = "*Required features: `\"Win32_System_EventLog\"`*"] #[inline] -pub unsafe fn EvtGetExtendedStatus(buffer: &mut [u16], bufferused: &mut u32) -> u32 { +pub unsafe fn EvtGetExtendedStatus(buffer: ::core::option::Option<&mut [u16]>, bufferused: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EvtGetExtendedStatus(buffersize: u32, buffer: ::windows::core::PWSTR, bufferused: *mut u32) -> u32; } - EvtGetExtendedStatus(buffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer)), ::core::mem::transmute(bufferused)) + EvtGetExtendedStatus(buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(bufferused)) } #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EvtGetLogInfo(log: isize, propertyid: EVT_LOG_PROPERTY_ID, propertyvaluebuffersize: u32, propertyvaluebuffer: ::core::option::Option<&mut EVT_VARIANT>, propertyvaluebufferused: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn EvtGetLogInfo(log: isize, propertyid: EVT_LOG_PROPERTY_ID, propertyvaluebuffer: ::core::option::Option<&mut [u8]>, propertyvaluebufferused: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EvtGetLogInfo(log: isize, propertyid: EVT_LOG_PROPERTY_ID, propertyvaluebuffersize: u32, propertyvaluebuffer: *mut EVT_VARIANT, propertyvaluebufferused: *mut u32) -> super::super::Foundation::BOOL; } - EvtGetLogInfo(log, propertyid, propertyvaluebuffersize, ::core::mem::transmute(propertyvaluebuffer), ::core::mem::transmute(propertyvaluebufferused)) + EvtGetLogInfo(log, propertyid, propertyvaluebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(propertyvaluebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(propertyvaluebufferused)) } #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EvtGetObjectArrayProperty(objectarray: isize, propertyid: u32, arrayindex: u32, flags: u32, propertyvaluebuffersize: u32, propertyvaluebuffer: ::core::option::Option<&mut EVT_VARIANT>, propertyvaluebufferused: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn EvtGetObjectArrayProperty(objectarray: isize, propertyid: u32, arrayindex: u32, flags: u32, propertyvaluebuffer: ::core::option::Option<&mut [u8]>, propertyvaluebufferused: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EvtGetObjectArrayProperty(objectarray: isize, propertyid: u32, arrayindex: u32, flags: u32, propertyvaluebuffersize: u32, propertyvaluebuffer: *mut EVT_VARIANT, propertyvaluebufferused: *mut u32) -> super::super::Foundation::BOOL; } - EvtGetObjectArrayProperty(objectarray, propertyid, arrayindex, flags, propertyvaluebuffersize, ::core::mem::transmute(propertyvaluebuffer), ::core::mem::transmute(propertyvaluebufferused)) + EvtGetObjectArrayProperty(objectarray, propertyid, arrayindex, flags, propertyvaluebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(propertyvaluebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(propertyvaluebufferused)) } #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1491,22 +1491,22 @@ pub unsafe fn EvtGetObjectArraySize(objectarray: isize, objectarraysize: &mut u3 #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EvtGetPublisherMetadataProperty(publishermetadata: isize, propertyid: EVT_PUBLISHER_METADATA_PROPERTY_ID, flags: u32, publishermetadatapropertybuffersize: u32, publishermetadatapropertybuffer: ::core::option::Option<&mut EVT_VARIANT>, publishermetadatapropertybufferused: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn EvtGetPublisherMetadataProperty(publishermetadata: isize, propertyid: EVT_PUBLISHER_METADATA_PROPERTY_ID, flags: u32, publishermetadatapropertybuffer: ::core::option::Option<&mut [u8]>, publishermetadatapropertybufferused: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EvtGetPublisherMetadataProperty(publishermetadata: isize, propertyid: EVT_PUBLISHER_METADATA_PROPERTY_ID, flags: u32, publishermetadatapropertybuffersize: u32, publishermetadatapropertybuffer: *mut EVT_VARIANT, publishermetadatapropertybufferused: *mut u32) -> super::super::Foundation::BOOL; } - EvtGetPublisherMetadataProperty(publishermetadata, propertyid, flags, publishermetadatapropertybuffersize, ::core::mem::transmute(publishermetadatapropertybuffer), ::core::mem::transmute(publishermetadatapropertybufferused)) + EvtGetPublisherMetadataProperty(publishermetadata, propertyid, flags, publishermetadatapropertybuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(publishermetadatapropertybuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(publishermetadatapropertybufferused)) } #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EvtGetQueryInfo(queryorsubscription: isize, propertyid: EVT_QUERY_PROPERTY_ID, propertyvaluebuffersize: u32, propertyvaluebuffer: ::core::option::Option<&mut EVT_VARIANT>, propertyvaluebufferused: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn EvtGetQueryInfo(queryorsubscription: isize, propertyid: EVT_QUERY_PROPERTY_ID, propertyvaluebuffer: ::core::option::Option<&mut [u8]>, propertyvaluebufferused: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EvtGetQueryInfo(queryorsubscription: isize, propertyid: EVT_QUERY_PROPERTY_ID, propertyvaluebuffersize: u32, propertyvaluebuffer: *mut EVT_VARIANT, propertyvaluebufferused: *mut u32) -> super::super::Foundation::BOOL; } - EvtGetQueryInfo(queryorsubscription, propertyid, propertyvaluebuffersize, ::core::mem::transmute(propertyvaluebuffer), ::core::mem::transmute(propertyvaluebufferused)) + EvtGetQueryInfo(queryorsubscription, propertyid, propertyvaluebuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(propertyvaluebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(propertyvaluebufferused)) } #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1516,17 +1516,17 @@ pub unsafe fn EvtNext(resultset: isize, events: &mut [isize], timeout: u32, flag extern "system" { fn EvtNext(resultset: isize, eventssize: u32, events: *mut isize, timeout: u32, flags: u32, returned: *mut u32) -> super::super::Foundation::BOOL; } - EvtNext(resultset, events.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(events)), timeout, flags, ::core::mem::transmute(returned)) + EvtNext(resultset, events.len() as _, ::core::mem::transmute(events.as_ptr()), timeout, flags, ::core::mem::transmute(returned)) } #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EvtNextChannelPath(channelenum: isize, channelpathbuffer: &mut [u16], channelpathbufferused: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn EvtNextChannelPath(channelenum: isize, channelpathbuffer: ::core::option::Option<&mut [u16]>, channelpathbufferused: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EvtNextChannelPath(channelenum: isize, channelpathbuffersize: u32, channelpathbuffer: ::windows::core::PWSTR, channelpathbufferused: *mut u32) -> super::super::Foundation::BOOL; } - EvtNextChannelPath(channelenum, channelpathbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(channelpathbuffer)), ::core::mem::transmute(channelpathbufferused)) + EvtNextChannelPath(channelenum, channelpathbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(channelpathbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(channelpathbufferused)) } #[doc = "*Required features: `\"Win32_System_EventLog\"`*"] #[inline] @@ -1540,12 +1540,12 @@ pub unsafe fn EvtNextEventMetadata(eventmetadataenum: isize, flags: u32) -> isiz #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EvtNextPublisherId(publisherenum: isize, publisheridbuffer: &mut [u16], publisheridbufferused: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn EvtNextPublisherId(publisherenum: isize, publisheridbuffer: ::core::option::Option<&mut [u16]>, publisheridbufferused: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EvtNextPublisherId(publisherenum: isize, publisheridbuffersize: u32, publisheridbuffer: ::windows::core::PWSTR, publisheridbufferused: *mut u32) -> super::super::Foundation::BOOL; } - EvtNextPublisherId(publisherenum, publisheridbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(publisheridbuffer)), ::core::mem::transmute(publisheridbufferused)) + EvtNextPublisherId(publisherenum, publisheridbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(publisheridbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(publisheridbufferused)) } #[doc = "*Required features: `\"Win32_System_EventLog\"`*"] #[inline] @@ -1636,12 +1636,12 @@ where #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EvtRender(context: isize, fragment: isize, flags: u32, buffersize: u32, buffer: *mut ::core::ffi::c_void, bufferused: &mut u32, propertycount: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn EvtRender(context: isize, fragment: isize, flags: u32, buffer: ::core::option::Option<&mut [u8]>, bufferused: &mut u32, propertycount: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EvtRender(context: isize, fragment: isize, flags: u32, buffersize: u32, buffer: *mut ::core::ffi::c_void, bufferused: *mut u32, propertycount: *mut u32) -> super::super::Foundation::BOOL; } - EvtRender(context, fragment, flags, buffersize, ::core::mem::transmute(buffer), ::core::mem::transmute(bufferused), ::core::mem::transmute(propertycount)) + EvtRender(context, fragment, flags, buffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(bufferused), ::core::mem::transmute(propertycount)) } #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1701,7 +1701,7 @@ pub unsafe fn EvtUpdateBookmark(bookmark: isize, event: isize) -> super::super:: #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetEventLogInformation<'a, P0>(heventlog: P0, dwinfolevel: u32, lpbuffer: *mut ::core::ffi::c_void, cbbufsize: u32, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetEventLogInformation<'a, P0>(heventlog: P0, dwinfolevel: u32, lpbuffer: &mut [u8], pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1709,7 +1709,7 @@ where extern "system" { fn GetEventLogInformation(heventlog: EventLogHandle, dwinfolevel: u32, lpbuffer: *mut ::core::ffi::c_void, cbbufsize: u32, pcbbytesneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetEventLogInformation(heventlog.into(), dwinfolevel, ::core::mem::transmute(lpbuffer), cbbufsize, ::core::mem::transmute(pcbbytesneeded)) + GetEventLogInformation(heventlog.into(), dwinfolevel, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(pcbbytesneeded)) } #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1872,7 +1872,7 @@ impl ::core::fmt::Debug for REPORT_EVENT_TYPE { #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ReadEventLogA<'a, P0>(heventlog: P0, dwreadflags: READ_EVENT_LOG_READ_FLAGS, dwrecordoffset: u32, lpbuffer: *mut ::core::ffi::c_void, nnumberofbytestoread: u32, pnbytesread: &mut u32, pnminnumberofbytesneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn ReadEventLogA<'a, P0>(heventlog: P0, dwreadflags: READ_EVENT_LOG_READ_FLAGS, dwrecordoffset: u32, lpbuffer: &mut [u8], pnbytesread: &mut u32, pnminnumberofbytesneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1880,12 +1880,12 @@ where extern "system" { fn ReadEventLogA(heventlog: EventLogHandle, dwreadflags: READ_EVENT_LOG_READ_FLAGS, dwrecordoffset: u32, lpbuffer: *mut ::core::ffi::c_void, nnumberofbytestoread: u32, pnbytesread: *mut u32, pnminnumberofbytesneeded: *mut u32) -> super::super::Foundation::BOOL; } - ReadEventLogA(heventlog.into(), dwreadflags, dwrecordoffset, ::core::mem::transmute(lpbuffer), nnumberofbytestoread, ::core::mem::transmute(pnbytesread), ::core::mem::transmute(pnminnumberofbytesneeded)) + ReadEventLogA(heventlog.into(), dwreadflags, dwrecordoffset, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(pnbytesread), ::core::mem::transmute(pnminnumberofbytesneeded)) } #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ReadEventLogW<'a, P0>(heventlog: P0, dwreadflags: READ_EVENT_LOG_READ_FLAGS, dwrecordoffset: u32, lpbuffer: *mut ::core::ffi::c_void, nnumberofbytestoread: u32, pnbytesread: &mut u32, pnminnumberofbytesneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn ReadEventLogW<'a, P0>(heventlog: P0, dwreadflags: READ_EVENT_LOG_READ_FLAGS, dwrecordoffset: u32, lpbuffer: &mut [u8], pnbytesread: &mut u32, pnminnumberofbytesneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1893,7 +1893,7 @@ where extern "system" { fn ReadEventLogW(heventlog: EventLogHandle, dwreadflags: READ_EVENT_LOG_READ_FLAGS, dwrecordoffset: u32, lpbuffer: *mut ::core::ffi::c_void, nnumberofbytestoread: u32, pnbytesread: *mut u32, pnminnumberofbytesneeded: *mut u32) -> super::super::Foundation::BOOL; } - ReadEventLogW(heventlog.into(), dwreadflags, dwrecordoffset, ::core::mem::transmute(lpbuffer), nnumberofbytestoread, ::core::mem::transmute(pnbytesread), ::core::mem::transmute(pnminnumberofbytesneeded)) + ReadEventLogW(heventlog.into(), dwreadflags, dwrecordoffset, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(pnbytesread), ::core::mem::transmute(pnminnumberofbytesneeded)) } #[doc = "*Required features: `\"Win32_System_EventLog\"`*"] #[inline] @@ -1926,7 +1926,7 @@ where #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ReportEventA<'a, P0, P1>(heventlog: P0, wtype: REPORT_EVENT_TYPE, wcategory: u16, dweventid: u32, lpusersid: P1, dwdatasize: u32, lpstrings: &[::windows::core::PSTR], lprawdata: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn ReportEventA<'a, P0, P1>(heventlog: P0, wtype: REPORT_EVENT_TYPE, wcategory: u16, dweventid: u32, lpusersid: P1, lpstrings: ::core::option::Option<&[::windows::core::PSTR]>, lprawdata: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -1935,12 +1935,12 @@ where extern "system" { fn ReportEventA(heventlog: EventSourceHandle, wtype: REPORT_EVENT_TYPE, wcategory: u16, dweventid: u32, lpusersid: super::super::Foundation::PSID, wnumstrings: u16, dwdatasize: u32, lpstrings: *const ::windows::core::PSTR, lprawdata: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - ReportEventA(heventlog.into(), wtype, wcategory, dweventid, lpusersid.into(), lpstrings.len() as _, dwdatasize, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstrings)), ::core::mem::transmute(lprawdata)) + ReportEventA(heventlog.into(), wtype, wcategory, dweventid, lpusersid.into(), lpstrings.as_deref().map_or(0, |slice| slice.len() as _), lprawdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpstrings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(lprawdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_System_EventLog\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ReportEventW<'a, P0, P1>(heventlog: P0, wtype: REPORT_EVENT_TYPE, wcategory: u16, dweventid: u32, lpusersid: P1, dwdatasize: u32, lpstrings: &[::windows::core::PWSTR], lprawdata: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn ReportEventW<'a, P0, P1>(heventlog: P0, wtype: REPORT_EVENT_TYPE, wcategory: u16, dweventid: u32, lpusersid: P1, lpstrings: ::core::option::Option<&[::windows::core::PWSTR]>, lprawdata: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -1949,7 +1949,7 @@ where extern "system" { fn ReportEventW(heventlog: EventSourceHandle, wtype: REPORT_EVENT_TYPE, wcategory: u16, dweventid: u32, lpusersid: super::super::Foundation::PSID, wnumstrings: u16, dwdatasize: u32, lpstrings: *const ::windows::core::PWSTR, lprawdata: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - ReportEventW(heventlog.into(), wtype, wcategory, dweventid, lpusersid.into(), lpstrings.len() as _, dwdatasize, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpstrings)), ::core::mem::transmute(lprawdata)) + ReportEventW(heventlog.into(), wtype, wcategory, dweventid, lpusersid.into(), lpstrings.as_deref().map_or(0, |slice| slice.len() as _), lprawdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpstrings.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(lprawdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[cfg(feature = "implement")] ::core::include!("impl.rs"); diff --git a/crates/libs/windows/src/Windows/Win32/System/GroupPolicy/mod.rs b/crates/libs/windows/src/Windows/Win32/System/GroupPolicy/mod.rs index 981b062256..467440e6f2 100644 --- a/crates/libs/windows/src/Windows/Win32/System/GroupPolicy/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/GroupPolicy/mod.rs @@ -1111,10 +1111,10 @@ pub unsafe fn GetManagedApplications(pcategory: &::windows::core::GUID, dwqueryf pub struct IGPEInformation(::windows::core::IUnknown); impl IGPEInformation { pub unsafe fn GetName(&self, pszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), pszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszname.as_ptr()), pszname.len() as _).ok() } pub unsafe fn GetDisplayName(&self, pszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDisplayName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), pszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetDisplayName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszname.as_ptr()), pszname.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] @@ -1122,10 +1122,10 @@ impl IGPEInformation { (::windows::core::Interface::vtable(self).GetRegistryKey)(::windows::core::Interface::as_raw(self), dwsection, ::core::mem::transmute(hkey)).ok() } pub unsafe fn GetDSPath(&self, dwsection: u32, pszpath: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDSPath)(::windows::core::Interface::as_raw(self), dwsection, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszpath.len() as _).ok() + (::windows::core::Interface::vtable(self).GetDSPath)(::windows::core::Interface::as_raw(self), dwsection, ::core::mem::transmute(pszpath.as_ptr()), pszpath.len() as _).ok() } pub unsafe fn GetFileSysPath(&self, dwsection: u32, pszpath: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFileSysPath)(::windows::core::Interface::as_raw(self), dwsection, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszpath.len() as _).ok() + (::windows::core::Interface::vtable(self).GetFileSysPath)(::windows::core::Interface::as_raw(self), dwsection, ::core::mem::transmute(pszpath.as_ptr()), pszpath.len() as _).ok() } pub unsafe fn GetOptions(&self, dwoptions: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetOptions)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(dwoptions)).ok() @@ -8084,10 +8084,10 @@ impl IGroupPolicyObject { (::windows::core::Interface::vtable(self).Delete)(::windows::core::Interface::as_raw(self)).ok() } pub unsafe fn GetName(&self, pszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), pszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszname.as_ptr()), pszname.len() as _).ok() } pub unsafe fn GetDisplayName(&self, pszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDisplayName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), pszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetDisplayName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszname.as_ptr()), pszname.len() as _).ok() } pub unsafe fn SetDisplayName<'a, P0>(&self, pszname: P0) -> ::windows::core::Result<()> where @@ -8096,13 +8096,13 @@ impl IGroupPolicyObject { (::windows::core::Interface::vtable(self).SetDisplayName)(::windows::core::Interface::as_raw(self), pszname.into()).ok() } pub unsafe fn GetPath(&self, pszpath: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszpath.len() as _).ok() + (::windows::core::Interface::vtable(self).GetPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszpath.as_ptr()), pszpath.len() as _).ok() } pub unsafe fn GetDSPath(&self, dwsection: u32, pszpath: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDSPath)(::windows::core::Interface::as_raw(self), dwsection, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszpath.len() as _).ok() + (::windows::core::Interface::vtable(self).GetDSPath)(::windows::core::Interface::as_raw(self), dwsection, ::core::mem::transmute(pszpath.as_ptr()), pszpath.len() as _).ok() } pub unsafe fn GetFileSysPath(&self, dwsection: u32, pszpath: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFileSysPath)(::windows::core::Interface::as_raw(self), dwsection, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszpath.len() as _).ok() + (::windows::core::Interface::vtable(self).GetFileSysPath)(::windows::core::Interface::as_raw(self), dwsection, ::core::mem::transmute(pszpath.as_ptr()), pszpath.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] @@ -8119,7 +8119,7 @@ impl IGroupPolicyObject { (::windows::core::Interface::vtable(self).GetType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(gpotype)).ok() } pub unsafe fn GetMachineName(&self, pszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetMachineName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), pszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetMachineName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszname.as_ptr()), pszname.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Controls\"`*"] #[cfg(feature = "Win32_UI_Controls")] @@ -8346,7 +8346,7 @@ impl ::core::fmt::Debug for INSTALLSPECTYPE { pub struct IRSOPInformation(::windows::core::IUnknown); impl IRSOPInformation { pub unsafe fn GetNamespace(&self, dwsection: u32, pszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNamespace)(::windows::core::Interface::as_raw(self), dwsection, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), pszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetNamespace)(::windows::core::Interface::as_raw(self), dwsection, ::core::mem::transmute(pszname.as_ptr()), pszname.len() as _).ok() } pub unsafe fn GetFlags(&self, pdwflags: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetFlags)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwflags)).ok() @@ -8779,7 +8779,7 @@ where #[doc = "*Required features: `\"Win32_System_GroupPolicy\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn RsopAccessCheckByType<'a, P0, P1>(psecuritydescriptor: P0, pprincipalselfsid: P1, prsoptoken: *const ::core::ffi::c_void, dwdesiredaccessmask: u32, pobjecttypelist: &[super::super::Security::OBJECT_TYPE_LIST], pgenericmapping: &super::super::Security::GENERIC_MAPPING, pprivilegeset: ::core::option::Option<&super::super::Security::PRIVILEGE_SET>, pdwprivilegesetlength: ::core::option::Option<&u32>, pdwgrantedaccessmask: &mut u32, pbaccessstatus: &mut i32) -> ::windows::core::Result<()> +pub unsafe fn RsopAccessCheckByType<'a, P0, P1>(psecuritydescriptor: P0, pprincipalselfsid: P1, prsoptoken: *const ::core::ffi::c_void, dwdesiredaccessmask: u32, pobjecttypelist: ::core::option::Option<&[super::super::Security::OBJECT_TYPE_LIST]>, pgenericmapping: &super::super::Security::GENERIC_MAPPING, pprivilegeset: *const super::super::Security::PRIVILEGE_SET, pdwprivilegesetlength: ::core::option::Option<&u32>, pdwgrantedaccessmask: &mut u32, pbaccessstatus: &mut i32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -8788,7 +8788,20 @@ where extern "system" { fn RsopAccessCheckByType(psecuritydescriptor: super::super::Security::PSECURITY_DESCRIPTOR, pprincipalselfsid: super::super::Foundation::PSID, prsoptoken: *const ::core::ffi::c_void, dwdesiredaccessmask: u32, pobjecttypelist: *const super::super::Security::OBJECT_TYPE_LIST, objecttypelistlength: u32, pgenericmapping: *const super::super::Security::GENERIC_MAPPING, pprivilegeset: *const super::super::Security::PRIVILEGE_SET, pdwprivilegesetlength: *const u32, pdwgrantedaccessmask: *mut u32, pbaccessstatus: *mut i32) -> ::windows::core::HRESULT; } - RsopAccessCheckByType(psecuritydescriptor.into(), pprincipalselfsid.into(), ::core::mem::transmute(prsoptoken), dwdesiredaccessmask, ::core::mem::transmute(::windows::core::as_ptr_or_null(pobjecttypelist)), pobjecttypelist.len() as _, ::core::mem::transmute(pgenericmapping), ::core::mem::transmute(pprivilegeset), ::core::mem::transmute(pdwprivilegesetlength), ::core::mem::transmute(pdwgrantedaccessmask), ::core::mem::transmute(pbaccessstatus)).ok() + RsopAccessCheckByType( + psecuritydescriptor.into(), + pprincipalselfsid.into(), + ::core::mem::transmute(prsoptoken), + dwdesiredaccessmask, + ::core::mem::transmute(pobjecttypelist.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + pobjecttypelist.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(pgenericmapping), + ::core::mem::transmute(pprivilegeset), + ::core::mem::transmute(pdwprivilegesetlength), + ::core::mem::transmute(pdwgrantedaccessmask), + ::core::mem::transmute(pbaccessstatus), + ) + .ok() } #[doc = "*Required features: `\"Win32_System_GroupPolicy\"`*"] #[inline] @@ -8828,7 +8841,7 @@ where extern "system" { fn RsopSetPolicySettingStatus(dwflags: u32, pservices: *mut ::core::ffi::c_void, psettinginstance: *mut ::core::ffi::c_void, ninfo: u32, pstatus: *const POLICYSETTINGSTATUSINFO) -> ::windows::core::HRESULT; } - RsopSetPolicySettingStatus(dwflags, pservices.into().abi(), psettinginstance.into().abi(), pstatus.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pstatus))).ok() + RsopSetPolicySettingStatus(dwflags, pservices.into().abi(), psettinginstance.into().abi(), pstatus.len() as _, ::core::mem::transmute(pstatus.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_System_GroupPolicy\"`*"] #[repr(transparent)] diff --git a/crates/libs/windows/src/Windows/Win32/System/Hypervisor/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Hypervisor/mod.rs index 84c63a1cf3..fd83d3ea1a 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Hypervisor/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Hypervisor/mod.rs @@ -925,7 +925,7 @@ pub unsafe fn HdvReadGuestMemory(requestor: *const ::core::ffi::c_void, guestphy extern "system" { fn HdvReadGuestMemory(requestor: *const ::core::ffi::c_void, guestphysicaladdress: u64, bytecount: u32, buffer: *mut u8) -> ::windows::core::HRESULT; } - HdvReadGuestMemory(::core::mem::transmute(requestor), guestphysicaladdress, buffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buffer))).ok() + HdvReadGuestMemory(::core::mem::transmute(requestor), guestphysicaladdress, buffer.len() as _, ::core::mem::transmute(buffer.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -965,7 +965,7 @@ pub unsafe fn HdvWriteGuestMemory(requestor: *const ::core::ffi::c_void, guestph extern "system" { fn HdvWriteGuestMemory(requestor: *const ::core::ffi::c_void, guestphysicaladdress: u64, bytecount: u32, buffer: *const u8) -> ::windows::core::HRESULT; } - HdvWriteGuestMemory(::core::mem::transmute(requestor), guestphysicaladdress, buffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(buffer))).ok() + HdvWriteGuestMemory(::core::mem::transmute(requestor), guestphysicaladdress, buffer.len() as _, ::core::mem::transmute(buffer.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] pub const IOCTL_VMGENCOUNTER_READ: u32 = 3325956u32; @@ -1486,21 +1486,21 @@ impl ::core::fmt::Debug for REGISTER_ID { } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn ReadGuestPhysicalAddress(vmsavedstatedumphandle: *mut ::core::ffi::c_void, physicaladdress: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { +pub unsafe fn ReadGuestPhysicalAddress(vmsavedstatedumphandle: *mut ::core::ffi::c_void, physicaladdress: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ReadGuestPhysicalAddress(vmsavedstatedumphandle: *mut ::core::ffi::c_void, physicaladdress: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT; } - ReadGuestPhysicalAddress(::core::mem::transmute(vmsavedstatedumphandle), physicaladdress, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + ReadGuestPhysicalAddress(::core::mem::transmute(vmsavedstatedumphandle), physicaladdress, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn ReadGuestRawSavedMemory(vmsavedstatedumphandle: *mut ::core::ffi::c_void, rawsavedmemoryoffset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { +pub unsafe fn ReadGuestRawSavedMemory(vmsavedstatedumphandle: *mut ::core::ffi::c_void, rawsavedmemoryoffset: u64, buffer: &mut [u8], bytesread: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ReadGuestRawSavedMemory(vmsavedstatedumphandle: *mut ::core::ffi::c_void, rawsavedmemoryoffset: u64, buffer: *mut ::core::ffi::c_void, buffersize: u32, bytesread: *mut u32) -> ::windows::core::HRESULT; } - ReadGuestRawSavedMemory(::core::mem::transmute(vmsavedstatedumphandle), rawsavedmemoryoffset, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(bytesread)).ok() + ReadGuestRawSavedMemory(::core::mem::transmute(vmsavedstatedumphandle), rawsavedmemoryoffset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(bytesread)).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] @@ -8002,7 +8002,7 @@ where } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvAdviseGpaRange<'a, P0>(partition: P0, gparanges: &[WHV_MEMORY_RANGE_ENTRY], advice: WHV_ADVISE_GPA_RANGE_CODE, advicebuffer: *const ::core::ffi::c_void, advicebuffersizeinbytes: u32) -> ::windows::core::Result<()> +pub unsafe fn WHvAdviseGpaRange<'a, P0>(partition: P0, gparanges: &[WHV_MEMORY_RANGE_ENTRY], advice: WHV_ADVISE_GPA_RANGE_CODE, advicebuffer: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8010,18 +8010,18 @@ where extern "system" { fn WHvAdviseGpaRange(partition: WHV_PARTITION_HANDLE, gparanges: *const WHV_MEMORY_RANGE_ENTRY, gparangescount: u32, advice: WHV_ADVISE_GPA_RANGE_CODE, advicebuffer: *const ::core::ffi::c_void, advicebuffersizeinbytes: u32) -> ::windows::core::HRESULT; } - WHvAdviseGpaRange(partition.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(gparanges)), gparanges.len() as _, advice, ::core::mem::transmute(advicebuffer), advicebuffersizeinbytes).ok() + WHvAdviseGpaRange(partition.into(), ::core::mem::transmute(gparanges.as_ptr()), gparanges.len() as _, advice, ::core::mem::transmute(advicebuffer.as_ptr()), advicebuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WHvAllocateVpciResource(providerid: ::core::option::Option<&::windows::core::GUID>, flags: WHV_ALLOCATE_VPCI_RESOURCE_FLAGS, resourcedescriptor: &[u8]) -> ::windows::core::Result { +pub unsafe fn WHvAllocateVpciResource(providerid: ::core::option::Option<&::windows::core::GUID>, flags: WHV_ALLOCATE_VPCI_RESOURCE_FLAGS, resourcedescriptor: ::core::option::Option<&[u8]>) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WHvAllocateVpciResource(providerid: *const ::windows::core::GUID, flags: WHV_ALLOCATE_VPCI_RESOURCE_FLAGS, resourcedescriptor: *const ::core::ffi::c_void, resourcedescriptorsizeinbytes: u32, vpciresource: *mut super::super::Foundation::HANDLE) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - WHvAllocateVpciResource(::core::mem::transmute(providerid), flags, ::core::mem::transmute(::windows::core::as_ptr_or_null(resourcedescriptor)), resourcedescriptor.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + WHvAllocateVpciResource(::core::mem::transmute(providerid), flags, ::core::mem::transmute(resourcedescriptor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), resourcedescriptor.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] @@ -8118,7 +8118,7 @@ where extern "system" { fn WHvCreateVirtualProcessor2(partition: WHV_PARTITION_HANDLE, vpindex: u32, properties: *const WHV_VIRTUAL_PROCESSOR_PROPERTY, propertycount: u32) -> ::windows::core::HRESULT; } - WHvCreateVirtualProcessor2(partition.into(), vpindex, ::core::mem::transmute(::windows::core::as_ptr_or_null(properties)), properties.len() as _).ok() + WHvCreateVirtualProcessor2(partition.into(), vpindex, ::core::mem::transmute(properties.as_ptr()), properties.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8235,12 +8235,12 @@ pub unsafe fn WHvEmulatorTryMmioEmulation(emulator: *const ::core::ffi::c_void, } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvGetCapability(capabilitycode: WHV_CAPABILITY_CODE, capabilitybuffer: *mut ::core::ffi::c_void, capabilitybuffersizeinbytes: u32, writtensizeinbytes: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { +pub unsafe fn WHvGetCapability(capabilitycode: WHV_CAPABILITY_CODE, capabilitybuffer: &mut [u8], writtensizeinbytes: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WHvGetCapability(capabilitycode: WHV_CAPABILITY_CODE, capabilitybuffer: *mut ::core::ffi::c_void, capabilitybuffersizeinbytes: u32, writtensizeinbytes: *mut u32) -> ::windows::core::HRESULT; } - WHvGetCapability(capabilitycode, ::core::mem::transmute(capabilitybuffer), capabilitybuffersizeinbytes, ::core::mem::transmute(writtensizeinbytes)).ok() + WHvGetCapability(capabilitycode, ::core::mem::transmute(capabilitybuffer.as_ptr()), capabilitybuffer.len() as _, ::core::mem::transmute(writtensizeinbytes)).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] @@ -8252,11 +8252,11 @@ where extern "system" { fn WHvGetInterruptTargetVpSet(partition: WHV_PARTITION_HANDLE, destination: u64, destinationmode: WHV_INTERRUPT_DESTINATION_MODE, targetvps: *mut u32, vpcount: u32, targetvpcount: *mut u32) -> ::windows::core::HRESULT; } - WHvGetInterruptTargetVpSet(partition.into(), destination, destinationmode, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(targetvps)), targetvps.len() as _, ::core::mem::transmute(targetvpcount)).ok() + WHvGetInterruptTargetVpSet(partition.into(), destination, destinationmode, ::core::mem::transmute(targetvps.as_ptr()), targetvps.len() as _, ::core::mem::transmute(targetvpcount)).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvGetPartitionCounters<'a, P0>(partition: P0, counterset: WHV_PARTITION_COUNTER_SET, buffer: *mut ::core::ffi::c_void, buffersizeinbytes: u32, byteswritten: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> +pub unsafe fn WHvGetPartitionCounters<'a, P0>(partition: P0, counterset: WHV_PARTITION_COUNTER_SET, buffer: &mut [u8], byteswritten: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8264,11 +8264,11 @@ where extern "system" { fn WHvGetPartitionCounters(partition: WHV_PARTITION_HANDLE, counterset: WHV_PARTITION_COUNTER_SET, buffer: *mut ::core::ffi::c_void, buffersizeinbytes: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT; } - WHvGetPartitionCounters(partition.into(), counterset, ::core::mem::transmute(buffer), buffersizeinbytes, ::core::mem::transmute(byteswritten)).ok() + WHvGetPartitionCounters(partition.into(), counterset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(byteswritten)).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvGetPartitionProperty<'a, P0>(partition: P0, propertycode: WHV_PARTITION_PROPERTY_CODE, propertybuffer: *mut ::core::ffi::c_void, propertybuffersizeinbytes: u32, writtensizeinbytes: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> +pub unsafe fn WHvGetPartitionProperty<'a, P0>(partition: P0, propertycode: WHV_PARTITION_PROPERTY_CODE, propertybuffer: &mut [u8], writtensizeinbytes: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8276,11 +8276,11 @@ where extern "system" { fn WHvGetPartitionProperty(partition: WHV_PARTITION_HANDLE, propertycode: WHV_PARTITION_PROPERTY_CODE, propertybuffer: *mut ::core::ffi::c_void, propertybuffersizeinbytes: u32, writtensizeinbytes: *mut u32) -> ::windows::core::HRESULT; } - WHvGetPartitionProperty(partition.into(), propertycode, ::core::mem::transmute(propertybuffer), propertybuffersizeinbytes, ::core::mem::transmute(writtensizeinbytes)).ok() + WHvGetPartitionProperty(partition.into(), propertycode, ::core::mem::transmute(propertybuffer.as_ptr()), propertybuffer.len() as _, ::core::mem::transmute(writtensizeinbytes)).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvGetVirtualProcessorCounters<'a, P0>(partition: P0, vpindex: u32, counterset: WHV_PROCESSOR_COUNTER_SET, buffer: *mut ::core::ffi::c_void, buffersizeinbytes: u32, byteswritten: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> +pub unsafe fn WHvGetVirtualProcessorCounters<'a, P0>(partition: P0, vpindex: u32, counterset: WHV_PROCESSOR_COUNTER_SET, buffer: &mut [u8], byteswritten: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8288,7 +8288,7 @@ where extern "system" { fn WHvGetVirtualProcessorCounters(partition: WHV_PARTITION_HANDLE, vpindex: u32, counterset: WHV_PROCESSOR_COUNTER_SET, buffer: *mut ::core::ffi::c_void, buffersizeinbytes: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT; } - WHvGetVirtualProcessorCounters(partition.into(), vpindex, counterset, ::core::mem::transmute(buffer), buffersizeinbytes, ::core::mem::transmute(byteswritten)).ok() + WHvGetVirtualProcessorCounters(partition.into(), vpindex, counterset, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(byteswritten)).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] @@ -8305,7 +8305,7 @@ where } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvGetVirtualProcessorInterruptControllerState<'a, P0>(partition: P0, vpindex: u32, state: *mut ::core::ffi::c_void, statesize: u32, writtensize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> +pub unsafe fn WHvGetVirtualProcessorInterruptControllerState<'a, P0>(partition: P0, vpindex: u32, state: &mut [u8], writtensize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8313,11 +8313,11 @@ where extern "system" { fn WHvGetVirtualProcessorInterruptControllerState(partition: WHV_PARTITION_HANDLE, vpindex: u32, state: *mut ::core::ffi::c_void, statesize: u32, writtensize: *mut u32) -> ::windows::core::HRESULT; } - WHvGetVirtualProcessorInterruptControllerState(partition.into(), vpindex, ::core::mem::transmute(state), statesize, ::core::mem::transmute(writtensize)).ok() + WHvGetVirtualProcessorInterruptControllerState(partition.into(), vpindex, ::core::mem::transmute(state.as_ptr()), state.len() as _, ::core::mem::transmute(writtensize)).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvGetVirtualProcessorInterruptControllerState2<'a, P0>(partition: P0, vpindex: u32, state: *mut ::core::ffi::c_void, statesize: u32, writtensize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> +pub unsafe fn WHvGetVirtualProcessorInterruptControllerState2<'a, P0>(partition: P0, vpindex: u32, state: &mut [u8], writtensize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8325,11 +8325,11 @@ where extern "system" { fn WHvGetVirtualProcessorInterruptControllerState2(partition: WHV_PARTITION_HANDLE, vpindex: u32, state: *mut ::core::ffi::c_void, statesize: u32, writtensize: *mut u32) -> ::windows::core::HRESULT; } - WHvGetVirtualProcessorInterruptControllerState2(partition.into(), vpindex, ::core::mem::transmute(state), statesize, ::core::mem::transmute(writtensize)).ok() + WHvGetVirtualProcessorInterruptControllerState2(partition.into(), vpindex, ::core::mem::transmute(state.as_ptr()), state.len() as _, ::core::mem::transmute(writtensize)).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvGetVirtualProcessorRegisters<'a, P0>(partition: P0, vpindex: u32, registernames: &WHV_REGISTER_NAME, registercount: u32, registervalues: &mut WHV_REGISTER_VALUE) -> ::windows::core::Result<()> +pub unsafe fn WHvGetVirtualProcessorRegisters<'a, P0>(partition: P0, vpindex: u32, registernames: *const WHV_REGISTER_NAME, registercount: u32, registervalues: *mut WHV_REGISTER_VALUE) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8341,7 +8341,7 @@ where } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvGetVirtualProcessorState<'a, P0>(partition: P0, vpindex: u32, statetype: WHV_VIRTUAL_PROCESSOR_STATE_TYPE, buffer: *mut ::core::ffi::c_void, buffersizeinbytes: u32, byteswritten: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> +pub unsafe fn WHvGetVirtualProcessorState<'a, P0>(partition: P0, vpindex: u32, statetype: WHV_VIRTUAL_PROCESSOR_STATE_TYPE, buffer: &mut [u8], byteswritten: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8349,11 +8349,11 @@ where extern "system" { fn WHvGetVirtualProcessorState(partition: WHV_PARTITION_HANDLE, vpindex: u32, statetype: WHV_VIRTUAL_PROCESSOR_STATE_TYPE, buffer: *mut ::core::ffi::c_void, buffersizeinbytes: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT; } - WHvGetVirtualProcessorState(partition.into(), vpindex, statetype, ::core::mem::transmute(buffer), buffersizeinbytes, ::core::mem::transmute(byteswritten)).ok() + WHvGetVirtualProcessorState(partition.into(), vpindex, statetype, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(byteswritten)).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvGetVirtualProcessorXsaveState<'a, P0>(partition: P0, vpindex: u32, buffer: *mut ::core::ffi::c_void, buffersizeinbytes: u32, byteswritten: &mut u32) -> ::windows::core::Result<()> +pub unsafe fn WHvGetVirtualProcessorXsaveState<'a, P0>(partition: P0, vpindex: u32, buffer: &mut [u8], byteswritten: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8361,11 +8361,11 @@ where extern "system" { fn WHvGetVirtualProcessorXsaveState(partition: WHV_PARTITION_HANDLE, vpindex: u32, buffer: *mut ::core::ffi::c_void, buffersizeinbytes: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT; } - WHvGetVirtualProcessorXsaveState(partition.into(), vpindex, ::core::mem::transmute(buffer), buffersizeinbytes, ::core::mem::transmute(byteswritten)).ok() + WHvGetVirtualProcessorXsaveState(partition.into(), vpindex, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(byteswritten)).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvGetVpciDeviceInterruptTarget<'a, P0>(partition: P0, logicaldeviceid: u64, index: u32, multimessagenumber: u32, target: &mut WHV_VPCI_INTERRUPT_TARGET, targetsizeinbytes: u32, byteswritten: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> +pub unsafe fn WHvGetVpciDeviceInterruptTarget<'a, P0>(partition: P0, logicaldeviceid: u64, index: u32, multimessagenumber: u32, target: &mut [u8], byteswritten: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8373,11 +8373,11 @@ where extern "system" { fn WHvGetVpciDeviceInterruptTarget(partition: WHV_PARTITION_HANDLE, logicaldeviceid: u64, index: u32, multimessagenumber: u32, target: *mut WHV_VPCI_INTERRUPT_TARGET, targetsizeinbytes: u32, byteswritten: *mut u32) -> ::windows::core::HRESULT; } - WHvGetVpciDeviceInterruptTarget(partition.into(), logicaldeviceid, index, multimessagenumber, ::core::mem::transmute(target), targetsizeinbytes, ::core::mem::transmute(byteswritten)).ok() + WHvGetVpciDeviceInterruptTarget(partition.into(), logicaldeviceid, index, multimessagenumber, ::core::mem::transmute(target.as_ptr()), target.len() as _, ::core::mem::transmute(byteswritten)).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvGetVpciDeviceNotification<'a, P0>(partition: P0, logicaldeviceid: u64, notification: &mut WHV_VPCI_DEVICE_NOTIFICATION, notificationsizeinbytes: u32) -> ::windows::core::Result<()> +pub unsafe fn WHvGetVpciDeviceNotification<'a, P0>(partition: P0, logicaldeviceid: u64, notification: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8385,11 +8385,11 @@ where extern "system" { fn WHvGetVpciDeviceNotification(partition: WHV_PARTITION_HANDLE, logicaldeviceid: u64, notification: *mut WHV_VPCI_DEVICE_NOTIFICATION, notificationsizeinbytes: u32) -> ::windows::core::HRESULT; } - WHvGetVpciDeviceNotification(partition.into(), logicaldeviceid, ::core::mem::transmute(notification), notificationsizeinbytes).ok() + WHvGetVpciDeviceNotification(partition.into(), logicaldeviceid, ::core::mem::transmute(notification.as_ptr()), notification.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvGetVpciDeviceProperty<'a, P0>(partition: P0, logicaldeviceid: u64, propertycode: WHV_VPCI_DEVICE_PROPERTY_CODE, propertybuffer: *mut ::core::ffi::c_void, propertybuffersizeinbytes: u32, writtensizeinbytes: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> +pub unsafe fn WHvGetVpciDeviceProperty<'a, P0>(partition: P0, logicaldeviceid: u64, propertycode: WHV_VPCI_DEVICE_PROPERTY_CODE, propertybuffer: &mut [u8], writtensizeinbytes: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8397,7 +8397,7 @@ where extern "system" { fn WHvGetVpciDeviceProperty(partition: WHV_PARTITION_HANDLE, logicaldeviceid: u64, propertycode: WHV_VPCI_DEVICE_PROPERTY_CODE, propertybuffer: *mut ::core::ffi::c_void, propertybuffersizeinbytes: u32, writtensizeinbytes: *mut u32) -> ::windows::core::HRESULT; } - WHvGetVpciDeviceProperty(partition.into(), logicaldeviceid, propertycode, ::core::mem::transmute(propertybuffer), propertybuffersizeinbytes, ::core::mem::transmute(writtensizeinbytes)).ok() + WHvGetVpciDeviceProperty(partition.into(), logicaldeviceid, propertycode, ::core::mem::transmute(propertybuffer.as_ptr()), propertybuffer.len() as _, ::core::mem::transmute(writtensizeinbytes)).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] @@ -8451,7 +8451,7 @@ where } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvPostVirtualProcessorSynicMessage<'a, P0>(partition: P0, vpindex: u32, sintindex: u32, message: *const ::core::ffi::c_void, messagesizeinbytes: u32) -> ::windows::core::Result<()> +pub unsafe fn WHvPostVirtualProcessorSynicMessage<'a, P0>(partition: P0, vpindex: u32, sintindex: u32, message: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8459,11 +8459,11 @@ where extern "system" { fn WHvPostVirtualProcessorSynicMessage(partition: WHV_PARTITION_HANDLE, vpindex: u32, sintindex: u32, message: *const ::core::ffi::c_void, messagesizeinbytes: u32) -> ::windows::core::HRESULT; } - WHvPostVirtualProcessorSynicMessage(partition.into(), vpindex, sintindex, ::core::mem::transmute(message), messagesizeinbytes).ok() + WHvPostVirtualProcessorSynicMessage(partition.into(), vpindex, sintindex, ::core::mem::transmute(message.as_ptr()), message.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvQueryGpaRangeDirtyBitmap<'a, P0>(partition: P0, guestaddress: u64, rangesizeinbytes: u64, bitmap: ::core::option::Option<&mut u64>, bitmapsizeinbytes: u32) -> ::windows::core::Result<()> +pub unsafe fn WHvQueryGpaRangeDirtyBitmap<'a, P0>(partition: P0, guestaddress: u64, rangesizeinbytes: u64, bitmap: ::core::option::Option<&mut [u8]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8471,11 +8471,11 @@ where extern "system" { fn WHvQueryGpaRangeDirtyBitmap(partition: WHV_PARTITION_HANDLE, guestaddress: u64, rangesizeinbytes: u64, bitmap: *mut u64, bitmapsizeinbytes: u32) -> ::windows::core::HRESULT; } - WHvQueryGpaRangeDirtyBitmap(partition.into(), guestaddress, rangesizeinbytes, ::core::mem::transmute(bitmap), bitmapsizeinbytes).ok() + WHvQueryGpaRangeDirtyBitmap(partition.into(), guestaddress, rangesizeinbytes, ::core::mem::transmute(bitmap.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), bitmap.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvReadGpaRange<'a, P0>(partition: P0, vpindex: u32, guestaddress: u64, controls: WHV_ACCESS_GPA_CONTROLS, data: *mut ::core::ffi::c_void, datasizeinbytes: u32) -> ::windows::core::Result<()> +pub unsafe fn WHvReadGpaRange<'a, P0>(partition: P0, vpindex: u32, guestaddress: u64, controls: WHV_ACCESS_GPA_CONTROLS, data: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8483,7 +8483,7 @@ where extern "system" { fn WHvReadGpaRange(partition: WHV_PARTITION_HANDLE, vpindex: u32, guestaddress: u64, controls: WHV_ACCESS_GPA_CONTROLS, data: *mut ::core::ffi::c_void, datasizeinbytes: u32) -> ::windows::core::HRESULT; } - WHvReadGpaRange(partition.into(), vpindex, guestaddress, ::core::mem::transmute(controls), ::core::mem::transmute(data), datasizeinbytes).ok() + WHvReadGpaRange(partition.into(), vpindex, guestaddress, ::core::mem::transmute(controls), ::core::mem::transmute(data.as_ptr()), data.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] @@ -8573,7 +8573,7 @@ where } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvRunVirtualProcessor<'a, P0>(partition: P0, vpindex: u32, exitcontext: *mut ::core::ffi::c_void, exitcontextsizeinbytes: u32) -> ::windows::core::Result<()> +pub unsafe fn WHvRunVirtualProcessor<'a, P0>(partition: P0, vpindex: u32, exitcontext: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8581,7 +8581,7 @@ where extern "system" { fn WHvRunVirtualProcessor(partition: WHV_PARTITION_HANDLE, vpindex: u32, exitcontext: *mut ::core::ffi::c_void, exitcontextsizeinbytes: u32) -> ::windows::core::HRESULT; } - WHvRunVirtualProcessor(partition.into(), vpindex, ::core::mem::transmute(exitcontext), exitcontextsizeinbytes).ok() + WHvRunVirtualProcessor(partition.into(), vpindex, ::core::mem::transmute(exitcontext.as_ptr()), exitcontext.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] @@ -8597,7 +8597,7 @@ where } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvSetPartitionProperty<'a, P0>(partition: P0, propertycode: WHV_PARTITION_PROPERTY_CODE, propertybuffer: *const ::core::ffi::c_void, propertybuffersizeinbytes: u32) -> ::windows::core::Result<()> +pub unsafe fn WHvSetPartitionProperty<'a, P0>(partition: P0, propertycode: WHV_PARTITION_PROPERTY_CODE, propertybuffer: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8605,11 +8605,11 @@ where extern "system" { fn WHvSetPartitionProperty(partition: WHV_PARTITION_HANDLE, propertycode: WHV_PARTITION_PROPERTY_CODE, propertybuffer: *const ::core::ffi::c_void, propertybuffersizeinbytes: u32) -> ::windows::core::HRESULT; } - WHvSetPartitionProperty(partition.into(), propertycode, ::core::mem::transmute(propertybuffer), propertybuffersizeinbytes).ok() + WHvSetPartitionProperty(partition.into(), propertycode, ::core::mem::transmute(propertybuffer.as_ptr()), propertybuffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvSetVirtualProcessorInterruptControllerState<'a, P0>(partition: P0, vpindex: u32, state: *const ::core::ffi::c_void, statesize: u32) -> ::windows::core::Result<()> +pub unsafe fn WHvSetVirtualProcessorInterruptControllerState<'a, P0>(partition: P0, vpindex: u32, state: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8617,11 +8617,11 @@ where extern "system" { fn WHvSetVirtualProcessorInterruptControllerState(partition: WHV_PARTITION_HANDLE, vpindex: u32, state: *const ::core::ffi::c_void, statesize: u32) -> ::windows::core::HRESULT; } - WHvSetVirtualProcessorInterruptControllerState(partition.into(), vpindex, ::core::mem::transmute(state), statesize).ok() + WHvSetVirtualProcessorInterruptControllerState(partition.into(), vpindex, ::core::mem::transmute(state.as_ptr()), state.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvSetVirtualProcessorInterruptControllerState2<'a, P0>(partition: P0, vpindex: u32, state: *const ::core::ffi::c_void, statesize: u32) -> ::windows::core::Result<()> +pub unsafe fn WHvSetVirtualProcessorInterruptControllerState2<'a, P0>(partition: P0, vpindex: u32, state: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8629,11 +8629,11 @@ where extern "system" { fn WHvSetVirtualProcessorInterruptControllerState2(partition: WHV_PARTITION_HANDLE, vpindex: u32, state: *const ::core::ffi::c_void, statesize: u32) -> ::windows::core::HRESULT; } - WHvSetVirtualProcessorInterruptControllerState2(partition.into(), vpindex, ::core::mem::transmute(state), statesize).ok() + WHvSetVirtualProcessorInterruptControllerState2(partition.into(), vpindex, ::core::mem::transmute(state.as_ptr()), state.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvSetVirtualProcessorRegisters<'a, P0>(partition: P0, vpindex: u32, registernames: &WHV_REGISTER_NAME, registercount: u32, registervalues: &WHV_REGISTER_VALUE) -> ::windows::core::Result<()> +pub unsafe fn WHvSetVirtualProcessorRegisters<'a, P0>(partition: P0, vpindex: u32, registernames: *const WHV_REGISTER_NAME, registercount: u32, registervalues: *const WHV_REGISTER_VALUE) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8645,7 +8645,7 @@ where } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvSetVirtualProcessorState<'a, P0>(partition: P0, vpindex: u32, statetype: WHV_VIRTUAL_PROCESSOR_STATE_TYPE, buffer: *const ::core::ffi::c_void, buffersizeinbytes: u32) -> ::windows::core::Result<()> +pub unsafe fn WHvSetVirtualProcessorState<'a, P0>(partition: P0, vpindex: u32, statetype: WHV_VIRTUAL_PROCESSOR_STATE_TYPE, buffer: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8653,11 +8653,11 @@ where extern "system" { fn WHvSetVirtualProcessorState(partition: WHV_PARTITION_HANDLE, vpindex: u32, statetype: WHV_VIRTUAL_PROCESSOR_STATE_TYPE, buffer: *const ::core::ffi::c_void, buffersizeinbytes: u32) -> ::windows::core::HRESULT; } - WHvSetVirtualProcessorState(partition.into(), vpindex, statetype, ::core::mem::transmute(buffer), buffersizeinbytes).ok() + WHvSetVirtualProcessorState(partition.into(), vpindex, statetype, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvSetVirtualProcessorXsaveState<'a, P0>(partition: P0, vpindex: u32, buffer: *const ::core::ffi::c_void, buffersizeinbytes: u32) -> ::windows::core::Result<()> +pub unsafe fn WHvSetVirtualProcessorXsaveState<'a, P0>(partition: P0, vpindex: u32, buffer: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8665,7 +8665,7 @@ where extern "system" { fn WHvSetVirtualProcessorXsaveState(partition: WHV_PARTITION_HANDLE, vpindex: u32, buffer: *const ::core::ffi::c_void, buffersizeinbytes: u32) -> ::windows::core::HRESULT; } - WHvSetVirtualProcessorXsaveState(partition.into(), vpindex, ::core::mem::transmute(buffer), buffersizeinbytes).ok() + WHvSetVirtualProcessorXsaveState(partition.into(), vpindex, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`, `\"Win32_System_Power\"`*"] #[cfg(feature = "Win32_System_Power")] @@ -8806,7 +8806,7 @@ where } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] -pub unsafe fn WHvWriteGpaRange<'a, P0>(partition: P0, vpindex: u32, guestaddress: u64, controls: WHV_ACCESS_GPA_CONTROLS, data: *const ::core::ffi::c_void, datasizeinbytes: u32) -> ::windows::core::Result<()> +pub unsafe fn WHvWriteGpaRange<'a, P0>(partition: P0, vpindex: u32, guestaddress: u64, controls: WHV_ACCESS_GPA_CONTROLS, data: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -8814,7 +8814,7 @@ where extern "system" { fn WHvWriteGpaRange(partition: WHV_PARTITION_HANDLE, vpindex: u32, guestaddress: u64, controls: WHV_ACCESS_GPA_CONTROLS, data: *const ::core::ffi::c_void, datasizeinbytes: u32) -> ::windows::core::HRESULT; } - WHvWriteGpaRange(partition.into(), vpindex, guestaddress, ::core::mem::transmute(controls), ::core::mem::transmute(data), datasizeinbytes).ok() + WHvWriteGpaRange(partition.into(), vpindex, guestaddress, ::core::mem::transmute(controls), ::core::mem::transmute(data.as_ptr()), data.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Hypervisor\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/System/IO/mod.rs b/crates/libs/windows/src/Windows/Win32/System/IO/mod.rs index d3ee241c04..48572bd04a 100644 --- a/crates/libs/windows/src/Windows/Win32/System/IO/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/IO/mod.rs @@ -68,7 +68,7 @@ where #[doc = "*Required features: `\"Win32_System_IO\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn DeviceIoControl<'a, P0>(hdevice: P0, dwiocontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesreturned: ::core::option::Option<&mut u32>, lpoverlapped: ::core::option::Option<&mut OVERLAPPED>) -> super::super::Foundation::BOOL +pub unsafe fn DeviceIoControl<'a, P0>(hdevice: P0, dwiocontrolcode: u32, lpinbuffer: ::core::option::Option<&[u8]>, lpoutbuffer: ::core::option::Option<&mut [u8]>, lpbytesreturned: ::core::option::Option<&mut u32>, lpoverlapped: ::core::option::Option<&mut OVERLAPPED>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -76,7 +76,7 @@ where extern "system" { fn DeviceIoControl(hdevice: super::super::Foundation::HANDLE, dwiocontrolcode: u32, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesreturned: *mut u32, lpoverlapped: *mut OVERLAPPED) -> super::super::Foundation::BOOL; } - DeviceIoControl(hdevice.into(), dwiocontrolcode, ::core::mem::transmute(lpinbuffer), ninbuffersize, ::core::mem::transmute(lpoutbuffer), noutbuffersize, ::core::mem::transmute(lpbytesreturned), ::core::mem::transmute(lpoverlapped)) + DeviceIoControl(hdevice.into(), dwiocontrolcode, ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesreturned), ::core::mem::transmute(lpoverlapped)) } #[doc = "*Required features: `\"Win32_System_IO\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -131,7 +131,7 @@ where extern "system" { fn GetQueuedCompletionStatusEx(completionport: super::super::Foundation::HANDLE, lpcompletionportentries: *mut OVERLAPPED_ENTRY, ulcount: u32, ulnumentriesremoved: *mut u32, dwmilliseconds: u32, falertable: super::super::Foundation::BOOL) -> super::super::Foundation::BOOL; } - GetQueuedCompletionStatusEx(completionport.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpcompletionportentries)), lpcompletionportentries.len() as _, ::core::mem::transmute(ulnumentriesremoved), dwmilliseconds, falertable.into()) + GetQueuedCompletionStatusEx(completionport.into(), ::core::mem::transmute(lpcompletionportentries.as_ptr()), lpcompletionportentries.len() as _, ::core::mem::transmute(ulnumentriesremoved), dwmilliseconds, falertable.into()) } #[doc = "*Required features: `\"Win32_System_IO\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/System/Iis/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Iis/mod.rs index ee0fd0b23b..fe36d82283 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Iis/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Iis/mod.rs @@ -442,7 +442,7 @@ pub struct AsyncIFtpRoleProvider_Vtbl { pub struct AsyncIMSAdminBaseSinkW(::windows::core::IUnknown); impl AsyncIMSAdminBaseSinkW { pub unsafe fn Begin_SinkNotify(&self, pcochangelist: &[MD_CHANGE_OBJECT_W]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Begin_SinkNotify)(::windows::core::Interface::as_raw(self), pcochangelist.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pcochangelist))).ok() + (::windows::core::Interface::vtable(self).Begin_SinkNotify)(::windows::core::Interface::as_raw(self), pcochangelist.len() as _, ::core::mem::transmute(pcochangelist.as_ptr())).ok() } pub unsafe fn Finish_SinkNotify(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Finish_SinkNotify)(::windows::core::Interface::as_raw(self)).ok() @@ -2861,7 +2861,7 @@ impl IMSAdminBase2W { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.EnumKeys)(::windows::core::Interface::as_raw(self), hmdhandle, pszmdpath.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszmdname)), dwmdenumobjectindex).ok() + (::windows::core::Interface::vtable(self).base__.EnumKeys)(::windows::core::Interface::as_raw(self), hmdhandle, pszmdpath.into(), ::core::mem::transmute(pszmdname.as_ptr()), dwmdenumobjectindex).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2931,7 +2931,7 @@ impl IMSAdminBase2W { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.GetDataPaths)(::windows::core::Interface::as_raw(self), hmdhandle, pszmdpath.into(), dwmdidentifier, dwmddatatype, pszbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), ::core::mem::transmute(pdwmdrequiredbuffersize)).ok() + (::windows::core::Interface::vtable(self).base__.GetDataPaths)(::windows::core::Interface::as_raw(self), hmdhandle, pszmdpath.into(), dwmdidentifier, dwmddatatype, pszbuffer.len() as _, ::core::mem::transmute(pszbuffer.as_ptr()), ::core::mem::transmute(pdwmdrequiredbuffersize)).ok() } pub unsafe fn OpenKey<'a, P0>(&self, hmdhandle: u32, pszmdpath: P0, dwmdaccessrequested: u32, dwmdtimeout: u32) -> ::windows::core::Result where @@ -3003,7 +3003,7 @@ impl IMSAdminBase2W { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn EnumBackups(&self, pszmdbackuplocation: &mut [u16; 256], pdwmdversion: &mut u32, pftmdbackuptime: &mut super::super::Foundation::FILETIME, dwmdenumindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.EnumBackups)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszmdbackuplocation)), ::core::mem::transmute(pdwmdversion), ::core::mem::transmute(pftmdbackuptime), dwmdenumindex).ok() + (::windows::core::Interface::vtable(self).base__.EnumBackups)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszmdbackuplocation.as_ptr()), ::core::mem::transmute(pdwmdversion), ::core::mem::transmute(pftmdbackuptime), dwmdenumindex).ok() } pub unsafe fn DeleteBackup<'a, P0>(&self, pszmdbackuplocation: P0, dwmdversion: u32) -> ::windows::core::Result<()> where @@ -3058,7 +3058,7 @@ impl IMSAdminBase2W { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn EnumHistory(&self, pszmdhistorylocation: &mut [u16; 256], pdwmdmajorversion: &mut u32, pdwmdminorversion: &mut u32, pftmdhistorytime: &mut super::super::Foundation::FILETIME, dwmdenumindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).EnumHistory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszmdhistorylocation)), ::core::mem::transmute(pdwmdmajorversion), ::core::mem::transmute(pdwmdminorversion), ::core::mem::transmute(pftmdhistorytime), dwmdenumindex).ok() + (::windows::core::Interface::vtable(self).EnumHistory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszmdhistorylocation.as_ptr()), ::core::mem::transmute(pdwmdmajorversion), ::core::mem::transmute(pdwmdminorversion), ::core::mem::transmute(pftmdhistorytime), dwmdenumindex).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3151,7 +3151,7 @@ impl IMSAdminBase3W { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.EnumKeys)(::windows::core::Interface::as_raw(self), hmdhandle, pszmdpath.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszmdname)), dwmdenumobjectindex).ok() + (::windows::core::Interface::vtable(self).base__.base__.EnumKeys)(::windows::core::Interface::as_raw(self), hmdhandle, pszmdpath.into(), ::core::mem::transmute(pszmdname.as_ptr()), dwmdenumobjectindex).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3221,7 +3221,7 @@ impl IMSAdminBase3W { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).base__.base__.GetDataPaths)(::windows::core::Interface::as_raw(self), hmdhandle, pszmdpath.into(), dwmdidentifier, dwmddatatype, pszbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), ::core::mem::transmute(pdwmdrequiredbuffersize)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetDataPaths)(::windows::core::Interface::as_raw(self), hmdhandle, pszmdpath.into(), dwmdidentifier, dwmddatatype, pszbuffer.len() as _, ::core::mem::transmute(pszbuffer.as_ptr()), ::core::mem::transmute(pdwmdrequiredbuffersize)).ok() } pub unsafe fn OpenKey<'a, P0>(&self, hmdhandle: u32, pszmdpath: P0, dwmdaccessrequested: u32, dwmdtimeout: u32) -> ::windows::core::Result where @@ -3293,7 +3293,7 @@ impl IMSAdminBase3W { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn EnumBackups(&self, pszmdbackuplocation: &mut [u16; 256], pdwmdversion: &mut u32, pftmdbackuptime: &mut super::super::Foundation::FILETIME, dwmdenumindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.EnumBackups)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszmdbackuplocation)), ::core::mem::transmute(pdwmdversion), ::core::mem::transmute(pftmdbackuptime), dwmdenumindex).ok() + (::windows::core::Interface::vtable(self).base__.base__.EnumBackups)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszmdbackuplocation.as_ptr()), ::core::mem::transmute(pdwmdversion), ::core::mem::transmute(pftmdbackuptime), dwmdenumindex).ok() } pub unsafe fn DeleteBackup<'a, P0>(&self, pszmdbackuplocation: P0, dwmdversion: u32) -> ::windows::core::Result<()> where @@ -3348,13 +3348,13 @@ impl IMSAdminBase3W { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn EnumHistory(&self, pszmdhistorylocation: &mut [u16; 256], pdwmdmajorversion: &mut u32, pdwmdminorversion: &mut u32, pftmdhistorytime: &mut super::super::Foundation::FILETIME, dwmdenumindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.EnumHistory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszmdhistorylocation)), ::core::mem::transmute(pdwmdmajorversion), ::core::mem::transmute(pdwmdminorversion), ::core::mem::transmute(pftmdhistorytime), dwmdenumindex).ok() + (::windows::core::Interface::vtable(self).base__.EnumHistory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszmdhistorylocation.as_ptr()), ::core::mem::transmute(pdwmdmajorversion), ::core::mem::transmute(pdwmdminorversion), ::core::mem::transmute(pftmdhistorytime), dwmdenumindex).ok() } - pub unsafe fn GetChildPaths<'a, P0>(&self, hmdhandle: u32, pszmdpath: P0, pszbuffer: &mut [u16], pcchmdrequiredbuffersize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> + pub unsafe fn GetChildPaths<'a, P0>(&self, hmdhandle: u32, pszmdpath: P0, pszbuffer: ::core::option::Option<&mut [u16]>, pcchmdrequiredbuffersize: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetChildPaths)(::windows::core::Interface::as_raw(self), hmdhandle, pszmdpath.into(), pszbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), ::core::mem::transmute(pcchmdrequiredbuffersize)).ok() + (::windows::core::Interface::vtable(self).GetChildPaths)(::windows::core::Interface::as_raw(self), hmdhandle, pszmdpath.into(), pszbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pszbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcchmdrequiredbuffersize)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -3433,7 +3433,7 @@ pub struct IMSAdminBase3W_Vtbl { pub struct IMSAdminBaseSinkW(::windows::core::IUnknown); impl IMSAdminBaseSinkW { pub unsafe fn SinkNotify(&self, pcochangelist: &[MD_CHANGE_OBJECT_W]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SinkNotify)(::windows::core::Interface::as_raw(self), pcochangelist.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pcochangelist))).ok() + (::windows::core::Interface::vtable(self).SinkNotify)(::windows::core::Interface::as_raw(self), pcochangelist.len() as _, ::core::mem::transmute(pcochangelist.as_ptr())).ok() } pub unsafe fn ShutdownNotify(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ShutdownNotify)(::windows::core::Interface::as_raw(self)).ok() @@ -3507,7 +3507,7 @@ impl IMSAdminBaseW { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).EnumKeys)(::windows::core::Interface::as_raw(self), hmdhandle, pszmdpath.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszmdname)), dwmdenumobjectindex).ok() + (::windows::core::Interface::vtable(self).EnumKeys)(::windows::core::Interface::as_raw(self), hmdhandle, pszmdpath.into(), ::core::mem::transmute(pszmdname.as_ptr()), dwmdenumobjectindex).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3577,7 +3577,7 @@ impl IMSAdminBaseW { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetDataPaths)(::windows::core::Interface::as_raw(self), hmdhandle, pszmdpath.into(), dwmdidentifier, dwmddatatype, pszbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), ::core::mem::transmute(pdwmdrequiredbuffersize)).ok() + (::windows::core::Interface::vtable(self).GetDataPaths)(::windows::core::Interface::as_raw(self), hmdhandle, pszmdpath.into(), dwmdidentifier, dwmddatatype, pszbuffer.len() as _, ::core::mem::transmute(pszbuffer.as_ptr()), ::core::mem::transmute(pdwmdrequiredbuffersize)).ok() } pub unsafe fn OpenKey<'a, P0>(&self, hmdhandle: u32, pszmdpath: P0, dwmdaccessrequested: u32, dwmdtimeout: u32) -> ::windows::core::Result where @@ -3649,7 +3649,7 @@ impl IMSAdminBaseW { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn EnumBackups(&self, pszmdbackuplocation: &mut [u16; 256], pdwmdversion: &mut u32, pftmdbackuptime: &mut super::super::Foundation::FILETIME, dwmdenumindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).EnumBackups)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszmdbackuplocation)), ::core::mem::transmute(pdwmdversion), ::core::mem::transmute(pftmdbackuptime), dwmdenumindex).ok() + (::windows::core::Interface::vtable(self).EnumBackups)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszmdbackuplocation.as_ptr()), ::core::mem::transmute(pdwmdversion), ::core::mem::transmute(pftmdbackuptime), dwmdenumindex).ok() } pub unsafe fn DeleteBackup<'a, P0>(&self, pszmdbackuplocation: P0, dwmdversion: u32) -> ::windows::core::Result<()> where @@ -3755,12 +3755,12 @@ pub struct IMSAdminBaseW_Vtbl { #[repr(transparent)] pub struct IMSImpExpHelpW(::windows::core::IUnknown); impl IMSImpExpHelpW { - pub unsafe fn EnumeratePathsInFile<'a, P0, P1>(&self, pszfilename: P0, pszkeytype: P1, pszbuffer: &mut [u16], pdwmdrequiredbuffersize: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn EnumeratePathsInFile<'a, P0, P1>(&self, pszfilename: P0, pszkeytype: P1, pszbuffer: ::core::option::Option<&mut [u16]>, pdwmdrequiredbuffersize: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).EnumeratePathsInFile)(::windows::core::Interface::as_raw(self), pszfilename.into(), pszkeytype.into(), pszbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), ::core::mem::transmute(pdwmdrequiredbuffersize)).ok() + (::windows::core::Interface::vtable(self).EnumeratePathsInFile)(::windows::core::Interface::as_raw(self), pszfilename.into(), pszkeytype.into(), pszbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pszbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pdwmdrequiredbuffersize)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/System/JobObjects/mod.rs b/crates/libs/windows/src/Windows/Win32/System/JobObjects/mod.rs index e1578d97f4..25baa3a6d1 100644 --- a/crates/libs/windows/src/Windows/Win32/System/JobObjects/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/JobObjects/mod.rs @@ -48,7 +48,7 @@ pub unsafe fn CreateJobSet(userjobset: &[JOB_SET_ARRAY], flags: u32) -> super::s extern "system" { fn CreateJobSet(numjob: u32, userjobset: *const JOB_SET_ARRAY, flags: u32) -> super::super::Foundation::BOOL; } - CreateJobSet(userjobset.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(userjobset)), flags) + CreateJobSet(userjobset.len() as _, ::core::mem::transmute(userjobset.as_ptr()), flags) } #[doc = "*Required features: `\"Win32_System_JobObjects\"`*"] #[inline] @@ -1847,7 +1847,7 @@ where #[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn QueryInformationJobObject<'a, P0>(hjob: P0, jobobjectinformationclass: JOBOBJECTINFOCLASS, lpjobobjectinformation: *mut ::core::ffi::c_void, cbjobobjectinformationlength: u32, lpreturnlength: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn QueryInformationJobObject<'a, P0>(hjob: P0, jobobjectinformationclass: JOBOBJECTINFOCLASS, lpjobobjectinformation: &mut [u8], lpreturnlength: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1855,7 +1855,7 @@ where extern "system" { fn QueryInformationJobObject(hjob: super::super::Foundation::HANDLE, jobobjectinformationclass: JOBOBJECTINFOCLASS, lpjobobjectinformation: *mut ::core::ffi::c_void, cbjobobjectinformationlength: u32, lpreturnlength: *mut u32) -> super::super::Foundation::BOOL; } - QueryInformationJobObject(hjob.into(), jobobjectinformationclass, ::core::mem::transmute(lpjobobjectinformation), cbjobobjectinformationlength, ::core::mem::transmute(lpreturnlength)) + QueryInformationJobObject(hjob.into(), jobobjectinformationclass, ::core::mem::transmute(lpjobobjectinformation.as_ptr()), lpjobobjectinformation.len() as _, ::core::mem::transmute(lpreturnlength)) } #[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1874,7 +1874,7 @@ where #[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetInformationJobObject<'a, P0>(hjob: P0, jobobjectinformationclass: JOBOBJECTINFOCLASS, lpjobobjectinformation: *const ::core::ffi::c_void, cbjobobjectinformationlength: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetInformationJobObject<'a, P0>(hjob: P0, jobobjectinformationclass: JOBOBJECTINFOCLASS, lpjobobjectinformation: &[u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1882,7 +1882,7 @@ where extern "system" { fn SetInformationJobObject(hjob: super::super::Foundation::HANDLE, jobobjectinformationclass: JOBOBJECTINFOCLASS, lpjobobjectinformation: *const ::core::ffi::c_void, cbjobobjectinformationlength: u32) -> super::super::Foundation::BOOL; } - SetInformationJobObject(hjob.into(), jobobjectinformationclass, ::core::mem::transmute(lpjobobjectinformation), cbjobobjectinformationlength) + SetInformationJobObject(hjob.into(), jobobjectinformationclass, ::core::mem::transmute(lpjobobjectinformation.as_ptr()), lpjobobjectinformation.len() as _) } #[doc = "*Required features: `\"Win32_System_JobObjects\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/System/Js/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Js/mod.rs index 0b1617b99d..074cf94e05 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Js/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Js/mod.rs @@ -38,7 +38,7 @@ pub unsafe fn JsCallFunction(function: *const ::core::ffi::c_void, arguments: &[ extern "system" { fn JsCallFunction(function: *const ::core::ffi::c_void, arguments: *const *const ::core::ffi::c_void, argumentcount: u16, result: *mut *mut ::core::ffi::c_void) -> JsErrorCode; } - JsCallFunction(::core::mem::transmute(function), ::core::mem::transmute(::windows::core::as_ptr_or_null(arguments)), arguments.len() as _, ::core::mem::transmute(result)) + JsCallFunction(::core::mem::transmute(function), ::core::mem::transmute(arguments.as_ptr()), arguments.len() as _, ::core::mem::transmute(result)) } #[doc = "*Required features: `\"Win32_System_Js\"`*"] #[inline] @@ -56,7 +56,7 @@ pub unsafe fn JsConstructObject(function: *const ::core::ffi::c_void, arguments: extern "system" { fn JsConstructObject(function: *const ::core::ffi::c_void, arguments: *const *const ::core::ffi::c_void, argumentcount: u16, result: *mut *mut ::core::ffi::c_void) -> JsErrorCode; } - JsConstructObject(::core::mem::transmute(function), ::core::mem::transmute(::windows::core::as_ptr_or_null(arguments)), arguments.len() as _, ::core::mem::transmute(result)) + JsConstructObject(::core::mem::transmute(function), ::core::mem::transmute(arguments.as_ptr()), arguments.len() as _, ::core::mem::transmute(result)) } #[doc = "*Required features: `\"Win32_System_Js\"`*"] #[inline] @@ -725,7 +725,7 @@ pub unsafe fn JsPointerToString(stringvalue: &[u16], value: *mut *mut ::core::ff extern "system" { fn JsPointerToString(stringvalue: ::windows::core::PCWSTR, stringlength: usize, value: *mut *mut ::core::ffi::c_void) -> JsErrorCode; } - JsPointerToString(::core::mem::transmute(::windows::core::as_ptr_or_null(stringvalue)), stringvalue.len() as _, ::core::mem::transmute(value)) + JsPointerToString(::core::mem::transmute(stringvalue.as_ptr()), stringvalue.len() as _, ::core::mem::transmute(value)) } #[doc = "*Required features: `\"Win32_System_Js\"`*"] #[inline] @@ -837,7 +837,7 @@ impl ::core::fmt::Debug for JsRuntimeVersion { } #[doc = "*Required features: `\"Win32_System_Js\"`*"] #[inline] -pub unsafe fn JsSerializeScript<'a, P0>(script: P0, buffer: ::core::option::Option<&mut u8>, buffersize: &mut u32) -> JsErrorCode +pub unsafe fn JsSerializeScript<'a, P0>(script: P0, buffer: *mut u8, buffersize: &mut u32) -> JsErrorCode where P0: ::std::convert::Into<::windows::core::PCWSTR>, { diff --git a/crates/libs/windows/src/Windows/Win32/System/LibraryLoader/mod.rs b/crates/libs/windows/src/Windows/Win32/System/LibraryLoader/mod.rs index 8d05bd74f3..1567513e35 100644 --- a/crates/libs/windows/src/Windows/Win32/System/LibraryLoader/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/LibraryLoader/mod.rs @@ -413,21 +413,21 @@ pub const GET_MODULE_HANDLE_EX_FLAG_PIN: u32 = 1u32; pub const GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT: u32 = 2u32; #[doc = "*Required features: `\"Win32_System_LibraryLoader\"`*"] #[inline] -pub unsafe fn GetDllDirectoryA(lpbuffer: &mut [u8]) -> u32 { +pub unsafe fn GetDllDirectoryA(lpbuffer: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetDllDirectoryA(nbufferlength: u32, lpbuffer: ::windows::core::PSTR) -> u32; } - GetDllDirectoryA(lpbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer))) + GetDllDirectoryA(lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_System_LibraryLoader\"`*"] #[inline] -pub unsafe fn GetDllDirectoryW(lpbuffer: &mut [u16]) -> u32 { +pub unsafe fn GetDllDirectoryW(lpbuffer: ::core::option::Option<&mut [u16]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetDllDirectoryW(nbufferlength: u32, lpbuffer: ::windows::core::PWSTR) -> u32; } - GetDllDirectoryW(lpbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer))) + GetDllDirectoryW(lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_System_LibraryLoader\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -440,7 +440,7 @@ where extern "system" { fn GetModuleFileNameA(hmodule: super::super::Foundation::HINSTANCE, lpfilename: ::windows::core::PSTR, nsize: u32) -> u32; } - GetModuleFileNameA(hmodule.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpfilename)), lpfilename.len() as _) + GetModuleFileNameA(hmodule.into(), ::core::mem::transmute(lpfilename.as_ptr()), lpfilename.len() as _) } #[doc = "*Required features: `\"Win32_System_LibraryLoader\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -453,7 +453,7 @@ where extern "system" { fn GetModuleFileNameW(hmodule: super::super::Foundation::HINSTANCE, lpfilename: ::windows::core::PWSTR, nsize: u32) -> u32; } - GetModuleFileNameW(hmodule.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpfilename)), lpfilename.len() as _) + GetModuleFileNameW(hmodule.into(), ::core::mem::transmute(lpfilename.as_ptr()), lpfilename.len() as _) } #[doc = "*Required features: `\"Win32_System_LibraryLoader\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -856,7 +856,7 @@ where #[doc = "*Required features: `\"Win32_System_LibraryLoader\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn UpdateResourceA<'a, P0, P1, P2>(hupdate: P0, lptype: P1, lpname: P2, wlanguage: u16, lpdata: *const ::core::ffi::c_void, cb: u32) -> super::super::Foundation::BOOL +pub unsafe fn UpdateResourceA<'a, P0, P1, P2>(hupdate: P0, lptype: P1, lpname: P2, wlanguage: u16, lpdata: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -866,12 +866,12 @@ where extern "system" { fn UpdateResourceA(hupdate: super::super::Foundation::HANDLE, lptype: ::windows::core::PCSTR, lpname: ::windows::core::PCSTR, wlanguage: u16, lpdata: *const ::core::ffi::c_void, cb: u32) -> super::super::Foundation::BOOL; } - UpdateResourceA(hupdate.into(), lptype.into(), lpname.into(), wlanguage, ::core::mem::transmute(lpdata), cb) + UpdateResourceA(hupdate.into(), lptype.into(), lpname.into(), wlanguage, ::core::mem::transmute(lpdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_LibraryLoader\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn UpdateResourceW<'a, P0, P1, P2>(hupdate: P0, lptype: P1, lpname: P2, wlanguage: u16, lpdata: *const ::core::ffi::c_void, cb: u32) -> super::super::Foundation::BOOL +pub unsafe fn UpdateResourceW<'a, P0, P1, P2>(hupdate: P0, lptype: P1, lpname: P2, wlanguage: u16, lpdata: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -881,7 +881,7 @@ where extern "system" { fn UpdateResourceW(hupdate: super::super::Foundation::HANDLE, lptype: ::windows::core::PCWSTR, lpname: ::windows::core::PCWSTR, wlanguage: u16, lpdata: *const ::core::ffi::c_void, cb: u32) -> super::super::Foundation::BOOL; } - UpdateResourceW(hupdate.into(), lptype.into(), lpname.into(), wlanguage, ::core::mem::transmute(lpdata), cb) + UpdateResourceW(hupdate.into(), lptype.into(), lpname.into(), wlanguage, ::core::mem::transmute(lpdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[cfg(feature = "implement")] ::core::include!("impl.rs"); diff --git a/crates/libs/windows/src/Windows/Win32/System/Memory/NonVolatile/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Memory/NonVolatile/mod.rs index 2df628fb84..f426b0038d 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Memory/NonVolatile/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Memory/NonVolatile/mod.rs @@ -42,22 +42,22 @@ pub unsafe fn RtlDrainNonVolatileFlush(nvtoken: *const ::core::ffi::c_void) -> u #[doc = "*Required features: `\"Win32_System_Memory_NonVolatile\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn RtlFillNonVolatileMemory(nvtoken: *const ::core::ffi::c_void, nvdestination: *mut ::core::ffi::c_void, size: usize, value: u8, flags: u32) -> u32 { +pub unsafe fn RtlFillNonVolatileMemory(nvtoken: *const ::core::ffi::c_void, nvdestination: &mut [u8], value: u8, flags: u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RtlFillNonVolatileMemory(nvtoken: *const ::core::ffi::c_void, nvdestination: *mut ::core::ffi::c_void, size: usize, value: u8, flags: u32) -> u32; } - RtlFillNonVolatileMemory(::core::mem::transmute(nvtoken), ::core::mem::transmute(nvdestination), size, value, flags) + RtlFillNonVolatileMemory(::core::mem::transmute(nvtoken), ::core::mem::transmute(nvdestination.as_ptr()), nvdestination.len() as _, value, flags) } #[doc = "*Required features: `\"Win32_System_Memory_NonVolatile\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn RtlFlushNonVolatileMemory(nvtoken: *const ::core::ffi::c_void, nvbuffer: *const ::core::ffi::c_void, size: usize, flags: u32) -> u32 { +pub unsafe fn RtlFlushNonVolatileMemory(nvtoken: *const ::core::ffi::c_void, nvbuffer: &[u8], flags: u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RtlFlushNonVolatileMemory(nvtoken: *const ::core::ffi::c_void, nvbuffer: *const ::core::ffi::c_void, size: usize, flags: u32) -> u32; } - RtlFlushNonVolatileMemory(::core::mem::transmute(nvtoken), ::core::mem::transmute(nvbuffer), size, flags) + RtlFlushNonVolatileMemory(::core::mem::transmute(nvtoken), ::core::mem::transmute(nvbuffer.as_ptr()), nvbuffer.len() as _, flags) } #[doc = "*Required features: `\"Win32_System_Memory_NonVolatile\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] @@ -67,7 +67,7 @@ pub unsafe fn RtlFlushNonVolatileMemoryRanges(nvtoken: *const ::core::ffi::c_voi extern "system" { fn RtlFlushNonVolatileMemoryRanges(nvtoken: *const ::core::ffi::c_void, nvranges: *const NV_MEMORY_RANGE, numranges: usize, flags: u32) -> u32; } - RtlFlushNonVolatileMemoryRanges(::core::mem::transmute(nvtoken), ::core::mem::transmute(::windows::core::as_ptr_or_null(nvranges)), nvranges.len() as _, flags) + RtlFlushNonVolatileMemoryRanges(::core::mem::transmute(nvtoken), ::core::mem::transmute(nvranges.as_ptr()), nvranges.len() as _, flags) } #[doc = "*Required features: `\"Win32_System_Memory_NonVolatile\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] @@ -82,12 +82,12 @@ pub unsafe fn RtlFreeNonVolatileToken(nvtoken: *const ::core::ffi::c_void) -> u3 #[doc = "*Required features: `\"Win32_System_Memory_NonVolatile\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn RtlGetNonVolatileToken(nvbuffer: *const ::core::ffi::c_void, size: usize, nvtoken: *mut *mut ::core::ffi::c_void) -> u32 { +pub unsafe fn RtlGetNonVolatileToken(nvbuffer: &[u8], nvtoken: *mut *mut ::core::ffi::c_void) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RtlGetNonVolatileToken(nvbuffer: *const ::core::ffi::c_void, size: usize, nvtoken: *mut *mut ::core::ffi::c_void) -> u32; } - RtlGetNonVolatileToken(::core::mem::transmute(nvbuffer), size, ::core::mem::transmute(nvtoken)) + RtlGetNonVolatileToken(::core::mem::transmute(nvbuffer.as_ptr()), nvbuffer.len() as _, ::core::mem::transmute(nvtoken)) } #[doc = "*Required features: `\"Win32_System_Memory_NonVolatile\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] @@ -97,7 +97,7 @@ pub unsafe fn RtlWriteNonVolatileMemory(nvtoken: *const ::core::ffi::c_void, nvd extern "system" { fn RtlWriteNonVolatileMemory(nvtoken: *const ::core::ffi::c_void, nvdestination: *mut ::core::ffi::c_void, source: *const ::core::ffi::c_void, size: usize, flags: u32) -> u32; } - RtlWriteNonVolatileMemory(::core::mem::transmute(nvtoken), ::core::mem::transmute(nvdestination), ::core::mem::transmute(source), size, flags) + RtlWriteNonVolatileMemory(::core::mem::transmute(nvtoken), ::core::mem::transmute(nvdestination), ::core::mem::transmute(source), ::core::mem::transmute(size), flags) } #[cfg(feature = "implement")] ::core::include!("impl.rs"); diff --git a/crates/libs/windows/src/Windows/Win32/System/Memory/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Memory/mod.rs index fbac445078..76edf949e5 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Memory/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Memory/mod.rs @@ -13,7 +13,7 @@ pub unsafe fn AddSecureMemoryCacheCallback(pfncallback: PSECURE_MEMORY_CACHE_CAL #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AllocateUserPhysicalPages<'a, P0>(hprocess: P0, numberofpages: &mut usize, pagearray: &mut usize) -> super::super::Foundation::BOOL +pub unsafe fn AllocateUserPhysicalPages<'a, P0>(hprocess: P0, numberofpages: &mut usize, pagearray: *mut usize) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -26,7 +26,7 @@ where #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AllocateUserPhysicalPages2<'a, P0>(objecthandle: P0, numberofpages: &mut usize, pagearray: &mut usize, extendedparameters: &mut [MEM_EXTENDED_PARAMETER]) -> super::super::Foundation::BOOL +pub unsafe fn AllocateUserPhysicalPages2<'a, P0>(objecthandle: P0, numberofpages: &mut usize, pagearray: *mut usize, extendedparameters: ::core::option::Option<&mut [MEM_EXTENDED_PARAMETER]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -34,12 +34,12 @@ where extern "system" { fn AllocateUserPhysicalPages2(objecthandle: super::super::Foundation::HANDLE, numberofpages: *mut usize, pagearray: *mut usize, extendedparameters: *mut MEM_EXTENDED_PARAMETER, extendedparametercount: u32) -> super::super::Foundation::BOOL; } - AllocateUserPhysicalPages2(objecthandle.into(), ::core::mem::transmute(numberofpages), ::core::mem::transmute(pagearray), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(extendedparameters)), extendedparameters.len() as _) + AllocateUserPhysicalPages2(objecthandle.into(), ::core::mem::transmute(numberofpages), ::core::mem::transmute(pagearray), ::core::mem::transmute(extendedparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), extendedparameters.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn AllocateUserPhysicalPagesNuma<'a, P0>(hprocess: P0, numberofpages: &mut usize, pagearray: &mut usize, nndpreferred: u32) -> super::super::Foundation::BOOL +pub unsafe fn AllocateUserPhysicalPagesNuma<'a, P0>(hprocess: P0, numberofpages: &mut usize, pagearray: *mut usize, nndpreferred: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -83,7 +83,7 @@ impl ::core::default::Default for CFG_CALL_TARGET_INFO { #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn CreateFileMapping2<'a, P0, P1>(file: P0, securityattributes: ::core::option::Option<&super::super::Security::SECURITY_ATTRIBUTES>, desiredaccess: u32, pageprotection: PAGE_PROTECTION_FLAGS, allocationattributes: u32, maximumsize: u64, name: P1, extendedparameters: &mut [MEM_EXTENDED_PARAMETER]) -> ::windows::core::Result +pub unsafe fn CreateFileMapping2<'a, P0, P1>(file: P0, securityattributes: ::core::option::Option<&super::super::Security::SECURITY_ATTRIBUTES>, desiredaccess: u32, pageprotection: PAGE_PROTECTION_FLAGS, allocationattributes: u32, maximumsize: u64, name: P1, extendedparameters: ::core::option::Option<&mut [MEM_EXTENDED_PARAMETER]>) -> ::windows::core::Result where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -92,7 +92,7 @@ where extern "system" { fn CreateFileMapping2(file: super::super::Foundation::HANDLE, securityattributes: *const super::super::Security::SECURITY_ATTRIBUTES, desiredaccess: u32, pageprotection: PAGE_PROTECTION_FLAGS, allocationattributes: u32, maximumsize: u64, name: ::windows::core::PCWSTR, extendedparameters: *mut MEM_EXTENDED_PARAMETER, parametercount: u32) -> super::super::Foundation::HANDLE; } - let result__ = CreateFileMapping2(file.into(), ::core::mem::transmute(securityattributes), desiredaccess, pageprotection, allocationattributes, maximumsize, name.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(extendedparameters)), extendedparameters.len() as _); + let result__ = CreateFileMapping2(file.into(), ::core::mem::transmute(securityattributes), desiredaccess, pageprotection, allocationattributes, maximumsize, name.into(), ::core::mem::transmute(extendedparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), extendedparameters.as_deref().map_or(0, |slice| slice.len() as _)); (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32) } #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] @@ -188,7 +188,7 @@ pub unsafe fn DiscardVirtualMemory(virtualaddress: &mut [u8]) -> u32 { extern "system" { fn DiscardVirtualMemory(virtualaddress: *mut ::core::ffi::c_void, size: usize) -> u32; } - DiscardVirtualMemory(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(virtualaddress)), virtualaddress.len() as _) + DiscardVirtualMemory(::core::mem::transmute(virtualaddress.as_ptr()), virtualaddress.len() as _) } #[doc = "*Required features: `\"Win32_System_Memory\"`*"] pub const FILE_CACHE_MAX_HARD_DISABLE: u32 = 2u32; @@ -278,7 +278,7 @@ pub unsafe fn FlushViewOfFile(lpbaseaddress: *const ::core::ffi::c_void, dwnumbe #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn FreeUserPhysicalPages<'a, P0>(hprocess: P0, numberofpages: &mut usize, pagearray: &usize) -> super::super::Foundation::BOOL +pub unsafe fn FreeUserPhysicalPages<'a, P0>(hprocess: P0, numberofpages: &mut usize, pagearray: *const usize) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -385,7 +385,7 @@ pub unsafe fn GetProcessHeaps(processheaps: &mut [HeapHandle]) -> u32 { extern "system" { fn GetProcessHeaps(numberofheaps: u32, processheaps: *mut HeapHandle) -> u32; } - GetProcessHeaps(processheaps.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(processheaps))) + GetProcessHeaps(processheaps.len() as _, ::core::mem::transmute(processheaps.as_ptr())) } #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -750,7 +750,7 @@ where #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HeapQueryInformation<'a, P0>(heaphandle: P0, heapinformationclass: HEAP_INFORMATION_CLASS, heapinformation: *mut ::core::ffi::c_void, heapinformationlength: usize, returnlength: ::core::option::Option<&mut usize>) -> super::super::Foundation::BOOL +pub unsafe fn HeapQueryInformation<'a, P0>(heaphandle: P0, heapinformationclass: HEAP_INFORMATION_CLASS, heapinformation: ::core::option::Option<&mut [u8]>, returnlength: ::core::option::Option<&mut usize>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -758,7 +758,7 @@ where extern "system" { fn HeapQueryInformation(heaphandle: HeapHandle, heapinformationclass: HEAP_INFORMATION_CLASS, heapinformation: *mut ::core::ffi::c_void, heapinformationlength: usize, returnlength: *mut usize) -> super::super::Foundation::BOOL; } - HeapQueryInformation(heaphandle.into(), heapinformationclass, ::core::mem::transmute(heapinformation), heapinformationlength, ::core::mem::transmute(returnlength)) + HeapQueryInformation(heaphandle.into(), heapinformationclass, ::core::mem::transmute(heapinformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), heapinformation.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(returnlength)) } #[doc = "*Required features: `\"Win32_System_Memory\"`*"] #[inline] @@ -775,7 +775,7 @@ where #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn HeapSetInformation<'a, P0>(heaphandle: P0, heapinformationclass: HEAP_INFORMATION_CLASS, heapinformation: *const ::core::ffi::c_void, heapinformationlength: usize) -> super::super::Foundation::BOOL +pub unsafe fn HeapSetInformation<'a, P0>(heaphandle: P0, heapinformationclass: HEAP_INFORMATION_CLASS, heapinformation: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -783,7 +783,7 @@ where extern "system" { fn HeapSetInformation(heaphandle: HeapHandle, heapinformationclass: HEAP_INFORMATION_CLASS, heapinformation: *const ::core::ffi::c_void, heapinformationlength: usize) -> super::super::Foundation::BOOL; } - HeapSetInformation(heaphandle.into(), heapinformationclass, ::core::mem::transmute(heapinformation), heapinformationlength) + HeapSetInformation(heaphandle.into(), heapinformationclass, ::core::mem::transmute(heapinformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), heapinformation.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Memory\"`*"] #[inline] @@ -1416,17 +1416,17 @@ impl ::core::fmt::Debug for MEM_EXTENDED_PARAMETER_TYPE { #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn MapUserPhysicalPages(virtualaddress: *const ::core::ffi::c_void, pagearray: &[usize]) -> super::super::Foundation::BOOL { +pub unsafe fn MapUserPhysicalPages(virtualaddress: *const ::core::ffi::c_void, pagearray: ::core::option::Option<&[usize]>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MapUserPhysicalPages(virtualaddress: *const ::core::ffi::c_void, numberofpages: usize, pagearray: *const usize) -> super::super::Foundation::BOOL; } - MapUserPhysicalPages(::core::mem::transmute(virtualaddress), pagearray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pagearray))) + MapUserPhysicalPages(::core::mem::transmute(virtualaddress), pagearray.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pagearray.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn MapUserPhysicalPagesScatter(virtualaddresses: *const *const ::core::ffi::c_void, numberofpages: usize, pagearray: ::core::option::Option<&usize>) -> super::super::Foundation::BOOL { +pub unsafe fn MapUserPhysicalPagesScatter(virtualaddresses: *const *const ::core::ffi::c_void, numberofpages: usize, pagearray: *const usize) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MapUserPhysicalPagesScatter(virtualaddresses: *const *const ::core::ffi::c_void, numberofpages: usize, pagearray: *const usize) -> super::super::Foundation::BOOL; @@ -1449,7 +1449,7 @@ where #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn MapViewOfFile3<'a, P0, P1>(filemapping: P0, process: P1, baseaddress: *const ::core::ffi::c_void, offset: u64, viewsize: usize, allocationtype: VIRTUAL_ALLOCATION_TYPE, pageprotection: u32, extendedparameters: &mut [MEM_EXTENDED_PARAMETER]) -> *mut ::core::ffi::c_void +pub unsafe fn MapViewOfFile3<'a, P0, P1>(filemapping: P0, process: P1, baseaddress: *const ::core::ffi::c_void, offset: u64, viewsize: usize, allocationtype: VIRTUAL_ALLOCATION_TYPE, pageprotection: u32, extendedparameters: ::core::option::Option<&mut [MEM_EXTENDED_PARAMETER]>) -> *mut ::core::ffi::c_void where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -1458,12 +1458,12 @@ where extern "system" { fn MapViewOfFile3(filemapping: super::super::Foundation::HANDLE, process: super::super::Foundation::HANDLE, baseaddress: *const ::core::ffi::c_void, offset: u64, viewsize: usize, allocationtype: VIRTUAL_ALLOCATION_TYPE, pageprotection: u32, extendedparameters: *mut MEM_EXTENDED_PARAMETER, parametercount: u32) -> *mut ::core::ffi::c_void; } - MapViewOfFile3(filemapping.into(), process.into(), ::core::mem::transmute(baseaddress), offset, viewsize, allocationtype, pageprotection, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(extendedparameters)), extendedparameters.len() as _) + MapViewOfFile3(filemapping.into(), process.into(), ::core::mem::transmute(baseaddress), offset, viewsize, allocationtype, pageprotection, ::core::mem::transmute(extendedparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), extendedparameters.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn MapViewOfFile3FromApp<'a, P0, P1>(filemapping: P0, process: P1, baseaddress: *const ::core::ffi::c_void, offset: u64, viewsize: usize, allocationtype: VIRTUAL_ALLOCATION_TYPE, pageprotection: u32, extendedparameters: &mut [MEM_EXTENDED_PARAMETER]) -> *mut ::core::ffi::c_void +pub unsafe fn MapViewOfFile3FromApp<'a, P0, P1>(filemapping: P0, process: P1, baseaddress: *const ::core::ffi::c_void, offset: u64, viewsize: usize, allocationtype: VIRTUAL_ALLOCATION_TYPE, pageprotection: u32, extendedparameters: ::core::option::Option<&mut [MEM_EXTENDED_PARAMETER]>) -> *mut ::core::ffi::c_void where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -1472,7 +1472,7 @@ where extern "system" { fn MapViewOfFile3FromApp(filemapping: super::super::Foundation::HANDLE, process: super::super::Foundation::HANDLE, baseaddress: *const ::core::ffi::c_void, offset: u64, viewsize: usize, allocationtype: VIRTUAL_ALLOCATION_TYPE, pageprotection: u32, extendedparameters: *mut MEM_EXTENDED_PARAMETER, parametercount: u32) -> *mut ::core::ffi::c_void; } - MapViewOfFile3FromApp(filemapping.into(), process.into(), ::core::mem::transmute(baseaddress), offset, viewsize, allocationtype, pageprotection, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(extendedparameters)), extendedparameters.len() as _) + MapViewOfFile3FromApp(filemapping.into(), process.into(), ::core::mem::transmute(baseaddress), offset, viewsize, allocationtype, pageprotection, ::core::mem::transmute(extendedparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), extendedparameters.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1565,7 +1565,7 @@ pub unsafe fn OfferVirtualMemory(virtualaddress: &mut [u8], priority: OFFER_PRIO extern "system" { fn OfferVirtualMemory(virtualaddress: *mut ::core::ffi::c_void, size: usize, priority: OFFER_PRIORITY) -> u32; } - OfferVirtualMemory(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(virtualaddress)), virtualaddress.len() as _, priority) + OfferVirtualMemory(::core::mem::transmute(virtualaddress.as_ptr()), virtualaddress.len() as _, priority) } #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1978,7 +1978,7 @@ where extern "system" { fn PrefetchVirtualMemory(hprocess: super::super::Foundation::HANDLE, numberofentries: usize, virtualaddresses: *const WIN32_MEMORY_RANGE_ENTRY, flags: u32) -> super::super::Foundation::BOOL; } - PrefetchVirtualMemory(hprocess.into(), virtualaddresses.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(virtualaddresses)), flags) + PrefetchVirtualMemory(hprocess.into(), virtualaddresses.len() as _, ::core::mem::transmute(virtualaddresses.as_ptr()), flags) } #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1996,7 +1996,7 @@ where #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn QueryPartitionInformation<'a, P0>(partition: P0, partitioninformationclass: WIN32_MEMORY_PARTITION_INFORMATION_CLASS, partitioninformation: *mut ::core::ffi::c_void, partitioninformationlength: u32) -> super::super::Foundation::BOOL +pub unsafe fn QueryPartitionInformation<'a, P0>(partition: P0, partitioninformationclass: WIN32_MEMORY_PARTITION_INFORMATION_CLASS, partitioninformation: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -2004,12 +2004,12 @@ where extern "system" { fn QueryPartitionInformation(partition: super::super::Foundation::HANDLE, partitioninformationclass: WIN32_MEMORY_PARTITION_INFORMATION_CLASS, partitioninformation: *mut ::core::ffi::c_void, partitioninformationlength: u32) -> super::super::Foundation::BOOL; } - QueryPartitionInformation(partition.into(), partitioninformationclass, ::core::mem::transmute(partitioninformation), partitioninformationlength) + QueryPartitionInformation(partition.into(), partitioninformationclass, ::core::mem::transmute(partitioninformation.as_ptr()), partitioninformation.len() as _) } #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn QueryVirtualMemoryInformation<'a, P0>(process: P0, virtualaddress: *const ::core::ffi::c_void, memoryinformationclass: WIN32_MEMORY_INFORMATION_CLASS, memoryinformation: *mut ::core::ffi::c_void, memoryinformationsize: usize, returnsize: ::core::option::Option<&mut usize>) -> super::super::Foundation::BOOL +pub unsafe fn QueryVirtualMemoryInformation<'a, P0>(process: P0, virtualaddress: *const ::core::ffi::c_void, memoryinformationclass: WIN32_MEMORY_INFORMATION_CLASS, memoryinformation: &mut [u8], returnsize: ::core::option::Option<&mut usize>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -2017,7 +2017,7 @@ where extern "system" { fn QueryVirtualMemoryInformation(process: super::super::Foundation::HANDLE, virtualaddress: *const ::core::ffi::c_void, memoryinformationclass: WIN32_MEMORY_INFORMATION_CLASS, memoryinformation: *mut ::core::ffi::c_void, memoryinformationsize: usize, returnsize: *mut usize) -> super::super::Foundation::BOOL; } - QueryVirtualMemoryInformation(process.into(), ::core::mem::transmute(virtualaddress), memoryinformationclass, ::core::mem::transmute(memoryinformation), memoryinformationsize, ::core::mem::transmute(returnsize)) + QueryVirtualMemoryInformation(process.into(), ::core::mem::transmute(virtualaddress), memoryinformationclass, ::core::mem::transmute(memoryinformation.as_ptr()), memoryinformation.len() as _, ::core::mem::transmute(returnsize)) } #[doc = "*Required features: `\"Win32_System_Memory\"`*"] #[inline] @@ -2026,7 +2026,7 @@ pub unsafe fn ReclaimVirtualMemory(virtualaddress: &[u8]) -> u32 { extern "system" { fn ReclaimVirtualMemory(virtualaddress: *const ::core::ffi::c_void, size: usize) -> u32; } - ReclaimVirtualMemory(::core::mem::transmute(::windows::core::as_ptr_or_null(virtualaddress)), virtualaddress.len() as _) + ReclaimVirtualMemory(::core::mem::transmute(virtualaddress.as_ptr()), virtualaddress.len() as _) } #[doc = "*Required features: `\"Win32_System_Memory\"`*"] #[inline] @@ -2067,21 +2067,21 @@ pub unsafe fn RtlCompareMemory(source1: *const ::core::ffi::c_void, source2: *co } #[doc = "*Required features: `\"Win32_System_Memory\"`*"] #[inline] -pub unsafe fn RtlCrc32(buffer: *const ::core::ffi::c_void, size: usize, initialcrc: u32) -> u32 { +pub unsafe fn RtlCrc32(buffer: &[u8], initialcrc: u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RtlCrc32(buffer: *const ::core::ffi::c_void, size: usize, initialcrc: u32) -> u32; } - RtlCrc32(::core::mem::transmute(buffer), size, initialcrc) + RtlCrc32(::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, initialcrc) } #[doc = "*Required features: `\"Win32_System_Memory\"`*"] #[inline] -pub unsafe fn RtlCrc64(buffer: *const ::core::ffi::c_void, size: usize, initialcrc: u64) -> u64 { +pub unsafe fn RtlCrc64(buffer: &[u8], initialcrc: u64) -> u64 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RtlCrc64(buffer: *const ::core::ffi::c_void, size: usize, initialcrc: u64) -> u64; } - RtlCrc64(::core::mem::transmute(buffer), size, initialcrc) + RtlCrc64(::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, initialcrc) } #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2104,7 +2104,7 @@ where extern "system" { fn SetProcessValidCallTargets(hprocess: super::super::Foundation::HANDLE, virtualaddress: *const ::core::ffi::c_void, regionsize: usize, numberofoffsets: u32, offsetinformation: *mut CFG_CALL_TARGET_INFO) -> super::super::Foundation::BOOL; } - SetProcessValidCallTargets(hprocess.into(), ::core::mem::transmute(virtualaddress), regionsize, offsetinformation.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(offsetinformation))) + SetProcessValidCallTargets(hprocess.into(), ::core::mem::transmute(virtualaddress), regionsize, offsetinformation.len() as _, ::core::mem::transmute(offsetinformation.as_ptr())) } #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2118,7 +2118,7 @@ where extern "system" { fn SetProcessValidCallTargetsForMappedView(process: super::super::Foundation::HANDLE, virtualaddress: *const ::core::ffi::c_void, regionsize: usize, numberofoffsets: u32, offsetinformation: *mut CFG_CALL_TARGET_INFO, section: super::super::Foundation::HANDLE, expectedfileoffset: u64) -> super::super::Foundation::BOOL; } - SetProcessValidCallTargetsForMappedView(process.into(), ::core::mem::transmute(virtualaddress), regionsize, offsetinformation.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(offsetinformation)), section.into(), expectedfileoffset) + SetProcessValidCallTargetsForMappedView(process.into(), ::core::mem::transmute(virtualaddress), regionsize, offsetinformation.len() as _, ::core::mem::transmute(offsetinformation.as_ptr()), section.into(), expectedfileoffset) } #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2321,7 +2321,7 @@ pub unsafe fn VirtualAlloc(lpaddress: *const ::core::ffi::c_void, dwsize: usize, #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn VirtualAlloc2<'a, P0>(process: P0, baseaddress: *const ::core::ffi::c_void, size: usize, allocationtype: VIRTUAL_ALLOCATION_TYPE, pageprotection: u32, extendedparameters: &mut [MEM_EXTENDED_PARAMETER]) -> *mut ::core::ffi::c_void +pub unsafe fn VirtualAlloc2<'a, P0>(process: P0, baseaddress: *const ::core::ffi::c_void, size: usize, allocationtype: VIRTUAL_ALLOCATION_TYPE, pageprotection: u32, extendedparameters: ::core::option::Option<&mut [MEM_EXTENDED_PARAMETER]>) -> *mut ::core::ffi::c_void where P0: ::std::convert::Into, { @@ -2329,12 +2329,12 @@ where extern "system" { fn VirtualAlloc2(process: super::super::Foundation::HANDLE, baseaddress: *const ::core::ffi::c_void, size: usize, allocationtype: VIRTUAL_ALLOCATION_TYPE, pageprotection: u32, extendedparameters: *mut MEM_EXTENDED_PARAMETER, parametercount: u32) -> *mut ::core::ffi::c_void; } - VirtualAlloc2(process.into(), ::core::mem::transmute(baseaddress), size, allocationtype, pageprotection, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(extendedparameters)), extendedparameters.len() as _) + VirtualAlloc2(process.into(), ::core::mem::transmute(baseaddress), size, allocationtype, pageprotection, ::core::mem::transmute(extendedparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), extendedparameters.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn VirtualAlloc2FromApp<'a, P0>(process: P0, baseaddress: *const ::core::ffi::c_void, size: usize, allocationtype: VIRTUAL_ALLOCATION_TYPE, pageprotection: u32, extendedparameters: &mut [MEM_EXTENDED_PARAMETER]) -> *mut ::core::ffi::c_void +pub unsafe fn VirtualAlloc2FromApp<'a, P0>(process: P0, baseaddress: *const ::core::ffi::c_void, size: usize, allocationtype: VIRTUAL_ALLOCATION_TYPE, pageprotection: u32, extendedparameters: ::core::option::Option<&mut [MEM_EXTENDED_PARAMETER]>) -> *mut ::core::ffi::c_void where P0: ::std::convert::Into, { @@ -2342,7 +2342,7 @@ where extern "system" { fn VirtualAlloc2FromApp(process: super::super::Foundation::HANDLE, baseaddress: *const ::core::ffi::c_void, size: usize, allocationtype: VIRTUAL_ALLOCATION_TYPE, pageprotection: u32, extendedparameters: *mut MEM_EXTENDED_PARAMETER, parametercount: u32) -> *mut ::core::ffi::c_void; } - VirtualAlloc2FromApp(process.into(), ::core::mem::transmute(baseaddress), size, allocationtype, pageprotection, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(extendedparameters)), extendedparameters.len() as _) + VirtualAlloc2FromApp(process.into(), ::core::mem::transmute(baseaddress), size, allocationtype, pageprotection, ::core::mem::transmute(extendedparameters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), extendedparameters.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2447,17 +2447,17 @@ pub unsafe fn VirtualProtectFromApp(address: *const ::core::ffi::c_void, size: u } #[doc = "*Required features: `\"Win32_System_Memory\"`*"] #[inline] -pub unsafe fn VirtualQuery(lpaddress: *const ::core::ffi::c_void, lpbuffer: &mut MEMORY_BASIC_INFORMATION, dwlength: usize) -> usize { +pub unsafe fn VirtualQuery(lpaddress: *const ::core::ffi::c_void, lpbuffer: &mut [u8]) -> usize { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn VirtualQuery(lpaddress: *const ::core::ffi::c_void, lpbuffer: *mut MEMORY_BASIC_INFORMATION, dwlength: usize) -> usize; } - VirtualQuery(::core::mem::transmute(lpaddress), ::core::mem::transmute(lpbuffer), dwlength) + VirtualQuery(::core::mem::transmute(lpaddress), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _) } #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn VirtualQueryEx<'a, P0>(hprocess: P0, lpaddress: *const ::core::ffi::c_void, lpbuffer: &mut MEMORY_BASIC_INFORMATION, dwlength: usize) -> usize +pub unsafe fn VirtualQueryEx<'a, P0>(hprocess: P0, lpaddress: *const ::core::ffi::c_void, lpbuffer: &mut [u8]) -> usize where P0: ::std::convert::Into, { @@ -2465,7 +2465,7 @@ where extern "system" { fn VirtualQueryEx(hprocess: super::super::Foundation::HANDLE, lpaddress: *const ::core::ffi::c_void, lpbuffer: *mut MEMORY_BASIC_INFORMATION, dwlength: usize) -> usize; } - VirtualQueryEx(hprocess.into(), ::core::mem::transmute(lpaddress), ::core::mem::transmute(lpbuffer), dwlength) + VirtualQueryEx(hprocess.into(), ::core::mem::transmute(lpaddress), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _) } #[doc = "*Required features: `\"Win32_System_Memory\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/System/Mmc/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Mmc/mod.rs index f6e1005c38..0199923725 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Mmc/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Mmc/mod.rs @@ -2828,7 +2828,7 @@ pub struct IDisplayHelp_Vtbl { pub struct IEnumTASK(::windows::core::IUnknown); impl IEnumTASK { pub unsafe fn Next(&self, rgelt: &mut [MMC_TASK], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -4717,7 +4717,7 @@ impl ISnapinProperties { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] pub unsafe fn PropertiesChanged(&self, pproperties: &[MMC_SNAPIN_PROPERTY]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).PropertiesChanged)(::windows::core::Interface::as_raw(self), pproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pproperties))).ok() + (::windows::core::Interface::vtable(self).PropertiesChanged)(::windows::core::Interface::as_raw(self), pproperties.len() as _, ::core::mem::transmute(pproperties.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -4833,7 +4833,7 @@ impl IStringTable { (::windows::core::Interface::vtable(self).AddString)(::windows::core::Interface::as_raw(self), pszadd.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetString(&self, stringid: u32, lpbuffer: &mut [u16], pcchout: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetString)(::windows::core::Interface::as_raw(self), stringid, lpbuffer.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), ::core::mem::transmute(pcchout)).ok() + (::windows::core::Interface::vtable(self).GetString)(::windows::core::Interface::as_raw(self), stringid, lpbuffer.len() as _, ::core::mem::transmute(lpbuffer.as_ptr()), ::core::mem::transmute(pcchout)).ok() } pub unsafe fn GetStringLength(&self, stringid: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); diff --git a/crates/libs/windows/src/Windows/Win32/System/Ole/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Ole/mod.rs index db9e13cfff..6094cda4c0 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Ole/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Ole/mod.rs @@ -942,7 +942,7 @@ impl ::core::fmt::Debug for DVASPECT2 { #[doc = "*Required features: `\"Win32_System_Ole\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] #[inline] -pub unsafe fn DispCallFunc(pvinstance: *const ::core::ffi::c_void, ovft: usize, cc: super::Com::CALLCONV, vtreturn: u16, cactuals: u32, prgvt: &u16, prgpvarg: &*const super::Com::VARIANT) -> ::windows::core::Result { +pub unsafe fn DispCallFunc(pvinstance: *const ::core::ffi::c_void, ovft: usize, cc: super::Com::CALLCONV, vtreturn: u16, cactuals: u32, prgvt: *const u16, prgpvarg: *const *const super::Com::VARIANT) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn DispCallFunc(pvinstance: *const ::core::ffi::c_void, ovft: usize, cc: super::Com::CALLCONV, vtreturn: u16, cactuals: u32, prgvt: *const u16, prgpvarg: *const *const super::Com::VARIANT, pvargresult: *mut super::Com::VARIANT) -> ::windows::core::HRESULT; @@ -953,7 +953,7 @@ pub unsafe fn DispCallFunc(pvinstance: *const ::core::ffi::c_void, ovft: usize, #[doc = "*Required features: `\"Win32_System_Ole\"`, `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] #[inline] -pub unsafe fn DispGetIDsOfNames<'a, P0>(ptinfo: P0, rgsznames: &::windows::core::PWSTR, cnames: u32, rgdispid: &mut i32) -> ::windows::core::Result<()> +pub unsafe fn DispGetIDsOfNames<'a, P0>(ptinfo: P0, rgsznames: *const ::windows::core::PWSTR, cnames: u32, rgdispid: *mut i32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::Com::ITypeInfo>>, { @@ -1429,7 +1429,7 @@ pub unsafe fn HRGN_UserSize64(param0: &u32, param1: u32, param2: &super::super:: #[doc = "*Required features: `\"Win32_System_Ole\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn HRGN_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super::super::Graphics::Gdi::HRGN) -> *mut u8 { +pub unsafe fn HRGN_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut super::super::Graphics::Gdi::HRGN) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HRGN_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut super::super::Graphics::Gdi::HRGN) -> *mut u8; @@ -1439,7 +1439,7 @@ pub unsafe fn HRGN_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super:: #[doc = "*Required features: `\"Win32_System_Ole\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn HRGN_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut super::super::Graphics::Gdi::HRGN) -> *mut u8 { +pub unsafe fn HRGN_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut super::super::Graphics::Gdi::HRGN) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HRGN_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut super::super::Graphics::Gdi::HRGN) -> *mut u8; @@ -1968,7 +1968,7 @@ impl ICreateTypeInfo { (::windows::core::Interface::vtable(self).AddVarDesc)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(pvardesc)).ok() } pub unsafe fn SetFuncAndParamNames(&self, index: u32, rgsznames: &[::windows::core::PWSTR]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetFuncAndParamNames)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgsznames)), rgsznames.len() as _).ok() + (::windows::core::Interface::vtable(self).SetFuncAndParamNames)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(rgsznames.as_ptr()), rgsznames.len() as _).ok() } pub unsafe fn SetVarName<'a, P0>(&self, index: u32, szname: P0) -> ::windows::core::Result<()> where @@ -2160,7 +2160,7 @@ impl ICreateTypeInfo2 { (::windows::core::Interface::vtable(self).base__.AddVarDesc)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(pvardesc)).ok() } pub unsafe fn SetFuncAndParamNames(&self, index: u32, rgsznames: &[::windows::core::PWSTR]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetFuncAndParamNames)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgsznames)), rgsznames.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetFuncAndParamNames)(::windows::core::Interface::as_raw(self), index, ::core::mem::transmute(rgsznames.as_ptr()), rgsznames.len() as _).ok() } pub unsafe fn SetVarName<'a, P0>(&self, index: u32, szname: P0) -> ::windows::core::Result<()> where @@ -3376,7 +3376,7 @@ pub struct IEnterpriseDropTarget_Vtbl { pub struct IEnumOLEVERB(::windows::core::IUnknown); impl IEnumOLEVERB { pub unsafe fn Next(&self, rgelt: &mut [OLEVERB], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -3500,7 +3500,7 @@ pub struct IEnumOleDocumentViews_Vtbl { pub struct IEnumOleUndoUnits(::windows::core::IUnknown); impl IEnumOleUndoUnits { pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -3564,7 +3564,7 @@ impl IEnumVARIANT { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] pub unsafe fn Next(&self, rgvar: &mut [super::Com::VARIANT], pceltfetched: &mut u32) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgvar.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgvar)), ::core::mem::transmute(pceltfetched)) + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgvar.len() as _, ::core::mem::transmute(rgvar.as_ptr()), ::core::mem::transmute(pceltfetched)) } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::HRESULT { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt) @@ -8985,7 +8985,7 @@ impl IPropertyPage { (::windows::core::Interface::vtable(self).GetPageInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetObjects(&self, ppunk: &[::core::option::Option<::windows::core::IUnknown>]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetObjects)(::windows::core::Interface::as_raw(self), ppunk.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppunk))).ok() + (::windows::core::Interface::vtable(self).SetObjects)(::windows::core::Interface::as_raw(self), ppunk.len() as _, ::core::mem::transmute(ppunk.as_ptr())).ok() } pub unsafe fn Show(&self, ncmdshow: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Show)(::windows::core::Interface::as_raw(self), ncmdshow).ok() @@ -9105,7 +9105,7 @@ impl IPropertyPage2 { (::windows::core::Interface::vtable(self).base__.GetPageInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetObjects(&self, ppunk: &[::core::option::Option<::windows::core::IUnknown>]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetObjects)(::windows::core::Interface::as_raw(self), ppunk.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppunk))).ok() + (::windows::core::Interface::vtable(self).base__.SetObjects)(::windows::core::Interface::as_raw(self), ppunk.len() as _, ::core::mem::transmute(ppunk.as_ptr())).ok() } pub unsafe fn Show(&self, ncmdshow: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.Show)(::windows::core::Interface::as_raw(self), ncmdshow).ok() @@ -9812,7 +9812,7 @@ impl IRecordInfo { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetFieldNames(&self, pcnames: &mut u32, rgbstrnames: &mut super::super::Foundation::BSTR) -> ::windows::core::Result<()> { + pub unsafe fn GetFieldNames(&self, pcnames: &mut u32, rgbstrnames: *mut super::super::Foundation::BSTR) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetFieldNames)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcnames), ::core::mem::transmute(rgbstrnames)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -10174,11 +10174,11 @@ impl ITypeMarshal { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).Size)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvtype), dwdestcontext, ::core::mem::transmute(pvdestcontext), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn Marshal(&self, pvtype: *const ::core::ffi::c_void, dwdestcontext: u32, pvdestcontext: *const ::core::ffi::c_void, cbbufferlength: u32, pbuffer: &mut u8, pcbwritten: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Marshal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvtype), dwdestcontext, ::core::mem::transmute(pvdestcontext), cbbufferlength, ::core::mem::transmute(pbuffer), ::core::mem::transmute(pcbwritten)).ok() + pub unsafe fn Marshal(&self, pvtype: *const ::core::ffi::c_void, dwdestcontext: u32, pvdestcontext: *const ::core::ffi::c_void, pbuffer: &mut [u8], pcbwritten: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Marshal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvtype), dwdestcontext, ::core::mem::transmute(pvdestcontext), pbuffer.len() as _, ::core::mem::transmute(pbuffer.as_ptr()), ::core::mem::transmute(pcbwritten)).ok() } pub unsafe fn Unmarshal(&self, pvtype: *mut ::core::ffi::c_void, dwflags: u32, pbuffer: &[u8], pcbread: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Unmarshal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvtype), dwflags, pbuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuffer)), ::core::mem::transmute(pcbread)).ok() + (::windows::core::Interface::vtable(self).Unmarshal)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvtype), dwflags, pbuffer.len() as _, ::core::mem::transmute(pbuffer.as_ptr()), ::core::mem::transmute(pcbread)).ok() } pub unsafe fn Free(&self, pvtype: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Free)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pvtype)).ok() @@ -19792,7 +19792,7 @@ where extern "system" { fn VarTokenizeFormatString(pstrformat: ::windows::core::PCWSTR, rgbtok: *mut u8, cbtok: i32, ifirstday: i32, ifirstweek: i32, lcid: u32, pcbactual: *const i32) -> ::windows::core::HRESULT; } - VarTokenizeFormatString(pstrformat.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgbtok)), rgbtok.len() as _, ifirstday, ifirstweek, lcid, ::core::mem::transmute(pcbactual)).ok() + VarTokenizeFormatString(pstrformat.into(), ::core::mem::transmute(rgbtok.as_ptr()), rgbtok.len() as _, ifirstday, ifirstweek, lcid, ::core::mem::transmute(pcbactual)).ok() } #[doc = "*Required features: `\"Win32_System_Ole\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/System/ParentalControls/mod.rs b/crates/libs/windows/src/Windows/Win32/System/ParentalControls/mod.rs index 717f7c6abc..d3b2ab9cc3 100644 --- a/crates/libs/windows/src/Windows/Win32/System/ParentalControls/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/ParentalControls/mod.rs @@ -366,13 +366,13 @@ impl IWPCWebSettings { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn RequestURLOverride<'a, P0, P1>(&self, hwnd: P0, pcszurl: P1, ppcszsuburls: &[::windows::core::PWSTR]) -> ::windows::core::Result + pub unsafe fn RequestURLOverride<'a, P0, P1>(&self, hwnd: P0, pcszurl: P1, ppcszsuburls: ::core::option::Option<&[::windows::core::PWSTR]>) -> ::windows::core::Result where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).RequestURLOverride)(::windows::core::Interface::as_raw(self), hwnd.into(), pcszurl.into(), ppcszsuburls.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppcszsuburls)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).RequestURLOverride)(::windows::core::Interface::as_raw(self), hwnd.into(), pcszurl.into(), ppcszsuburls.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppcszsuburls.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/System/Performance/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Performance/mod.rs index b0cdc805ad..172e5e4c11 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Performance/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Performance/mod.rs @@ -10816,7 +10816,7 @@ where } #[doc = "*Required features: `\"Win32_System_Performance\"`*"] #[inline] -pub unsafe fn PerfAddCounters<'a, P0>(hquery: P0, pcounters: &PERF_COUNTER_IDENTIFIER, cbcounters: u32) -> u32 +pub unsafe fn PerfAddCounters<'a, P0>(hquery: P0, pcounters: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -10824,7 +10824,7 @@ where extern "system" { fn PerfAddCounters(hquery: PerfQueryHandle, pcounters: *const PERF_COUNTER_IDENTIFIER, cbcounters: u32) -> u32; } - PerfAddCounters(hquery.into(), ::core::mem::transmute(pcounters), cbcounters) + PerfAddCounters(hquery.into(), ::core::mem::transmute(pcounters.as_ptr()), pcounters.len() as _) } #[doc = "*Required features: `\"Win32_System_Performance\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10913,7 +10913,7 @@ where } #[doc = "*Required features: `\"Win32_System_Performance\"`*"] #[inline] -pub unsafe fn PerfDeleteCounters<'a, P0>(hquery: P0, pcounters: &PERF_COUNTER_IDENTIFIER, cbcounters: u32) -> u32 +pub unsafe fn PerfDeleteCounters<'a, P0>(hquery: P0, pcounters: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -10921,7 +10921,7 @@ where extern "system" { fn PerfDeleteCounters(hquery: PerfQueryHandle, pcounters: *const PERF_COUNTER_IDENTIFIER, cbcounters: u32) -> u32; } - PerfDeleteCounters(hquery.into(), ::core::mem::transmute(pcounters), cbcounters) + PerfDeleteCounters(hquery.into(), ::core::mem::transmute(pcounters.as_ptr()), pcounters.len() as _) } #[doc = "*Required features: `\"Win32_System_Performance\"`*"] #[inline] @@ -10937,7 +10937,7 @@ where } #[doc = "*Required features: `\"Win32_System_Performance\"`*"] #[inline] -pub unsafe fn PerfEnumerateCounterSet<'a, P0>(szmachine: P0, pcountersetids: &mut [::windows::core::GUID], pccountersetidsactual: &mut u32) -> u32 +pub unsafe fn PerfEnumerateCounterSet<'a, P0>(szmachine: P0, pcountersetids: ::core::option::Option<&mut [::windows::core::GUID]>, pccountersetidsactual: &mut u32) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -10945,11 +10945,11 @@ where extern "system" { fn PerfEnumerateCounterSet(szmachine: ::windows::core::PCWSTR, pcountersetids: *mut ::windows::core::GUID, ccountersetids: u32, pccountersetidsactual: *mut u32) -> u32; } - PerfEnumerateCounterSet(szmachine.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pcountersetids)), pcountersetids.len() as _, ::core::mem::transmute(pccountersetidsactual)) + PerfEnumerateCounterSet(szmachine.into(), ::core::mem::transmute(pcountersetids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pcountersetids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pccountersetidsactual)) } #[doc = "*Required features: `\"Win32_System_Performance\"`*"] #[inline] -pub unsafe fn PerfEnumerateCounterSetInstances<'a, P0>(szmachine: P0, pcountersetid: &::windows::core::GUID, pinstances: ::core::option::Option<&mut PERF_INSTANCE_HEADER>, cbinstances: u32, pcbinstancesactual: &mut u32) -> u32 +pub unsafe fn PerfEnumerateCounterSetInstances<'a, P0>(szmachine: P0, pcountersetid: &::windows::core::GUID, pinstances: ::core::option::Option<&mut [u8]>, pcbinstancesactual: &mut u32) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -10957,7 +10957,7 @@ where extern "system" { fn PerfEnumerateCounterSetInstances(szmachine: ::windows::core::PCWSTR, pcountersetid: *const ::windows::core::GUID, pinstances: *mut PERF_INSTANCE_HEADER, cbinstances: u32, pcbinstancesactual: *mut u32) -> u32; } - PerfEnumerateCounterSetInstances(szmachine.into(), ::core::mem::transmute(pcountersetid), ::core::mem::transmute(pinstances), cbinstances, ::core::mem::transmute(pcbinstancesactual)) + PerfEnumerateCounterSetInstances(szmachine.into(), ::core::mem::transmute(pcountersetid), ::core::mem::transmute(pinstances.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pinstances.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbinstancesactual)) } #[doc = "*Required features: `\"Win32_System_Performance\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -11032,7 +11032,7 @@ unsafe impl ::windows::core::Abi for PerfProviderHandle { #[doc = "*Required features: `\"Win32_System_Performance\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PerfQueryCounterData<'a, P0>(hquery: P0, pcounterblock: ::core::option::Option<&mut PERF_DATA_HEADER>, cbcounterblock: u32, pcbcounterblockactual: &mut u32) -> u32 +pub unsafe fn PerfQueryCounterData<'a, P0>(hquery: P0, pcounterblock: ::core::option::Option<&mut [u8]>, pcbcounterblockactual: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -11040,11 +11040,11 @@ where extern "system" { fn PerfQueryCounterData(hquery: PerfQueryHandle, pcounterblock: *mut PERF_DATA_HEADER, cbcounterblock: u32, pcbcounterblockactual: *mut u32) -> u32; } - PerfQueryCounterData(hquery.into(), ::core::mem::transmute(pcounterblock), cbcounterblock, ::core::mem::transmute(pcbcounterblockactual)) + PerfQueryCounterData(hquery.into(), ::core::mem::transmute(pcounterblock.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pcounterblock.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbcounterblockactual)) } #[doc = "*Required features: `\"Win32_System_Performance\"`*"] #[inline] -pub unsafe fn PerfQueryCounterInfo<'a, P0>(hquery: P0, pcounters: ::core::option::Option<&mut PERF_COUNTER_IDENTIFIER>, cbcounters: u32, pcbcountersactual: &mut u32) -> u32 +pub unsafe fn PerfQueryCounterInfo<'a, P0>(hquery: P0, pcounters: ::core::option::Option<&mut [u8]>, pcbcountersactual: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -11052,11 +11052,11 @@ where extern "system" { fn PerfQueryCounterInfo(hquery: PerfQueryHandle, pcounters: *mut PERF_COUNTER_IDENTIFIER, cbcounters: u32, pcbcountersactual: *mut u32) -> u32; } - PerfQueryCounterInfo(hquery.into(), ::core::mem::transmute(pcounters), cbcounters, ::core::mem::transmute(pcbcountersactual)) + PerfQueryCounterInfo(hquery.into(), ::core::mem::transmute(pcounters.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pcounters.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbcountersactual)) } #[doc = "*Required features: `\"Win32_System_Performance\"`*"] #[inline] -pub unsafe fn PerfQueryCounterSetRegistrationInfo<'a, P0>(szmachine: P0, pcountersetid: &::windows::core::GUID, requestcode: PerfRegInfoType, requestlangid: u32, pbreginfo: ::core::option::Option<&mut u8>, cbreginfo: u32, pcbreginfoactual: &mut u32) -> u32 +pub unsafe fn PerfQueryCounterSetRegistrationInfo<'a, P0>(szmachine: P0, pcountersetid: &::windows::core::GUID, requestcode: PerfRegInfoType, requestlangid: u32, pbreginfo: ::core::option::Option<&mut [u8]>, pcbreginfoactual: &mut u32) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -11064,7 +11064,7 @@ where extern "system" { fn PerfQueryCounterSetRegistrationInfo(szmachine: ::windows::core::PCWSTR, pcountersetid: *const ::windows::core::GUID, requestcode: PerfRegInfoType, requestlangid: u32, pbreginfo: *mut u8, cbreginfo: u32, pcbreginfoactual: *mut u32) -> u32; } - PerfQueryCounterSetRegistrationInfo(szmachine.into(), ::core::mem::transmute(pcountersetid), requestcode, requestlangid, ::core::mem::transmute(pbreginfo), cbreginfo, ::core::mem::transmute(pcbreginfoactual)) + PerfQueryCounterSetRegistrationInfo(szmachine.into(), ::core::mem::transmute(pcountersetid), requestcode, requestlangid, ::core::mem::transmute(pbreginfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbreginfo.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbreginfoactual)) } #[repr(transparent)] #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] @@ -11171,7 +11171,7 @@ where #[doc = "*Required features: `\"Win32_System_Performance\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PerfSetCounterSetInfo<'a, P0>(providerhandle: P0, template: &mut PERF_COUNTERSET_INFO, templatesize: u32) -> u32 +pub unsafe fn PerfSetCounterSetInfo<'a, P0>(providerhandle: P0, template: &mut [u8]) -> u32 where P0: ::std::convert::Into, { @@ -11179,7 +11179,7 @@ where extern "system" { fn PerfSetCounterSetInfo(providerhandle: super::super::Foundation::HANDLE, template: *mut PERF_COUNTERSET_INFO, templatesize: u32) -> u32; } - PerfSetCounterSetInfo(providerhandle.into(), ::core::mem::transmute(template), templatesize) + PerfSetCounterSetInfo(providerhandle.into(), ::core::mem::transmute(template.as_ptr()), template.len() as _) } #[doc = "*Required features: `\"Win32_System_Performance\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/System/Pipes/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Pipes/mod.rs index 7410528d83..1c1c58cc59 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Pipes/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Pipes/mod.rs @@ -1,7 +1,7 @@ #[doc = "*Required features: `\"Win32_System_Pipes\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CallNamedPipeA<'a, P0>(lpnamedpipename: P0, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesread: &mut u32, ntimeout: u32) -> super::super::Foundation::BOOL +pub unsafe fn CallNamedPipeA<'a, P0>(lpnamedpipename: P0, lpinbuffer: ::core::option::Option<&[u8]>, lpoutbuffer: ::core::option::Option<&mut [u8]>, lpbytesread: &mut u32, ntimeout: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -9,12 +9,12 @@ where extern "system" { fn CallNamedPipeA(lpnamedpipename: ::windows::core::PCSTR, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesread: *mut u32, ntimeout: u32) -> super::super::Foundation::BOOL; } - CallNamedPipeA(lpnamedpipename.into(), ::core::mem::transmute(lpinbuffer), ninbuffersize, ::core::mem::transmute(lpoutbuffer), noutbuffersize, ::core::mem::transmute(lpbytesread), ntimeout) + CallNamedPipeA(lpnamedpipename.into(), ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesread), ntimeout) } #[doc = "*Required features: `\"Win32_System_Pipes\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CallNamedPipeW<'a, P0>(lpnamedpipename: P0, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesread: &mut u32, ntimeout: u32) -> super::super::Foundation::BOOL +pub unsafe fn CallNamedPipeW<'a, P0>(lpnamedpipename: P0, lpinbuffer: ::core::option::Option<&[u8]>, lpoutbuffer: ::core::option::Option<&mut [u8]>, lpbytesread: &mut u32, ntimeout: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -22,7 +22,7 @@ where extern "system" { fn CallNamedPipeW(lpnamedpipename: ::windows::core::PCWSTR, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesread: *mut u32, ntimeout: u32) -> super::super::Foundation::BOOL; } - CallNamedPipeW(lpnamedpipename.into(), ::core::mem::transmute(lpinbuffer), ninbuffersize, ::core::mem::transmute(lpoutbuffer), noutbuffersize, ::core::mem::transmute(lpbytesread), ntimeout) + CallNamedPipeW(lpnamedpipename.into(), ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesread), ntimeout) } #[doc = "*Required features: `\"Win32_System_Pipes\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] @@ -90,7 +90,7 @@ where #[doc = "*Required features: `\"Win32_System_Pipes\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetNamedPipeClientComputerNameA<'a, P0>(pipe: P0, clientcomputername: ::windows::core::PSTR, clientcomputernamelength: u32) -> super::super::Foundation::BOOL +pub unsafe fn GetNamedPipeClientComputerNameA<'a, P0>(pipe: P0, clientcomputername: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -98,12 +98,12 @@ where extern "system" { fn GetNamedPipeClientComputerNameA(pipe: super::super::Foundation::HANDLE, clientcomputername: ::windows::core::PSTR, clientcomputernamelength: u32) -> super::super::Foundation::BOOL; } - GetNamedPipeClientComputerNameA(pipe.into(), ::core::mem::transmute(clientcomputername), clientcomputernamelength) + GetNamedPipeClientComputerNameA(pipe.into(), ::core::mem::transmute(clientcomputername.as_ptr()), clientcomputername.len() as _) } #[doc = "*Required features: `\"Win32_System_Pipes\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetNamedPipeClientComputerNameW<'a, P0>(pipe: P0, clientcomputername: ::windows::core::PWSTR, clientcomputernamelength: u32) -> super::super::Foundation::BOOL +pub unsafe fn GetNamedPipeClientComputerNameW<'a, P0>(pipe: P0, clientcomputername: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -111,7 +111,7 @@ where extern "system" { fn GetNamedPipeClientComputerNameW(pipe: super::super::Foundation::HANDLE, clientcomputername: ::windows::core::PWSTR, clientcomputernamelength: u32) -> super::super::Foundation::BOOL; } - GetNamedPipeClientComputerNameW(pipe.into(), ::core::mem::transmute(clientcomputername), clientcomputernamelength) + GetNamedPipeClientComputerNameW(pipe.into(), ::core::mem::transmute(clientcomputername.as_ptr()), clientcomputername.len() as _) } #[doc = "*Required features: `\"Win32_System_Pipes\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -142,7 +142,7 @@ where #[doc = "*Required features: `\"Win32_System_Pipes\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetNamedPipeHandleStateA<'a, P0>(hnamedpipe: P0, lpstate: ::core::option::Option<&mut NAMED_PIPE_MODE>, lpcurinstances: ::core::option::Option<&mut u32>, lpmaxcollectioncount: ::core::option::Option<&mut u32>, lpcollectdatatimeout: ::core::option::Option<&mut u32>, lpusername: &mut [u8]) -> super::super::Foundation::BOOL +pub unsafe fn GetNamedPipeHandleStateA<'a, P0>(hnamedpipe: P0, lpstate: ::core::option::Option<&mut NAMED_PIPE_MODE>, lpcurinstances: ::core::option::Option<&mut u32>, lpmaxcollectioncount: ::core::option::Option<&mut u32>, lpcollectdatatimeout: ::core::option::Option<&mut u32>, lpusername: ::core::option::Option<&mut [u8]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -150,12 +150,12 @@ where extern "system" { fn GetNamedPipeHandleStateA(hnamedpipe: super::super::Foundation::HANDLE, lpstate: *mut NAMED_PIPE_MODE, lpcurinstances: *mut u32, lpmaxcollectioncount: *mut u32, lpcollectdatatimeout: *mut u32, lpusername: ::windows::core::PSTR, nmaxusernamesize: u32) -> super::super::Foundation::BOOL; } - GetNamedPipeHandleStateA(hnamedpipe.into(), ::core::mem::transmute(lpstate), ::core::mem::transmute(lpcurinstances), ::core::mem::transmute(lpmaxcollectioncount), ::core::mem::transmute(lpcollectdatatimeout), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpusername)), lpusername.len() as _) + GetNamedPipeHandleStateA(hnamedpipe.into(), ::core::mem::transmute(lpstate), ::core::mem::transmute(lpcurinstances), ::core::mem::transmute(lpmaxcollectioncount), ::core::mem::transmute(lpcollectdatatimeout), ::core::mem::transmute(lpusername.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpusername.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Pipes\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetNamedPipeHandleStateW<'a, P0>(hnamedpipe: P0, lpstate: ::core::option::Option<&mut NAMED_PIPE_MODE>, lpcurinstances: ::core::option::Option<&mut u32>, lpmaxcollectioncount: ::core::option::Option<&mut u32>, lpcollectdatatimeout: ::core::option::Option<&mut u32>, lpusername: &mut [u16]) -> super::super::Foundation::BOOL +pub unsafe fn GetNamedPipeHandleStateW<'a, P0>(hnamedpipe: P0, lpstate: ::core::option::Option<&mut NAMED_PIPE_MODE>, lpcurinstances: ::core::option::Option<&mut u32>, lpmaxcollectioncount: ::core::option::Option<&mut u32>, lpcollectdatatimeout: ::core::option::Option<&mut u32>, lpusername: ::core::option::Option<&mut [u16]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -163,7 +163,7 @@ where extern "system" { fn GetNamedPipeHandleStateW(hnamedpipe: super::super::Foundation::HANDLE, lpstate: *mut NAMED_PIPE_MODE, lpcurinstances: *mut u32, lpmaxcollectioncount: *mut u32, lpcollectdatatimeout: *mut u32, lpusername: ::windows::core::PWSTR, nmaxusernamesize: u32) -> super::super::Foundation::BOOL; } - GetNamedPipeHandleStateW(hnamedpipe.into(), ::core::mem::transmute(lpstate), ::core::mem::transmute(lpcurinstances), ::core::mem::transmute(lpmaxcollectioncount), ::core::mem::transmute(lpcollectdatatimeout), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpusername)), lpusername.len() as _) + GetNamedPipeHandleStateW(hnamedpipe.into(), ::core::mem::transmute(lpstate), ::core::mem::transmute(lpcurinstances), ::core::mem::transmute(lpmaxcollectioncount), ::core::mem::transmute(lpcollectdatatimeout), ::core::mem::transmute(lpusername.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpusername.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Pipes\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -299,7 +299,7 @@ pub const PIPE_UNLIMITED_INSTANCES: u32 = 255u32; #[doc = "*Required features: `\"Win32_System_Pipes\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PeekNamedPipe<'a, P0>(hnamedpipe: P0, lpbuffer: *mut ::core::ffi::c_void, nbuffersize: u32, lpbytesread: ::core::option::Option<&mut u32>, lptotalbytesavail: ::core::option::Option<&mut u32>, lpbytesleftthismessage: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn PeekNamedPipe<'a, P0>(hnamedpipe: P0, lpbuffer: ::core::option::Option<&mut [u8]>, lpbytesread: ::core::option::Option<&mut u32>, lptotalbytesavail: ::core::option::Option<&mut u32>, lpbytesleftthismessage: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -307,7 +307,7 @@ where extern "system" { fn PeekNamedPipe(hnamedpipe: super::super::Foundation::HANDLE, lpbuffer: *mut ::core::ffi::c_void, nbuffersize: u32, lpbytesread: *mut u32, lptotalbytesavail: *mut u32, lpbytesleftthismessage: *mut u32) -> super::super::Foundation::BOOL; } - PeekNamedPipe(hnamedpipe.into(), ::core::mem::transmute(lpbuffer), nbuffersize, ::core::mem::transmute(lpbytesread), ::core::mem::transmute(lptotalbytesavail), ::core::mem::transmute(lpbytesleftthismessage)) + PeekNamedPipe(hnamedpipe.into(), ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesread), ::core::mem::transmute(lptotalbytesavail), ::core::mem::transmute(lpbytesleftthismessage)) } #[doc = "*Required features: `\"Win32_System_Pipes\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -325,7 +325,7 @@ where #[doc = "*Required features: `\"Win32_System_Pipes\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn TransactNamedPipe<'a, P0>(hnamedpipe: P0, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesread: &mut u32, lpoverlapped: ::core::option::Option<&mut super::IO::OVERLAPPED>) -> super::super::Foundation::BOOL +pub unsafe fn TransactNamedPipe<'a, P0>(hnamedpipe: P0, lpinbuffer: ::core::option::Option<&[u8]>, lpoutbuffer: ::core::option::Option<&mut [u8]>, lpbytesread: &mut u32, lpoverlapped: ::core::option::Option<&mut super::IO::OVERLAPPED>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -333,7 +333,7 @@ where extern "system" { fn TransactNamedPipe(hnamedpipe: super::super::Foundation::HANDLE, lpinbuffer: *const ::core::ffi::c_void, ninbuffersize: u32, lpoutbuffer: *mut ::core::ffi::c_void, noutbuffersize: u32, lpbytesread: *mut u32, lpoverlapped: *mut super::IO::OVERLAPPED) -> super::super::Foundation::BOOL; } - TransactNamedPipe(hnamedpipe.into(), ::core::mem::transmute(lpinbuffer), ninbuffersize, ::core::mem::transmute(lpoutbuffer), noutbuffersize, ::core::mem::transmute(lpbytesread), ::core::mem::transmute(lpoverlapped)) + TransactNamedPipe(hnamedpipe.into(), ::core::mem::transmute(lpinbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpinbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpoutbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpoutbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpbytesread), ::core::mem::transmute(lpoverlapped)) } #[doc = "*Required features: `\"Win32_System_Pipes\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/System/Power/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Power/mod.rs index f8ffc9998f..eb646f21e6 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Power/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Power/mod.rs @@ -657,12 +657,12 @@ impl ::core::default::Default for CM_POWER_DATA { } #[doc = "*Required features: `\"Win32_System_Power\"`*"] #[inline] -pub unsafe fn CallNtPowerInformation(informationlevel: POWER_INFORMATION_LEVEL, inputbuffer: *const ::core::ffi::c_void, inputbufferlength: u32, outputbuffer: *mut ::core::ffi::c_void, outputbufferlength: u32) -> i32 { +pub unsafe fn CallNtPowerInformation(informationlevel: POWER_INFORMATION_LEVEL, inputbuffer: ::core::option::Option<&[u8]>, outputbuffer: ::core::option::Option<&mut [u8]>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CallNtPowerInformation(informationlevel: POWER_INFORMATION_LEVEL, inputbuffer: *const ::core::ffi::c_void, inputbufferlength: u32, outputbuffer: *mut ::core::ffi::c_void, outputbufferlength: u32) -> i32; } - CallNtPowerInformation(informationlevel, ::core::mem::transmute(inputbuffer), inputbufferlength, ::core::mem::transmute(outputbuffer), outputbufferlength) + CallNtPowerInformation(informationlevel, ::core::mem::transmute(inputbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), inputbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(outputbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), outputbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -781,7 +781,7 @@ pub unsafe fn DevicePowerClose() -> super::super::Foundation::BOOLEAN { #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn DevicePowerEnumDevices(queryindex: u32, queryinterpretationflags: u32, queryflags: u32, preturnbuffer: ::core::option::Option<&mut u8>, pbuffersize: &mut u32) -> super::super::Foundation::BOOLEAN { +pub unsafe fn DevicePowerEnumDevices(queryindex: u32, queryinterpretationflags: u32, queryflags: u32, preturnbuffer: *mut u8, pbuffersize: &mut u32) -> super::super::Foundation::BOOLEAN { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn DevicePowerEnumDevices(queryindex: u32, queryinterpretationflags: u32, queryflags: u32, preturnbuffer: *mut u8, pbuffersize: *mut u32) -> super::super::Foundation::BOOLEAN; @@ -2558,7 +2558,7 @@ where #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerEnumerate<'a, P0>(rootpowerkey: P0, schemeguid: ::core::option::Option<&::windows::core::GUID>, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, accessflags: POWER_DATA_ACCESSOR, index: u32, buffer: ::core::option::Option<&mut u8>, buffersize: &mut u32) -> u32 +pub unsafe fn PowerEnumerate<'a, P0>(rootpowerkey: P0, schemeguid: ::core::option::Option<&::windows::core::GUID>, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, accessflags: POWER_DATA_ACCESSOR, index: u32, buffer: *mut u8, buffersize: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -2647,7 +2647,7 @@ where #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerReadACValue<'a, P0>(rootpowerkey: P0, schemeguid: ::core::option::Option<&::windows::core::GUID>, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, r#type: ::core::option::Option<&mut u32>, buffer: ::core::option::Option<&mut u8>, buffersize: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn PowerReadACValue<'a, P0>(rootpowerkey: P0, schemeguid: ::core::option::Option<&::windows::core::GUID>, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, r#type: ::core::option::Option<&mut u32>, buffer: *mut u8, buffersize: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into, { @@ -2686,7 +2686,7 @@ where #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerReadDCValue<'a, P0>(rootpowerkey: P0, schemeguid: ::core::option::Option<&::windows::core::GUID>, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, r#type: ::core::option::Option<&mut u32>, buffer: ::core::option::Option<&mut u8>, buffersize: &mut u32) -> u32 +pub unsafe fn PowerReadDCValue<'a, P0>(rootpowerkey: P0, schemeguid: ::core::option::Option<&::windows::core::GUID>, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, r#type: ::core::option::Option<&mut u32>, buffer: *mut u8, buffersize: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -2712,7 +2712,7 @@ where #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerReadDescription<'a, P0>(rootpowerkey: P0, schemeguid: ::core::option::Option<&::windows::core::GUID>, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, buffer: ::core::option::Option<&mut u8>, buffersize: &mut u32) -> u32 +pub unsafe fn PowerReadDescription<'a, P0>(rootpowerkey: P0, schemeguid: ::core::option::Option<&::windows::core::GUID>, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, buffer: *mut u8, buffersize: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -2725,7 +2725,7 @@ where #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerReadFriendlyName<'a, P0>(rootpowerkey: P0, schemeguid: ::core::option::Option<&::windows::core::GUID>, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, buffer: ::core::option::Option<&mut u8>, buffersize: &mut u32) -> u32 +pub unsafe fn PowerReadFriendlyName<'a, P0>(rootpowerkey: P0, schemeguid: ::core::option::Option<&::windows::core::GUID>, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, buffer: *mut u8, buffersize: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -2738,7 +2738,7 @@ where #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerReadIconResourceSpecifier<'a, P0>(rootpowerkey: P0, schemeguid: ::core::option::Option<&::windows::core::GUID>, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, buffer: ::core::option::Option<&mut u8>, buffersize: &mut u32) -> u32 +pub unsafe fn PowerReadIconResourceSpecifier<'a, P0>(rootpowerkey: P0, schemeguid: ::core::option::Option<&::windows::core::GUID>, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, buffer: *mut u8, buffersize: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -2751,7 +2751,7 @@ where #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerReadPossibleDescription<'a, P0>(rootpowerkey: P0, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, possiblesettingindex: u32, buffer: ::core::option::Option<&mut u8>, buffersize: &mut u32) -> u32 +pub unsafe fn PowerReadPossibleDescription<'a, P0>(rootpowerkey: P0, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, possiblesettingindex: u32, buffer: *mut u8, buffersize: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -2764,7 +2764,7 @@ where #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerReadPossibleFriendlyName<'a, P0>(rootpowerkey: P0, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, possiblesettingindex: u32, buffer: ::core::option::Option<&mut u8>, buffersize: &mut u32) -> u32 +pub unsafe fn PowerReadPossibleFriendlyName<'a, P0>(rootpowerkey: P0, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, possiblesettingindex: u32, buffer: *mut u8, buffersize: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -2777,7 +2777,7 @@ where #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerReadPossibleValue<'a, P0>(rootpowerkey: P0, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, r#type: ::core::option::Option<&mut u32>, possiblesettingindex: u32, buffer: ::core::option::Option<&mut u8>, buffersize: &mut u32) -> u32 +pub unsafe fn PowerReadPossibleValue<'a, P0>(rootpowerkey: P0, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, r#type: ::core::option::Option<&mut u32>, possiblesettingindex: u32, buffer: *mut u8, buffersize: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -2838,7 +2838,7 @@ where #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerReadValueUnitsSpecifier<'a, P0>(rootpowerkey: P0, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, buffer: ::core::option::Option<&mut u8>, buffersize: &mut u32) -> u32 +pub unsafe fn PowerReadValueUnitsSpecifier<'a, P0>(rootpowerkey: P0, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, buffer: *mut u8, buffersize: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -3061,7 +3061,7 @@ where #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerWriteDescription<'a, P0>(rootpowerkey: P0, schemeguid: &::windows::core::GUID, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, buffer: &u8, buffersize: u32) -> u32 +pub unsafe fn PowerWriteDescription<'a, P0>(rootpowerkey: P0, schemeguid: &::windows::core::GUID, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, buffer: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -3069,12 +3069,12 @@ where extern "system" { fn PowerWriteDescription(rootpowerkey: super::Registry::HKEY, schemeguid: *const ::windows::core::GUID, subgroupofpowersettingsguid: *const ::windows::core::GUID, powersettingguid: *const ::windows::core::GUID, buffer: *const u8, buffersize: u32) -> u32; } - PowerWriteDescription(rootpowerkey.into(), ::core::mem::transmute(schemeguid), ::core::mem::transmute(subgroupofpowersettingsguid), ::core::mem::transmute(powersettingguid), ::core::mem::transmute(buffer), buffersize) + PowerWriteDescription(rootpowerkey.into(), ::core::mem::transmute(schemeguid), ::core::mem::transmute(subgroupofpowersettingsguid), ::core::mem::transmute(powersettingguid), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _) } #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerWriteFriendlyName<'a, P0>(rootpowerkey: P0, schemeguid: &::windows::core::GUID, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, buffer: &u8, buffersize: u32) -> u32 +pub unsafe fn PowerWriteFriendlyName<'a, P0>(rootpowerkey: P0, schemeguid: &::windows::core::GUID, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, buffer: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -3082,12 +3082,12 @@ where extern "system" { fn PowerWriteFriendlyName(rootpowerkey: super::Registry::HKEY, schemeguid: *const ::windows::core::GUID, subgroupofpowersettingsguid: *const ::windows::core::GUID, powersettingguid: *const ::windows::core::GUID, buffer: *const u8, buffersize: u32) -> u32; } - PowerWriteFriendlyName(rootpowerkey.into(), ::core::mem::transmute(schemeguid), ::core::mem::transmute(subgroupofpowersettingsguid), ::core::mem::transmute(powersettingguid), ::core::mem::transmute(buffer), buffersize) + PowerWriteFriendlyName(rootpowerkey.into(), ::core::mem::transmute(schemeguid), ::core::mem::transmute(subgroupofpowersettingsguid), ::core::mem::transmute(powersettingguid), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _) } #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerWriteIconResourceSpecifier<'a, P0>(rootpowerkey: P0, schemeguid: &::windows::core::GUID, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, buffer: &u8, buffersize: u32) -> u32 +pub unsafe fn PowerWriteIconResourceSpecifier<'a, P0>(rootpowerkey: P0, schemeguid: &::windows::core::GUID, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, buffer: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -3095,12 +3095,12 @@ where extern "system" { fn PowerWriteIconResourceSpecifier(rootpowerkey: super::Registry::HKEY, schemeguid: *const ::windows::core::GUID, subgroupofpowersettingsguid: *const ::windows::core::GUID, powersettingguid: *const ::windows::core::GUID, buffer: *const u8, buffersize: u32) -> u32; } - PowerWriteIconResourceSpecifier(rootpowerkey.into(), ::core::mem::transmute(schemeguid), ::core::mem::transmute(subgroupofpowersettingsguid), ::core::mem::transmute(powersettingguid), ::core::mem::transmute(buffer), buffersize) + PowerWriteIconResourceSpecifier(rootpowerkey.into(), ::core::mem::transmute(schemeguid), ::core::mem::transmute(subgroupofpowersettingsguid), ::core::mem::transmute(powersettingguid), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _) } #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerWritePossibleDescription<'a, P0>(rootpowerkey: P0, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, possiblesettingindex: u32, buffer: &u8, buffersize: u32) -> u32 +pub unsafe fn PowerWritePossibleDescription<'a, P0>(rootpowerkey: P0, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, possiblesettingindex: u32, buffer: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -3108,12 +3108,12 @@ where extern "system" { fn PowerWritePossibleDescription(rootpowerkey: super::Registry::HKEY, subgroupofpowersettingsguid: *const ::windows::core::GUID, powersettingguid: *const ::windows::core::GUID, possiblesettingindex: u32, buffer: *const u8, buffersize: u32) -> u32; } - PowerWritePossibleDescription(rootpowerkey.into(), ::core::mem::transmute(subgroupofpowersettingsguid), ::core::mem::transmute(powersettingguid), possiblesettingindex, ::core::mem::transmute(buffer), buffersize) + PowerWritePossibleDescription(rootpowerkey.into(), ::core::mem::transmute(subgroupofpowersettingsguid), ::core::mem::transmute(powersettingguid), possiblesettingindex, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _) } #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerWritePossibleFriendlyName<'a, P0>(rootpowerkey: P0, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, possiblesettingindex: u32, buffer: &u8, buffersize: u32) -> u32 +pub unsafe fn PowerWritePossibleFriendlyName<'a, P0>(rootpowerkey: P0, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, possiblesettingindex: u32, buffer: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -3121,12 +3121,12 @@ where extern "system" { fn PowerWritePossibleFriendlyName(rootpowerkey: super::Registry::HKEY, subgroupofpowersettingsguid: *const ::windows::core::GUID, powersettingguid: *const ::windows::core::GUID, possiblesettingindex: u32, buffer: *const u8, buffersize: u32) -> u32; } - PowerWritePossibleFriendlyName(rootpowerkey.into(), ::core::mem::transmute(subgroupofpowersettingsguid), ::core::mem::transmute(powersettingguid), possiblesettingindex, ::core::mem::transmute(buffer), buffersize) + PowerWritePossibleFriendlyName(rootpowerkey.into(), ::core::mem::transmute(subgroupofpowersettingsguid), ::core::mem::transmute(powersettingguid), possiblesettingindex, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _) } #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerWritePossibleValue<'a, P0>(rootpowerkey: P0, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, r#type: u32, possiblesettingindex: u32, buffer: &u8, buffersize: u32) -> u32 +pub unsafe fn PowerWritePossibleValue<'a, P0>(rootpowerkey: P0, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, r#type: u32, possiblesettingindex: u32, buffer: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -3134,7 +3134,7 @@ where extern "system" { fn PowerWritePossibleValue(rootpowerkey: super::Registry::HKEY, subgroupofpowersettingsguid: *const ::windows::core::GUID, powersettingguid: *const ::windows::core::GUID, r#type: u32, possiblesettingindex: u32, buffer: *const u8, buffersize: u32) -> u32; } - PowerWritePossibleValue(rootpowerkey.into(), ::core::mem::transmute(subgroupofpowersettingsguid), ::core::mem::transmute(powersettingguid), r#type, possiblesettingindex, ::core::mem::transmute(buffer), buffersize) + PowerWritePossibleValue(rootpowerkey.into(), ::core::mem::transmute(subgroupofpowersettingsguid), ::core::mem::transmute(powersettingguid), r#type, possiblesettingindex, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _) } #[doc = "*Required features: `\"Win32_System_Power\"`*"] #[inline] @@ -3187,7 +3187,7 @@ where #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn PowerWriteValueUnitsSpecifier<'a, P0>(rootpowerkey: P0, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, buffer: &u8, buffersize: u32) -> u32 +pub unsafe fn PowerWriteValueUnitsSpecifier<'a, P0>(rootpowerkey: P0, subgroupofpowersettingsguid: ::core::option::Option<&::windows::core::GUID>, powersettingguid: ::core::option::Option<&::windows::core::GUID>, buffer: &[u8]) -> u32 where P0: ::std::convert::Into, { @@ -3195,7 +3195,7 @@ where extern "system" { fn PowerWriteValueUnitsSpecifier(rootpowerkey: super::Registry::HKEY, subgroupofpowersettingsguid: *const ::windows::core::GUID, powersettingguid: *const ::windows::core::GUID, buffer: *const u8, buffersize: u32) -> u32; } - PowerWriteValueUnitsSpecifier(rootpowerkey.into(), ::core::mem::transmute(subgroupofpowersettingsguid), ::core::mem::transmute(powersettingguid), ::core::mem::transmute(buffer), buffersize) + PowerWriteValueUnitsSpecifier(rootpowerkey.into(), ::core::mem::transmute(subgroupofpowersettingsguid), ::core::mem::transmute(powersettingguid), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _) } #[doc = "*Required features: `\"Win32_System_Power\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/System/ProcessStatus/mod.rs b/crates/libs/windows/src/Windows/Win32/System/ProcessStatus/mod.rs index 94a23db175..004fed11b7 100644 --- a/crates/libs/windows/src/Windows/Win32/System/ProcessStatus/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/ProcessStatus/mod.rs @@ -79,12 +79,12 @@ where #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn K32EnumDeviceDrivers(lpimagebase: *mut *mut ::core::ffi::c_void, cb: u32, lpcbneeded: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn K32EnumDeviceDrivers(lpimagebase: &mut [u8], lpcbneeded: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn K32EnumDeviceDrivers(lpimagebase: *mut *mut ::core::ffi::c_void, cb: u32, lpcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - K32EnumDeviceDrivers(::core::mem::transmute(lpimagebase), cb, ::core::mem::transmute(lpcbneeded)) + K32EnumDeviceDrivers(::core::mem::transmute(lpimagebase.as_ptr()), lpimagebase.len() as _, ::core::mem::transmute(lpcbneeded)) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -109,7 +109,7 @@ pub unsafe fn K32EnumPageFilesW(pcallbackroutine: PENUM_PAGE_FILE_CALLBACKW, pco #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn K32EnumProcessModules<'a, P0>(hprocess: P0, lphmodule: &mut super::super::Foundation::HINSTANCE, cb: u32, lpcbneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn K32EnumProcessModules<'a, P0>(hprocess: P0, lphmodule: &mut [u8], lpcbneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -117,12 +117,12 @@ where extern "system" { fn K32EnumProcessModules(hprocess: super::super::Foundation::HANDLE, lphmodule: *mut super::super::Foundation::HINSTANCE, cb: u32, lpcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - K32EnumProcessModules(hprocess.into(), ::core::mem::transmute(lphmodule), cb, ::core::mem::transmute(lpcbneeded)) + K32EnumProcessModules(hprocess.into(), ::core::mem::transmute(lphmodule.as_ptr()), lphmodule.len() as _, ::core::mem::transmute(lpcbneeded)) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn K32EnumProcessModulesEx<'a, P0>(hprocess: P0, lphmodule: &mut super::super::Foundation::HINSTANCE, cb: u32, lpcbneeded: &mut u32, dwfilterflag: ENUM_PROCESS_MODULES_EX_FLAGS) -> super::super::Foundation::BOOL +pub unsafe fn K32EnumProcessModulesEx<'a, P0>(hprocess: P0, lphmodule: &mut [u8], lpcbneeded: &mut u32, dwfilterflag: ENUM_PROCESS_MODULES_EX_FLAGS) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -130,17 +130,17 @@ where extern "system" { fn K32EnumProcessModulesEx(hprocess: super::super::Foundation::HANDLE, lphmodule: *mut super::super::Foundation::HINSTANCE, cb: u32, lpcbneeded: *mut u32, dwfilterflag: ENUM_PROCESS_MODULES_EX_FLAGS) -> super::super::Foundation::BOOL; } - K32EnumProcessModulesEx(hprocess.into(), ::core::mem::transmute(lphmodule), cb, ::core::mem::transmute(lpcbneeded), dwfilterflag) + K32EnumProcessModulesEx(hprocess.into(), ::core::mem::transmute(lphmodule.as_ptr()), lphmodule.len() as _, ::core::mem::transmute(lpcbneeded), dwfilterflag) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn K32EnumProcesses(lpidprocess: &mut u32, cb: u32, lpcbneeded: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn K32EnumProcesses(lpidprocess: &mut [u8], lpcbneeded: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn K32EnumProcesses(lpidprocess: *mut u32, cb: u32, lpcbneeded: *mut u32) -> super::super::Foundation::BOOL; } - K32EnumProcesses(::core::mem::transmute(lpidprocess), cb, ::core::mem::transmute(lpcbneeded)) + K32EnumProcesses(::core::mem::transmute(lpidprocess.as_ptr()), lpidprocess.len() as _, ::core::mem::transmute(lpcbneeded)) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`*"] #[inline] @@ -149,7 +149,7 @@ pub unsafe fn K32GetDeviceDriverBaseNameA(imagebase: *const ::core::ffi::c_void, extern "system" { fn K32GetDeviceDriverBaseNameA(imagebase: *const ::core::ffi::c_void, lpfilename: ::windows::core::PSTR, nsize: u32) -> u32; } - K32GetDeviceDriverBaseNameA(::core::mem::transmute(imagebase), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpfilename)), lpfilename.len() as _) + K32GetDeviceDriverBaseNameA(::core::mem::transmute(imagebase), ::core::mem::transmute(lpfilename.as_ptr()), lpfilename.len() as _) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`*"] #[inline] @@ -158,7 +158,7 @@ pub unsafe fn K32GetDeviceDriverBaseNameW(imagebase: *const ::core::ffi::c_void, extern "system" { fn K32GetDeviceDriverBaseNameW(imagebase: *const ::core::ffi::c_void, lpbasename: ::windows::core::PWSTR, nsize: u32) -> u32; } - K32GetDeviceDriverBaseNameW(::core::mem::transmute(imagebase), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbasename)), lpbasename.len() as _) + K32GetDeviceDriverBaseNameW(::core::mem::transmute(imagebase), ::core::mem::transmute(lpbasename.as_ptr()), lpbasename.len() as _) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`*"] #[inline] @@ -167,7 +167,7 @@ pub unsafe fn K32GetDeviceDriverFileNameA(imagebase: *const ::core::ffi::c_void, extern "system" { fn K32GetDeviceDriverFileNameA(imagebase: *const ::core::ffi::c_void, lpfilename: ::windows::core::PSTR, nsize: u32) -> u32; } - K32GetDeviceDriverFileNameA(::core::mem::transmute(imagebase), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpfilename)), lpfilename.len() as _) + K32GetDeviceDriverFileNameA(::core::mem::transmute(imagebase), ::core::mem::transmute(lpfilename.as_ptr()), lpfilename.len() as _) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`*"] #[inline] @@ -176,7 +176,7 @@ pub unsafe fn K32GetDeviceDriverFileNameW(imagebase: *const ::core::ffi::c_void, extern "system" { fn K32GetDeviceDriverFileNameW(imagebase: *const ::core::ffi::c_void, lpfilename: ::windows::core::PWSTR, nsize: u32) -> u32; } - K32GetDeviceDriverFileNameW(::core::mem::transmute(imagebase), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpfilename)), lpfilename.len() as _) + K32GetDeviceDriverFileNameW(::core::mem::transmute(imagebase), ::core::mem::transmute(lpfilename.as_ptr()), lpfilename.len() as _) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -189,7 +189,7 @@ where extern "system" { fn K32GetMappedFileNameA(hprocess: super::super::Foundation::HANDLE, lpv: *const ::core::ffi::c_void, lpfilename: ::windows::core::PSTR, nsize: u32) -> u32; } - K32GetMappedFileNameA(hprocess.into(), ::core::mem::transmute(lpv), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpfilename)), lpfilename.len() as _) + K32GetMappedFileNameA(hprocess.into(), ::core::mem::transmute(lpv), ::core::mem::transmute(lpfilename.as_ptr()), lpfilename.len() as _) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -202,7 +202,7 @@ where extern "system" { fn K32GetMappedFileNameW(hprocess: super::super::Foundation::HANDLE, lpv: *const ::core::ffi::c_void, lpfilename: ::windows::core::PWSTR, nsize: u32) -> u32; } - K32GetMappedFileNameW(hprocess.into(), ::core::mem::transmute(lpv), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpfilename)), lpfilename.len() as _) + K32GetMappedFileNameW(hprocess.into(), ::core::mem::transmute(lpv), ::core::mem::transmute(lpfilename.as_ptr()), lpfilename.len() as _) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -216,7 +216,7 @@ where extern "system" { fn K32GetModuleBaseNameA(hprocess: super::super::Foundation::HANDLE, hmodule: super::super::Foundation::HINSTANCE, lpbasename: ::windows::core::PSTR, nsize: u32) -> u32; } - K32GetModuleBaseNameA(hprocess.into(), hmodule.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbasename)), lpbasename.len() as _) + K32GetModuleBaseNameA(hprocess.into(), hmodule.into(), ::core::mem::transmute(lpbasename.as_ptr()), lpbasename.len() as _) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -230,7 +230,7 @@ where extern "system" { fn K32GetModuleBaseNameW(hprocess: super::super::Foundation::HANDLE, hmodule: super::super::Foundation::HINSTANCE, lpbasename: ::windows::core::PWSTR, nsize: u32) -> u32; } - K32GetModuleBaseNameW(hprocess.into(), hmodule.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbasename)), lpbasename.len() as _) + K32GetModuleBaseNameW(hprocess.into(), hmodule.into(), ::core::mem::transmute(lpbasename.as_ptr()), lpbasename.len() as _) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -244,7 +244,7 @@ where extern "system" { fn K32GetModuleFileNameExA(hprocess: super::super::Foundation::HANDLE, hmodule: super::super::Foundation::HINSTANCE, lpfilename: ::windows::core::PSTR, nsize: u32) -> u32; } - K32GetModuleFileNameExA(hprocess.into(), hmodule.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpfilename)), lpfilename.len() as _) + K32GetModuleFileNameExA(hprocess.into(), hmodule.into(), ::core::mem::transmute(lpfilename.as_ptr()), lpfilename.len() as _) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -258,7 +258,7 @@ where extern "system" { fn K32GetModuleFileNameExW(hprocess: super::super::Foundation::HANDLE, hmodule: super::super::Foundation::HINSTANCE, lpfilename: ::windows::core::PWSTR, nsize: u32) -> u32; } - K32GetModuleFileNameExW(hprocess.into(), hmodule.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpfilename)), lpfilename.len() as _) + K32GetModuleFileNameExW(hprocess.into(), hmodule.into(), ::core::mem::transmute(lpfilename.as_ptr()), lpfilename.len() as _) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -295,7 +295,7 @@ where extern "system" { fn K32GetProcessImageFileNameA(hprocess: super::super::Foundation::HANDLE, lpimagefilename: ::windows::core::PSTR, nsize: u32) -> u32; } - K32GetProcessImageFileNameA(hprocess.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpimagefilename)), lpimagefilename.len() as _) + K32GetProcessImageFileNameA(hprocess.into(), ::core::mem::transmute(lpimagefilename.as_ptr()), lpimagefilename.len() as _) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -308,7 +308,7 @@ where extern "system" { fn K32GetProcessImageFileNameW(hprocess: super::super::Foundation::HANDLE, lpimagefilename: ::windows::core::PWSTR, nsize: u32) -> u32; } - K32GetProcessImageFileNameW(hprocess.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpimagefilename)), lpimagefilename.len() as _) + K32GetProcessImageFileNameW(hprocess.into(), ::core::mem::transmute(lpimagefilename.as_ptr()), lpimagefilename.len() as _) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -326,7 +326,7 @@ where #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn K32GetWsChanges<'a, P0>(hprocess: P0, lpwatchinfo: &mut PSAPI_WS_WATCH_INFORMATION, cb: u32) -> super::super::Foundation::BOOL +pub unsafe fn K32GetWsChanges<'a, P0>(hprocess: P0, lpwatchinfo: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -334,12 +334,12 @@ where extern "system" { fn K32GetWsChanges(hprocess: super::super::Foundation::HANDLE, lpwatchinfo: *mut PSAPI_WS_WATCH_INFORMATION, cb: u32) -> super::super::Foundation::BOOL; } - K32GetWsChanges(hprocess.into(), ::core::mem::transmute(lpwatchinfo), cb) + K32GetWsChanges(hprocess.into(), ::core::mem::transmute(lpwatchinfo.as_ptr()), lpwatchinfo.len() as _) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn K32GetWsChangesEx<'a, P0>(hprocess: P0, lpwatchinfoex: &mut PSAPI_WS_WATCH_INFORMATION_EX, cb: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn K32GetWsChangesEx<'a, P0>(hprocess: P0, lpwatchinfoex: *mut PSAPI_WS_WATCH_INFORMATION_EX, cb: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -365,7 +365,7 @@ where #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn K32QueryWorkingSet<'a, P0>(hprocess: P0, pv: *mut ::core::ffi::c_void, cb: u32) -> super::super::Foundation::BOOL +pub unsafe fn K32QueryWorkingSet<'a, P0>(hprocess: P0, pv: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -373,12 +373,12 @@ where extern "system" { fn K32QueryWorkingSet(hprocess: super::super::Foundation::HANDLE, pv: *mut ::core::ffi::c_void, cb: u32) -> super::super::Foundation::BOOL; } - K32QueryWorkingSet(hprocess.into(), ::core::mem::transmute(pv), cb) + K32QueryWorkingSet(hprocess.into(), ::core::mem::transmute(pv.as_ptr()), pv.len() as _) } #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn K32QueryWorkingSetEx<'a, P0>(hprocess: P0, pv: *mut ::core::ffi::c_void, cb: u32) -> super::super::Foundation::BOOL +pub unsafe fn K32QueryWorkingSetEx<'a, P0>(hprocess: P0, pv: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -386,7 +386,7 @@ where extern "system" { fn K32QueryWorkingSetEx(hprocess: super::super::Foundation::HANDLE, pv: *mut ::core::ffi::c_void, cb: u32) -> super::super::Foundation::BOOL; } - K32QueryWorkingSetEx(hprocess.into(), ::core::mem::transmute(pv), cb) + K32QueryWorkingSetEx(hprocess.into(), ::core::mem::transmute(pv.as_ptr()), pv.len() as _) } #[repr(C)] #[doc = "*Required features: `\"Win32_System_ProcessStatus\"`*"] diff --git a/crates/libs/windows/src/Windows/Win32/System/RealTimeCommunications/mod.rs b/crates/libs/windows/src/Windows/Win32/System/RealTimeCommunications/mod.rs index 92796f403c..6d948d4418 100644 --- a/crates/libs/windows/src/Windows/Win32/System/RealTimeCommunications/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/RealTimeCommunications/mod.rs @@ -10,13 +10,13 @@ pub struct INetworkTransportSettings(::windows::core::IUnknown); impl INetworkTransportSettings { #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[cfg(feature = "Win32_Networking_WinSock")] - pub unsafe fn ApplySetting(&self, settingid: &super::super::Networking::WinSock::TRANSPORT_SETTING_ID, valuein: &[u8], lengthout: &mut u32, valueout: &mut *mut u8) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ApplySetting)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(settingid), valuein.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(valuein)), ::core::mem::transmute(lengthout), ::core::mem::transmute(valueout)).ok() + pub unsafe fn ApplySetting(&self, settingid: &super::super::Networking::WinSock::TRANSPORT_SETTING_ID, valuein: &[u8], lengthout: &mut u32, valueout: *mut *mut u8) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ApplySetting)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(settingid), valuein.len() as _, ::core::mem::transmute(valuein.as_ptr()), ::core::mem::transmute(lengthout), ::core::mem::transmute(valueout)).ok() } #[doc = "*Required features: `\"Win32_Networking_WinSock\"`*"] #[cfg(feature = "Win32_Networking_WinSock")] - pub unsafe fn QuerySetting(&self, settingid: &super::super::Networking::WinSock::TRANSPORT_SETTING_ID, valuein: &[u8], lengthout: &mut u32, valueout: &mut *mut u8) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).QuerySetting)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(settingid), valuein.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(valuein)), ::core::mem::transmute(lengthout), ::core::mem::transmute(valueout)).ok() + pub unsafe fn QuerySetting(&self, settingid: &super::super::Networking::WinSock::TRANSPORT_SETTING_ID, valuein: &[u8], lengthout: &mut u32, valueout: *mut *mut u8) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).QuerySetting)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(settingid), valuein.len() as _, ::core::mem::transmute(valuein.as_ptr()), ::core::mem::transmute(lengthout), ::core::mem::transmute(valueout)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2585,7 +2585,7 @@ pub struct IRTCDispatchEventNotification_Vtbl { pub struct IRTCEnumBuddies(::windows::core::IUnknown); impl IRTCEnumBuddies { pub unsafe fn Next(&self, ppelements: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppelements)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(ppelements.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -2647,7 +2647,7 @@ pub struct IRTCEnumBuddies_Vtbl { pub struct IRTCEnumGroups(::windows::core::IUnknown); impl IRTCEnumGroups { pub unsafe fn Next(&self, ppelements: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppelements)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(ppelements.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -2709,7 +2709,7 @@ pub struct IRTCEnumGroups_Vtbl { pub struct IRTCEnumParticipants(::windows::core::IUnknown); impl IRTCEnumParticipants { pub unsafe fn Next(&self, ppelements: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppelements)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(ppelements.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -2771,7 +2771,7 @@ pub struct IRTCEnumParticipants_Vtbl { pub struct IRTCEnumPresenceDevices(::windows::core::IUnknown); impl IRTCEnumPresenceDevices { pub unsafe fn Next(&self, ppelements: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppelements)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(ppelements.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -2833,7 +2833,7 @@ pub struct IRTCEnumPresenceDevices_Vtbl { pub struct IRTCEnumProfiles(::windows::core::IUnknown); impl IRTCEnumProfiles { pub unsafe fn Next(&self, ppelements: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppelements)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(ppelements.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -2895,7 +2895,7 @@ pub struct IRTCEnumProfiles_Vtbl { pub struct IRTCEnumUserSearchResults(::windows::core::IUnknown); impl IRTCEnumUserSearchResults { pub unsafe fn Next(&self, ppelements: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppelements)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(ppelements.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -2957,7 +2957,7 @@ pub struct IRTCEnumUserSearchResults_Vtbl { pub struct IRTCEnumWatchers(::windows::core::IUnknown); impl IRTCEnumWatchers { pub unsafe fn Next(&self, ppelements: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppelements)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelements.len() as _, ::core::mem::transmute(ppelements.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() diff --git a/crates/libs/windows/src/Windows/Win32/System/Registry/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Registry/mod.rs index b91e16a478..30c82ff747 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Registry/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Registry/mod.rs @@ -2699,7 +2699,7 @@ where #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RegEnumKeyA<'a, P0>(hkey: P0, dwindex: u32, lpname: &mut [u8]) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn RegEnumKeyA<'a, P0>(hkey: P0, dwindex: u32, lpname: ::core::option::Option<&mut [u8]>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, { @@ -2707,7 +2707,7 @@ where extern "system" { fn RegEnumKeyA(hkey: HKEY, dwindex: u32, lpname: ::windows::core::PSTR, cchname: u32) -> super::super::Foundation::WIN32_ERROR; } - RegEnumKeyA(hkey.into(), dwindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpname)), lpname.len() as _) + RegEnumKeyA(hkey.into(), dwindex, ::core::mem::transmute(lpname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpname.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2738,7 +2738,7 @@ where #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RegEnumKeyW<'a, P0>(hkey: P0, dwindex: u32, lpname: &mut [u16]) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn RegEnumKeyW<'a, P0>(hkey: P0, dwindex: u32, lpname: ::core::option::Option<&mut [u16]>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, { @@ -2746,12 +2746,12 @@ where extern "system" { fn RegEnumKeyW(hkey: HKEY, dwindex: u32, lpname: ::windows::core::PWSTR, cchname: u32) -> super::super::Foundation::WIN32_ERROR; } - RegEnumKeyW(hkey.into(), dwindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpname)), lpname.len() as _) + RegEnumKeyW(hkey.into(), dwindex, ::core::mem::transmute(lpname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpname.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RegEnumValueA<'a, P0>(hkey: P0, dwindex: u32, lpvaluename: ::windows::core::PSTR, lpcchvaluename: &mut u32, lpreserved: &mut u32, lptype: ::core::option::Option<&mut u32>, lpdata: ::core::option::Option<&mut u8>, lpcbdata: ::core::option::Option<&mut u32>) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn RegEnumValueA<'a, P0>(hkey: P0, dwindex: u32, lpvaluename: ::windows::core::PSTR, lpcchvaluename: &mut u32, lpreserved: &mut u32, lptype: ::core::option::Option<&mut u32>, lpdata: *mut u8, lpcbdata: ::core::option::Option<&mut u32>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, { @@ -2764,7 +2764,7 @@ where #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RegEnumValueW<'a, P0>(hkey: P0, dwindex: u32, lpvaluename: ::windows::core::PWSTR, lpcchvaluename: &mut u32, lpreserved: &mut u32, lptype: ::core::option::Option<&mut u32>, lpdata: ::core::option::Option<&mut u8>, lpcbdata: ::core::option::Option<&mut u32>) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn RegEnumValueW<'a, P0>(hkey: P0, dwindex: u32, lpvaluename: ::windows::core::PWSTR, lpcchvaluename: &mut u32, lpreserved: &mut u32, lptype: ::core::option::Option<&mut u32>, lpdata: *mut u8, lpcbdata: ::core::option::Option<&mut u32>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, { @@ -2889,7 +2889,7 @@ where #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RegLoadMUIStringA<'a, P0, P1, P2>(hkey: P0, pszvalue: P1, pszoutbuf: ::windows::core::PSTR, cboutbuf: u32, pcbdata: ::core::option::Option<&mut u32>, flags: u32, pszdirectory: P2) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn RegLoadMUIStringA<'a, P0, P1, P2>(hkey: P0, pszvalue: P1, pszoutbuf: ::core::option::Option<&mut [u8]>, pcbdata: ::core::option::Option<&mut u32>, flags: u32, pszdirectory: P2) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -2899,12 +2899,12 @@ where extern "system" { fn RegLoadMUIStringA(hkey: HKEY, pszvalue: ::windows::core::PCSTR, pszoutbuf: ::windows::core::PSTR, cboutbuf: u32, pcbdata: *mut u32, flags: u32, pszdirectory: ::windows::core::PCSTR) -> super::super::Foundation::WIN32_ERROR; } - RegLoadMUIStringA(hkey.into(), pszvalue.into(), ::core::mem::transmute(pszoutbuf), cboutbuf, ::core::mem::transmute(pcbdata), flags, pszdirectory.into()) + RegLoadMUIStringA(hkey.into(), pszvalue.into(), ::core::mem::transmute(pszoutbuf.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszoutbuf.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbdata), flags, pszdirectory.into()) } #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RegLoadMUIStringW<'a, P0, P1, P2>(hkey: P0, pszvalue: P1, pszoutbuf: ::windows::core::PWSTR, cboutbuf: u32, pcbdata: ::core::option::Option<&mut u32>, flags: u32, pszdirectory: P2) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn RegLoadMUIStringW<'a, P0, P1, P2>(hkey: P0, pszvalue: P1, pszoutbuf: ::core::option::Option<&mut [u8]>, pcbdata: ::core::option::Option<&mut u32>, flags: u32, pszdirectory: P2) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -2914,7 +2914,7 @@ where extern "system" { fn RegLoadMUIStringW(hkey: HKEY, pszvalue: ::windows::core::PCWSTR, pszoutbuf: ::windows::core::PWSTR, cboutbuf: u32, pcbdata: *mut u32, flags: u32, pszdirectory: ::windows::core::PCWSTR) -> super::super::Foundation::WIN32_ERROR; } - RegLoadMUIStringW(hkey.into(), pszvalue.into(), ::core::mem::transmute(pszoutbuf), cboutbuf, ::core::mem::transmute(pcbdata), flags, pszdirectory.into()) + RegLoadMUIStringW(hkey.into(), pszvalue.into(), ::core::mem::transmute(pszoutbuf.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszoutbuf.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbdata), flags, pszdirectory.into()) } #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3092,7 +3092,7 @@ where extern "system" { fn RegQueryMultipleValuesA(hkey: HKEY, val_list: *mut VALENTA, num_vals: u32, lpvaluebuf: ::windows::core::PSTR, ldwtotsize: *mut u32) -> super::super::Foundation::WIN32_ERROR; } - RegQueryMultipleValuesA(hkey.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(val_list)), val_list.len() as _, ::core::mem::transmute(lpvaluebuf), ::core::mem::transmute(ldwtotsize)) + RegQueryMultipleValuesA(hkey.into(), ::core::mem::transmute(val_list.as_ptr()), val_list.len() as _, ::core::mem::transmute(lpvaluebuf), ::core::mem::transmute(ldwtotsize)) } #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3105,7 +3105,7 @@ where extern "system" { fn RegQueryMultipleValuesW(hkey: HKEY, val_list: *mut VALENTW, num_vals: u32, lpvaluebuf: ::windows::core::PWSTR, ldwtotsize: *mut u32) -> super::super::Foundation::WIN32_ERROR; } - RegQueryMultipleValuesW(hkey.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(val_list)), val_list.len() as _, ::core::mem::transmute(lpvaluebuf), ::core::mem::transmute(ldwtotsize)) + RegQueryMultipleValuesW(hkey.into(), ::core::mem::transmute(val_list.as_ptr()), val_list.len() as _, ::core::mem::transmute(lpvaluebuf), ::core::mem::transmute(ldwtotsize)) } #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3137,7 +3137,7 @@ where #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RegQueryValueExA<'a, P0, P1>(hkey: P0, lpvaluename: P1, lpreserved: &mut u32, lptype: ::core::option::Option<&mut REG_VALUE_TYPE>, lpdata: ::core::option::Option<&mut u8>, lpcbdata: ::core::option::Option<&mut u32>) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn RegQueryValueExA<'a, P0, P1>(hkey: P0, lpvaluename: P1, lpreserved: &mut u32, lptype: ::core::option::Option<&mut REG_VALUE_TYPE>, lpdata: *mut u8, lpcbdata: ::core::option::Option<&mut u32>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -3151,7 +3151,7 @@ where #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RegQueryValueExW<'a, P0, P1>(hkey: P0, lpvaluename: P1, lpreserved: &mut u32, lptype: ::core::option::Option<&mut REG_VALUE_TYPE>, lpdata: ::core::option::Option<&mut u8>, lpcbdata: ::core::option::Option<&mut u32>) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn RegQueryValueExW<'a, P0, P1>(hkey: P0, lpvaluename: P1, lpreserved: &mut u32, lptype: ::core::option::Option<&mut REG_VALUE_TYPE>, lpdata: *mut u8, lpcbdata: ::core::option::Option<&mut u32>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -3324,7 +3324,7 @@ where #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RegSetKeyValueA<'a, P0, P1, P2>(hkey: P0, lpsubkey: P1, lpvaluename: P2, dwtype: u32, lpdata: *const ::core::ffi::c_void, cbdata: u32) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn RegSetKeyValueA<'a, P0, P1, P2>(hkey: P0, lpsubkey: P1, lpvaluename: P2, dwtype: u32, lpdata: ::core::option::Option<&[u8]>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -3334,12 +3334,12 @@ where extern "system" { fn RegSetKeyValueA(hkey: HKEY, lpsubkey: ::windows::core::PCSTR, lpvaluename: ::windows::core::PCSTR, dwtype: u32, lpdata: *const ::core::ffi::c_void, cbdata: u32) -> super::super::Foundation::WIN32_ERROR; } - RegSetKeyValueA(hkey.into(), lpsubkey.into(), lpvaluename.into(), dwtype, ::core::mem::transmute(lpdata), cbdata) + RegSetKeyValueA(hkey.into(), lpsubkey.into(), lpvaluename.into(), dwtype, ::core::mem::transmute(lpdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RegSetKeyValueW<'a, P0, P1, P2>(hkey: P0, lpsubkey: P1, lpvaluename: P2, dwtype: u32, lpdata: *const ::core::ffi::c_void, cbdata: u32) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn RegSetKeyValueW<'a, P0, P1, P2>(hkey: P0, lpsubkey: P1, lpvaluename: P2, dwtype: u32, lpdata: ::core::option::Option<&[u8]>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -3349,27 +3349,26 @@ where extern "system" { fn RegSetKeyValueW(hkey: HKEY, lpsubkey: ::windows::core::PCWSTR, lpvaluename: ::windows::core::PCWSTR, dwtype: u32, lpdata: *const ::core::ffi::c_void, cbdata: u32) -> super::super::Foundation::WIN32_ERROR; } - RegSetKeyValueW(hkey.into(), lpsubkey.into(), lpvaluename.into(), dwtype, ::core::mem::transmute(lpdata), cbdata) + RegSetKeyValueW(hkey.into(), lpsubkey.into(), lpvaluename.into(), dwtype, ::core::mem::transmute(lpdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RegSetValueA<'a, P0, P1, P2>(hkey: P0, lpsubkey: P1, dwtype: REG_VALUE_TYPE, lpdata: P2, cbdata: u32) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn RegSetValueA<'a, P0, P1>(hkey: P0, lpsubkey: P1, dwtype: REG_VALUE_TYPE, lpdata: ::core::option::Option<&[u8]>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, - P2: ::std::convert::Into<::windows::core::PCSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RegSetValueA(hkey: HKEY, lpsubkey: ::windows::core::PCSTR, dwtype: REG_VALUE_TYPE, lpdata: ::windows::core::PCSTR, cbdata: u32) -> super::super::Foundation::WIN32_ERROR; } - RegSetValueA(hkey.into(), lpsubkey.into(), dwtype, lpdata.into(), cbdata) + RegSetValueA(hkey.into(), lpsubkey.into(), dwtype, ::core::mem::transmute(lpdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RegSetValueExA<'a, P0, P1>(hkey: P0, lpvaluename: P1, reserved: u32, dwtype: REG_VALUE_TYPE, lpdata: ::core::option::Option<&u8>, cbdata: u32) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn RegSetValueExA<'a, P0, P1>(hkey: P0, lpvaluename: P1, reserved: u32, dwtype: REG_VALUE_TYPE, lpdata: ::core::option::Option<&[u8]>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -3378,12 +3377,12 @@ where extern "system" { fn RegSetValueExA(hkey: HKEY, lpvaluename: ::windows::core::PCSTR, reserved: u32, dwtype: REG_VALUE_TYPE, lpdata: *const u8, cbdata: u32) -> super::super::Foundation::WIN32_ERROR; } - RegSetValueExA(hkey.into(), lpvaluename.into(), reserved, dwtype, ::core::mem::transmute(lpdata), cbdata) + RegSetValueExA(hkey.into(), lpvaluename.into(), reserved, dwtype, ::core::mem::transmute(lpdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RegSetValueExW<'a, P0, P1>(hkey: P0, lpvaluename: P1, reserved: u32, dwtype: REG_VALUE_TYPE, lpdata: ::core::option::Option<&u8>, cbdata: u32) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn RegSetValueExW<'a, P0, P1>(hkey: P0, lpvaluename: P1, reserved: u32, dwtype: REG_VALUE_TYPE, lpdata: ::core::option::Option<&[u8]>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -3392,22 +3391,21 @@ where extern "system" { fn RegSetValueExW(hkey: HKEY, lpvaluename: ::windows::core::PCWSTR, reserved: u32, dwtype: REG_VALUE_TYPE, lpdata: *const u8, cbdata: u32) -> super::super::Foundation::WIN32_ERROR; } - RegSetValueExW(hkey.into(), lpvaluename.into(), reserved, dwtype, ::core::mem::transmute(lpdata), cbdata) + RegSetValueExW(hkey.into(), lpvaluename.into(), reserved, dwtype, ::core::mem::transmute(lpdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RegSetValueW<'a, P0, P1, P2>(hkey: P0, lpsubkey: P1, dwtype: REG_VALUE_TYPE, lpdata: P2, cbdata: u32) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn RegSetValueW<'a, P0, P1>(hkey: P0, lpsubkey: P1, dwtype: REG_VALUE_TYPE, lpdata: ::core::option::Option<&[u8]>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, - P2: ::std::convert::Into<::windows::core::PCWSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RegSetValueW(hkey: HKEY, lpsubkey: ::windows::core::PCWSTR, dwtype: REG_VALUE_TYPE, lpdata: ::windows::core::PCWSTR, cbdata: u32) -> super::super::Foundation::WIN32_ERROR; } - RegSetValueW(hkey.into(), lpsubkey.into(), dwtype, lpdata.into(), cbdata) + RegSetValueW(hkey.into(), lpsubkey.into(), dwtype, ::core::mem::transmute(lpdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Registry\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/System/RemoteDesktop/mod.rs b/crates/libs/windows/src/Windows/Win32/System/RemoteDesktop/mod.rs index f68a972577..3ba45de3be 100644 --- a/crates/libs/windows/src/Windows/Win32/System/RemoteDesktop/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/RemoteDesktop/mod.rs @@ -2085,7 +2085,7 @@ pub struct ITSGAuthenticationEngine_Vtbl { pub struct ITSGAuthorizeConnectionSink(::windows::core::IUnknown); impl ITSGAuthorizeConnectionSink { pub unsafe fn OnConnectionAuthorized(&self, hrin: ::windows::core::HRESULT, mainsessionid: ::windows::core::GUID, pbsohresponse: &[u8], idletimeout: u32, sessiontimeout: u32, sessiontimeoutaction: SESSION_TIMEOUT_ACTION_TYPE, trustclass: AATrustClassID, policyattributes: &u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OnConnectionAuthorized)(::windows::core::Interface::as_raw(self), hrin, ::core::mem::transmute(mainsessionid), pbsohresponse.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbsohresponse)), idletimeout, sessiontimeout, sessiontimeoutaction, trustclass, ::core::mem::transmute(policyattributes)).ok() + (::windows::core::Interface::vtable(self).OnConnectionAuthorized)(::windows::core::Interface::as_raw(self), hrin, ::core::mem::transmute(mainsessionid), pbsohresponse.len() as _, ::core::mem::transmute(pbsohresponse.as_ptr()), idletimeout, sessiontimeout, sessiontimeoutaction, trustclass, ::core::mem::transmute(policyattributes)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2136,7 +2136,7 @@ impl ITSGAuthorizeResourceSink { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn OnChannelAuthorized(&self, hrin: ::windows::core::HRESULT, mainsessionid: ::windows::core::GUID, subsessionid: i32, allowedresourcenames: &[super::super::Foundation::BSTR], failedresourcenames: &[super::super::Foundation::BSTR]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OnChannelAuthorized)(::windows::core::Interface::as_raw(self), hrin, ::core::mem::transmute(mainsessionid), subsessionid, ::core::mem::transmute(::windows::core::as_ptr_or_null(allowedresourcenames)), allowedresourcenames.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(failedresourcenames)), failedresourcenames.len() as _).ok() + (::windows::core::Interface::vtable(self).OnChannelAuthorized)(::windows::core::Interface::as_raw(self), hrin, ::core::mem::transmute(mainsessionid), subsessionid, ::core::mem::transmute(allowedresourcenames.as_ptr()), allowedresourcenames.len() as _, ::core::mem::transmute(failedresourcenames.as_ptr()), failedresourcenames.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2197,7 +2197,7 @@ impl ITSGPolicyEngine { P3: ::std::convert::Into, P4: ::std::convert::Into<::windows::core::InParam<'a, ITSGAuthorizeConnectionSink>>, { - (::windows::core::Interface::vtable(self).AuthorizeConnection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(mainsessionid), username.into().abi(), authtype, clientmachineip.into().abi(), clientmachinename.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(sohdata)), sohdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(cookiedata)), cookiedata.len() as _, usertoken.into(), psink.into().abi()).ok() + (::windows::core::Interface::vtable(self).AuthorizeConnection)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(mainsessionid), username.into().abi(), authtype, clientmachineip.into().abi(), clientmachinename.into().abi(), ::core::mem::transmute(sohdata.as_ptr()), sohdata.len() as _, ::core::mem::transmute(cookiedata.as_ptr()), cookiedata.len() as _, usertoken.into(), psink.into().abi()).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2207,7 +2207,7 @@ impl ITSGPolicyEngine { P1: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, P2: ::std::convert::Into<::windows::core::InParam<'a, ITSGAuthorizeResourceSink>>, { - (::windows::core::Interface::vtable(self).AuthorizeResource)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(mainsessionid), subsessionid, username.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(resourcenames)), resourcenames.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(alternateresourcenames)), alternateresourcenames.len() as _, portnumber, operation.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(cookie)), cookie.len() as _, psink.into().abi()).ok() + (::windows::core::Interface::vtable(self).AuthorizeResource)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(mainsessionid), subsessionid, username.into().abi(), ::core::mem::transmute(resourcenames.as_ptr()), resourcenames.len() as _, ::core::mem::transmute(alternateresourcenames.as_ptr()), alternateresourcenames.len() as _, portnumber, operation.into().abi(), ::core::mem::transmute(cookie.as_ptr()), cookie.len() as _, psink.into().abi()).ok() } pub unsafe fn Refresh(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Refresh)(::windows::core::Interface::as_raw(self)).ok() @@ -2969,7 +2969,7 @@ impl ITsSbGlobalStore { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn EnumerateTargets<'a, P0, P1, P2>(&self, providername: P0, farmname: P1, envname: P2, pdwcount: &mut u32, pval: &mut *mut ::core::option::Option) -> ::windows::core::Result<()> + pub unsafe fn EnumerateTargets<'a, P0, P1, P2>(&self, providername: P0, farmname: P1, envname: P2, pdwcount: &mut u32, pval: *mut *mut ::core::option::Option) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, P1: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, @@ -2979,7 +2979,7 @@ impl ITsSbGlobalStore { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn EnumerateEnvironmentsByProvider<'a, P0>(&self, providername: P0, pdwcount: &mut u32, ppval: &mut *mut ::core::option::Option) -> ::windows::core::Result<()> + pub unsafe fn EnumerateEnvironmentsByProvider<'a, P0>(&self, providername: P0, pdwcount: &mut u32, ppval: *mut *mut ::core::option::Option) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { @@ -2987,7 +2987,7 @@ impl ITsSbGlobalStore { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn EnumerateSessions<'a, P0, P1, P2, P3, P4, P5>(&self, providername: P0, targetname: P1, username: P2, userdomain: P3, poolname: P4, initialprogram: P5, psessionstate: &TSSESSION_STATE, pdwcount: &mut u32, ppval: &mut *mut ::core::option::Option) -> ::windows::core::Result<()> + pub unsafe fn EnumerateSessions<'a, P0, P1, P2, P3, P4, P5>(&self, providername: P0, targetname: P1, username: P2, userdomain: P3, poolname: P4, initialprogram: P5, psessionstate: &TSSESSION_STATE, pdwcount: &mut u32, ppval: *mut *mut ::core::option::Option) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, P1: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, @@ -4617,7 +4617,7 @@ impl ITsSbResourcePluginStore { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).QueryEnvironment)(::windows::core::Interface::as_raw(self), environmentname.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn EnumerateEnvironments(&self, pdwcount: &mut u32, pval: &mut *mut ::core::option::Option) -> ::windows::core::Result<()> { + pub unsafe fn EnumerateEnvironments(&self, pdwcount: &mut u32, pval: *mut *mut ::core::option::Option) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).EnumerateEnvironments)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdwcount), ::core::mem::transmute(pval)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -4679,7 +4679,7 @@ impl ITsSbResourcePluginStore { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn EnumerateTargets<'a, P0, P1, P2>(&self, farmname: P0, envname: P1, sortbyfieldid: TS_SB_SORT_BY, sortybypropname: P2, pdwcount: &mut u32, pval: &mut *mut ::core::option::Option) -> ::windows::core::Result<()> + pub unsafe fn EnumerateTargets<'a, P0, P1, P2>(&self, farmname: P0, envname: P1, sortbyfieldid: TS_SB_SORT_BY, sortybypropname: P2, pdwcount: &mut u32, pval: *mut *mut ::core::option::Option) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, P1: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, @@ -4689,7 +4689,7 @@ impl ITsSbResourcePluginStore { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn EnumerateSessions<'a, P0, P1, P2, P3, P4>(&self, targetname: P0, username: P1, userdomain: P2, poolname: P3, initialprogram: P4, psessionstate: &TSSESSION_STATE, pdwcount: &mut u32, ppval: &mut *mut ::core::option::Option) -> ::windows::core::Result<()> + pub unsafe fn EnumerateSessions<'a, P0, P1, P2, P3, P4>(&self, targetname: P0, username: P1, userdomain: P2, poolname: P3, initialprogram: P4, psessionstate: &TSSESSION_STATE, pdwcount: &mut u32, ppval: *mut *mut ::core::option::Option) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, P1: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, @@ -5211,11 +5211,11 @@ impl ITsSbTarget { { (::windows::core::Interface::vtable(self).SetTargetNetbios)(::windows::core::Interface::as_raw(self), val.into().abi()).ok() } - pub unsafe fn get_IpAddresses(&self, sockaddr: &mut TSSD_ConnectionPoint, numaddresses: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn get_IpAddresses(&self, sockaddr: *mut TSSD_ConnectionPoint, numaddresses: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).get_IpAddresses)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(sockaddr), ::core::mem::transmute(numaddresses)).ok() } pub unsafe fn put_IpAddresses(&self, sockaddr: &[TSSD_ConnectionPoint]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).put_IpAddresses)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(sockaddr)), sockaddr.len() as _).ok() + (::windows::core::Interface::vtable(self).put_IpAddresses)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(sockaddr.as_ptr()), sockaddr.len() as _).ok() } pub unsafe fn TargetState(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -5628,7 +5628,7 @@ impl ITsSbTaskPlugin { where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::Foundation::BSTR>>, { - (::windows::core::Interface::vtable(self).SetTaskQueue)(::windows::core::Interface::as_raw(self), pszhostname.into().abi(), pitssbtaskinfo.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pitssbtaskinfo))).ok() + (::windows::core::Interface::vtable(self).SetTaskQueue)(::windows::core::Interface::as_raw(self), pszhostname.into().abi(), pitssbtaskinfo.len() as _, ::core::mem::transmute(pitssbtaskinfo.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -6117,7 +6117,7 @@ impl IWRdsProtocolConnection { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SessionArbitrationEnumeration<'a, P0, P1>(&self, husertoken: P0, bsinglesessionperuserenabled: P1, psessionidarray: &mut u32, pdwsessionidentifiercount: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn SessionArbitrationEnumeration<'a, P0, P1>(&self, husertoken: P0, bsinglesessionperuserenabled: P1, psessionidarray: *mut u32, pdwsessionidentifiercount: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -6165,7 +6165,7 @@ impl IWRdsProtocolConnection { (::windows::core::Interface::vtable(self).CreateVirtualChannel)(::windows::core::Interface::as_raw(self), szendpointname.into(), bstatic.into(), requestedpriority, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn QueryProperty(&self, querytype: ::windows::core::GUID, ppropertyentriesin: &[WTS_PROPERTY_VALUE], ppropertyentriesout: &mut [WTS_PROPERTY_VALUE]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).QueryProperty)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(querytype), ppropertyentriesin.len() as _, ppropertyentriesout.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppropertyentriesin)), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppropertyentriesout))).ok() + (::windows::core::Interface::vtable(self).QueryProperty)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(querytype), ppropertyentriesin.len() as _, ppropertyentriesout.len() as _, ::core::mem::transmute(ppropertyentriesin.as_ptr()), ::core::mem::transmute(ppropertyentriesout.as_ptr())).ok() } pub unsafe fn GetShadowConnection(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -6393,10 +6393,10 @@ impl IWRdsProtocolLicenseConnection { (::windows::core::Interface::vtable(self).RequestLicensingCapabilities)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pplicensecapabilities), ::core::mem::transmute(pcblicensecapabilities)).ok() } pub unsafe fn SendClientLicense(&self, pclientlicense: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SendClientLicense)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pclientlicense)), pclientlicense.len() as _).ok() + (::windows::core::Interface::vtable(self).SendClientLicense)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pclientlicense.as_ptr()), pclientlicense.len() as _).ok() } - pub unsafe fn RequestClientLicense(&self, reserve1: &[u8], ppclientlicense: &mut u8, pcbclientlicense: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RequestClientLicense)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(reserve1)), reserve1.len() as _, ::core::mem::transmute(ppclientlicense), ::core::mem::transmute(pcbclientlicense)).ok() + pub unsafe fn RequestClientLicense(&self, reserve1: &[u8], ppclientlicense: *mut u8, pcbclientlicense: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).RequestClientLicense)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(reserve1.as_ptr()), reserve1.len() as _, ::core::mem::transmute(ppclientlicense), ::core::mem::transmute(pcbclientlicense)).ok() } pub unsafe fn ProtocolComplete(&self, ulcomplete: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ProtocolComplete)(::windows::core::Interface::as_raw(self), ulcomplete).ok() @@ -6813,7 +6813,7 @@ impl IWRdsProtocolShadowCallback { P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).InvokeTargetShadow)(::windows::core::Interface::as_raw(self), ptargetservername.into(), targetsessionid, ::core::mem::transmute(::windows::core::as_ptr_or_null(pparam1)), pparam1.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pparam2)), pparam2.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pparam3)), pparam3.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pparam4)), pparam4.len() as _, pclientname.into()).ok() + (::windows::core::Interface::vtable(self).InvokeTargetShadow)(::windows::core::Interface::as_raw(self), ptargetservername.into(), targetsessionid, ::core::mem::transmute(pparam1.as_ptr()), pparam1.len() as _, ::core::mem::transmute(pparam2.as_ptr()), pparam2.len() as _, ::core::mem::transmute(pparam3.as_ptr()), pparam3.len() as _, ::core::mem::transmute(pparam4.as_ptr()), pparam4.len() as _, pclientname.into()).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -6876,7 +6876,7 @@ impl IWRdsProtocolShadowConnection { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).DoTarget)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pparam1)), pparam1.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pparam2)), pparam2.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pparam3)), pparam3.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pparam4)), pparam4.len() as _, pclientname.into()).ok() + (::windows::core::Interface::vtable(self).DoTarget)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pparam1.as_ptr()), pparam1.len() as _, ::core::mem::transmute(pparam2.as_ptr()), pparam2.len() as _, ::core::mem::transmute(pparam3.as_ptr()), pparam3.len() as _, ::core::mem::transmute(pparam4.as_ptr()), pparam4.len() as _, pclientname.into()).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -6927,7 +6927,7 @@ pub struct IWRdsProtocolShadowConnection_Vtbl { pub struct IWRdsWddmIddProps(::windows::core::IUnknown); impl IWRdsWddmIddProps { pub unsafe fn GetHardwareId(&self, pdisplaydriverhardwareid: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetHardwareId)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pdisplaydriverhardwareid)), pdisplaydriverhardwareid.len() as _).ok() + (::windows::core::Interface::vtable(self).GetHardwareId)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdisplaydriverhardwareid.as_ptr()), pdisplaydriverhardwareid.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7057,7 +7057,7 @@ pub struct IWTSBitmapRenderService_Vtbl { pub struct IWTSBitmapRenderer(::windows::core::IUnknown); impl IWTSBitmapRenderer { pub unsafe fn Render(&self, imageformat: ::windows::core::GUID, dwwidth: u32, dwheight: u32, cbstride: i32, pimagebuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Render)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(imageformat), dwwidth, dwheight, cbstride, pimagebuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pimagebuffer))).ok() + (::windows::core::Interface::vtable(self).Render)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(imageformat), dwwidth, dwheight, cbstride, pimagebuffer.len() as _, ::core::mem::transmute(pimagebuffer.as_ptr())).ok() } pub unsafe fn GetRendererStatistics(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -7448,7 +7448,7 @@ impl IWTSProtocolConnection { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn SessionArbitrationEnumeration<'a, P0, P1>(&self, husertoken: P0, bsinglesessionperuserenabled: P1, psessionidarray: &mut u32, pdwsessionidentifiercount: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn SessionArbitrationEnumeration<'a, P0, P1>(&self, husertoken: P0, bsinglesessionperuserenabled: P1, psessionidarray: *mut u32, pdwsessionidentifiercount: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -7501,7 +7501,7 @@ impl IWTSProtocolConnection { (::windows::core::Interface::vtable(self).CreateVirtualChannel)(::windows::core::Interface::as_raw(self), szendpointname.into(), bstatic.into(), requestedpriority, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn QueryProperty(&self, querytype: ::windows::core::GUID, ppropertyentriesin: &[WTS_PROPERTY_VALUE], ppropertyentriesout: &mut [WTS_PROPERTY_VALUE]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).QueryProperty)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(querytype), ppropertyentriesin.len() as _, ppropertyentriesout.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppropertyentriesin)), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppropertyentriesout))).ok() + (::windows::core::Interface::vtable(self).QueryProperty)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(querytype), ppropertyentriesin.len() as _, ppropertyentriesout.len() as _, ::core::mem::transmute(ppropertyentriesin.as_ptr()), ::core::mem::transmute(ppropertyentriesout.as_ptr())).ok() } pub unsafe fn GetShadowConnection(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -7670,10 +7670,10 @@ impl IWTSProtocolLicenseConnection { (::windows::core::Interface::vtable(self).RequestLicensingCapabilities)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pplicensecapabilities), ::core::mem::transmute(pcblicensecapabilities)).ok() } pub unsafe fn SendClientLicense(&self, pclientlicense: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SendClientLicense)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pclientlicense)), pclientlicense.len() as _).ok() + (::windows::core::Interface::vtable(self).SendClientLicense)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pclientlicense.as_ptr()), pclientlicense.len() as _).ok() } - pub unsafe fn RequestClientLicense(&self, reserve1: &[u8], ppclientlicense: &mut u8, pcbclientlicense: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RequestClientLicense)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(reserve1)), reserve1.len() as _, ::core::mem::transmute(ppclientlicense), ::core::mem::transmute(pcbclientlicense)).ok() + pub unsafe fn RequestClientLicense(&self, reserve1: &[u8], ppclientlicense: *mut u8, pcbclientlicense: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).RequestClientLicense)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(reserve1.as_ptr()), reserve1.len() as _, ::core::mem::transmute(ppclientlicense), ::core::mem::transmute(pcbclientlicense)).ok() } pub unsafe fn ProtocolComplete(&self, ulcomplete: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ProtocolComplete)(::windows::core::Interface::as_raw(self), ulcomplete).ok() @@ -7991,7 +7991,7 @@ impl IWTSProtocolShadowCallback { P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).InvokeTargetShadow)(::windows::core::Interface::as_raw(self), ptargetservername.into(), targetsessionid, ::core::mem::transmute(::windows::core::as_ptr_or_null(pparam1)), pparam1.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pparam2)), pparam2.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pparam3)), pparam3.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pparam4)), pparam4.len() as _, pclientname.into()).ok() + (::windows::core::Interface::vtable(self).InvokeTargetShadow)(::windows::core::Interface::as_raw(self), ptargetservername.into(), targetsessionid, ::core::mem::transmute(pparam1.as_ptr()), pparam1.len() as _, ::core::mem::transmute(pparam2.as_ptr()), pparam2.len() as _, ::core::mem::transmute(pparam3.as_ptr()), pparam3.len() as _, ::core::mem::transmute(pparam4.as_ptr()), pparam4.len() as _, pclientname.into()).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -8054,7 +8054,7 @@ impl IWTSProtocolShadowConnection { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).DoTarget)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pparam1)), pparam1.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pparam2)), pparam2.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pparam3)), pparam3.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pparam4)), pparam4.len() as _, pclientname.into()).ok() + (::windows::core::Interface::vtable(self).DoTarget)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pparam1.as_ptr()), pparam1.len() as _, ::core::mem::transmute(pparam2.as_ptr()), pparam2.len() as _, ::core::mem::transmute(pparam3.as_ptr()), pparam3.len() as _, ::core::mem::transmute(pparam4.as_ptr()), pparam4.len() as _, pclientname.into()).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -8114,7 +8114,7 @@ impl IWTSSBPlugin { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn WTSSBX_SessionChangeNotification(&self, notificationtype: WTSSBX_NOTIFICATION_TYPE, machineid: i32, sessioninfo: &[WTSSBX_SESSION_INFO]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WTSSBX_SessionChangeNotification)(::windows::core::Interface::as_raw(self), notificationtype, machineid, sessioninfo.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sessioninfo))).ok() + (::windows::core::Interface::vtable(self).WTSSBX_SessionChangeNotification)(::windows::core::Interface::as_raw(self), notificationtype, machineid, sessioninfo.len() as _, ::core::mem::transmute(sessioninfo.as_ptr())).ok() } pub unsafe fn WTSSBX_GetMostSuitableServer<'a, P0, P1, P2, P3>(&self, username: P0, domainname: P1, applicationtype: P2, farmname: P3, pmachineid: &mut i32) -> ::windows::core::Result<()> where @@ -8194,7 +8194,7 @@ impl IWTSVirtualChannel { where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).Write)(::windows::core::Interface::as_raw(self), pbuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuffer)), preserved.into().abi()).ok() + (::windows::core::Interface::vtable(self).Write)(::windows::core::Interface::as_raw(self), pbuffer.len() as _, ::core::mem::transmute(pbuffer.as_ptr()), preserved.into().abi()).ok() } pub unsafe fn Close(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Close)(::windows::core::Interface::as_raw(self)).ok() @@ -8247,7 +8247,7 @@ pub struct IWTSVirtualChannel_Vtbl { pub struct IWTSVirtualChannelCallback(::windows::core::IUnknown); impl IWTSVirtualChannelCallback { pub unsafe fn OnDataReceived(&self, pbuffer: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OnDataReceived)(::windows::core::Interface::as_raw(self), pbuffer.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbuffer))).ok() + (::windows::core::Interface::vtable(self).OnDataReceived)(::windows::core::Interface::as_raw(self), pbuffer.len() as _, ::core::mem::transmute(pbuffer.as_ptr())).ok() } pub unsafe fn OnClose(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OnClose)(::windows::core::Interface::as_raw(self)).ok() @@ -12207,7 +12207,7 @@ where #[doc = "*Required features: `\"Win32_System_RemoteDesktop\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WTSEnumerateListenersA<'a, P0>(hserver: P0, preserved: *const ::core::ffi::c_void, reserved: u32, plisteners: ::core::option::Option<&mut *mut i8>, pcount: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn WTSEnumerateListenersA<'a, P0>(hserver: P0, preserved: *const ::core::ffi::c_void, reserved: u32, plisteners: *mut *mut i8, pcount: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -12220,7 +12220,7 @@ where #[doc = "*Required features: `\"Win32_System_RemoteDesktop\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WTSEnumerateListenersW<'a, P0>(hserver: P0, preserved: *const ::core::ffi::c_void, reserved: u32, plisteners: ::core::option::Option<&mut *mut u16>, pcount: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn WTSEnumerateListenersW<'a, P0>(hserver: P0, preserved: *const ::core::ffi::c_void, reserved: u32, plisteners: *mut *mut u16, pcount: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13568,34 +13568,30 @@ impl ::core::default::Default for WTSSESSION_NOTIFICATION { #[doc = "*Required features: `\"Win32_System_RemoteDesktop\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] #[inline] -pub unsafe fn WTSSendMessageA<'a, P0, P1, P2, P3>(hserver: P0, sessionid: u32, ptitle: P1, titlelength: u32, pmessage: P2, messagelength: u32, style: super::super::UI::WindowsAndMessaging::MESSAGEBOX_STYLE, timeout: u32, presponse: &mut super::super::UI::WindowsAndMessaging::MESSAGEBOX_RESULT, bwait: P3) -> super::super::Foundation::BOOL +pub unsafe fn WTSSendMessageA<'a, P0, P1>(hserver: P0, sessionid: u32, ptitle: &[u8], pmessage: &[u8], style: super::super::UI::WindowsAndMessaging::MESSAGEBOX_STYLE, timeout: u32, presponse: &mut super::super::UI::WindowsAndMessaging::MESSAGEBOX_RESULT, bwait: P1) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, - P1: ::std::convert::Into<::windows::core::PCSTR>, - P2: ::std::convert::Into<::windows::core::PCSTR>, - P3: ::std::convert::Into, + P1: ::std::convert::Into, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WTSSendMessageA(hserver: super::super::Foundation::HANDLE, sessionid: u32, ptitle: ::windows::core::PCSTR, titlelength: u32, pmessage: ::windows::core::PCSTR, messagelength: u32, style: super::super::UI::WindowsAndMessaging::MESSAGEBOX_STYLE, timeout: u32, presponse: *mut super::super::UI::WindowsAndMessaging::MESSAGEBOX_RESULT, bwait: super::super::Foundation::BOOL) -> super::super::Foundation::BOOL; } - WTSSendMessageA(hserver.into(), sessionid, ptitle.into(), titlelength, pmessage.into(), messagelength, style, timeout, ::core::mem::transmute(presponse), bwait.into()) + WTSSendMessageA(hserver.into(), sessionid, ::core::mem::transmute(ptitle.as_ptr()), ptitle.len() as _, ::core::mem::transmute(pmessage.as_ptr()), pmessage.len() as _, style, timeout, ::core::mem::transmute(presponse), bwait.into()) } #[doc = "*Required features: `\"Win32_System_RemoteDesktop\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] #[inline] -pub unsafe fn WTSSendMessageW<'a, P0, P1, P2, P3>(hserver: P0, sessionid: u32, ptitle: P1, titlelength: u32, pmessage: P2, messagelength: u32, style: super::super::UI::WindowsAndMessaging::MESSAGEBOX_STYLE, timeout: u32, presponse: &mut super::super::UI::WindowsAndMessaging::MESSAGEBOX_RESULT, bwait: P3) -> super::super::Foundation::BOOL +pub unsafe fn WTSSendMessageW<'a, P0, P1>(hserver: P0, sessionid: u32, ptitle: &[u8], pmessage: &[u8], style: super::super::UI::WindowsAndMessaging::MESSAGEBOX_STYLE, timeout: u32, presponse: &mut super::super::UI::WindowsAndMessaging::MESSAGEBOX_RESULT, bwait: P1) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, - P1: ::std::convert::Into<::windows::core::PCWSTR>, - P2: ::std::convert::Into<::windows::core::PCWSTR>, - P3: ::std::convert::Into, + P1: ::std::convert::Into, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WTSSendMessageW(hserver: super::super::Foundation::HANDLE, sessionid: u32, ptitle: ::windows::core::PCWSTR, titlelength: u32, pmessage: ::windows::core::PCWSTR, messagelength: u32, style: super::super::UI::WindowsAndMessaging::MESSAGEBOX_STYLE, timeout: u32, presponse: *mut super::super::UI::WindowsAndMessaging::MESSAGEBOX_RESULT, bwait: super::super::Foundation::BOOL) -> super::super::Foundation::BOOL; } - WTSSendMessageW(hserver.into(), sessionid, ptitle.into(), titlelength, pmessage.into(), messagelength, style, timeout, ::core::mem::transmute(presponse), bwait.into()) + WTSSendMessageW(hserver.into(), sessionid, ::core::mem::transmute(ptitle.as_ptr()), ptitle.len() as _, ::core::mem::transmute(pmessage.as_ptr()), pmessage.len() as _, style, timeout, ::core::mem::transmute(presponse), bwait.into()) } #[doc = "*Required features: `\"Win32_System_RemoteDesktop\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] @@ -13630,7 +13626,7 @@ where #[doc = "*Required features: `\"Win32_System_RemoteDesktop\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WTSSetRenderHint<'a, P0>(prenderhintid: &mut u64, hwndowner: P0, renderhinttype: u32, cbhintdatalength: u32, phintdata: ::core::option::Option<&u8>) -> ::windows::core::Result<()> +pub unsafe fn WTSSetRenderHint<'a, P0>(prenderhintid: &mut u64, hwndowner: P0, renderhinttype: u32, phintdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -13638,37 +13634,35 @@ where extern "system" { fn WTSSetRenderHint(prenderhintid: *mut u64, hwndowner: super::super::Foundation::HWND, renderhinttype: u32, cbhintdatalength: u32, phintdata: *const u8) -> ::windows::core::HRESULT; } - WTSSetRenderHint(::core::mem::transmute(prenderhintid), hwndowner.into(), renderhinttype, cbhintdatalength, ::core::mem::transmute(phintdata)).ok() + WTSSetRenderHint(::core::mem::transmute(prenderhintid), hwndowner.into(), renderhinttype, phintdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(phintdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } #[doc = "*Required features: `\"Win32_System_RemoteDesktop\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WTSSetUserConfigA<'a, P0, P1, P2>(pservername: P0, pusername: P1, wtsconfigclass: WTS_CONFIG_CLASS, pbuffer: P2, datalength: u32) -> super::super::Foundation::BOOL +pub unsafe fn WTSSetUserConfigA<'a, P0, P1>(pservername: P0, pusername: P1, wtsconfigclass: WTS_CONFIG_CLASS, pbuffer: &[u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, - P2: ::std::convert::Into<::windows::core::PCSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WTSSetUserConfigA(pservername: ::windows::core::PCSTR, pusername: ::windows::core::PCSTR, wtsconfigclass: WTS_CONFIG_CLASS, pbuffer: ::windows::core::PCSTR, datalength: u32) -> super::super::Foundation::BOOL; } - WTSSetUserConfigA(pservername.into(), pusername.into(), wtsconfigclass, pbuffer.into(), datalength) + WTSSetUserConfigA(pservername.into(), pusername.into(), wtsconfigclass, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _) } #[doc = "*Required features: `\"Win32_System_RemoteDesktop\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WTSSetUserConfigW<'a, P0, P1, P2>(pservername: P0, pusername: P1, wtsconfigclass: WTS_CONFIG_CLASS, pbuffer: P2, datalength: u32) -> super::super::Foundation::BOOL +pub unsafe fn WTSSetUserConfigW<'a, P0, P1>(pservername: P0, pusername: P1, wtsconfigclass: WTS_CONFIG_CLASS, pbuffer: &[u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, - P2: ::std::convert::Into<::windows::core::PCWSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WTSSetUserConfigW(pservername: ::windows::core::PCWSTR, pusername: ::windows::core::PCWSTR, wtsconfigclass: WTS_CONFIG_CLASS, pbuffer: ::windows::core::PCWSTR, datalength: u32) -> super::super::Foundation::BOOL; } - WTSSetUserConfigW(pservername.into(), pusername.into(), wtsconfigclass, pbuffer.into(), datalength) + WTSSetUserConfigW(pservername.into(), pusername.into(), wtsconfigclass, ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _) } #[doc = "*Required features: `\"Win32_System_RemoteDesktop\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -13982,7 +13976,7 @@ where #[doc = "*Required features: `\"Win32_System_RemoteDesktop\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WTSVirtualChannelRead<'a, P0>(hchannelhandle: P0, timeout: u32, buffer: ::windows::core::PSTR, buffersize: u32, pbytesread: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn WTSVirtualChannelRead<'a, P0>(hchannelhandle: P0, timeout: u32, buffer: &mut [u8], pbytesread: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -13990,21 +13984,20 @@ where extern "system" { fn WTSVirtualChannelRead(hchannelhandle: super::super::Foundation::HANDLE, timeout: u32, buffer: ::windows::core::PSTR, buffersize: u32, pbytesread: *mut u32) -> super::super::Foundation::BOOL; } - WTSVirtualChannelRead(hchannelhandle.into(), timeout, ::core::mem::transmute(buffer), buffersize, ::core::mem::transmute(pbytesread)) + WTSVirtualChannelRead(hchannelhandle.into(), timeout, ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(pbytesread)) } #[doc = "*Required features: `\"Win32_System_RemoteDesktop\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WTSVirtualChannelWrite<'a, P0, P1>(hchannelhandle: P0, buffer: P1, length: u32, pbyteswritten: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn WTSVirtualChannelWrite<'a, P0>(hchannelhandle: P0, buffer: &[u8], pbyteswritten: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, - P1: ::std::convert::Into<::windows::core::PCSTR>, { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WTSVirtualChannelWrite(hchannelhandle: super::super::Foundation::HANDLE, buffer: ::windows::core::PCSTR, length: u32, pbyteswritten: *mut u32) -> super::super::Foundation::BOOL; } - WTSVirtualChannelWrite(hchannelhandle.into(), buffer.into(), length, ::core::mem::transmute(pbyteswritten)) + WTSVirtualChannelWrite(hchannelhandle.into(), ::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(pbyteswritten)) } #[doc = "*Required features: `\"Win32_System_RemoteDesktop\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/System/RemoteManagement/mod.rs b/crates/libs/windows/src/Windows/Win32/System/RemoteManagement/mod.rs index 152794738b..61ecbaf6f1 100644 --- a/crates/libs/windows/src/Windows/Win32/System/RemoteManagement/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/RemoteManagement/mod.rs @@ -4447,7 +4447,7 @@ impl ::core::fmt::Debug for WSManEnumFlags { } #[doc = "*Required features: `\"Win32_System_RemoteManagement\"`*"] #[inline] -pub unsafe fn WSManGetErrorMessage<'a, P0>(apihandle: &WSMAN_API, flags: u32, languagecode: P0, errorcode: u32, message: &mut [u16], messagelengthused: &mut u32) -> u32 +pub unsafe fn WSManGetErrorMessage<'a, P0>(apihandle: &WSMAN_API, flags: u32, languagecode: P0, errorcode: u32, message: ::core::option::Option<&mut [u16]>, messagelengthused: &mut u32) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -4455,7 +4455,7 @@ where extern "system" { fn WSManGetErrorMessage(apihandle: *const WSMAN_API, flags: u32, languagecode: ::windows::core::PCWSTR, errorcode: u32, messagelength: u32, message: ::windows::core::PWSTR, messagelengthused: *mut u32) -> u32; } - WSManGetErrorMessage(::core::mem::transmute(apihandle), flags, languagecode.into(), errorcode, message.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(message)), ::core::mem::transmute(messagelengthused)) + WSManGetErrorMessage(::core::mem::transmute(apihandle), flags, languagecode.into(), errorcode, message.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(message.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(messagelengthused)) } #[doc = "*Required features: `\"Win32_System_RemoteManagement\"`*"] #[inline] @@ -4468,12 +4468,12 @@ pub unsafe fn WSManGetSessionOptionAsDword(session: &WSMAN_SESSION, option: WSMa } #[doc = "*Required features: `\"Win32_System_RemoteManagement\"`*"] #[inline] -pub unsafe fn WSManGetSessionOptionAsString(session: &WSMAN_SESSION, option: WSManSessionOption, string: &mut [u16], stringlengthused: &mut u32) -> u32 { +pub unsafe fn WSManGetSessionOptionAsString(session: &WSMAN_SESSION, option: WSManSessionOption, string: ::core::option::Option<&mut [u16]>, stringlengthused: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WSManGetSessionOptionAsString(session: *const WSMAN_SESSION, option: WSManSessionOption, stringlength: u32, string: ::windows::core::PWSTR, stringlengthused: *mut u32) -> u32; } - WSManGetSessionOptionAsString(::core::mem::transmute(session), option, string.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(string)), ::core::mem::transmute(stringlengthused)) + WSManGetSessionOptionAsString(::core::mem::transmute(session), option, string.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(string.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(stringlengthused)) } #[doc = "*Required features: `\"Win32_System_RemoteManagement\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/System/RestartManager/mod.rs b/crates/libs/windows/src/Windows/Win32/System/RestartManager/mod.rs index 21f1664076..fcdfd10f94 100644 --- a/crates/libs/windows/src/Windows/Win32/System/RestartManager/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/RestartManager/mod.rs @@ -396,17 +396,17 @@ pub unsafe fn RmEndSession(dwsessionhandle: u32) -> u32 { } #[doc = "*Required features: `\"Win32_System_RestartManager\"`*"] #[inline] -pub unsafe fn RmGetFilterList(dwsessionhandle: u32, pbfilterbuf: ::core::option::Option<&mut u8>, cbfilterbuf: u32, cbfilterbufneeded: &mut u32) -> u32 { +pub unsafe fn RmGetFilterList(dwsessionhandle: u32, pbfilterbuf: ::core::option::Option<&mut [u8]>, cbfilterbufneeded: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RmGetFilterList(dwsessionhandle: u32, pbfilterbuf: *mut u8, cbfilterbuf: u32, cbfilterbufneeded: *mut u32) -> u32; } - RmGetFilterList(dwsessionhandle, ::core::mem::transmute(pbfilterbuf), cbfilterbuf, ::core::mem::transmute(cbfilterbufneeded)) + RmGetFilterList(dwsessionhandle, ::core::mem::transmute(pbfilterbuf.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbfilterbuf.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(cbfilterbufneeded)) } #[doc = "*Required features: `\"Win32_System_RestartManager\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RmGetList(dwsessionhandle: u32, pnprocinfoneeded: &mut u32, pnprocinfo: &mut u32, rgaffectedapps: ::core::option::Option<&mut RM_PROCESS_INFO>, lpdwrebootreasons: &mut u32) -> u32 { +pub unsafe fn RmGetList(dwsessionhandle: u32, pnprocinfoneeded: &mut u32, pnprocinfo: &mut u32, rgaffectedapps: *mut RM_PROCESS_INFO, lpdwrebootreasons: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RmGetList(dwsessionhandle: u32, pnprocinfoneeded: *mut u32, pnprocinfo: *mut u32, rgaffectedapps: *mut RM_PROCESS_INFO, lpdwrebootreasons: *mut u32) -> u32; @@ -428,12 +428,20 @@ where #[doc = "*Required features: `\"Win32_System_RestartManager\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RmRegisterResources(dwsessionhandle: u32, rgsfilenames: &[::windows::core::PWSTR], rgapplications: &[RM_UNIQUE_PROCESS], rgsservicenames: &[::windows::core::PWSTR]) -> u32 { +pub unsafe fn RmRegisterResources(dwsessionhandle: u32, rgsfilenames: ::core::option::Option<&[::windows::core::PWSTR]>, rgapplications: ::core::option::Option<&[RM_UNIQUE_PROCESS]>, rgsservicenames: ::core::option::Option<&[::windows::core::PWSTR]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RmRegisterResources(dwsessionhandle: u32, nfiles: u32, rgsfilenames: *const ::windows::core::PWSTR, napplications: u32, rgapplications: *const RM_UNIQUE_PROCESS, nservices: u32, rgsservicenames: *const ::windows::core::PWSTR) -> u32; } - RmRegisterResources(dwsessionhandle, rgsfilenames.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgsfilenames)), rgapplications.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgapplications)), rgsservicenames.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgsservicenames))) + RmRegisterResources( + dwsessionhandle, + rgsfilenames.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(rgsfilenames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + rgapplications.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(rgapplications.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + rgsservicenames.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(rgsservicenames.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ) } #[doc = "*Required features: `\"Win32_System_RestartManager\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/System/Rpc/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Rpc/mod.rs index 463755fccd..3fa4243676 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Rpc/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Rpc/mod.rs @@ -140,7 +140,7 @@ pub unsafe fn DceErrorInqTextA(rpcstatus: RPC_STATUS, errortext: &mut [u8; 256]) extern "system" { fn DceErrorInqTextA(rpcstatus: RPC_STATUS, errortext: *mut u8) -> RPC_STATUS; } - DceErrorInqTextA(rpcstatus, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(errortext))) + DceErrorInqTextA(rpcstatus, ::core::mem::transmute(errortext.as_ptr())) } #[doc = "*Required features: `\"Win32_System_Rpc\"`*"] #[inline] @@ -149,7 +149,7 @@ pub unsafe fn DceErrorInqTextW(rpcstatus: RPC_STATUS, errortext: &mut [u16; 256] extern "system" { fn DceErrorInqTextW(rpcstatus: RPC_STATUS, errortext: *mut u16) -> RPC_STATUS; } - DceErrorInqTextW(rpcstatus, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(errortext))) + DceErrorInqTextW(rpcstatus, ::core::mem::transmute(errortext.as_ptr())) } #[doc = "*Required features: `\"Win32_System_Rpc\"`*"] pub const EEInfoGCCOM: u32 = 11u32; @@ -1994,24 +1994,21 @@ pub const MIDL_WINRT_TYPE_SERIALIZATION_INFO_CURRENT_VERSION: i32 = 1i32; pub const MaxNumberOfEEInfoParams: u32 = 4u32; #[doc = "*Required features: `\"Win32_System_Rpc\"`*"] #[inline] -pub unsafe fn MesBufferHandleReset(handle: *const ::core::ffi::c_void, handlestyle: u32, operation: MIDL_ES_CODE, pbuffer: ::core::option::Option<&*const i8>, buffersize: u32, pencodedsize: ::core::option::Option<&mut u32>) -> RPC_STATUS { +pub unsafe fn MesBufferHandleReset(handle: *const ::core::ffi::c_void, handlestyle: u32, operation: MIDL_ES_CODE, pbuffer: ::core::option::Option<&[u8]>, pencodedsize: ::core::option::Option<&mut u32>) -> RPC_STATUS { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MesBufferHandleReset(handle: *const ::core::ffi::c_void, handlestyle: u32, operation: MIDL_ES_CODE, pbuffer: *const *const i8, buffersize: u32, pencodedsize: *mut u32) -> RPC_STATUS; } - MesBufferHandleReset(::core::mem::transmute(handle), handlestyle, operation, ::core::mem::transmute(pbuffer), buffersize, ::core::mem::transmute(pencodedsize)) + MesBufferHandleReset(::core::mem::transmute(handle), handlestyle, operation, ::core::mem::transmute(pbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pencodedsize)) } #[doc = "*Required features: `\"Win32_System_Rpc\"`*"] #[inline] -pub unsafe fn MesDecodeBufferHandleCreate<'a, P0>(buffer: P0, buffersize: u32, phandle: *mut *mut ::core::ffi::c_void) -> RPC_STATUS -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn MesDecodeBufferHandleCreate(buffer: &[u8], phandle: *mut *mut ::core::ffi::c_void) -> RPC_STATUS { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MesDecodeBufferHandleCreate(buffer: ::windows::core::PCSTR, buffersize: u32, phandle: *mut *mut ::core::ffi::c_void) -> RPC_STATUS; } - MesDecodeBufferHandleCreate(buffer.into(), buffersize, ::core::mem::transmute(phandle)) + MesDecodeBufferHandleCreate(::core::mem::transmute(buffer.as_ptr()), buffer.len() as _, ::core::mem::transmute(phandle)) } #[doc = "*Required features: `\"Win32_System_Rpc\"`*"] #[inline] @@ -2033,12 +2030,12 @@ pub unsafe fn MesEncodeDynBufferHandleCreate(pbuffer: &mut *mut i8, pencodedsize } #[doc = "*Required features: `\"Win32_System_Rpc\"`*"] #[inline] -pub unsafe fn MesEncodeFixedBufferHandleCreate(pbuffer: ::windows::core::PSTR, buffersize: u32, pencodedsize: &mut u32, phandle: *mut *mut ::core::ffi::c_void) -> RPC_STATUS { +pub unsafe fn MesEncodeFixedBufferHandleCreate(pbuffer: &mut [u8], pencodedsize: &mut u32, phandle: *mut *mut ::core::ffi::c_void) -> RPC_STATUS { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MesEncodeFixedBufferHandleCreate(pbuffer: ::windows::core::PSTR, buffersize: u32, pencodedsize: *mut u32, phandle: *mut *mut ::core::ffi::c_void) -> RPC_STATUS; } - MesEncodeFixedBufferHandleCreate(::core::mem::transmute(pbuffer), buffersize, ::core::mem::transmute(pencodedsize), ::core::mem::transmute(phandle)) + MesEncodeFixedBufferHandleCreate(::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _, ::core::mem::transmute(pencodedsize), ::core::mem::transmute(phandle)) } #[doc = "*Required features: `\"Win32_System_Rpc\"`*"] #[inline] @@ -10146,12 +10143,12 @@ pub unsafe fn RpcAsyncGetCallStatus(pasync: &RPC_ASYNC_STATE) -> RPC_STATUS { #[doc = "*Required features: `\"Win32_System_Rpc\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] #[inline] -pub unsafe fn RpcAsyncInitializeHandle(pasync: &mut RPC_ASYNC_STATE, size: u32) -> RPC_STATUS { +pub unsafe fn RpcAsyncInitializeHandle(pasync: &mut [u8]) -> RPC_STATUS { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RpcAsyncInitializeHandle(pasync: *mut RPC_ASYNC_STATE, size: u32) -> RPC_STATUS; } - RpcAsyncInitializeHandle(::core::mem::transmute(pasync), size) + RpcAsyncInitializeHandle(::core::mem::transmute(pasync.as_ptr()), pasync.len() as _) } #[doc = "*Required features: `\"Win32_System_Rpc\"`, `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] @@ -10646,12 +10643,12 @@ pub unsafe fn RpcErrorGetNumberOfRecords(enumhandle: &RPC_ERROR_ENUM_HANDLE, rec } #[doc = "*Required features: `\"Win32_System_Rpc\"`*"] #[inline] -pub unsafe fn RpcErrorLoadErrorInfo(errorblob: *const ::core::ffi::c_void, blobsize: usize, enumhandle: &mut RPC_ERROR_ENUM_HANDLE) -> RPC_STATUS { +pub unsafe fn RpcErrorLoadErrorInfo(errorblob: &[u8], enumhandle: &mut RPC_ERROR_ENUM_HANDLE) -> RPC_STATUS { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RpcErrorLoadErrorInfo(errorblob: *const ::core::ffi::c_void, blobsize: usize, enumhandle: *mut RPC_ERROR_ENUM_HANDLE) -> RPC_STATUS; } - RpcErrorLoadErrorInfo(::core::mem::transmute(errorblob), blobsize, ::core::mem::transmute(enumhandle)) + RpcErrorLoadErrorInfo(::core::mem::transmute(errorblob.as_ptr()), errorblob.len() as _, ::core::mem::transmute(enumhandle)) } #[doc = "*Required features: `\"Win32_System_Rpc\"`*"] #[inline] @@ -11757,7 +11754,7 @@ pub unsafe fn RpcServerInterfaceGroupCreateA(interfaces: &[RPC_INTERFACE_TEMPLAT extern "system" { fn RpcServerInterfaceGroupCreateA(interfaces: *const RPC_INTERFACE_TEMPLATEA, numifs: u32, endpoints: *const RPC_ENDPOINT_TEMPLATEA, numendpoints: u32, idleperiod: u32, idlecallbackfn: *mut ::core::ffi::c_void, idlecallbackcontext: *const ::core::ffi::c_void, ifgroup: *mut *mut ::core::ffi::c_void) -> RPC_STATUS; } - RpcServerInterfaceGroupCreateA(::core::mem::transmute(::windows::core::as_ptr_or_null(interfaces)), interfaces.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(endpoints)), endpoints.len() as _, idleperiod, ::core::mem::transmute(idlecallbackfn), ::core::mem::transmute(idlecallbackcontext), ::core::mem::transmute(ifgroup)) + RpcServerInterfaceGroupCreateA(::core::mem::transmute(interfaces.as_ptr()), interfaces.len() as _, ::core::mem::transmute(endpoints.as_ptr()), endpoints.len() as _, idleperiod, ::core::mem::transmute(idlecallbackfn), ::core::mem::transmute(idlecallbackcontext), ::core::mem::transmute(ifgroup)) } #[doc = "*Required features: `\"Win32_System_Rpc\"`*"] #[inline] @@ -11766,7 +11763,7 @@ pub unsafe fn RpcServerInterfaceGroupCreateW(interfaces: &[RPC_INTERFACE_TEMPLAT extern "system" { fn RpcServerInterfaceGroupCreateW(interfaces: *const RPC_INTERFACE_TEMPLATEW, numifs: u32, endpoints: *const RPC_ENDPOINT_TEMPLATEW, numendpoints: u32, idleperiod: u32, idlecallbackfn: *mut ::core::ffi::c_void, idlecallbackcontext: *const ::core::ffi::c_void, ifgroup: *mut *mut ::core::ffi::c_void) -> RPC_STATUS; } - RpcServerInterfaceGroupCreateW(::core::mem::transmute(::windows::core::as_ptr_or_null(interfaces)), interfaces.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(endpoints)), endpoints.len() as _, idleperiod, ::core::mem::transmute(idlecallbackfn), ::core::mem::transmute(idlecallbackcontext), ::core::mem::transmute(ifgroup)) + RpcServerInterfaceGroupCreateW(::core::mem::transmute(interfaces.as_ptr()), interfaces.len() as _, ::core::mem::transmute(endpoints.as_ptr()), endpoints.len() as _, idleperiod, ::core::mem::transmute(idlecallbackfn), ::core::mem::transmute(idlecallbackcontext), ::core::mem::transmute(ifgroup)) } #[doc = "*Required features: `\"Win32_System_Rpc\"`*"] #[inline] 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 bb7def3edf..3847eb3a59 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Search/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Search/mod.rs @@ -8464,7 +8464,7 @@ impl IAccessor { } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn CreateAccessor(&self, dwaccessorflags: u32, cbindings: usize, rgbindings: &DBBINDING, cbrowsize: usize, phaccessor: &mut usize, rgstatus: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { + pub unsafe fn CreateAccessor(&self, dwaccessorflags: u32, cbindings: usize, rgbindings: *const DBBINDING, cbrowsize: usize, phaccessor: &mut usize, rgstatus: *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CreateAccessor)(::windows::core::Interface::as_raw(self), dwaccessorflags, ::core::mem::transmute(cbindings), ::core::mem::transmute(rgbindings), cbrowsize, ::core::mem::transmute(phaccessor), ::core::mem::transmute(rgstatus)).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] @@ -8902,7 +8902,7 @@ impl IColumnsInfo { } #[doc = "*Required features: `\"Win32_Storage_IndexServer\"`*"] #[cfg(feature = "Win32_Storage_IndexServer")] - pub unsafe fn MapColumnIDs(&self, ccolumnids: usize, rgcolumnids: ::core::option::Option<&super::super::Storage::IndexServer::DBID>, rgcolumns: ::core::option::Option<&mut usize>) -> ::windows::core::Result<()> { + pub unsafe fn MapColumnIDs(&self, ccolumnids: usize, rgcolumnids: *const super::super::Storage::IndexServer::DBID, rgcolumns: *mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).MapColumnIDs)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ccolumnids), ::core::mem::transmute(rgcolumnids), ::core::mem::transmute(rgcolumns)).ok() } } @@ -8965,13 +8965,13 @@ impl IColumnsInfo2 { } #[doc = "*Required features: `\"Win32_Storage_IndexServer\"`*"] #[cfg(feature = "Win32_Storage_IndexServer")] - pub unsafe fn MapColumnIDs(&self, ccolumnids: usize, rgcolumnids: ::core::option::Option<&super::super::Storage::IndexServer::DBID>, rgcolumns: ::core::option::Option<&mut usize>) -> ::windows::core::Result<()> { + pub unsafe fn MapColumnIDs(&self, ccolumnids: usize, rgcolumnids: *const super::super::Storage::IndexServer::DBID, rgcolumns: *mut usize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.MapColumnIDs)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ccolumnids), ::core::mem::transmute(rgcolumnids), ::core::mem::transmute(rgcolumns)).ok() } #[doc = "*Required features: `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com"))] pub unsafe fn GetRestrictedColumnInfo(&self, rgcolumnidmasks: &[super::super::Storage::IndexServer::DBID], dwflags: u32, pccolumns: &mut usize, prgcolumnids: &mut *mut super::super::Storage::IndexServer::DBID, prgcolumninfo: &mut *mut DBCOLUMNINFO, ppstringsbuffer: ::core::option::Option<&mut *mut u16>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRestrictedColumnInfo)(::windows::core::Interface::as_raw(self), rgcolumnidmasks.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcolumnidmasks)), dwflags, ::core::mem::transmute(pccolumns), ::core::mem::transmute(prgcolumnids), ::core::mem::transmute(prgcolumninfo), ::core::mem::transmute(ppstringsbuffer)).ok() + (::windows::core::Interface::vtable(self).GetRestrictedColumnInfo)(::windows::core::Interface::as_raw(self), rgcolumnidmasks.len() as _, ::core::mem::transmute(rgcolumnidmasks.as_ptr()), dwflags, ::core::mem::transmute(pccolumns), ::core::mem::transmute(prgcolumnids), ::core::mem::transmute(prgcolumninfo), ::core::mem::transmute(ppstringsbuffer)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -9044,11 +9044,11 @@ impl IColumnsRowset { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetColumnsRowset<'a, P0>(&self, punkouter: P0, rgoptcolumns: &[super::super::Storage::IndexServer::DBID], riid: &::windows::core::GUID, rgpropertysets: &mut [DBPROPSET], ppcolrowset: &mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> + pub unsafe fn GetColumnsRowset<'a, P0>(&self, punkouter: P0, rgoptcolumns: &[super::super::Storage::IndexServer::DBID], riid: &::windows::core::GUID, rgpropertysets: ::core::option::Option<&mut [DBPROPSET]>, ppcolrowset: &mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).GetColumnsRowset)(::windows::core::Interface::as_raw(self), punkouter.into().abi(), rgoptcolumns.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgoptcolumns)), ::core::mem::transmute(riid), rgpropertysets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgpropertysets)), ::core::mem::transmute(ppcolrowset)).ok() + (::windows::core::Interface::vtable(self).GetColumnsRowset)(::windows::core::Interface::as_raw(self), punkouter.into().abi(), rgoptcolumns.len() as _, ::core::mem::transmute(rgoptcolumns.as_ptr()), ::core::mem::transmute(riid), rgpropertysets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpropertysets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(ppcolrowset)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -9387,13 +9387,13 @@ pub struct ICommandProperties(::windows::core::IUnknown); impl ICommandProperties { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetProperties(&self, rgpropertyidsets: &[DBPROPIDSET], pcpropertysets: &mut u32, prgpropertysets: ::core::option::Option<&mut *mut DBPROPSET>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProperties)(::windows::core::Interface::as_raw(self), rgpropertyidsets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpropertyidsets)), ::core::mem::transmute(pcpropertysets), ::core::mem::transmute(prgpropertysets)).ok() + pub unsafe fn GetProperties(&self, rgpropertyidsets: ::core::option::Option<&[DBPROPIDSET]>, pcpropertysets: &mut u32, prgpropertysets: ::core::option::Option<&mut *mut DBPROPSET>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProperties)(::windows::core::Interface::as_raw(self), rgpropertyidsets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpropertyidsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcpropertysets), ::core::mem::transmute(prgpropertysets)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] pub unsafe fn SetProperties(&self, rgpropertysets: &[DBPROPSET]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetProperties)(::windows::core::Interface::as_raw(self), rgpropertysets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpropertysets))).ok() + (::windows::core::Interface::vtable(self).SetProperties)(::windows::core::Interface::as_raw(self), rgpropertysets.len() as _, ::core::mem::transmute(rgpropertysets.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -9646,10 +9646,10 @@ impl ICommandWithParameters { pub unsafe fn GetParameterInfo(&self, pcparams: &mut usize, prgparaminfo: ::core::option::Option<&mut *mut DBPARAMINFO>, ppnamesbuffer: ::core::option::Option<&mut *mut u16>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetParameterInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcparams), ::core::mem::transmute(prgparaminfo), ::core::mem::transmute(ppnamesbuffer)).ok() } - pub unsafe fn MapParameterNames(&self, cparamnames: usize, rgparamnames: &::windows::core::PWSTR, rgparamordinals: &mut isize) -> ::windows::core::Result<()> { + pub unsafe fn MapParameterNames(&self, cparamnames: usize, rgparamnames: *const ::windows::core::PWSTR, rgparamordinals: *mut isize) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).MapParameterNames)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cparamnames), ::core::mem::transmute(rgparamnames), ::core::mem::transmute(rgparamordinals)).ok() } - pub unsafe fn SetParameterInfo(&self, cparams: usize, rgparamordinals: ::core::option::Option<&usize>, rgparambindinfo: ::core::option::Option<&DBPARAMBINDINFO>) -> ::windows::core::Result<()> { + pub unsafe fn SetParameterInfo(&self, cparams: usize, rgparamordinals: *const usize, rgparambindinfo: *const DBPARAMBINDINFO) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetParameterInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cparams), ::core::mem::transmute(rgparamordinals), ::core::mem::transmute(rgparambindinfo)).ok() } } @@ -10257,7 +10257,7 @@ impl IConditionFactory2 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).CreateCompoundFromArray)(::windows::core::Interface::as_raw(self), ct, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppcondsubs)), ppcondsubs.len() as _, cco, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).CreateCompoundFromArray)(::windows::core::Interface::as_raw(self), ct, ::core::mem::transmute(ppcondsubs.as_ptr()), ppcondsubs.len() as _, cco, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_System_Search_Common\"`, `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(all(feature = "Win32_System_Search_Common", feature = "Win32_UI_Shell_PropertiesSystem"))] @@ -10730,18 +10730,18 @@ pub struct IDBBinderProperties(::windows::core::IUnknown); impl IDBBinderProperties { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetProperties(&self, rgpropertyidsets: &[DBPROPIDSET], pcpropertysets: &mut u32, prgpropertysets: ::core::option::Option<&mut *mut DBPROPSET>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetProperties)(::windows::core::Interface::as_raw(self), rgpropertyidsets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpropertyidsets)), ::core::mem::transmute(pcpropertysets), ::core::mem::transmute(prgpropertysets)).ok() + pub unsafe fn GetProperties(&self, rgpropertyidsets: ::core::option::Option<&[DBPROPIDSET]>, pcpropertysets: &mut u32, prgpropertysets: ::core::option::Option<&mut *mut DBPROPSET>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetProperties)(::windows::core::Interface::as_raw(self), rgpropertyidsets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpropertyidsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcpropertysets), ::core::mem::transmute(prgpropertysets)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetPropertyInfo(&self, rgpropertyidsets: &[DBPROPIDSET], pcpropertyinfosets: &mut u32, prgpropertyinfosets: ::core::option::Option<&mut *mut DBPROPINFOSET>, ppdescbuffer: ::core::option::Option<&mut *mut u16>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetPropertyInfo)(::windows::core::Interface::as_raw(self), rgpropertyidsets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpropertyidsets)), ::core::mem::transmute(pcpropertyinfosets), ::core::mem::transmute(prgpropertyinfosets), ::core::mem::transmute(ppdescbuffer)).ok() + pub unsafe fn GetPropertyInfo(&self, rgpropertyidsets: ::core::option::Option<&[DBPROPIDSET]>, pcpropertyinfosets: &mut u32, prgpropertyinfosets: ::core::option::Option<&mut *mut DBPROPINFOSET>, ppdescbuffer: ::core::option::Option<&mut *mut u16>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.GetPropertyInfo)(::windows::core::Interface::as_raw(self), rgpropertyidsets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpropertyidsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcpropertyinfosets), ::core::mem::transmute(prgpropertyinfosets), ::core::mem::transmute(ppdescbuffer)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn SetProperties(&self, rgpropertysets: &mut [DBPROPSET]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetProperties)(::windows::core::Interface::as_raw(self), rgpropertysets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgpropertysets))).ok() + pub unsafe fn SetProperties(&self, rgpropertysets: ::core::option::Option<&mut [DBPROPSET]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetProperties)(::windows::core::Interface::as_raw(self), rgpropertysets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpropertysets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -10915,24 +10915,24 @@ pub struct IDBDataSourceAdmin(::windows::core::IUnknown); impl IDBDataSourceAdmin { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn CreateDataSource<'a, P0>(&self, rgpropertysets: &mut [DBPROPSET], punkouter: P0, riid: &::windows::core::GUID, ppdbsession: ::core::option::Option<&mut ::core::option::Option<::windows::core::IUnknown>>) -> ::windows::core::Result<()> + pub unsafe fn CreateDataSource<'a, P0>(&self, rgpropertysets: ::core::option::Option<&mut [DBPROPSET]>, punkouter: P0, riid: &::windows::core::GUID, ppdbsession: ::core::option::Option<&mut ::core::option::Option<::windows::core::IUnknown>>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).CreateDataSource)(::windows::core::Interface::as_raw(self), rgpropertysets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgpropertysets)), punkouter.into().abi(), ::core::mem::transmute(riid), ::core::mem::transmute(ppdbsession)).ok() + (::windows::core::Interface::vtable(self).CreateDataSource)(::windows::core::Interface::as_raw(self), rgpropertysets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpropertysets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), punkouter.into().abi(), ::core::mem::transmute(riid), ::core::mem::transmute(ppdbsession)).ok() } pub unsafe fn DestroyDataSource(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).DestroyDataSource)(::windows::core::Interface::as_raw(self)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetCreationProperties(&self, rgpropertyidsets: &[DBPROPIDSET], pcpropertyinfosets: &mut u32, prgpropertyinfosets: ::core::option::Option<&mut *mut DBPROPINFOSET>, ppdescbuffer: ::core::option::Option<&mut *mut u16>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCreationProperties)(::windows::core::Interface::as_raw(self), rgpropertyidsets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpropertyidsets)), ::core::mem::transmute(pcpropertyinfosets), ::core::mem::transmute(prgpropertyinfosets), ::core::mem::transmute(ppdescbuffer)).ok() + pub unsafe fn GetCreationProperties(&self, rgpropertyidsets: ::core::option::Option<&[DBPROPIDSET]>, pcpropertyinfosets: &mut u32, prgpropertyinfosets: ::core::option::Option<&mut *mut DBPROPINFOSET>, ppdescbuffer: ::core::option::Option<&mut *mut u16>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetCreationProperties)(::windows::core::Interface::as_raw(self), rgpropertyidsets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpropertyidsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcpropertyinfosets), ::core::mem::transmute(prgpropertyinfosets), ::core::mem::transmute(ppdescbuffer)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn ModifyDataSource(&self, rgpropertysets: &mut [DBPROPSET]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ModifyDataSource)(::windows::core::Interface::as_raw(self), rgpropertysets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgpropertysets))).ok() + pub unsafe fn ModifyDataSource(&self, rgpropertysets: ::core::option::Option<&mut [DBPROPSET]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ModifyDataSource)(::windows::core::Interface::as_raw(self), rgpropertysets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpropertysets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -10998,8 +10998,8 @@ impl IDBInfo { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetLiteralInfo(&self, rgliterals: &[u32], pcliteralinfo: &mut u32, prgliteralinfo: &mut *mut DBLITERALINFO, ppcharbuffer: &mut *mut u16) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLiteralInfo)(::windows::core::Interface::as_raw(self), rgliterals.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgliterals)), ::core::mem::transmute(pcliteralinfo), ::core::mem::transmute(prgliteralinfo), ::core::mem::transmute(ppcharbuffer)).ok() + pub unsafe fn GetLiteralInfo(&self, rgliterals: ::core::option::Option<&[u32]>, pcliteralinfo: &mut u32, prgliteralinfo: &mut *mut DBLITERALINFO, ppcharbuffer: &mut *mut u16) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetLiteralInfo)(::windows::core::Interface::as_raw(self), rgliterals.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgliterals.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcliteralinfo), ::core::mem::transmute(prgliteralinfo), ::core::mem::transmute(ppcharbuffer)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -11106,13 +11106,13 @@ pub struct IDBPromptInitialize(::windows::core::IUnknown); impl IDBPromptInitialize { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn PromptDataSource<'a, P0, P1, P2>(&self, punkouter: P0, hwndparent: P1, dwpromptoptions: u32, rgsourcetypefilter: &[u32], pwszszzproviderfilter: P2, riid: &::windows::core::GUID, ppdatasource: &mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> + pub unsafe fn PromptDataSource<'a, P0, P1, P2>(&self, punkouter: P0, hwndparent: P1, dwpromptoptions: u32, rgsourcetypefilter: ::core::option::Option<&[u32]>, pwszszzproviderfilter: P2, riid: &::windows::core::GUID, ppdatasource: &mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, P1: ::std::convert::Into, P2: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).PromptDataSource)(::windows::core::Interface::as_raw(self), punkouter.into().abi(), hwndparent.into(), dwpromptoptions, rgsourcetypefilter.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgsourcetypefilter)), pwszszzproviderfilter.into(), ::core::mem::transmute(riid), ::core::mem::transmute(ppdatasource)).ok() + (::windows::core::Interface::vtable(self).PromptDataSource)(::windows::core::Interface::as_raw(self), punkouter.into().abi(), hwndparent.into(), dwpromptoptions, rgsourcetypefilter.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgsourcetypefilter.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pwszszzproviderfilter.into(), ::core::mem::transmute(riid), ::core::mem::transmute(ppdatasource)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -11180,18 +11180,18 @@ pub struct IDBProperties(::windows::core::IUnknown); impl IDBProperties { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetProperties(&self, rgpropertyidsets: &[DBPROPIDSET], pcpropertysets: &mut u32, prgpropertysets: ::core::option::Option<&mut *mut DBPROPSET>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProperties)(::windows::core::Interface::as_raw(self), rgpropertyidsets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpropertyidsets)), ::core::mem::transmute(pcpropertysets), ::core::mem::transmute(prgpropertysets)).ok() + pub unsafe fn GetProperties(&self, rgpropertyidsets: ::core::option::Option<&[DBPROPIDSET]>, pcpropertysets: &mut u32, prgpropertysets: ::core::option::Option<&mut *mut DBPROPSET>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProperties)(::windows::core::Interface::as_raw(self), rgpropertyidsets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpropertyidsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcpropertysets), ::core::mem::transmute(prgpropertysets)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetPropertyInfo(&self, rgpropertyidsets: &[DBPROPIDSET], pcpropertyinfosets: &mut u32, prgpropertyinfosets: ::core::option::Option<&mut *mut DBPROPINFOSET>, ppdescbuffer: ::core::option::Option<&mut *mut u16>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPropertyInfo)(::windows::core::Interface::as_raw(self), rgpropertyidsets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpropertyidsets)), ::core::mem::transmute(pcpropertyinfosets), ::core::mem::transmute(prgpropertyinfosets), ::core::mem::transmute(ppdescbuffer)).ok() + pub unsafe fn GetPropertyInfo(&self, rgpropertyidsets: ::core::option::Option<&[DBPROPIDSET]>, pcpropertyinfosets: &mut u32, prgpropertyinfosets: ::core::option::Option<&mut *mut DBPROPINFOSET>, ppdescbuffer: ::core::option::Option<&mut *mut u16>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPropertyInfo)(::windows::core::Interface::as_raw(self), rgpropertyidsets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpropertyidsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcpropertyinfosets), ::core::mem::transmute(prgpropertyinfosets), ::core::mem::transmute(ppdescbuffer)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn SetProperties(&self, rgpropertysets: &mut [DBPROPSET]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetProperties)(::windows::core::Interface::as_raw(self), rgpropertysets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgpropertysets))).ok() + pub unsafe fn SetProperties(&self, rgpropertysets: ::core::option::Option<&mut [DBPROPSET]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetProperties)(::windows::core::Interface::as_raw(self), rgpropertysets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpropertysets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -11309,11 +11309,22 @@ pub struct IDBSchemaRowset(::windows::core::IUnknown); impl IDBSchemaRowset { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetRowset<'a, P0>(&self, punkouter: P0, rguidschema: &::windows::core::GUID, rgrestrictions: &[super::Com::VARIANT], riid: &::windows::core::GUID, rgpropertysets: &mut [DBPROPSET], pprowset: ::core::option::Option<&mut ::core::option::Option<::windows::core::IUnknown>>) -> ::windows::core::Result<()> + pub unsafe fn GetRowset<'a, P0>(&self, punkouter: P0, rguidschema: &::windows::core::GUID, rgrestrictions: ::core::option::Option<&[super::Com::VARIANT]>, riid: &::windows::core::GUID, rgpropertysets: ::core::option::Option<&mut [DBPROPSET]>, pprowset: ::core::option::Option<&mut ::core::option::Option<::windows::core::IUnknown>>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).GetRowset)(::windows::core::Interface::as_raw(self), punkouter.into().abi(), ::core::mem::transmute(rguidschema), rgrestrictions.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgrestrictions)), ::core::mem::transmute(riid), rgpropertysets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgpropertysets)), ::core::mem::transmute(pprowset)).ok() + (::windows::core::Interface::vtable(self).GetRowset)( + ::windows::core::Interface::as_raw(self), + punkouter.into().abi(), + ::core::mem::transmute(rguidschema), + rgrestrictions.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(rgrestrictions.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ::core::mem::transmute(riid), + rgpropertysets.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(rgpropertysets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ::core::mem::transmute(pprowset), + ) + .ok() } pub unsafe fn GetSchemas(&self, pcschemas: &mut u32, prgschemas: ::core::option::Option<&mut *mut ::windows::core::GUID>, prgrestrictionsupport: ::core::option::Option<&mut *mut u32>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSchemas)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcschemas), ::core::mem::transmute(prgschemas), ::core::mem::transmute(prgrestrictionsupport)).ok() @@ -11370,13 +11381,13 @@ pub struct IDCInfo(::windows::core::IUnknown); impl IDCInfo { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetInfo(&self, cinfo: u32, rgeinfotype: &u32, prginfo: &mut *mut DCINFO) -> ::windows::core::Result<()> { + pub unsafe fn GetInfo(&self, cinfo: u32, rgeinfotype: *const u32, prginfo: *mut *mut DCINFO) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cinfo), ::core::mem::transmute(rgeinfotype), ::core::mem::transmute(prginfo)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] pub unsafe fn SetInfo(&self, rginfo: &[DCINFO]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetInfo)(::windows::core::Interface::as_raw(self), rginfo.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rginfo))).ok() + (::windows::core::Interface::vtable(self).SetInfo)(::windows::core::Interface::as_raw(self), rginfo.len() as _, ::core::mem::transmute(rginfo.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -11547,8 +11558,8 @@ pub const IDX_S_SEARCH_SERVER_DOES_NOT_EXIST: i32 = 266518i32; #[repr(transparent)] pub struct IDataConvert(::windows::core::IUnknown); impl IDataConvert { - pub unsafe fn DataConvert(&self, wsrctype: u16, wdsttype: u16, cbsrclength: usize, pcbdstlength: ::core::option::Option<&mut usize>, psrc: *const ::core::ffi::c_void, pdst: *mut ::core::ffi::c_void, cbdstmaxlength: usize, dbssrcstatus: u32, pdbsstatus: ::core::option::Option<&mut u32>, bprecision: u8, bscale: u8, dwflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DataConvert)(::windows::core::Interface::as_raw(self), wsrctype, wdsttype, cbsrclength, ::core::mem::transmute(pcbdstlength), ::core::mem::transmute(psrc), ::core::mem::transmute(pdst), cbdstmaxlength, dbssrcstatus, ::core::mem::transmute(pdbsstatus), bprecision, bscale, dwflags).ok() + pub unsafe fn DataConvert(&self, wsrctype: u16, wdsttype: u16, pcbdstlength: ::core::option::Option<&mut usize>, psrc: &[u8], pdst: *mut ::core::ffi::c_void, cbdstmaxlength: usize, dbssrcstatus: u32, pdbsstatus: ::core::option::Option<&mut u32>, bprecision: u8, bscale: u8, dwflags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).DataConvert)(::windows::core::Interface::as_raw(self), wsrctype, wdsttype, psrc.len() as _, ::core::mem::transmute(pcbdstlength), ::core::mem::transmute(psrc.as_ptr()), ::core::mem::transmute(pdst), cbdstmaxlength, dbssrcstatus, ::core::mem::transmute(pdbsstatus), bprecision, bscale, dwflags).ok() } pub unsafe fn CanConvert(&self, wsrctype: u16, wdsttype: u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).CanConvert)(::windows::core::Interface::as_raw(self), wsrctype, wdsttype).ok() @@ -11633,7 +11644,7 @@ impl IDataInitialize { P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).CreateDBInstanceEx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(clsidprovider), punkouter.into().abi(), dwclsctx, pwszreserved.into(), ::core::mem::transmute(pserverinfo), rgmqresults.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgmqresults))).ok() + (::windows::core::Interface::vtable(self).CreateDBInstanceEx)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(clsidprovider), punkouter.into().abi(), dwclsctx, pwszreserved.into(), ::core::mem::transmute(pserverinfo), rgmqresults.len() as _, ::core::mem::transmute(rgmqresults.as_ptr())).ok() } pub unsafe fn LoadStringFromStorage<'a, P0>(&self, pwszfilename: P0) -> ::windows::core::Result<::windows::core::PWSTR> where @@ -11908,7 +11919,7 @@ impl IEnumItemProperties { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] pub unsafe fn Next(&self, rgelt: &mut [ITEMPROP], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -11978,7 +11989,7 @@ pub struct IEnumItemProperties_Vtbl { pub struct IEnumSearchRoots(::windows::core::IUnknown); impl IEnumSearchRoots { pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -12040,7 +12051,7 @@ pub struct IEnumSearchRoots_Vtbl { pub struct IEnumSearchScopeRules(::windows::core::IUnknown); impl IEnumSearchScopeRules { pub unsafe fn Next(&self, pprgelt: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pprgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pprgelt.len() as _, ::core::mem::transmute(pprgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -12102,7 +12113,7 @@ pub struct IEnumSearchScopeRules_Vtbl { pub struct IEnumSubscription(::windows::core::IUnknown); impl IEnumSubscription { pub unsafe fn Next(&self, rgelt: &mut [::windows::core::GUID], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -12538,7 +12549,7 @@ impl IIndexDefinition { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] pub unsafe fn CreateIndex(&self, ptableid: &super::super::Storage::IndexServer::DBID, pindexid: ::core::option::Option<&super::super::Storage::IndexServer::DBID>, rgindexcolumndescs: &[DBINDEXCOLUMNDESC], rgpropertysets: &mut [DBPROPSET], ppindexid: ::core::option::Option<&mut *mut super::super::Storage::IndexServer::DBID>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CreateIndex)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptableid), ::core::mem::transmute(pindexid), rgindexcolumndescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgindexcolumndescs)), rgpropertysets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgpropertysets)), ::core::mem::transmute(ppindexid)).ok() + (::windows::core::Interface::vtable(self).CreateIndex)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptableid), ::core::mem::transmute(pindexid), rgindexcolumndescs.len() as _, ::core::mem::transmute(rgindexcolumndescs.as_ptr()), rgpropertysets.len() as _, ::core::mem::transmute(rgpropertysets.as_ptr()), ::core::mem::transmute(ppindexid)).ok() } #[doc = "*Required features: `\"Win32_Storage_IndexServer\"`*"] #[cfg(feature = "Win32_Storage_IndexServer")] @@ -13493,11 +13504,11 @@ pub struct IOpenRowset(::windows::core::IUnknown); impl IOpenRowset { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn OpenRowset<'a, P0>(&self, punkouter: P0, ptableid: ::core::option::Option<&super::super::Storage::IndexServer::DBID>, pindexid: ::core::option::Option<&super::super::Storage::IndexServer::DBID>, riid: &::windows::core::GUID, rgpropertysets: &mut [DBPROPSET], pprowset: ::core::option::Option<&mut ::core::option::Option<::windows::core::IUnknown>>) -> ::windows::core::Result<()> + pub unsafe fn OpenRowset<'a, P0>(&self, punkouter: P0, ptableid: ::core::option::Option<&super::super::Storage::IndexServer::DBID>, pindexid: ::core::option::Option<&super::super::Storage::IndexServer::DBID>, riid: &::windows::core::GUID, rgpropertysets: ::core::option::Option<&mut [DBPROPSET]>, pprowset: ::core::option::Option<&mut ::core::option::Option<::windows::core::IUnknown>>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).OpenRowset)(::windows::core::Interface::as_raw(self), punkouter.into().abi(), ::core::mem::transmute(ptableid), ::core::mem::transmute(pindexid), ::core::mem::transmute(riid), rgpropertysets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgpropertysets)), ::core::mem::transmute(pprowset)).ok() + (::windows::core::Interface::vtable(self).OpenRowset)(::windows::core::Interface::as_raw(self), punkouter.into().abi(), ::core::mem::transmute(ptableid), ::core::mem::transmute(pindexid), ::core::mem::transmute(riid), rgpropertysets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpropertysets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pprowset)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -14301,7 +14312,7 @@ impl IRow { #[doc = "*Required features: `\"Win32_Storage_IndexServer\"`*"] #[cfg(feature = "Win32_Storage_IndexServer")] pub unsafe fn GetColumns(&self, rgcolumns: &mut [DBCOLUMNACCESS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetColumns)(::windows::core::Interface::as_raw(self), rgcolumns.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgcolumns))).ok() + (::windows::core::Interface::vtable(self).GetColumns)(::windows::core::Interface::as_raw(self), rgcolumns.len() as _, ::core::mem::transmute(rgcolumns.as_ptr())).ok() } pub unsafe fn GetSourceRowset(&self, riid: &::windows::core::GUID, pprowset: ::core::option::Option<&mut ::core::option::Option<::windows::core::IUnknown>>, phrow: ::core::option::Option<&mut usize>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSourceRowset)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(riid), ::core::mem::transmute(pprowset), ::core::mem::transmute(phrow)).ok() @@ -14372,7 +14383,7 @@ impl IRowChange { #[doc = "*Required features: `\"Win32_Storage_IndexServer\"`*"] #[cfg(feature = "Win32_Storage_IndexServer")] pub unsafe fn SetColumns(&self, rgcolumns: &[DBCOLUMNACCESS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetColumns)(::windows::core::Interface::as_raw(self), rgcolumns.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcolumns))).ok() + (::windows::core::Interface::vtable(self).SetColumns)(::windows::core::Interface::as_raw(self), rgcolumns.len() as _, ::core::mem::transmute(rgcolumns.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -14552,7 +14563,7 @@ impl IRowSchemaChange { #[doc = "*Required features: `\"Win32_Storage_IndexServer\"`*"] #[cfg(feature = "Win32_Storage_IndexServer")] pub unsafe fn SetColumns(&self, rgcolumns: &[DBCOLUMNACCESS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetColumns)(::windows::core::Interface::as_raw(self), rgcolumns.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcolumns))).ok() + (::windows::core::Interface::vtable(self).base__.SetColumns)(::windows::core::Interface::as_raw(self), rgcolumns.len() as _, ::core::mem::transmute(rgcolumns.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Storage_IndexServer\"`*"] #[cfg(feature = "Win32_Storage_IndexServer")] @@ -14755,8 +14766,8 @@ pub struct IRowsetAsynch_Vtbl { #[repr(transparent)] pub struct IRowsetBookmark(::windows::core::IUnknown); impl IRowsetBookmark { - pub unsafe fn PositionOnBookmark(&self, hchapter: usize, cbbookmark: usize, pbookmark: &u8) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).PositionOnBookmark)(::windows::core::Interface::as_raw(self), hchapter, cbbookmark, ::core::mem::transmute(pbookmark)).ok() + pub unsafe fn PositionOnBookmark(&self, hchapter: usize, pbookmark: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).PositionOnBookmark)(::windows::core::Interface::as_raw(self), hchapter, pbookmark.len() as _, ::core::mem::transmute(pbookmark.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -15422,8 +15433,8 @@ pub struct IRowsetInfo(::windows::core::IUnknown); impl IRowsetInfo { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetProperties(&self, rgpropertyidsets: &[DBPROPIDSET], pcpropertysets: &mut u32, prgpropertysets: ::core::option::Option<&mut *mut DBPROPSET>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProperties)(::windows::core::Interface::as_raw(self), rgpropertyidsets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpropertyidsets)), ::core::mem::transmute(pcpropertysets), ::core::mem::transmute(prgpropertysets)).ok() + pub unsafe fn GetProperties(&self, rgpropertyidsets: ::core::option::Option<&[DBPROPIDSET]>, pcpropertysets: &mut u32, prgpropertysets: ::core::option::Option<&mut *mut DBPROPSET>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProperties)(::windows::core::Interface::as_raw(self), rgpropertyidsets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpropertyidsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcpropertysets), ::core::mem::transmute(prgpropertysets)).ok() } pub unsafe fn GetReferencedRowset(&self, iordinal: usize, riid: &::windows::core::GUID) -> ::windows::core::Result<::windows::core::IUnknown> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -15733,7 +15744,7 @@ impl IRowsetNotify { P0: ::std::convert::Into<::windows::core::InParam<'a, IRowset>>, P1: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).OnFieldChange)(::windows::core::Interface::as_raw(self), prowset.into().abi(), hrow, rgcolumns.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcolumns)), ereason, ephase, fcantdeny.into()).ok() + (::windows::core::Interface::vtable(self).OnFieldChange)(::windows::core::Interface::as_raw(self), prowset.into().abi(), hrow, rgcolumns.len() as _, ::core::mem::transmute(rgcolumns.as_ptr()), ereason, ephase, fcantdeny.into()).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -15742,7 +15753,7 @@ impl IRowsetNotify { P0: ::std::convert::Into<::windows::core::InParam<'a, IRowset>>, P1: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).OnRowChange)(::windows::core::Interface::as_raw(self), prowset.into().abi(), rghrows.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rghrows)), ereason, ephase, fcantdeny.into()).ok() + (::windows::core::Interface::vtable(self).OnRowChange)(::windows::core::Interface::as_raw(self), prowset.into().abi(), rghrows.len() as _, ::core::mem::transmute(rghrows.as_ptr()), ereason, ephase, fcantdeny.into()).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -16659,7 +16670,7 @@ pub struct ISQLGetDiagField_Vtbl { pub struct ISQLRequestDiagFields(::windows::core::IUnknown); impl ISQLRequestDiagFields { pub unsafe fn RequestDiagFields(&self, rgdiagfields: &[KAGREQDIAG]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RequestDiagFields)(::windows::core::Interface::as_raw(self), rgdiagfields.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgdiagfields))).ok() + (::windows::core::Interface::vtable(self).RequestDiagFields)(::windows::core::Interface::as_raw(self), rgdiagfields.len() as _, ::core::mem::transmute(rgdiagfields.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -16984,7 +16995,7 @@ impl IScopedOperations { } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Copy<'a, P0>(&self, crows: usize, rgpwszsourceurls: ::core::option::Option<&::windows::core::PWSTR>, rgpwszdesturls: &::windows::core::PWSTR, dwcopyflags: u32, pauthenticate: P0, rgdwstatus: &mut u32, rgpwsznewurls: ::core::option::Option<&mut ::windows::core::PWSTR>, ppstringsbuffer: ::core::option::Option<&mut *mut u16>) -> ::windows::core::Result<()> + pub unsafe fn Copy<'a, P0>(&self, crows: usize, rgpwszsourceurls: *const ::windows::core::PWSTR, rgpwszdesturls: *const ::windows::core::PWSTR, dwcopyflags: u32, pauthenticate: P0, rgdwstatus: *mut u32, rgpwsznewurls: *mut ::windows::core::PWSTR, ppstringsbuffer: ::core::option::Option<&mut *mut u16>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::Com::IAuthenticate>>, { @@ -16992,13 +17003,13 @@ impl IScopedOperations { } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Move<'a, P0>(&self, crows: usize, rgpwszsourceurls: ::core::option::Option<&::windows::core::PWSTR>, rgpwszdesturls: &::windows::core::PWSTR, dwmoveflags: u32, pauthenticate: P0, rgdwstatus: &mut u32, rgpwsznewurls: ::core::option::Option<&mut ::windows::core::PWSTR>, ppstringsbuffer: ::core::option::Option<&mut *mut u16>) -> ::windows::core::Result<()> + pub unsafe fn Move<'a, P0>(&self, crows: usize, rgpwszsourceurls: *const ::windows::core::PWSTR, rgpwszdesturls: *const ::windows::core::PWSTR, dwmoveflags: u32, pauthenticate: P0, rgdwstatus: *mut u32, rgpwsznewurls: *mut ::windows::core::PWSTR, ppstringsbuffer: ::core::option::Option<&mut *mut u16>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::Com::IAuthenticate>>, { (::windows::core::Interface::vtable(self).Move)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(crows), ::core::mem::transmute(rgpwszsourceurls), ::core::mem::transmute(rgpwszdesturls), dwmoveflags, pauthenticate.into().abi(), ::core::mem::transmute(rgdwstatus), ::core::mem::transmute(rgpwsznewurls), ::core::mem::transmute(ppstringsbuffer)).ok() } - pub unsafe fn Delete(&self, crows: usize, rgpwszurls: &::windows::core::PWSTR, dwdeleteflags: u32, rgdwstatus: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Delete(&self, crows: usize, rgpwszurls: *const ::windows::core::PWSTR, dwdeleteflags: u32, rgdwstatus: *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Delete)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(crows), ::core::mem::transmute(rgpwszurls), dwdeleteflags, ::core::mem::transmute(rgdwstatus)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] @@ -17007,7 +17018,7 @@ impl IScopedOperations { where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).OpenRowset)(::windows::core::Interface::as_raw(self), punkouter.into().abi(), ::core::mem::transmute(ptableid), ::core::mem::transmute(pindexid), ::core::mem::transmute(riid), rgpropertysets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgpropertysets)), ::core::mem::transmute(pprowset)).ok() + (::windows::core::Interface::vtable(self).OpenRowset)(::windows::core::Interface::as_raw(self), punkouter.into().abi(), ::core::mem::transmute(ptableid), ::core::mem::transmute(pindexid), ::core::mem::transmute(riid), rgpropertysets.len() as _, ::core::mem::transmute(rgpropertysets.as_ptr()), ::core::mem::transmute(pprowset)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -17887,7 +17898,7 @@ impl ISearchItemsChangedSink { } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn OnItemsChanged(&self, dwnumberofchanges: u32, rgdatachangeentries: &SEARCH_ITEM_CHANGE, rgdwdocids: &mut u32, rghrcompletioncodes: &mut ::windows::core::HRESULT) -> ::windows::core::Result<()> { + pub unsafe fn OnItemsChanged(&self, dwnumberofchanges: u32, rgdatachangeentries: *const SEARCH_ITEM_CHANGE, rgdwdocids: *mut u32, rghrcompletioncodes: *mut ::windows::core::HRESULT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OnItemsChanged)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(dwnumberofchanges), ::core::mem::transmute(rgdatachangeentries), ::core::mem::transmute(rgdwdocids), ::core::mem::transmute(rghrcompletioncodes)).ok() } } @@ -17963,7 +17974,7 @@ impl ISearchLanguageSupport { } pub unsafe fn IsPrefixNormalized(&self, pwcsquerytoken: &[u16], pwcsdocumenttoken: &[u16]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).IsPrefixNormalized)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pwcsquerytoken)), pwcsquerytoken.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pwcsdocumenttoken)), pwcsdocumenttoken.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).IsPrefixNormalized)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwcsquerytoken.as_ptr()), pwcsquerytoken.len() as _, ::core::mem::transmute(pwcsdocumenttoken.as_ptr()), pwcsdocumenttoken.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -18313,7 +18324,7 @@ pub struct ISearchManager2_Vtbl { pub struct ISearchNotifyInlineSite(::windows::core::IUnknown); impl ISearchNotifyInlineSite { pub unsafe fn OnItemIndexedStatusChange(&self, sipstatus: SEARCH_INDEXING_PHASE, rgitemstatusentries: &[SEARCH_ITEM_INDEXING_STATUS]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OnItemIndexedStatusChange)(::windows::core::Interface::as_raw(self), sipstatus, rgitemstatusentries.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgitemstatusentries))).ok() + (::windows::core::Interface::vtable(self).OnItemIndexedStatusChange)(::windows::core::Interface::as_raw(self), sipstatus, rgitemstatusentries.len() as _, ::core::mem::transmute(rgitemstatusentries.as_ptr())).ok() } pub unsafe fn OnCatalogStatusChange(&self, guidcatalogresetsignature: &::windows::core::GUID, guidcheckpointsignature: &::windows::core::GUID, dwlastcheckpointnumber: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OnCatalogStatusChange)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(guidcatalogresetsignature), ::core::mem::transmute(guidcheckpointsignature), dwlastcheckpointnumber).ok() @@ -18377,7 +18388,7 @@ impl ISearchPersistentItemsChangedSink { { (::windows::core::Interface::vtable(self).StoppedMonitoringScope)(::windows::core::Interface::as_raw(self), pszurl.into()).ok() } - pub unsafe fn OnItemsChanged(&self, dwnumberofchanges: u32, datachangeentries: &SEARCH_ITEM_PERSISTENT_CHANGE, hrcompletioncodes: &mut ::windows::core::HRESULT) -> ::windows::core::Result<()> { + pub unsafe fn OnItemsChanged(&self, dwnumberofchanges: u32, datachangeentries: *const SEARCH_ITEM_PERSISTENT_CHANGE, hrcompletioncodes: *mut ::windows::core::HRESULT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OnItemsChanged)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(dwnumberofchanges), ::core::mem::transmute(datachangeentries), ::core::mem::transmute(hrcompletioncodes)).ok() } } @@ -18743,7 +18754,7 @@ impl ISearchQueryHelper { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_UI_Shell_PropertiesSystem"))] - pub unsafe fn WriteProperties(&self, itemid: i32, dwnumberofcolumns: u32, pcolumns: &super::super::UI::Shell::PropertiesSystem::PROPERTYKEY, pvalues: &SEARCH_COLUMN_PROPERTIES, pftgathermodifiedtime: ::core::option::Option<&super::super::Foundation::FILETIME>) -> ::windows::core::Result<()> { + pub unsafe fn WriteProperties(&self, itemid: i32, dwnumberofcolumns: u32, pcolumns: *const super::super::UI::Shell::PropertiesSystem::PROPERTYKEY, pvalues: *const SEARCH_COLUMN_PROPERTIES, pftgathermodifiedtime: ::core::option::Option<&super::super::Foundation::FILETIME>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WriteProperties)(::windows::core::Interface::as_raw(self), itemid, ::core::mem::transmute(dwnumberofcolumns), ::core::mem::transmute(pcolumns), ::core::mem::transmute(pvalues), ::core::mem::transmute(pftgathermodifiedtime)).ok() } pub unsafe fn SetQueryMaxResults(&self, cmaxresults: i32) -> ::windows::core::Result<()> { @@ -19350,13 +19361,13 @@ pub struct ISessionProperties(::windows::core::IUnknown); impl ISessionProperties { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetProperties(&self, rgpropertyidsets: &[DBPROPIDSET], pcpropertysets: &mut u32, prgpropertysets: ::core::option::Option<&mut *mut DBPROPSET>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProperties)(::windows::core::Interface::as_raw(self), rgpropertyidsets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpropertyidsets)), ::core::mem::transmute(pcpropertysets), ::core::mem::transmute(prgpropertysets)).ok() + pub unsafe fn GetProperties(&self, rgpropertyidsets: ::core::option::Option<&[DBPROPIDSET]>, pcpropertysets: &mut u32, prgpropertysets: ::core::option::Option<&mut *mut DBPROPSET>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetProperties)(::windows::core::Interface::as_raw(self), rgpropertyidsets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpropertyidsets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pcpropertysets), ::core::mem::transmute(prgpropertysets)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn SetProperties(&self, rgpropertysets: &mut [DBPROPSET]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetProperties)(::windows::core::Interface::as_raw(self), rgpropertysets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgpropertysets))).ok() + pub unsafe fn SetProperties(&self, rgpropertysets: ::core::option::Option<&mut [DBPROPSET]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetProperties)(::windows::core::Interface::as_raw(self), rgpropertysets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgpropertysets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -19480,11 +19491,11 @@ pub struct ISourcesRowset(::windows::core::IUnknown); impl ISourcesRowset { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetSourcesRowset<'a, P0>(&self, punkouter: P0, riid: &::windows::core::GUID, rgproperties: &mut [DBPROPSET], ppsourcesrowset: &mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> + pub unsafe fn GetSourcesRowset<'a, P0>(&self, punkouter: P0, riid: &::windows::core::GUID, rgproperties: ::core::option::Option<&mut [DBPROPSET]>, ppsourcesrowset: &mut ::core::option::Option<::windows::core::IUnknown>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).GetSourcesRowset)(::windows::core::Interface::as_raw(self), punkouter.into().abi(), ::core::mem::transmute(riid), rgproperties.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgproperties)), ::core::mem::transmute(ppsourcesrowset)).ok() + (::windows::core::Interface::vtable(self).GetSourcesRowset)(::windows::core::Interface::as_raw(self), punkouter.into().abi(), ::core::mem::transmute(riid), rgproperties.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(rgproperties.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(ppsourcesrowset)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -19614,12 +19625,12 @@ impl ISubscriptionItem { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn ReadProperties(&self, ncount: u32, rgwszname: &::windows::core::PWSTR, rgvalue: &mut super::Com::VARIANT) -> ::windows::core::Result<()> { + pub unsafe fn ReadProperties(&self, ncount: u32, rgwszname: *const ::windows::core::PWSTR, rgvalue: *mut super::Com::VARIANT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ReadProperties)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ncount), ::core::mem::transmute(rgwszname), ::core::mem::transmute(rgvalue)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn WriteProperties(&self, ncount: u32, rgwszname: &::windows::core::PWSTR, rgvalue: &super::Com::VARIANT) -> ::windows::core::Result<()> { + pub unsafe fn WriteProperties(&self, ncount: u32, rgwszname: *const ::windows::core::PWSTR, rgvalue: *const super::Com::VARIANT) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).WriteProperties)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ncount), ::core::mem::transmute(rgwszname), ::core::mem::transmute(rgvalue)).ok() } pub unsafe fn EnumProperties(&self) -> ::windows::core::Result { @@ -19891,7 +19902,7 @@ impl ISubscriptionMgr2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetItemFromCookie)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psubscriptioncookie), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetSubscriptionRunState(&self, dwnumcookies: u32, pcookies: &::windows::core::GUID, pdwrunstate: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetSubscriptionRunState(&self, dwnumcookies: u32, pcookies: *const ::windows::core::GUID, pdwrunstate: *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSubscriptionRunState)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(dwnumcookies), ::core::mem::transmute(pcookies), ::core::mem::transmute(pdwrunstate)).ok() } pub unsafe fn EnumSubscriptions(&self, dwflags: u32) -> ::windows::core::Result { @@ -19899,10 +19910,10 @@ impl ISubscriptionMgr2 { (::windows::core::Interface::vtable(self).EnumSubscriptions)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn UpdateItems(&self, dwflags: u32, pcookies: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UpdateItems)(::windows::core::Interface::as_raw(self), dwflags, pcookies.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pcookies))).ok() + (::windows::core::Interface::vtable(self).UpdateItems)(::windows::core::Interface::as_raw(self), dwflags, pcookies.len() as _, ::core::mem::transmute(pcookies.as_ptr())).ok() } pub unsafe fn AbortItems(&self, pcookies: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AbortItems)(::windows::core::Interface::as_raw(self), pcookies.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pcookies))).ok() + (::windows::core::Interface::vtable(self).AbortItems)(::windows::core::Interface::as_raw(self), pcookies.len() as _, ::core::mem::transmute(pcookies.as_ptr())).ok() } pub unsafe fn AbortAll(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AbortAll)(::windows::core::Interface::as_raw(self)).ok() @@ -20041,11 +20052,23 @@ pub struct ITableCreation(::windows::core::IUnknown); impl ITableCreation { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn CreateTable<'a, P0>(&self, punkouter: P0, ptableid: ::core::option::Option<&super::super::Storage::IndexServer::DBID>, rgcolumndescs: &[DBCOLUMNDESC], riid: &::windows::core::GUID, rgpropertysets: &mut [DBPROPSET], pptableid: ::core::option::Option<&mut *mut super::super::Storage::IndexServer::DBID>, pprowset: ::core::option::Option<&mut ::core::option::Option<::windows::core::IUnknown>>) -> ::windows::core::Result<()> + pub unsafe fn CreateTable<'a, P0>(&self, punkouter: P0, ptableid: ::core::option::Option<&super::super::Storage::IndexServer::DBID>, rgcolumndescs: ::core::option::Option<&[DBCOLUMNDESC]>, riid: &::windows::core::GUID, rgpropertysets: ::core::option::Option<&mut [DBPROPSET]>, pptableid: ::core::option::Option<&mut *mut super::super::Storage::IndexServer::DBID>, pprowset: ::core::option::Option<&mut ::core::option::Option<::windows::core::IUnknown>>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).base__.CreateTable)(::windows::core::Interface::as_raw(self), punkouter.into().abi(), ::core::mem::transmute(ptableid), rgcolumndescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcolumndescs)), ::core::mem::transmute(riid), rgpropertysets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgpropertysets)), ::core::mem::transmute(pptableid), ::core::mem::transmute(pprowset)).ok() + (::windows::core::Interface::vtable(self).base__.CreateTable)( + ::windows::core::Interface::as_raw(self), + punkouter.into().abi(), + ::core::mem::transmute(ptableid), + rgcolumndescs.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(rgcolumndescs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ::core::mem::transmute(riid), + rgpropertysets.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(rgpropertysets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ::core::mem::transmute(pptableid), + ::core::mem::transmute(pprowset), + ) + .ok() } #[doc = "*Required features: `\"Win32_Storage_IndexServer\"`*"] #[cfg(feature = "Win32_Storage_IndexServer")] @@ -20065,7 +20088,7 @@ impl ITableCreation { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetTableDefinition(&self, ptableid: &super::super::Storage::IndexServer::DBID, pccolumndescs: ::core::option::Option<&mut usize>, prgcolumndescs: ::core::option::Option<&mut *mut DBCOLUMNDESC>, pcpropertysets: ::core::option::Option<&mut u32>, prgpropertysets: ::core::option::Option<&mut *mut DBPROPSET>, pcconstraintdescs: ::core::option::Option<&mut u32>, prgconstraintdescs: ::core::option::Option<&mut *mut DBCONSTRAINTDESC>, ppwszstringbuffer: ::core::option::Option<&mut *mut u16>) -> ::windows::core::Result<()> { + pub unsafe fn GetTableDefinition(&self, ptableid: &super::super::Storage::IndexServer::DBID, pccolumndescs: ::core::option::Option<&mut usize>, prgcolumndescs: *mut *mut DBCOLUMNDESC, pcpropertysets: ::core::option::Option<&mut u32>, prgpropertysets: *mut *mut DBPROPSET, pcconstraintdescs: ::core::option::Option<&mut u32>, prgconstraintdescs: *mut *mut DBCONSTRAINTDESC, ppwszstringbuffer: ::core::option::Option<&mut *mut u16>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetTableDefinition)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptableid), ::core::mem::transmute(pccolumndescs), ::core::mem::transmute(prgcolumndescs), ::core::mem::transmute(pcpropertysets), ::core::mem::transmute(prgpropertysets), ::core::mem::transmute(pcconstraintdescs), ::core::mem::transmute(prgconstraintdescs), ::core::mem::transmute(ppwszstringbuffer)).ok() } } @@ -20134,11 +20157,23 @@ pub struct ITableDefinition(::windows::core::IUnknown); impl ITableDefinition { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn CreateTable<'a, P0>(&self, punkouter: P0, ptableid: ::core::option::Option<&super::super::Storage::IndexServer::DBID>, rgcolumndescs: &[DBCOLUMNDESC], riid: &::windows::core::GUID, rgpropertysets: &mut [DBPROPSET], pptableid: ::core::option::Option<&mut *mut super::super::Storage::IndexServer::DBID>, pprowset: ::core::option::Option<&mut ::core::option::Option<::windows::core::IUnknown>>) -> ::windows::core::Result<()> + pub unsafe fn CreateTable<'a, P0>(&self, punkouter: P0, ptableid: ::core::option::Option<&super::super::Storage::IndexServer::DBID>, rgcolumndescs: ::core::option::Option<&[DBCOLUMNDESC]>, riid: &::windows::core::GUID, rgpropertysets: ::core::option::Option<&mut [DBPROPSET]>, pptableid: ::core::option::Option<&mut *mut super::super::Storage::IndexServer::DBID>, pprowset: ::core::option::Option<&mut ::core::option::Option<::windows::core::IUnknown>>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).CreateTable)(::windows::core::Interface::as_raw(self), punkouter.into().abi(), ::core::mem::transmute(ptableid), rgcolumndescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcolumndescs)), ::core::mem::transmute(riid), rgpropertysets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgpropertysets)), ::core::mem::transmute(pptableid), ::core::mem::transmute(pprowset)).ok() + (::windows::core::Interface::vtable(self).CreateTable)( + ::windows::core::Interface::as_raw(self), + punkouter.into().abi(), + ::core::mem::transmute(ptableid), + rgcolumndescs.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(rgcolumndescs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ::core::mem::transmute(riid), + rgpropertysets.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(rgpropertysets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ::core::mem::transmute(pptableid), + ::core::mem::transmute(pprowset), + ) + .ok() } #[doc = "*Required features: `\"Win32_Storage_IndexServer\"`*"] #[cfg(feature = "Win32_Storage_IndexServer")] @@ -20219,11 +20254,23 @@ pub struct ITableDefinitionWithConstraints(::windows::core::IUnknown); impl ITableDefinitionWithConstraints { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn CreateTable<'a, P0>(&self, punkouter: P0, ptableid: ::core::option::Option<&super::super::Storage::IndexServer::DBID>, rgcolumndescs: &[DBCOLUMNDESC], riid: &::windows::core::GUID, rgpropertysets: &mut [DBPROPSET], pptableid: ::core::option::Option<&mut *mut super::super::Storage::IndexServer::DBID>, pprowset: ::core::option::Option<&mut ::core::option::Option<::windows::core::IUnknown>>) -> ::windows::core::Result<()> + pub unsafe fn CreateTable<'a, P0>(&self, punkouter: P0, ptableid: ::core::option::Option<&super::super::Storage::IndexServer::DBID>, rgcolumndescs: ::core::option::Option<&[DBCOLUMNDESC]>, riid: &::windows::core::GUID, rgpropertysets: ::core::option::Option<&mut [DBPROPSET]>, pptableid: ::core::option::Option<&mut *mut super::super::Storage::IndexServer::DBID>, pprowset: ::core::option::Option<&mut ::core::option::Option<::windows::core::IUnknown>>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).base__.base__.CreateTable)(::windows::core::Interface::as_raw(self), punkouter.into().abi(), ::core::mem::transmute(ptableid), rgcolumndescs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgcolumndescs)), ::core::mem::transmute(riid), rgpropertysets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgpropertysets)), ::core::mem::transmute(pptableid), ::core::mem::transmute(pprowset)).ok() + (::windows::core::Interface::vtable(self).base__.base__.CreateTable)( + ::windows::core::Interface::as_raw(self), + punkouter.into().abi(), + ::core::mem::transmute(ptableid), + rgcolumndescs.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(rgcolumndescs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ::core::mem::transmute(riid), + rgpropertysets.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(rgpropertysets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + ::core::mem::transmute(pptableid), + ::core::mem::transmute(pprowset), + ) + .ok() } #[doc = "*Required features: `\"Win32_Storage_IndexServer\"`*"] #[cfg(feature = "Win32_Storage_IndexServer")] @@ -20243,7 +20290,7 @@ impl ITableDefinitionWithConstraints { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_IndexServer", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] - pub unsafe fn GetTableDefinition(&self, ptableid: &super::super::Storage::IndexServer::DBID, pccolumndescs: ::core::option::Option<&mut usize>, prgcolumndescs: ::core::option::Option<&mut *mut DBCOLUMNDESC>, pcpropertysets: ::core::option::Option<&mut u32>, prgpropertysets: ::core::option::Option<&mut *mut DBPROPSET>, pcconstraintdescs: ::core::option::Option<&mut u32>, prgconstraintdescs: ::core::option::Option<&mut *mut DBCONSTRAINTDESC>, ppwszstringbuffer: ::core::option::Option<&mut *mut u16>) -> ::windows::core::Result<()> { + pub unsafe fn GetTableDefinition(&self, ptableid: &super::super::Storage::IndexServer::DBID, pccolumndescs: ::core::option::Option<&mut usize>, prgcolumndescs: *mut *mut DBCOLUMNDESC, pcpropertysets: ::core::option::Option<&mut u32>, prgpropertysets: *mut *mut DBPROPSET, pcconstraintdescs: ::core::option::Option<&mut u32>, prgconstraintdescs: *mut *mut DBCONSTRAINTDESC, ppwszstringbuffer: ::core::option::Option<&mut *mut u16>) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetTableDefinition)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ptableid), ::core::mem::transmute(pccolumndescs), ::core::mem::transmute(prgcolumndescs), ::core::mem::transmute(pcpropertysets), ::core::mem::transmute(prgpropertysets), ::core::mem::transmute(pcconstraintdescs), ::core::mem::transmute(prgconstraintdescs), ::core::mem::transmute(ppwszstringbuffer)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_IndexServer\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] @@ -21025,7 +21072,7 @@ impl IUrlAccessor { (::windows::core::Interface::vtable(self).GetFileName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(wszfilename), dwsize, ::core::mem::transmute(pdwlength)).ok() } pub unsafe fn GetSecurityDescriptor(&self, psd: &mut [u8], pdwlength: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSecurityDescriptor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psd)), psd.len() as _, ::core::mem::transmute(pdwlength)).ok() + (::windows::core::Interface::vtable(self).GetSecurityDescriptor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psd.as_ptr()), psd.len() as _, ::core::mem::transmute(pdwlength)).ok() } pub unsafe fn GetRedirectedURL(&self, wszredirectedurl: ::windows::core::PWSTR, dwsize: u32, pdwlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetRedirectedURL)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(wszredirectedurl), dwsize, ::core::mem::transmute(pdwlength)).ok() @@ -21148,7 +21195,7 @@ impl IUrlAccessor2 { (::windows::core::Interface::vtable(self).base__.GetFileName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(wszfilename), dwsize, ::core::mem::transmute(pdwlength)).ok() } pub unsafe fn GetSecurityDescriptor(&self, psd: &mut [u8], pdwlength: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetSecurityDescriptor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psd)), psd.len() as _, ::core::mem::transmute(pdwlength)).ok() + (::windows::core::Interface::vtable(self).base__.GetSecurityDescriptor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psd.as_ptr()), psd.len() as _, ::core::mem::transmute(pdwlength)).ok() } pub unsafe fn GetRedirectedURL(&self, wszredirectedurl: ::windows::core::PWSTR, dwsize: u32, pdwlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetRedirectedURL)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(wszredirectedurl), dwsize, ::core::mem::transmute(pdwlength)).ok() @@ -21273,7 +21320,7 @@ impl IUrlAccessor3 { (::windows::core::Interface::vtable(self).base__.base__.GetFileName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(wszfilename), dwsize, ::core::mem::transmute(pdwlength)).ok() } pub unsafe fn GetSecurityDescriptor(&self, psd: &mut [u8], pdwlength: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.GetSecurityDescriptor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psd)), psd.len() as _, ::core::mem::transmute(pdwlength)).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetSecurityDescriptor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psd.as_ptr()), psd.len() as _, ::core::mem::transmute(pdwlength)).ok() } pub unsafe fn GetRedirectedURL(&self, wszredirectedurl: ::windows::core::PWSTR, dwsize: u32, pdwlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetRedirectedURL)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(wszredirectedurl), dwsize, ::core::mem::transmute(pdwlength)).ok() @@ -21422,7 +21469,7 @@ impl IUrlAccessor4 { (::windows::core::Interface::vtable(self).base__.base__.base__.GetFileName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(wszfilename), dwsize, ::core::mem::transmute(pdwlength)).ok() } pub unsafe fn GetSecurityDescriptor(&self, psd: &mut [u8], pdwlength: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetSecurityDescriptor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psd)), psd.len() as _, ::core::mem::transmute(pdwlength)).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.GetSecurityDescriptor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psd.as_ptr()), psd.len() as _, ::core::mem::transmute(pdwlength)).ok() } pub unsafe fn GetRedirectedURL(&self, wszredirectedurl: ::windows::core::PWSTR, dwsize: u32, pdwlength: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.GetRedirectedURL)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(wszredirectedurl), dwsize, ::core::mem::transmute(pdwlength)).ok() @@ -21625,7 +21672,7 @@ pub struct IViewChapter_Vtbl { #[repr(transparent)] pub struct IViewFilter(::windows::core::IUnknown); impl IViewFilter { - pub unsafe fn GetFilter(&self, haccessor: usize, pcrows: &mut usize, pcompareops: &mut *mut u32, pcriteriadata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { + pub unsafe fn GetFilter(&self, haccessor: usize, pcrows: &mut usize, pcompareops: *mut *mut u32, pcriteriadata: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetFilter)(::windows::core::Interface::as_raw(self), haccessor, ::core::mem::transmute(pcrows), ::core::mem::transmute(pcompareops), ::core::mem::transmute(pcriteriadata)).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] @@ -21634,7 +21681,7 @@ impl IViewFilter { (::windows::core::Interface::vtable(self).GetFilterBindings)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcbindings), ::core::mem::transmute(prgbindings)).ok() } pub unsafe fn SetFilter(&self, haccessor: usize, compareops: &[u32], pcriteriadata: *const ::core::ffi::c_void) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetFilter)(::windows::core::Interface::as_raw(self), haccessor, compareops.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(compareops)), ::core::mem::transmute(pcriteriadata)).ok() + (::windows::core::Interface::vtable(self).SetFilter)(::windows::core::Interface::as_raw(self), haccessor, compareops.len() as _, ::core::mem::transmute(compareops.as_ptr()), ::core::mem::transmute(pcriteriadata)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -21748,7 +21795,7 @@ impl IViewSort { pub unsafe fn GetSortOrder(&self, pcvalues: &mut usize, prgcolumns: &mut *mut usize, prgorders: &mut *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetSortOrder)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcvalues), ::core::mem::transmute(prgcolumns), ::core::mem::transmute(prgorders)).ok() } - pub unsafe fn SetSortOrder(&self, cvalues: usize, rgcolumns: &usize, rgorders: &u32) -> ::windows::core::Result<()> { + pub unsafe fn SetSortOrder(&self, cvalues: usize, rgcolumns: *const usize, rgorders: *const u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetSortOrder)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cvalues), ::core::mem::transmute(rgcolumns), ::core::mem::transmute(rgorders)).ok() } } @@ -24973,30 +25020,30 @@ pub unsafe fn SQLBindParameter(hstmt: *mut ::core::ffi::c_void, ipar: u16, fpara } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLBrowseConnect(hdbc: *mut ::core::ffi::c_void, szconnstrin: &[u8], szconnstrout: &mut [u8], pcchconnstrout: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLBrowseConnect(hdbc: *mut ::core::ffi::c_void, szconnstrin: &[u8], szconnstrout: ::core::option::Option<&mut [u8]>, pcchconnstrout: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLBrowseConnect(hdbc: *mut ::core::ffi::c_void, szconnstrin: *const u8, cchconnstrin: i16, szconnstrout: *mut u8, cchconnstroutmax: i16, pcchconnstrout: *mut i16) -> i16; } - SQLBrowseConnect(::core::mem::transmute(hdbc), ::core::mem::transmute(::windows::core::as_ptr_or_null(szconnstrin)), szconnstrin.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szconnstrout)), szconnstrout.len() as _, ::core::mem::transmute(pcchconnstrout)) + SQLBrowseConnect(::core::mem::transmute(hdbc), ::core::mem::transmute(szconnstrin.as_ptr()), szconnstrin.len() as _, ::core::mem::transmute(szconnstrout.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szconnstrout.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchconnstrout)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLBrowseConnectA(hdbc: *mut ::core::ffi::c_void, szconnstrin: &[u8], szconnstrout: &mut [u8], pcbconnstrout: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLBrowseConnectA(hdbc: *mut ::core::ffi::c_void, szconnstrin: &[u8], szconnstrout: ::core::option::Option<&mut [u8]>, pcbconnstrout: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLBrowseConnectA(hdbc: *mut ::core::ffi::c_void, szconnstrin: *const u8, cbconnstrin: i16, szconnstrout: *mut u8, cbconnstroutmax: i16, pcbconnstrout: *mut i16) -> i16; } - SQLBrowseConnectA(::core::mem::transmute(hdbc), ::core::mem::transmute(::windows::core::as_ptr_or_null(szconnstrin)), szconnstrin.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szconnstrout)), szconnstrout.len() as _, ::core::mem::transmute(pcbconnstrout)) + SQLBrowseConnectA(::core::mem::transmute(hdbc), ::core::mem::transmute(szconnstrin.as_ptr()), szconnstrin.len() as _, ::core::mem::transmute(szconnstrout.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szconnstrout.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbconnstrout)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLBrowseConnectW(hdbc: *mut ::core::ffi::c_void, szconnstrin: &[u16], szconnstrout: &mut [u16], pcchconnstrout: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLBrowseConnectW(hdbc: *mut ::core::ffi::c_void, szconnstrin: &[u16], szconnstrout: ::core::option::Option<&mut [u16]>, pcchconnstrout: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLBrowseConnectW(hdbc: *mut ::core::ffi::c_void, szconnstrin: *const u16, cchconnstrin: i16, szconnstrout: *mut u16, cchconnstroutmax: i16, pcchconnstrout: *mut i16) -> i16; } - SQLBrowseConnectW(::core::mem::transmute(hdbc), ::core::mem::transmute(::windows::core::as_ptr_or_null(szconnstrin)), szconnstrin.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szconnstrout)), szconnstrout.len() as _, ::core::mem::transmute(pcchconnstrout)) + SQLBrowseConnectW(::core::mem::transmute(hdbc), ::core::mem::transmute(szconnstrin.as_ptr()), szconnstrin.len() as _, ::core::mem::transmute(szconnstrout.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szconnstrout.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchconnstrout)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] @@ -25052,62 +25099,62 @@ where #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn SQLColAttribute(statementhandle: *mut ::core::ffi::c_void, columnnumber: u16, fieldidentifier: u16, characterattribute: *mut ::core::ffi::c_void, bufferlength: i16, stringlength: ::core::option::Option<&mut i16>, numericattribute: ::core::option::Option<&mut i64>) -> i16 { +pub unsafe fn SQLColAttribute(statementhandle: *mut ::core::ffi::c_void, columnnumber: u16, fieldidentifier: u16, characterattribute: ::core::option::Option<&mut [u8]>, stringlength: ::core::option::Option<&mut i16>, numericattribute: ::core::option::Option<&mut i64>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLColAttribute(statementhandle: *mut ::core::ffi::c_void, columnnumber: u16, fieldidentifier: u16, characterattribute: *mut ::core::ffi::c_void, bufferlength: i16, stringlength: *mut i16, numericattribute: *mut i64) -> i16; } - SQLColAttribute(::core::mem::transmute(statementhandle), columnnumber, fieldidentifier, ::core::mem::transmute(characterattribute), bufferlength, ::core::mem::transmute(stringlength), ::core::mem::transmute(numericattribute)) + SQLColAttribute(::core::mem::transmute(statementhandle), columnnumber, fieldidentifier, ::core::mem::transmute(characterattribute.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), characterattribute.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringlength), ::core::mem::transmute(numericattribute)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(target_arch = "x86")] #[inline] -pub unsafe fn SQLColAttribute(statementhandle: *mut ::core::ffi::c_void, columnnumber: u16, fieldidentifier: u16, characterattribute: *mut ::core::ffi::c_void, bufferlength: i16, stringlength: ::core::option::Option<&mut i16>, numericattribute: *mut ::core::ffi::c_void) -> i16 { +pub unsafe fn SQLColAttribute(statementhandle: *mut ::core::ffi::c_void, columnnumber: u16, fieldidentifier: u16, characterattribute: ::core::option::Option<&mut [u8]>, stringlength: ::core::option::Option<&mut i16>, numericattribute: *mut ::core::ffi::c_void) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLColAttribute(statementhandle: *mut ::core::ffi::c_void, columnnumber: u16, fieldidentifier: u16, characterattribute: *mut ::core::ffi::c_void, bufferlength: i16, stringlength: *mut i16, numericattribute: *mut ::core::ffi::c_void) -> i16; } - SQLColAttribute(::core::mem::transmute(statementhandle), columnnumber, fieldidentifier, ::core::mem::transmute(characterattribute), bufferlength, ::core::mem::transmute(stringlength), ::core::mem::transmute(numericattribute)) + SQLColAttribute(::core::mem::transmute(statementhandle), columnnumber, fieldidentifier, ::core::mem::transmute(characterattribute.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), characterattribute.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringlength), ::core::mem::transmute(numericattribute)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn SQLColAttributeA(hstmt: *mut ::core::ffi::c_void, icol: i16, ifield: i16, pcharattr: *mut ::core::ffi::c_void, cbcharattrmax: i16, pcbcharattr: ::core::option::Option<&mut i16>, pnumattr: ::core::option::Option<&mut i64>) -> i16 { +pub unsafe fn SQLColAttributeA(hstmt: *mut ::core::ffi::c_void, icol: i16, ifield: i16, pcharattr: ::core::option::Option<&mut [u8]>, pcbcharattr: ::core::option::Option<&mut i16>, pnumattr: ::core::option::Option<&mut i64>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLColAttributeA(hstmt: *mut ::core::ffi::c_void, icol: i16, ifield: i16, pcharattr: *mut ::core::ffi::c_void, cbcharattrmax: i16, pcbcharattr: *mut i16, pnumattr: *mut i64) -> i16; } - SQLColAttributeA(::core::mem::transmute(hstmt), icol, ifield, ::core::mem::transmute(pcharattr), cbcharattrmax, ::core::mem::transmute(pcbcharattr), ::core::mem::transmute(pnumattr)) + SQLColAttributeA(::core::mem::transmute(hstmt), icol, ifield, ::core::mem::transmute(pcharattr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pcharattr.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbcharattr), ::core::mem::transmute(pnumattr)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(target_arch = "x86")] #[inline] -pub unsafe fn SQLColAttributeA(hstmt: *mut ::core::ffi::c_void, icol: i16, ifield: i16, pcharattr: *mut ::core::ffi::c_void, cbcharattrmax: i16, pcbcharattr: ::core::option::Option<&mut i16>, pnumattr: *mut ::core::ffi::c_void) -> i16 { +pub unsafe fn SQLColAttributeA(hstmt: *mut ::core::ffi::c_void, icol: i16, ifield: i16, pcharattr: ::core::option::Option<&mut [u8]>, pcbcharattr: ::core::option::Option<&mut i16>, pnumattr: *mut ::core::ffi::c_void) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLColAttributeA(hstmt: *mut ::core::ffi::c_void, icol: i16, ifield: i16, pcharattr: *mut ::core::ffi::c_void, cbcharattrmax: i16, pcbcharattr: *mut i16, pnumattr: *mut ::core::ffi::c_void) -> i16; } - SQLColAttributeA(::core::mem::transmute(hstmt), icol, ifield, ::core::mem::transmute(pcharattr), cbcharattrmax, ::core::mem::transmute(pcbcharattr), ::core::mem::transmute(pnumattr)) + SQLColAttributeA(::core::mem::transmute(hstmt), icol, ifield, ::core::mem::transmute(pcharattr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pcharattr.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbcharattr), ::core::mem::transmute(pnumattr)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn SQLColAttributeW(hstmt: *mut ::core::ffi::c_void, icol: u16, ifield: u16, pcharattr: *mut ::core::ffi::c_void, cbdescmax: i16, pcbcharattr: ::core::option::Option<&mut i16>, pnumattr: ::core::option::Option<&mut i64>) -> i16 { +pub unsafe fn SQLColAttributeW(hstmt: *mut ::core::ffi::c_void, icol: u16, ifield: u16, pcharattr: ::core::option::Option<&mut [u8]>, pcbcharattr: ::core::option::Option<&mut i16>, pnumattr: ::core::option::Option<&mut i64>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLColAttributeW(hstmt: *mut ::core::ffi::c_void, icol: u16, ifield: u16, pcharattr: *mut ::core::ffi::c_void, cbdescmax: i16, pcbcharattr: *mut i16, pnumattr: *mut i64) -> i16; } - SQLColAttributeW(::core::mem::transmute(hstmt), icol, ifield, ::core::mem::transmute(pcharattr), cbdescmax, ::core::mem::transmute(pcbcharattr), ::core::mem::transmute(pnumattr)) + SQLColAttributeW(::core::mem::transmute(hstmt), icol, ifield, ::core::mem::transmute(pcharattr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pcharattr.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbcharattr), ::core::mem::transmute(pnumattr)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(target_arch = "x86")] #[inline] -pub unsafe fn SQLColAttributeW(hstmt: *mut ::core::ffi::c_void, icol: u16, ifield: u16, pcharattr: *mut ::core::ffi::c_void, cbdescmax: i16, pcbcharattr: ::core::option::Option<&mut i16>, pnumattr: *mut ::core::ffi::c_void) -> i16 { +pub unsafe fn SQLColAttributeW(hstmt: *mut ::core::ffi::c_void, icol: u16, ifield: u16, pcharattr: ::core::option::Option<&mut [u8]>, pcbcharattr: ::core::option::Option<&mut i16>, pnumattr: *mut ::core::ffi::c_void) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLColAttributeW(hstmt: *mut ::core::ffi::c_void, icol: u16, ifield: u16, pcharattr: *mut ::core::ffi::c_void, cbdescmax: i16, pcbcharattr: *mut i16, pnumattr: *mut ::core::ffi::c_void) -> i16; } - SQLColAttributeW(::core::mem::transmute(hstmt), icol, ifield, ::core::mem::transmute(pcharattr), cbdescmax, ::core::mem::transmute(pcbcharattr), ::core::mem::transmute(pnumattr)) + SQLColAttributeW(::core::mem::transmute(hstmt), icol, ifield, ::core::mem::transmute(pcharattr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pcharattr.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbcharattr), ::core::mem::transmute(pnumattr)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] @@ -25132,96 +25179,156 @@ pub unsafe fn SQLColAttributes(hstmt: *mut ::core::ffi::c_void, icol: u16, fdesc #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn SQLColAttributesA(hstmt: *mut ::core::ffi::c_void, icol: u16, fdesctype: u16, rgbdesc: *mut ::core::ffi::c_void, cbdescmax: i16, pcbdesc: ::core::option::Option<&mut i16>, pfdesc: ::core::option::Option<&mut i64>) -> i16 { +pub unsafe fn SQLColAttributesA(hstmt: *mut ::core::ffi::c_void, icol: u16, fdesctype: u16, rgbdesc: ::core::option::Option<&mut [u8]>, pcbdesc: ::core::option::Option<&mut i16>, pfdesc: ::core::option::Option<&mut i64>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLColAttributesA(hstmt: *mut ::core::ffi::c_void, icol: u16, fdesctype: u16, rgbdesc: *mut ::core::ffi::c_void, cbdescmax: i16, pcbdesc: *mut i16, pfdesc: *mut i64) -> i16; } - SQLColAttributesA(::core::mem::transmute(hstmt), icol, fdesctype, ::core::mem::transmute(rgbdesc), cbdescmax, ::core::mem::transmute(pcbdesc), ::core::mem::transmute(pfdesc)) + SQLColAttributesA(::core::mem::transmute(hstmt), icol, fdesctype, ::core::mem::transmute(rgbdesc.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rgbdesc.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbdesc), ::core::mem::transmute(pfdesc)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(target_arch = "x86")] #[inline] -pub unsafe fn SQLColAttributesA(hstmt: *mut ::core::ffi::c_void, icol: u16, fdesctype: u16, rgbdesc: *mut ::core::ffi::c_void, cbdescmax: i16, pcbdesc: ::core::option::Option<&mut i16>, pfdesc: ::core::option::Option<&mut i32>) -> i16 { +pub unsafe fn SQLColAttributesA(hstmt: *mut ::core::ffi::c_void, icol: u16, fdesctype: u16, rgbdesc: ::core::option::Option<&mut [u8]>, pcbdesc: ::core::option::Option<&mut i16>, pfdesc: ::core::option::Option<&mut i32>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLColAttributesA(hstmt: *mut ::core::ffi::c_void, icol: u16, fdesctype: u16, rgbdesc: *mut ::core::ffi::c_void, cbdescmax: i16, pcbdesc: *mut i16, pfdesc: *mut i32) -> i16; } - SQLColAttributesA(::core::mem::transmute(hstmt), icol, fdesctype, ::core::mem::transmute(rgbdesc), cbdescmax, ::core::mem::transmute(pcbdesc), ::core::mem::transmute(pfdesc)) + SQLColAttributesA(::core::mem::transmute(hstmt), icol, fdesctype, ::core::mem::transmute(rgbdesc.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rgbdesc.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbdesc), ::core::mem::transmute(pfdesc)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn SQLColAttributesW(hstmt: *mut ::core::ffi::c_void, icol: u16, fdesctype: u16, rgbdesc: *mut ::core::ffi::c_void, cbdescmax: i16, pcbdesc: ::core::option::Option<&mut i16>, pfdesc: ::core::option::Option<&mut i64>) -> i16 { +pub unsafe fn SQLColAttributesW(hstmt: *mut ::core::ffi::c_void, icol: u16, fdesctype: u16, rgbdesc: ::core::option::Option<&mut [u8]>, pcbdesc: ::core::option::Option<&mut i16>, pfdesc: ::core::option::Option<&mut i64>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLColAttributesW(hstmt: *mut ::core::ffi::c_void, icol: u16, fdesctype: u16, rgbdesc: *mut ::core::ffi::c_void, cbdescmax: i16, pcbdesc: *mut i16, pfdesc: *mut i64) -> i16; } - SQLColAttributesW(::core::mem::transmute(hstmt), icol, fdesctype, ::core::mem::transmute(rgbdesc), cbdescmax, ::core::mem::transmute(pcbdesc), ::core::mem::transmute(pfdesc)) + SQLColAttributesW(::core::mem::transmute(hstmt), icol, fdesctype, ::core::mem::transmute(rgbdesc.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rgbdesc.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbdesc), ::core::mem::transmute(pfdesc)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(target_arch = "x86")] #[inline] -pub unsafe fn SQLColAttributesW(hstmt: *mut ::core::ffi::c_void, icol: u16, fdesctype: u16, rgbdesc: *mut ::core::ffi::c_void, cbdescmax: i16, pcbdesc: ::core::option::Option<&mut i16>, pfdesc: ::core::option::Option<&mut i32>) -> i16 { +pub unsafe fn SQLColAttributesW(hstmt: *mut ::core::ffi::c_void, icol: u16, fdesctype: u16, rgbdesc: ::core::option::Option<&mut [u8]>, pcbdesc: ::core::option::Option<&mut i16>, pfdesc: ::core::option::Option<&mut i32>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLColAttributesW(hstmt: *mut ::core::ffi::c_void, icol: u16, fdesctype: u16, rgbdesc: *mut ::core::ffi::c_void, cbdescmax: i16, pcbdesc: *mut i16, pfdesc: *mut i32) -> i16; } - SQLColAttributesW(::core::mem::transmute(hstmt), icol, fdesctype, ::core::mem::transmute(rgbdesc), cbdescmax, ::core::mem::transmute(pcbdesc), ::core::mem::transmute(pfdesc)) + SQLColAttributesW(::core::mem::transmute(hstmt), icol, fdesctype, ::core::mem::transmute(rgbdesc.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rgbdesc.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbdesc), ::core::mem::transmute(pfdesc)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLColumnPrivileges(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u8], szschemaname: &[u8], sztablename: &[u8], szcolumnname: &[u8]) -> i16 { +pub unsafe fn SQLColumnPrivileges(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u8]>, szschemaname: ::core::option::Option<&[u8]>, sztablename: ::core::option::Option<&[u8]>, szcolumnname: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLColumnPrivileges(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u8, cchcatalogname: i16, szschemaname: *const u8, cchschemaname: i16, sztablename: *const u8, cchtablename: i16, szcolumnname: *const u8, cchcolumnname: i16) -> i16; } - SQLColumnPrivileges(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szcolumnname)), szcolumnname.len() as _) + SQLColumnPrivileges( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szcolumnname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcolumnname.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLColumnPrivilegesA(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u8], szschemaname: &[u8], sztablename: &[u8], szcolumnname: &[u8]) -> i16 { +pub unsafe fn SQLColumnPrivilegesA(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u8]>, szschemaname: ::core::option::Option<&[u8]>, sztablename: ::core::option::Option<&[u8]>, szcolumnname: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLColumnPrivilegesA(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u8, cbcatalogname: i16, szschemaname: *const u8, cbschemaname: i16, sztablename: *const u8, cbtablename: i16, szcolumnname: *const u8, cbcolumnname: i16) -> i16; } - SQLColumnPrivilegesA(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szcolumnname)), szcolumnname.len() as _) + SQLColumnPrivilegesA( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szcolumnname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcolumnname.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLColumnPrivilegesW(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u16], szschemaname: &[u16], sztablename: &[u16], szcolumnname: &[u16]) -> i16 { +pub unsafe fn SQLColumnPrivilegesW(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u16]>, szschemaname: ::core::option::Option<&[u16]>, sztablename: ::core::option::Option<&[u16]>, szcolumnname: ::core::option::Option<&[u16]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLColumnPrivilegesW(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u16, cchcatalogname: i16, szschemaname: *const u16, cchschemaname: i16, sztablename: *const u16, cchtablename: i16, szcolumnname: *const u16, cchcolumnname: i16) -> i16; } - SQLColumnPrivilegesW(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szcolumnname)), szcolumnname.len() as _) + SQLColumnPrivilegesW( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szcolumnname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcolumnname.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLColumns(statementhandle: *mut ::core::ffi::c_void, catalogname: &[u8], schemaname: &[u8], tablename: &[u8], columnname: &[u8]) -> i16 { +pub unsafe fn SQLColumns(statementhandle: *mut ::core::ffi::c_void, catalogname: ::core::option::Option<&[u8]>, schemaname: ::core::option::Option<&[u8]>, tablename: ::core::option::Option<&[u8]>, columnname: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLColumns(statementhandle: *mut ::core::ffi::c_void, catalogname: *const u8, namelength1: i16, schemaname: *const u8, namelength2: i16, tablename: *const u8, namelength3: i16, columnname: *const u8, namelength4: i16) -> i16; } - SQLColumns(::core::mem::transmute(statementhandle), ::core::mem::transmute(::windows::core::as_ptr_or_null(catalogname)), catalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(schemaname)), schemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(tablename)), tablename.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(columnname)), columnname.len() as _) + SQLColumns( + ::core::mem::transmute(statementhandle), + ::core::mem::transmute(catalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + catalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(schemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + schemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(tablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + tablename.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(columnname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + columnname.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLColumnsA(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u8], szschemaname: &[u8], sztablename: &[u8], szcolumnname: &[u8]) -> i16 { +pub unsafe fn SQLColumnsA(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u8]>, szschemaname: ::core::option::Option<&[u8]>, sztablename: ::core::option::Option<&[u8]>, szcolumnname: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLColumnsA(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u8, cbcatalogname: i16, szschemaname: *const u8, cbschemaname: i16, sztablename: *const u8, cbtablename: i16, szcolumnname: *const u8, cbcolumnname: i16) -> i16; } - SQLColumnsA(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szcolumnname)), szcolumnname.len() as _) + SQLColumnsA( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szcolumnname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcolumnname.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLColumnsW(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u16], szschemaname: &[u16], sztablename: &[u16], szcolumnname: &[u16]) -> i16 { +pub unsafe fn SQLColumnsW(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u16]>, szschemaname: ::core::option::Option<&[u16]>, sztablename: ::core::option::Option<&[u16]>, szcolumnname: ::core::option::Option<&[u16]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLColumnsW(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u16, cchcatalogname: i16, szschemaname: *const u16, cchschemaname: i16, sztablename: *const u16, cchtablename: i16, szcolumnname: *const u16, cchcolumnname: i16) -> i16; } - SQLColumnsW(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szcolumnname)), szcolumnname.len() as _) + SQLColumnsW( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szcolumnname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcolumnname.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] @@ -25239,7 +25346,7 @@ pub unsafe fn SQLConnect(connectionhandle: *mut ::core::ffi::c_void, servername: extern "system" { fn SQLConnect(connectionhandle: *mut ::core::ffi::c_void, servername: *const u8, namelength1: i16, username: *const u8, namelength2: i16, authentication: *const u8, namelength3: i16) -> i16; } - SQLConnect(::core::mem::transmute(connectionhandle), ::core::mem::transmute(::windows::core::as_ptr_or_null(servername)), servername.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(username)), username.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(authentication)), authentication.len() as _) + SQLConnect(::core::mem::transmute(connectionhandle), ::core::mem::transmute(servername.as_ptr()), servername.len() as _, ::core::mem::transmute(username.as_ptr()), username.len() as _, ::core::mem::transmute(authentication.as_ptr()), authentication.len() as _) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] @@ -25248,7 +25355,7 @@ pub unsafe fn SQLConnectA(hdbc: *mut ::core::ffi::c_void, szdsn: &[u8], szuid: & extern "system" { fn SQLConnectA(hdbc: *mut ::core::ffi::c_void, szdsn: *const u8, cbdsn: i16, szuid: *const u8, cbuid: i16, szauthstr: *const u8, cbauthstr: i16) -> i16; } - SQLConnectA(::core::mem::transmute(hdbc), ::core::mem::transmute(::windows::core::as_ptr_or_null(szdsn)), szdsn.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szuid)), szuid.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szauthstr)), szauthstr.len() as _) + SQLConnectA(::core::mem::transmute(hdbc), ::core::mem::transmute(szdsn.as_ptr()), szdsn.len() as _, ::core::mem::transmute(szuid.as_ptr()), szuid.len() as _, ::core::mem::transmute(szauthstr.as_ptr()), szauthstr.len() as _) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] @@ -25257,7 +25364,7 @@ pub unsafe fn SQLConnectW(hdbc: *mut ::core::ffi::c_void, szdsn: &[u16], szuid: extern "system" { fn SQLConnectW(hdbc: *mut ::core::ffi::c_void, szdsn: *const u16, cchdsn: i16, szuid: *const u16, cchuid: i16, szauthstr: *const u16, cchauthstr: i16) -> i16; } - SQLConnectW(::core::mem::transmute(hdbc), ::core::mem::transmute(::windows::core::as_ptr_or_null(szdsn)), szdsn.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szuid)), szuid.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szauthstr)), szauthstr.len() as _) + SQLConnectW(::core::mem::transmute(hdbc), ::core::mem::transmute(szdsn.as_ptr()), szdsn.len() as _, ::core::mem::transmute(szuid.as_ptr()), szuid.len() as _, ::core::mem::transmute(szauthstr.as_ptr()), szauthstr.len() as _) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] @@ -25280,90 +25387,90 @@ pub const SQLDECIMAL: u32 = 106u32; pub const SQLDECIMALN: u32 = 106u32; #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLDataSources(environmenthandle: *mut ::core::ffi::c_void, direction: u16, servername: &mut [u8], namelength1ptr: ::core::option::Option<&mut i16>, description: &mut [u8], namelength2ptr: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLDataSources(environmenthandle: *mut ::core::ffi::c_void, direction: u16, servername: ::core::option::Option<&mut [u8]>, namelength1ptr: ::core::option::Option<&mut i16>, description: ::core::option::Option<&mut [u8]>, namelength2ptr: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLDataSources(environmenthandle: *mut ::core::ffi::c_void, direction: u16, servername: *mut u8, bufferlength1: i16, namelength1ptr: *mut i16, description: *mut u8, bufferlength2: i16, namelength2ptr: *mut i16) -> i16; } - SQLDataSources(::core::mem::transmute(environmenthandle), direction, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(servername)), servername.len() as _, ::core::mem::transmute(namelength1ptr), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(description)), description.len() as _, ::core::mem::transmute(namelength2ptr)) + SQLDataSources(::core::mem::transmute(environmenthandle), direction, ::core::mem::transmute(servername.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), servername.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namelength1ptr), ::core::mem::transmute(description.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), description.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namelength2ptr)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLDataSourcesA(henv: *mut ::core::ffi::c_void, fdirection: u16, szdsn: &mut [u8], pcbdsn: &mut i16, szdescription: &mut [u8], pcbdescription: &mut i16) -> i16 { +pub unsafe fn SQLDataSourcesA(henv: *mut ::core::ffi::c_void, fdirection: u16, szdsn: ::core::option::Option<&mut [u8]>, pcbdsn: &mut i16, szdescription: ::core::option::Option<&mut [u8]>, pcbdescription: &mut i16) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLDataSourcesA(henv: *mut ::core::ffi::c_void, fdirection: u16, szdsn: *mut u8, cbdsnmax: i16, pcbdsn: *mut i16, szdescription: *mut u8, cbdescriptionmax: i16, pcbdescription: *mut i16) -> i16; } - SQLDataSourcesA(::core::mem::transmute(henv), fdirection, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szdsn)), szdsn.len() as _, ::core::mem::transmute(pcbdsn), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szdescription)), szdescription.len() as _, ::core::mem::transmute(pcbdescription)) + SQLDataSourcesA(::core::mem::transmute(henv), fdirection, ::core::mem::transmute(szdsn.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szdsn.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbdsn), ::core::mem::transmute(szdescription.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szdescription.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbdescription)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLDataSourcesW(henv: *mut ::core::ffi::c_void, fdirection: u16, szdsn: &mut [u16], pcchdsn: ::core::option::Option<&mut i16>, wszdescription: &mut [u16], pcchdescription: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLDataSourcesW(henv: *mut ::core::ffi::c_void, fdirection: u16, szdsn: ::core::option::Option<&mut [u16]>, pcchdsn: ::core::option::Option<&mut i16>, wszdescription: ::core::option::Option<&mut [u16]>, pcchdescription: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLDataSourcesW(henv: *mut ::core::ffi::c_void, fdirection: u16, szdsn: *mut u16, cchdsnmax: i16, pcchdsn: *mut i16, wszdescription: *mut u16, cchdescriptionmax: i16, pcchdescription: *mut i16) -> i16; } - SQLDataSourcesW(::core::mem::transmute(henv), fdirection, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szdsn)), szdsn.len() as _, ::core::mem::transmute(pcchdsn), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wszdescription)), wszdescription.len() as _, ::core::mem::transmute(pcchdescription)) + SQLDataSourcesW(::core::mem::transmute(henv), fdirection, ::core::mem::transmute(szdsn.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szdsn.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchdsn), ::core::mem::transmute(wszdescription.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), wszdescription.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchdescription)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn SQLDescribeCol(statementhandle: *mut ::core::ffi::c_void, columnnumber: u16, columnname: &mut [u8], namelength: ::core::option::Option<&mut i16>, datatype: ::core::option::Option<&mut i16>, columnsize: ::core::option::Option<&mut u64>, decimaldigits: ::core::option::Option<&mut i16>, nullable: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLDescribeCol(statementhandle: *mut ::core::ffi::c_void, columnnumber: u16, columnname: ::core::option::Option<&mut [u8]>, namelength: ::core::option::Option<&mut i16>, datatype: ::core::option::Option<&mut i16>, columnsize: ::core::option::Option<&mut u64>, decimaldigits: ::core::option::Option<&mut i16>, nullable: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLDescribeCol(statementhandle: *mut ::core::ffi::c_void, columnnumber: u16, columnname: *mut u8, bufferlength: i16, namelength: *mut i16, datatype: *mut i16, columnsize: *mut u64, decimaldigits: *mut i16, nullable: *mut i16) -> i16; } - SQLDescribeCol(::core::mem::transmute(statementhandle), columnnumber, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(columnname)), columnname.len() as _, ::core::mem::transmute(namelength), ::core::mem::transmute(datatype), ::core::mem::transmute(columnsize), ::core::mem::transmute(decimaldigits), ::core::mem::transmute(nullable)) + SQLDescribeCol(::core::mem::transmute(statementhandle), columnnumber, ::core::mem::transmute(columnname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), columnname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namelength), ::core::mem::transmute(datatype), ::core::mem::transmute(columnsize), ::core::mem::transmute(decimaldigits), ::core::mem::transmute(nullable)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(target_arch = "x86")] #[inline] -pub unsafe fn SQLDescribeCol(statementhandle: *mut ::core::ffi::c_void, columnnumber: u16, columnname: &mut [u8], namelength: ::core::option::Option<&mut i16>, datatype: ::core::option::Option<&mut i16>, columnsize: ::core::option::Option<&mut u32>, decimaldigits: ::core::option::Option<&mut i16>, nullable: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLDescribeCol(statementhandle: *mut ::core::ffi::c_void, columnnumber: u16, columnname: ::core::option::Option<&mut [u8]>, namelength: ::core::option::Option<&mut i16>, datatype: ::core::option::Option<&mut i16>, columnsize: ::core::option::Option<&mut u32>, decimaldigits: ::core::option::Option<&mut i16>, nullable: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLDescribeCol(statementhandle: *mut ::core::ffi::c_void, columnnumber: u16, columnname: *mut u8, bufferlength: i16, namelength: *mut i16, datatype: *mut i16, columnsize: *mut u32, decimaldigits: *mut i16, nullable: *mut i16) -> i16; } - SQLDescribeCol(::core::mem::transmute(statementhandle), columnnumber, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(columnname)), columnname.len() as _, ::core::mem::transmute(namelength), ::core::mem::transmute(datatype), ::core::mem::transmute(columnsize), ::core::mem::transmute(decimaldigits), ::core::mem::transmute(nullable)) + SQLDescribeCol(::core::mem::transmute(statementhandle), columnnumber, ::core::mem::transmute(columnname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), columnname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namelength), ::core::mem::transmute(datatype), ::core::mem::transmute(columnsize), ::core::mem::transmute(decimaldigits), ::core::mem::transmute(nullable)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn SQLDescribeColA(hstmt: *mut ::core::ffi::c_void, icol: u16, szcolname: &mut [u8], pcbcolname: ::core::option::Option<&mut i16>, pfsqltype: ::core::option::Option<&mut i16>, pcbcoldef: ::core::option::Option<&mut u64>, pibscale: ::core::option::Option<&mut i16>, pfnullable: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLDescribeColA(hstmt: *mut ::core::ffi::c_void, icol: u16, szcolname: ::core::option::Option<&mut [u8]>, pcbcolname: ::core::option::Option<&mut i16>, pfsqltype: ::core::option::Option<&mut i16>, pcbcoldef: ::core::option::Option<&mut u64>, pibscale: ::core::option::Option<&mut i16>, pfnullable: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLDescribeColA(hstmt: *mut ::core::ffi::c_void, icol: u16, szcolname: *mut u8, cbcolnamemax: i16, pcbcolname: *mut i16, pfsqltype: *mut i16, pcbcoldef: *mut u64, pibscale: *mut i16, pfnullable: *mut i16) -> i16; } - SQLDescribeColA(::core::mem::transmute(hstmt), icol, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szcolname)), szcolname.len() as _, ::core::mem::transmute(pcbcolname), ::core::mem::transmute(pfsqltype), ::core::mem::transmute(pcbcoldef), ::core::mem::transmute(pibscale), ::core::mem::transmute(pfnullable)) + SQLDescribeColA(::core::mem::transmute(hstmt), icol, ::core::mem::transmute(szcolname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szcolname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbcolname), ::core::mem::transmute(pfsqltype), ::core::mem::transmute(pcbcoldef), ::core::mem::transmute(pibscale), ::core::mem::transmute(pfnullable)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(target_arch = "x86")] #[inline] -pub unsafe fn SQLDescribeColA(hstmt: *mut ::core::ffi::c_void, icol: u16, szcolname: &mut [u8], pcbcolname: ::core::option::Option<&mut i16>, pfsqltype: ::core::option::Option<&mut i16>, pcbcoldef: ::core::option::Option<&mut u32>, pibscale: ::core::option::Option<&mut i16>, pfnullable: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLDescribeColA(hstmt: *mut ::core::ffi::c_void, icol: u16, szcolname: ::core::option::Option<&mut [u8]>, pcbcolname: ::core::option::Option<&mut i16>, pfsqltype: ::core::option::Option<&mut i16>, pcbcoldef: ::core::option::Option<&mut u32>, pibscale: ::core::option::Option<&mut i16>, pfnullable: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLDescribeColA(hstmt: *mut ::core::ffi::c_void, icol: u16, szcolname: *mut u8, cbcolnamemax: i16, pcbcolname: *mut i16, pfsqltype: *mut i16, pcbcoldef: *mut u32, pibscale: *mut i16, pfnullable: *mut i16) -> i16; } - SQLDescribeColA(::core::mem::transmute(hstmt), icol, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szcolname)), szcolname.len() as _, ::core::mem::transmute(pcbcolname), ::core::mem::transmute(pfsqltype), ::core::mem::transmute(pcbcoldef), ::core::mem::transmute(pibscale), ::core::mem::transmute(pfnullable)) + SQLDescribeColA(::core::mem::transmute(hstmt), icol, ::core::mem::transmute(szcolname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szcolname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbcolname), ::core::mem::transmute(pfsqltype), ::core::mem::transmute(pcbcoldef), ::core::mem::transmute(pibscale), ::core::mem::transmute(pfnullable)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn SQLDescribeColW(hstmt: *mut ::core::ffi::c_void, icol: u16, szcolname: &mut [u16], pcchcolname: ::core::option::Option<&mut i16>, pfsqltype: ::core::option::Option<&mut i16>, pcbcoldef: ::core::option::Option<&mut u64>, pibscale: ::core::option::Option<&mut i16>, pfnullable: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLDescribeColW(hstmt: *mut ::core::ffi::c_void, icol: u16, szcolname: ::core::option::Option<&mut [u16]>, pcchcolname: ::core::option::Option<&mut i16>, pfsqltype: ::core::option::Option<&mut i16>, pcbcoldef: ::core::option::Option<&mut u64>, pibscale: ::core::option::Option<&mut i16>, pfnullable: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLDescribeColW(hstmt: *mut ::core::ffi::c_void, icol: u16, szcolname: *mut u16, cchcolnamemax: i16, pcchcolname: *mut i16, pfsqltype: *mut i16, pcbcoldef: *mut u64, pibscale: *mut i16, pfnullable: *mut i16) -> i16; } - SQLDescribeColW(::core::mem::transmute(hstmt), icol, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szcolname)), szcolname.len() as _, ::core::mem::transmute(pcchcolname), ::core::mem::transmute(pfsqltype), ::core::mem::transmute(pcbcoldef), ::core::mem::transmute(pibscale), ::core::mem::transmute(pfnullable)) + SQLDescribeColW(::core::mem::transmute(hstmt), icol, ::core::mem::transmute(szcolname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szcolname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchcolname), ::core::mem::transmute(pfsqltype), ::core::mem::transmute(pcbcoldef), ::core::mem::transmute(pibscale), ::core::mem::transmute(pfnullable)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(target_arch = "x86")] #[inline] -pub unsafe fn SQLDescribeColW(hstmt: *mut ::core::ffi::c_void, icol: u16, szcolname: &mut [u16], pcchcolname: ::core::option::Option<&mut i16>, pfsqltype: ::core::option::Option<&mut i16>, pcbcoldef: ::core::option::Option<&mut u32>, pibscale: ::core::option::Option<&mut i16>, pfnullable: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLDescribeColW(hstmt: *mut ::core::ffi::c_void, icol: u16, szcolname: ::core::option::Option<&mut [u16]>, pcchcolname: ::core::option::Option<&mut i16>, pfsqltype: ::core::option::Option<&mut i16>, pcbcoldef: ::core::option::Option<&mut u32>, pibscale: ::core::option::Option<&mut i16>, pfnullable: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLDescribeColW(hstmt: *mut ::core::ffi::c_void, icol: u16, szcolname: *mut u16, cchcolnamemax: i16, pcchcolname: *mut i16, pfsqltype: *mut i16, pcbcoldef: *mut u32, pibscale: *mut i16, pfnullable: *mut i16) -> i16; } - SQLDescribeColW(::core::mem::transmute(hstmt), icol, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szcolname)), szcolname.len() as _, ::core::mem::transmute(pcchcolname), ::core::mem::transmute(pfsqltype), ::core::mem::transmute(pcbcoldef), ::core::mem::transmute(pibscale), ::core::mem::transmute(pfnullable)) + SQLDescribeColW(::core::mem::transmute(hstmt), icol, ::core::mem::transmute(szcolname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szcolname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchcolname), ::core::mem::transmute(pfsqltype), ::core::mem::transmute(pcbcoldef), ::core::mem::transmute(pibscale), ::core::mem::transmute(pfnullable)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] @@ -25396,57 +25503,57 @@ pub unsafe fn SQLDisconnect(connectionhandle: *mut ::core::ffi::c_void) -> i16 { } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLDriverConnect(hdbc: *mut ::core::ffi::c_void, hwnd: isize, szconnstrin: &[u8], szconnstrout: &mut [u8], pcchconnstrout: ::core::option::Option<&mut i16>, fdrivercompletion: u16) -> i16 { +pub unsafe fn SQLDriverConnect(hdbc: *mut ::core::ffi::c_void, hwnd: isize, szconnstrin: &[u8], szconnstrout: ::core::option::Option<&mut [u8]>, pcchconnstrout: ::core::option::Option<&mut i16>, fdrivercompletion: u16) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLDriverConnect(hdbc: *mut ::core::ffi::c_void, hwnd: isize, szconnstrin: *const u8, cchconnstrin: i16, szconnstrout: *mut u8, cchconnstroutmax: i16, pcchconnstrout: *mut i16, fdrivercompletion: u16) -> i16; } - SQLDriverConnect(::core::mem::transmute(hdbc), hwnd, ::core::mem::transmute(::windows::core::as_ptr_or_null(szconnstrin)), szconnstrin.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szconnstrout)), szconnstrout.len() as _, ::core::mem::transmute(pcchconnstrout), fdrivercompletion) + SQLDriverConnect(::core::mem::transmute(hdbc), hwnd, ::core::mem::transmute(szconnstrin.as_ptr()), szconnstrin.len() as _, ::core::mem::transmute(szconnstrout.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szconnstrout.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchconnstrout), fdrivercompletion) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLDriverConnectA(hdbc: *mut ::core::ffi::c_void, hwnd: isize, szconnstrin: &[u8], szconnstrout: &mut [u8], pcbconnstrout: ::core::option::Option<&mut i16>, fdrivercompletion: u16) -> i16 { +pub unsafe fn SQLDriverConnectA(hdbc: *mut ::core::ffi::c_void, hwnd: isize, szconnstrin: &[u8], szconnstrout: ::core::option::Option<&mut [u8]>, pcbconnstrout: ::core::option::Option<&mut i16>, fdrivercompletion: u16) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLDriverConnectA(hdbc: *mut ::core::ffi::c_void, hwnd: isize, szconnstrin: *const u8, cbconnstrin: i16, szconnstrout: *mut u8, cbconnstroutmax: i16, pcbconnstrout: *mut i16, fdrivercompletion: u16) -> i16; } - SQLDriverConnectA(::core::mem::transmute(hdbc), hwnd, ::core::mem::transmute(::windows::core::as_ptr_or_null(szconnstrin)), szconnstrin.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szconnstrout)), szconnstrout.len() as _, ::core::mem::transmute(pcbconnstrout), fdrivercompletion) + SQLDriverConnectA(::core::mem::transmute(hdbc), hwnd, ::core::mem::transmute(szconnstrin.as_ptr()), szconnstrin.len() as _, ::core::mem::transmute(szconnstrout.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szconnstrout.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbconnstrout), fdrivercompletion) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLDriverConnectW(hdbc: *mut ::core::ffi::c_void, hwnd: isize, szconnstrin: &[u16], szconnstrout: &mut [u16], pcchconnstrout: ::core::option::Option<&mut i16>, fdrivercompletion: u16) -> i16 { +pub unsafe fn SQLDriverConnectW(hdbc: *mut ::core::ffi::c_void, hwnd: isize, szconnstrin: &[u16], szconnstrout: ::core::option::Option<&mut [u16]>, pcchconnstrout: ::core::option::Option<&mut i16>, fdrivercompletion: u16) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLDriverConnectW(hdbc: *mut ::core::ffi::c_void, hwnd: isize, szconnstrin: *const u16, cchconnstrin: i16, szconnstrout: *mut u16, cchconnstroutmax: i16, pcchconnstrout: *mut i16, fdrivercompletion: u16) -> i16; } - SQLDriverConnectW(::core::mem::transmute(hdbc), hwnd, ::core::mem::transmute(::windows::core::as_ptr_or_null(szconnstrin)), szconnstrin.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szconnstrout)), szconnstrout.len() as _, ::core::mem::transmute(pcchconnstrout), fdrivercompletion) + SQLDriverConnectW(::core::mem::transmute(hdbc), hwnd, ::core::mem::transmute(szconnstrin.as_ptr()), szconnstrin.len() as _, ::core::mem::transmute(szconnstrout.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szconnstrout.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchconnstrout), fdrivercompletion) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLDrivers(henv: *mut ::core::ffi::c_void, fdirection: u16, szdriverdesc: &mut [u8], pcchdriverdesc: ::core::option::Option<&mut i16>, szdriverattributes: &mut [u8], pcchdrvrattr: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLDrivers(henv: *mut ::core::ffi::c_void, fdirection: u16, szdriverdesc: ::core::option::Option<&mut [u8]>, pcchdriverdesc: ::core::option::Option<&mut i16>, szdriverattributes: ::core::option::Option<&mut [u8]>, pcchdrvrattr: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLDrivers(henv: *mut ::core::ffi::c_void, fdirection: u16, szdriverdesc: *mut u8, cchdriverdescmax: i16, pcchdriverdesc: *mut i16, szdriverattributes: *mut u8, cchdrvrattrmax: i16, pcchdrvrattr: *mut i16) -> i16; } - SQLDrivers(::core::mem::transmute(henv), fdirection, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szdriverdesc)), szdriverdesc.len() as _, ::core::mem::transmute(pcchdriverdesc), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szdriverattributes)), szdriverattributes.len() as _, ::core::mem::transmute(pcchdrvrattr)) + SQLDrivers(::core::mem::transmute(henv), fdirection, ::core::mem::transmute(szdriverdesc.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szdriverdesc.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchdriverdesc), ::core::mem::transmute(szdriverattributes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szdriverattributes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchdrvrattr)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLDriversA(henv: *mut ::core::ffi::c_void, fdirection: u16, szdriverdesc: &mut [u8], pcbdriverdesc: ::core::option::Option<&mut i16>, szdriverattributes: &mut [u8], pcbdrvrattr: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLDriversA(henv: *mut ::core::ffi::c_void, fdirection: u16, szdriverdesc: ::core::option::Option<&mut [u8]>, pcbdriverdesc: ::core::option::Option<&mut i16>, szdriverattributes: ::core::option::Option<&mut [u8]>, pcbdrvrattr: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLDriversA(henv: *mut ::core::ffi::c_void, fdirection: u16, szdriverdesc: *mut u8, cbdriverdescmax: i16, pcbdriverdesc: *mut i16, szdriverattributes: *mut u8, cbdrvrattrmax: i16, pcbdrvrattr: *mut i16) -> i16; } - SQLDriversA(::core::mem::transmute(henv), fdirection, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szdriverdesc)), szdriverdesc.len() as _, ::core::mem::transmute(pcbdriverdesc), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szdriverattributes)), szdriverattributes.len() as _, ::core::mem::transmute(pcbdrvrattr)) + SQLDriversA(::core::mem::transmute(henv), fdirection, ::core::mem::transmute(szdriverdesc.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szdriverdesc.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbdriverdesc), ::core::mem::transmute(szdriverattributes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szdriverattributes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbdrvrattr)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLDriversW(henv: *mut ::core::ffi::c_void, fdirection: u16, szdriverdesc: &mut [u16], pcchdriverdesc: ::core::option::Option<&mut i16>, szdriverattributes: &mut [u16], pcchdrvrattr: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLDriversW(henv: *mut ::core::ffi::c_void, fdirection: u16, szdriverdesc: ::core::option::Option<&mut [u16]>, pcchdriverdesc: ::core::option::Option<&mut i16>, szdriverattributes: ::core::option::Option<&mut [u16]>, pcchdrvrattr: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLDriversW(henv: *mut ::core::ffi::c_void, fdirection: u16, szdriverdesc: *mut u16, cchdriverdescmax: i16, pcchdriverdesc: *mut i16, szdriverattributes: *mut u16, cchdrvrattrmax: i16, pcchdrvrattr: *mut i16) -> i16; } - SQLDriversW(::core::mem::transmute(henv), fdirection, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szdriverdesc)), szdriverdesc.len() as _, ::core::mem::transmute(pcchdriverdesc), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szdriverattributes)), szdriverattributes.len() as _, ::core::mem::transmute(pcchdrvrattr)) + SQLDriversW(::core::mem::transmute(henv), fdirection, ::core::mem::transmute(szdriverdesc.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szdriverdesc.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchdriverdesc), ::core::mem::transmute(szdriverattributes.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szdriverattributes.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchdrvrattr)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] @@ -25459,57 +25566,57 @@ pub unsafe fn SQLEndTran(handletype: i16, handle: *mut ::core::ffi::c_void, comp } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLError(environmenthandle: *mut ::core::ffi::c_void, connectionhandle: *mut ::core::ffi::c_void, statementhandle: *mut ::core::ffi::c_void, sqlstate: &mut [u8; 6], nativeerror: ::core::option::Option<&mut i32>, messagetext: &mut [u8], textlength: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLError(environmenthandle: *mut ::core::ffi::c_void, connectionhandle: *mut ::core::ffi::c_void, statementhandle: *mut ::core::ffi::c_void, sqlstate: &mut [u8; 6], nativeerror: ::core::option::Option<&mut i32>, messagetext: ::core::option::Option<&mut [u8]>, textlength: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLError(environmenthandle: *mut ::core::ffi::c_void, connectionhandle: *mut ::core::ffi::c_void, statementhandle: *mut ::core::ffi::c_void, sqlstate: *mut u8, nativeerror: *mut i32, messagetext: *mut u8, bufferlength: i16, textlength: *mut i16) -> i16; } - SQLError(::core::mem::transmute(environmenthandle), ::core::mem::transmute(connectionhandle), ::core::mem::transmute(statementhandle), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(sqlstate)), ::core::mem::transmute(nativeerror), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(messagetext)), messagetext.len() as _, ::core::mem::transmute(textlength)) + SQLError(::core::mem::transmute(environmenthandle), ::core::mem::transmute(connectionhandle), ::core::mem::transmute(statementhandle), ::core::mem::transmute(sqlstate.as_ptr()), ::core::mem::transmute(nativeerror), ::core::mem::transmute(messagetext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), messagetext.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textlength)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLErrorA(henv: *mut ::core::ffi::c_void, hdbc: *mut ::core::ffi::c_void, hstmt: *mut ::core::ffi::c_void, szsqlstate: &mut u8, pfnativeerror: ::core::option::Option<&mut i32>, szerrormsg: &mut [u8], pcberrormsg: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLErrorA(henv: *mut ::core::ffi::c_void, hdbc: *mut ::core::ffi::c_void, hstmt: *mut ::core::ffi::c_void, szsqlstate: &mut u8, pfnativeerror: ::core::option::Option<&mut i32>, szerrormsg: ::core::option::Option<&mut [u8]>, pcberrormsg: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLErrorA(henv: *mut ::core::ffi::c_void, hdbc: *mut ::core::ffi::c_void, hstmt: *mut ::core::ffi::c_void, szsqlstate: *mut u8, pfnativeerror: *mut i32, szerrormsg: *mut u8, cberrormsgmax: i16, pcberrormsg: *mut i16) -> i16; } - SQLErrorA(::core::mem::transmute(henv), ::core::mem::transmute(hdbc), ::core::mem::transmute(hstmt), ::core::mem::transmute(szsqlstate), ::core::mem::transmute(pfnativeerror), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szerrormsg)), szerrormsg.len() as _, ::core::mem::transmute(pcberrormsg)) + SQLErrorA(::core::mem::transmute(henv), ::core::mem::transmute(hdbc), ::core::mem::transmute(hstmt), ::core::mem::transmute(szsqlstate), ::core::mem::transmute(pfnativeerror), ::core::mem::transmute(szerrormsg.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szerrormsg.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcberrormsg)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLErrorW(henv: *mut ::core::ffi::c_void, hdbc: *mut ::core::ffi::c_void, hstmt: *mut ::core::ffi::c_void, wszsqlstate: &mut [u16; 6], pfnativeerror: ::core::option::Option<&mut i32>, wszerrormsg: &mut [u16], pccherrormsg: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLErrorW(henv: *mut ::core::ffi::c_void, hdbc: *mut ::core::ffi::c_void, hstmt: *mut ::core::ffi::c_void, wszsqlstate: &mut [u16; 6], pfnativeerror: ::core::option::Option<&mut i32>, wszerrormsg: ::core::option::Option<&mut [u16]>, pccherrormsg: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLErrorW(henv: *mut ::core::ffi::c_void, hdbc: *mut ::core::ffi::c_void, hstmt: *mut ::core::ffi::c_void, wszsqlstate: *mut u16, pfnativeerror: *mut i32, wszerrormsg: *mut u16, ccherrormsgmax: i16, pccherrormsg: *mut i16) -> i16; } - SQLErrorW(::core::mem::transmute(henv), ::core::mem::transmute(hdbc), ::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wszsqlstate)), ::core::mem::transmute(pfnativeerror), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(wszerrormsg)), wszerrormsg.len() as _, ::core::mem::transmute(pccherrormsg)) + SQLErrorW(::core::mem::transmute(henv), ::core::mem::transmute(hdbc), ::core::mem::transmute(hstmt), ::core::mem::transmute(wszsqlstate.as_ptr()), ::core::mem::transmute(pfnativeerror), ::core::mem::transmute(wszerrormsg.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), wszerrormsg.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pccherrormsg)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLExecDirect(statementhandle: *mut ::core::ffi::c_void, statementtext: &[u8]) -> i16 { +pub unsafe fn SQLExecDirect(statementhandle: *mut ::core::ffi::c_void, statementtext: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLExecDirect(statementhandle: *mut ::core::ffi::c_void, statementtext: *const u8, textlength: i32) -> i16; } - SQLExecDirect(::core::mem::transmute(statementhandle), ::core::mem::transmute(::windows::core::as_ptr_or_null(statementtext)), statementtext.len() as _) + SQLExecDirect(::core::mem::transmute(statementhandle), ::core::mem::transmute(statementtext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), statementtext.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLExecDirectA(hstmt: *mut ::core::ffi::c_void, szsqlstr: &[u8]) -> i16 { +pub unsafe fn SQLExecDirectA(hstmt: *mut ::core::ffi::c_void, szsqlstr: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLExecDirectA(hstmt: *mut ::core::ffi::c_void, szsqlstr: *const u8, cbsqlstr: i32) -> i16; } - SQLExecDirectA(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szsqlstr)), szsqlstr.len() as _) + SQLExecDirectA(::core::mem::transmute(hstmt), ::core::mem::transmute(szsqlstr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szsqlstr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLExecDirectW(hstmt: *mut ::core::ffi::c_void, szsqlstr: &[u16]) -> i16 { +pub unsafe fn SQLExecDirectW(hstmt: *mut ::core::ffi::c_void, szsqlstr: ::core::option::Option<&[u16]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLExecDirectW(hstmt: *mut ::core::ffi::c_void, szsqlstr: *const u16, textlength: i32) -> i16; } - SQLExecDirectW(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szsqlstr)), szsqlstr.len() as _) + SQLExecDirectW(::core::mem::transmute(hstmt), ::core::mem::transmute(szsqlstr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szsqlstr.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] @@ -25577,71 +25684,71 @@ pub unsafe fn SQLFetchScroll(statementhandle: *mut ::core::ffi::c_void, fetchori } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLForeignKeys(hstmt: *mut ::core::ffi::c_void, szpkcatalogname: &[u8], szpkschemaname: &[u8], szpktablename: &[u8], szfkcatalogname: &[u8], szfkschemaname: &[u8], szfktablename: &[u8]) -> i16 { +pub unsafe fn SQLForeignKeys(hstmt: *mut ::core::ffi::c_void, szpkcatalogname: ::core::option::Option<&[u8]>, szpkschemaname: ::core::option::Option<&[u8]>, szpktablename: ::core::option::Option<&[u8]>, szfkcatalogname: ::core::option::Option<&[u8]>, szfkschemaname: ::core::option::Option<&[u8]>, szfktablename: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLForeignKeys(hstmt: *mut ::core::ffi::c_void, szpkcatalogname: *const u8, cchpkcatalogname: i16, szpkschemaname: *const u8, cchpkschemaname: i16, szpktablename: *const u8, cchpktablename: i16, szfkcatalogname: *const u8, cchfkcatalogname: i16, szfkschemaname: *const u8, cchfkschemaname: i16, szfktablename: *const u8, cchfktablename: i16) -> i16; } SQLForeignKeys( ::core::mem::transmute(hstmt), - ::core::mem::transmute(::windows::core::as_ptr_or_null(szpkcatalogname)), - szpkcatalogname.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(szpkschemaname)), - szpkschemaname.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(szpktablename)), - szpktablename.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(szfkcatalogname)), - szfkcatalogname.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(szfkschemaname)), - szfkschemaname.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(szfktablename)), - szfktablename.len() as _, + ::core::mem::transmute(szpkcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szpkcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szpkschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szpkschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szpktablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szpktablename.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szfkcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szfkcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szfkschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szfkschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szfktablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szfktablename.as_deref().map_or(0, |slice| slice.len() as _), ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLForeignKeysA(hstmt: *mut ::core::ffi::c_void, szpkcatalogname: &[u8], szpkschemaname: &[u8], szpktablename: &[u8], szfkcatalogname: &[u8], szfkschemaname: &[u8], szfktablename: &[u8]) -> i16 { +pub unsafe fn SQLForeignKeysA(hstmt: *mut ::core::ffi::c_void, szpkcatalogname: ::core::option::Option<&[u8]>, szpkschemaname: ::core::option::Option<&[u8]>, szpktablename: ::core::option::Option<&[u8]>, szfkcatalogname: ::core::option::Option<&[u8]>, szfkschemaname: ::core::option::Option<&[u8]>, szfktablename: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLForeignKeysA(hstmt: *mut ::core::ffi::c_void, szpkcatalogname: *const u8, cbpkcatalogname: i16, szpkschemaname: *const u8, cbpkschemaname: i16, szpktablename: *const u8, cbpktablename: i16, szfkcatalogname: *const u8, cbfkcatalogname: i16, szfkschemaname: *const u8, cbfkschemaname: i16, szfktablename: *const u8, cbfktablename: i16) -> i16; } SQLForeignKeysA( ::core::mem::transmute(hstmt), - ::core::mem::transmute(::windows::core::as_ptr_or_null(szpkcatalogname)), - szpkcatalogname.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(szpkschemaname)), - szpkschemaname.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(szpktablename)), - szpktablename.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(szfkcatalogname)), - szfkcatalogname.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(szfkschemaname)), - szfkschemaname.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(szfktablename)), - szfktablename.len() as _, + ::core::mem::transmute(szpkcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szpkcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szpkschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szpkschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szpktablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szpktablename.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szfkcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szfkcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szfkschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szfkschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szfktablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szfktablename.as_deref().map_or(0, |slice| slice.len() as _), ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLForeignKeysW(hstmt: *mut ::core::ffi::c_void, szpkcatalogname: &[u16], szpkschemaname: &[u16], szpktablename: &[u16], szfkcatalogname: &[u16], szfkschemaname: &[u16], szfktablename: &[u16]) -> i16 { +pub unsafe fn SQLForeignKeysW(hstmt: *mut ::core::ffi::c_void, szpkcatalogname: ::core::option::Option<&[u16]>, szpkschemaname: ::core::option::Option<&[u16]>, szpktablename: ::core::option::Option<&[u16]>, szfkcatalogname: ::core::option::Option<&[u16]>, szfkschemaname: ::core::option::Option<&[u16]>, szfktablename: ::core::option::Option<&[u16]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLForeignKeysW(hstmt: *mut ::core::ffi::c_void, szpkcatalogname: *const u16, cchpkcatalogname: i16, szpkschemaname: *const u16, cchpkschemaname: i16, szpktablename: *const u16, cchpktablename: i16, szfkcatalogname: *const u16, cchfkcatalogname: i16, szfkschemaname: *const u16, cchfkschemaname: i16, szfktablename: *const u16, cchfktablename: i16) -> i16; } SQLForeignKeysW( ::core::mem::transmute(hstmt), - ::core::mem::transmute(::windows::core::as_ptr_or_null(szpkcatalogname)), - szpkcatalogname.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(szpkschemaname)), - szpkschemaname.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(szpktablename)), - szpktablename.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(szfkcatalogname)), - szfkcatalogname.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(szfkschemaname)), - szfkschemaname.len() as _, - ::core::mem::transmute(::windows::core::as_ptr_or_null(szfktablename)), - szfktablename.len() as _, + ::core::mem::transmute(szpkcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szpkcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szpkschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szpkschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szpktablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szpktablename.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szfkcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szfkcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szfkschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szfkschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szfktablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szfktablename.as_deref().map_or(0, |slice| slice.len() as _), ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] @@ -25736,30 +25843,30 @@ pub unsafe fn SQLGetConnectOptionW(hdbc: *mut ::core::ffi::c_void, foption: u16, } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLGetCursorName(statementhandle: *mut ::core::ffi::c_void, cursorname: &mut [u8], namelengthptr: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLGetCursorName(statementhandle: *mut ::core::ffi::c_void, cursorname: ::core::option::Option<&mut [u8]>, namelengthptr: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLGetCursorName(statementhandle: *mut ::core::ffi::c_void, cursorname: *mut u8, bufferlength: i16, namelengthptr: *mut i16) -> i16; } - SQLGetCursorName(::core::mem::transmute(statementhandle), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(cursorname)), cursorname.len() as _, ::core::mem::transmute(namelengthptr)) + SQLGetCursorName(::core::mem::transmute(statementhandle), ::core::mem::transmute(cursorname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), cursorname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(namelengthptr)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLGetCursorNameA(hstmt: *mut ::core::ffi::c_void, szcursor: &mut [u8], pcbcursor: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLGetCursorNameA(hstmt: *mut ::core::ffi::c_void, szcursor: ::core::option::Option<&mut [u8]>, pcbcursor: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLGetCursorNameA(hstmt: *mut ::core::ffi::c_void, szcursor: *mut u8, cbcursormax: i16, pcbcursor: *mut i16) -> i16; } - SQLGetCursorNameA(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szcursor)), szcursor.len() as _, ::core::mem::transmute(pcbcursor)) + SQLGetCursorNameA(::core::mem::transmute(hstmt), ::core::mem::transmute(szcursor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szcursor.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbcursor)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLGetCursorNameW(hstmt: *mut ::core::ffi::c_void, szcursor: &mut [u16], pcchcursor: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLGetCursorNameW(hstmt: *mut ::core::ffi::c_void, szcursor: ::core::option::Option<&mut [u16]>, pcchcursor: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLGetCursorNameW(hstmt: *mut ::core::ffi::c_void, szcursor: *mut u16, cchcursormax: i16, pcchcursor: *mut i16) -> i16; } - SQLGetCursorNameW(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szcursor)), szcursor.len() as _, ::core::mem::transmute(pcchcursor)) + SQLGetCursorNameW(::core::mem::transmute(hstmt), ::core::mem::transmute(szcursor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szcursor.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchcursor)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] @@ -25811,62 +25918,62 @@ pub unsafe fn SQLGetDescFieldW(hdesc: *mut ::core::ffi::c_void, irecord: i16, if #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn SQLGetDescRec(descriptorhandle: *mut ::core::ffi::c_void, recnumber: i16, name: &mut [u8], stringlengthptr: ::core::option::Option<&mut i16>, typeptr: ::core::option::Option<&mut i16>, subtypeptr: ::core::option::Option<&mut i16>, lengthptr: ::core::option::Option<&mut i64>, precisionptr: ::core::option::Option<&mut i16>, scaleptr: ::core::option::Option<&mut i16>, nullableptr: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLGetDescRec(descriptorhandle: *mut ::core::ffi::c_void, recnumber: i16, name: ::core::option::Option<&mut [u8]>, stringlengthptr: ::core::option::Option<&mut i16>, typeptr: ::core::option::Option<&mut i16>, subtypeptr: ::core::option::Option<&mut i16>, lengthptr: ::core::option::Option<&mut i64>, precisionptr: ::core::option::Option<&mut i16>, scaleptr: ::core::option::Option<&mut i16>, nullableptr: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLGetDescRec(descriptorhandle: *mut ::core::ffi::c_void, recnumber: i16, name: *mut u8, bufferlength: i16, stringlengthptr: *mut i16, typeptr: *mut i16, subtypeptr: *mut i16, lengthptr: *mut i64, precisionptr: *mut i16, scaleptr: *mut i16, nullableptr: *mut i16) -> i16; } - SQLGetDescRec(::core::mem::transmute(descriptorhandle), recnumber, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(name)), name.len() as _, ::core::mem::transmute(stringlengthptr), ::core::mem::transmute(typeptr), ::core::mem::transmute(subtypeptr), ::core::mem::transmute(lengthptr), ::core::mem::transmute(precisionptr), ::core::mem::transmute(scaleptr), ::core::mem::transmute(nullableptr)) + SQLGetDescRec(::core::mem::transmute(descriptorhandle), recnumber, ::core::mem::transmute(name.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), name.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringlengthptr), ::core::mem::transmute(typeptr), ::core::mem::transmute(subtypeptr), ::core::mem::transmute(lengthptr), ::core::mem::transmute(precisionptr), ::core::mem::transmute(scaleptr), ::core::mem::transmute(nullableptr)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(target_arch = "x86")] #[inline] -pub unsafe fn SQLGetDescRec(descriptorhandle: *mut ::core::ffi::c_void, recnumber: i16, name: &mut [u8], stringlengthptr: ::core::option::Option<&mut i16>, typeptr: ::core::option::Option<&mut i16>, subtypeptr: ::core::option::Option<&mut i16>, lengthptr: ::core::option::Option<&mut i32>, precisionptr: ::core::option::Option<&mut i16>, scaleptr: ::core::option::Option<&mut i16>, nullableptr: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLGetDescRec(descriptorhandle: *mut ::core::ffi::c_void, recnumber: i16, name: ::core::option::Option<&mut [u8]>, stringlengthptr: ::core::option::Option<&mut i16>, typeptr: ::core::option::Option<&mut i16>, subtypeptr: ::core::option::Option<&mut i16>, lengthptr: ::core::option::Option<&mut i32>, precisionptr: ::core::option::Option<&mut i16>, scaleptr: ::core::option::Option<&mut i16>, nullableptr: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLGetDescRec(descriptorhandle: *mut ::core::ffi::c_void, recnumber: i16, name: *mut u8, bufferlength: i16, stringlengthptr: *mut i16, typeptr: *mut i16, subtypeptr: *mut i16, lengthptr: *mut i32, precisionptr: *mut i16, scaleptr: *mut i16, nullableptr: *mut i16) -> i16; } - SQLGetDescRec(::core::mem::transmute(descriptorhandle), recnumber, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(name)), name.len() as _, ::core::mem::transmute(stringlengthptr), ::core::mem::transmute(typeptr), ::core::mem::transmute(subtypeptr), ::core::mem::transmute(lengthptr), ::core::mem::transmute(precisionptr), ::core::mem::transmute(scaleptr), ::core::mem::transmute(nullableptr)) + SQLGetDescRec(::core::mem::transmute(descriptorhandle), recnumber, ::core::mem::transmute(name.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), name.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringlengthptr), ::core::mem::transmute(typeptr), ::core::mem::transmute(subtypeptr), ::core::mem::transmute(lengthptr), ::core::mem::transmute(precisionptr), ::core::mem::transmute(scaleptr), ::core::mem::transmute(nullableptr)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn SQLGetDescRecA(hdesc: *mut ::core::ffi::c_void, irecord: i16, szname: &mut [u8], pcbname: ::core::option::Option<&mut i16>, pftype: ::core::option::Option<&mut i16>, pfsubtype: ::core::option::Option<&mut i16>, plength: ::core::option::Option<&mut i64>, pprecision: ::core::option::Option<&mut i16>, pscale: ::core::option::Option<&mut i16>, pnullable: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLGetDescRecA(hdesc: *mut ::core::ffi::c_void, irecord: i16, szname: ::core::option::Option<&mut [u8]>, pcbname: ::core::option::Option<&mut i16>, pftype: ::core::option::Option<&mut i16>, pfsubtype: ::core::option::Option<&mut i16>, plength: ::core::option::Option<&mut i64>, pprecision: ::core::option::Option<&mut i16>, pscale: ::core::option::Option<&mut i16>, pnullable: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLGetDescRecA(hdesc: *mut ::core::ffi::c_void, irecord: i16, szname: *mut u8, cbnamemax: i16, pcbname: *mut i16, pftype: *mut i16, pfsubtype: *mut i16, plength: *mut i64, pprecision: *mut i16, pscale: *mut i16, pnullable: *mut i16) -> i16; } - SQLGetDescRecA(::core::mem::transmute(hdesc), irecord, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szname)), szname.len() as _, ::core::mem::transmute(pcbname), ::core::mem::transmute(pftype), ::core::mem::transmute(pfsubtype), ::core::mem::transmute(plength), ::core::mem::transmute(pprecision), ::core::mem::transmute(pscale), ::core::mem::transmute(pnullable)) + SQLGetDescRecA(::core::mem::transmute(hdesc), irecord, ::core::mem::transmute(szname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbname), ::core::mem::transmute(pftype), ::core::mem::transmute(pfsubtype), ::core::mem::transmute(plength), ::core::mem::transmute(pprecision), ::core::mem::transmute(pscale), ::core::mem::transmute(pnullable)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(target_arch = "x86")] #[inline] -pub unsafe fn SQLGetDescRecA(hdesc: *mut ::core::ffi::c_void, irecord: i16, szname: &mut [u8], pcbname: ::core::option::Option<&mut i16>, pftype: ::core::option::Option<&mut i16>, pfsubtype: ::core::option::Option<&mut i16>, plength: ::core::option::Option<&mut i32>, pprecision: ::core::option::Option<&mut i16>, pscale: ::core::option::Option<&mut i16>, pnullable: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLGetDescRecA(hdesc: *mut ::core::ffi::c_void, irecord: i16, szname: ::core::option::Option<&mut [u8]>, pcbname: ::core::option::Option<&mut i16>, pftype: ::core::option::Option<&mut i16>, pfsubtype: ::core::option::Option<&mut i16>, plength: ::core::option::Option<&mut i32>, pprecision: ::core::option::Option<&mut i16>, pscale: ::core::option::Option<&mut i16>, pnullable: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLGetDescRecA(hdesc: *mut ::core::ffi::c_void, irecord: i16, szname: *mut u8, cbnamemax: i16, pcbname: *mut i16, pftype: *mut i16, pfsubtype: *mut i16, plength: *mut i32, pprecision: *mut i16, pscale: *mut i16, pnullable: *mut i16) -> i16; } - SQLGetDescRecA(::core::mem::transmute(hdesc), irecord, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szname)), szname.len() as _, ::core::mem::transmute(pcbname), ::core::mem::transmute(pftype), ::core::mem::transmute(pfsubtype), ::core::mem::transmute(plength), ::core::mem::transmute(pprecision), ::core::mem::transmute(pscale), ::core::mem::transmute(pnullable)) + SQLGetDescRecA(::core::mem::transmute(hdesc), irecord, ::core::mem::transmute(szname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbname), ::core::mem::transmute(pftype), ::core::mem::transmute(pfsubtype), ::core::mem::transmute(plength), ::core::mem::transmute(pprecision), ::core::mem::transmute(pscale), ::core::mem::transmute(pnullable)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn SQLGetDescRecW(hdesc: *mut ::core::ffi::c_void, irecord: i16, szname: &mut [u16], pcchname: ::core::option::Option<&mut i16>, pftype: ::core::option::Option<&mut i16>, pfsubtype: ::core::option::Option<&mut i16>, plength: ::core::option::Option<&mut i64>, pprecision: ::core::option::Option<&mut i16>, pscale: ::core::option::Option<&mut i16>, pnullable: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLGetDescRecW(hdesc: *mut ::core::ffi::c_void, irecord: i16, szname: ::core::option::Option<&mut [u16]>, pcchname: ::core::option::Option<&mut i16>, pftype: ::core::option::Option<&mut i16>, pfsubtype: ::core::option::Option<&mut i16>, plength: ::core::option::Option<&mut i64>, pprecision: ::core::option::Option<&mut i16>, pscale: ::core::option::Option<&mut i16>, pnullable: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLGetDescRecW(hdesc: *mut ::core::ffi::c_void, irecord: i16, szname: *mut u16, cchnamemax: i16, pcchname: *mut i16, pftype: *mut i16, pfsubtype: *mut i16, plength: *mut i64, pprecision: *mut i16, pscale: *mut i16, pnullable: *mut i16) -> i16; } - SQLGetDescRecW(::core::mem::transmute(hdesc), irecord, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szname)), szname.len() as _, ::core::mem::transmute(pcchname), ::core::mem::transmute(pftype), ::core::mem::transmute(pfsubtype), ::core::mem::transmute(plength), ::core::mem::transmute(pprecision), ::core::mem::transmute(pscale), ::core::mem::transmute(pnullable)) + SQLGetDescRecW(::core::mem::transmute(hdesc), irecord, ::core::mem::transmute(szname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchname), ::core::mem::transmute(pftype), ::core::mem::transmute(pfsubtype), ::core::mem::transmute(plength), ::core::mem::transmute(pprecision), ::core::mem::transmute(pscale), ::core::mem::transmute(pnullable)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(target_arch = "x86")] #[inline] -pub unsafe fn SQLGetDescRecW(hdesc: *mut ::core::ffi::c_void, irecord: i16, szname: &mut [u16], pcchname: ::core::option::Option<&mut i16>, pftype: ::core::option::Option<&mut i16>, pfsubtype: ::core::option::Option<&mut i16>, plength: ::core::option::Option<&mut i32>, pprecision: ::core::option::Option<&mut i16>, pscale: ::core::option::Option<&mut i16>, pnullable: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLGetDescRecW(hdesc: *mut ::core::ffi::c_void, irecord: i16, szname: ::core::option::Option<&mut [u16]>, pcchname: ::core::option::Option<&mut i16>, pftype: ::core::option::Option<&mut i16>, pfsubtype: ::core::option::Option<&mut i16>, plength: ::core::option::Option<&mut i32>, pprecision: ::core::option::Option<&mut i16>, pscale: ::core::option::Option<&mut i16>, pnullable: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLGetDescRecW(hdesc: *mut ::core::ffi::c_void, irecord: i16, szname: *mut u16, cchnamemax: i16, pcchname: *mut i16, pftype: *mut i16, pfsubtype: *mut i16, plength: *mut i32, pprecision: *mut i16, pscale: *mut i16, pnullable: *mut i16) -> i16; } - SQLGetDescRecW(::core::mem::transmute(hdesc), irecord, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szname)), szname.len() as _, ::core::mem::transmute(pcchname), ::core::mem::transmute(pftype), ::core::mem::transmute(pfsubtype), ::core::mem::transmute(plength), ::core::mem::transmute(pprecision), ::core::mem::transmute(pscale), ::core::mem::transmute(pnullable)) + SQLGetDescRecW(::core::mem::transmute(hdesc), irecord, ::core::mem::transmute(szname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szname.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchname), ::core::mem::transmute(pftype), ::core::mem::transmute(pfsubtype), ::core::mem::transmute(plength), ::core::mem::transmute(pprecision), ::core::mem::transmute(pscale), ::core::mem::transmute(pnullable)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] @@ -25897,30 +26004,30 @@ pub unsafe fn SQLGetDiagFieldW(fhandletype: i16, handle: *mut ::core::ffi::c_voi } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLGetDiagRec(handletype: i16, handle: *mut ::core::ffi::c_void, recnumber: i16, sqlstate: &mut [u8; 6], nativeerror: &mut i32, messagetext: &mut [u8], textlength: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLGetDiagRec(handletype: i16, handle: *mut ::core::ffi::c_void, recnumber: i16, sqlstate: ::core::option::Option<&mut [u8; 6]>, nativeerror: &mut i32, messagetext: ::core::option::Option<&mut [u8]>, textlength: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLGetDiagRec(handletype: i16, handle: *mut ::core::ffi::c_void, recnumber: i16, sqlstate: *mut u8, nativeerror: *mut i32, messagetext: *mut u8, bufferlength: i16, textlength: *mut i16) -> i16; } - SQLGetDiagRec(handletype, ::core::mem::transmute(handle), recnumber, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(sqlstate)), ::core::mem::transmute(nativeerror), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(messagetext)), messagetext.len() as _, ::core::mem::transmute(textlength)) + SQLGetDiagRec(handletype, ::core::mem::transmute(handle), recnumber, ::core::mem::transmute(sqlstate.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(nativeerror), ::core::mem::transmute(messagetext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), messagetext.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(textlength)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLGetDiagRecA(fhandletype: i16, handle: *mut ::core::ffi::c_void, irecord: i16, szsqlstate: &mut [u8; 6], pfnativeerror: &mut i32, szerrormsg: &mut [u8], pcberrormsg: &mut i16) -> i16 { +pub unsafe fn SQLGetDiagRecA(fhandletype: i16, handle: *mut ::core::ffi::c_void, irecord: i16, szsqlstate: ::core::option::Option<&mut [u8; 6]>, pfnativeerror: &mut i32, szerrormsg: ::core::option::Option<&mut [u8]>, pcberrormsg: &mut i16) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLGetDiagRecA(fhandletype: i16, handle: *mut ::core::ffi::c_void, irecord: i16, szsqlstate: *mut u8, pfnativeerror: *mut i32, szerrormsg: *mut u8, cberrormsgmax: i16, pcberrormsg: *mut i16) -> i16; } - SQLGetDiagRecA(fhandletype, ::core::mem::transmute(handle), irecord, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szsqlstate)), ::core::mem::transmute(pfnativeerror), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szerrormsg)), szerrormsg.len() as _, ::core::mem::transmute(pcberrormsg)) + SQLGetDiagRecA(fhandletype, ::core::mem::transmute(handle), irecord, ::core::mem::transmute(szsqlstate.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pfnativeerror), ::core::mem::transmute(szerrormsg.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szerrormsg.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcberrormsg)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLGetDiagRecW(fhandletype: i16, handle: *mut ::core::ffi::c_void, irecord: i16, szsqlstate: &mut [u16; 6], pfnativeerror: &mut i32, szerrormsg: &mut [u16], pccherrormsg: &mut i16) -> i16 { +pub unsafe fn SQLGetDiagRecW(fhandletype: i16, handle: *mut ::core::ffi::c_void, irecord: i16, szsqlstate: ::core::option::Option<&mut [u16; 6]>, pfnativeerror: &mut i32, szerrormsg: ::core::option::Option<&mut [u16]>, pccherrormsg: &mut i16) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLGetDiagRecW(fhandletype: i16, handle: *mut ::core::ffi::c_void, irecord: i16, szsqlstate: *mut u16, pfnativeerror: *mut i32, szerrormsg: *mut u16, ccherrormsgmax: i16, pccherrormsg: *mut i16) -> i16; } - SQLGetDiagRecW(fhandletype, ::core::mem::transmute(handle), irecord, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szsqlstate)), ::core::mem::transmute(pfnativeerror), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szerrormsg)), szerrormsg.len() as _, ::core::mem::transmute(pccherrormsg)) + SQLGetDiagRecW(fhandletype, ::core::mem::transmute(handle), irecord, ::core::mem::transmute(szsqlstate.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pfnativeerror), ::core::mem::transmute(szerrormsg.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szerrormsg.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pccherrormsg)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] @@ -25942,30 +26049,30 @@ pub unsafe fn SQLGetFunctions(connectionhandle: *mut ::core::ffi::c_void, functi } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLGetInfo(connectionhandle: *mut ::core::ffi::c_void, infotype: u16, infovalue: *mut ::core::ffi::c_void, bufferlength: i16, stringlengthptr: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLGetInfo(connectionhandle: *mut ::core::ffi::c_void, infotype: u16, infovalue: ::core::option::Option<&mut [u8]>, stringlengthptr: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLGetInfo(connectionhandle: *mut ::core::ffi::c_void, infotype: u16, infovalue: *mut ::core::ffi::c_void, bufferlength: i16, stringlengthptr: *mut i16) -> i16; } - SQLGetInfo(::core::mem::transmute(connectionhandle), infotype, ::core::mem::transmute(infovalue), bufferlength, ::core::mem::transmute(stringlengthptr)) + SQLGetInfo(::core::mem::transmute(connectionhandle), infotype, ::core::mem::transmute(infovalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), infovalue.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(stringlengthptr)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLGetInfoA(hdbc: *mut ::core::ffi::c_void, finfotype: u16, rgbinfovalue: *mut ::core::ffi::c_void, cbinfovaluemax: i16, pcbinfovalue: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLGetInfoA(hdbc: *mut ::core::ffi::c_void, finfotype: u16, rgbinfovalue: ::core::option::Option<&mut [u8]>, pcbinfovalue: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLGetInfoA(hdbc: *mut ::core::ffi::c_void, finfotype: u16, rgbinfovalue: *mut ::core::ffi::c_void, cbinfovaluemax: i16, pcbinfovalue: *mut i16) -> i16; } - SQLGetInfoA(::core::mem::transmute(hdbc), finfotype, ::core::mem::transmute(rgbinfovalue), cbinfovaluemax, ::core::mem::transmute(pcbinfovalue)) + SQLGetInfoA(::core::mem::transmute(hdbc), finfotype, ::core::mem::transmute(rgbinfovalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rgbinfovalue.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbinfovalue)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLGetInfoW(hdbc: *mut ::core::ffi::c_void, finfotype: u16, rgbinfovalue: *mut ::core::ffi::c_void, cbinfovaluemax: i16, pcbinfovalue: ::core::option::Option<&mut i16>) -> i16 { +pub unsafe fn SQLGetInfoW(hdbc: *mut ::core::ffi::c_void, finfotype: u16, rgbinfovalue: ::core::option::Option<&mut [u8]>, pcbinfovalue: ::core::option::Option<&mut i16>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLGetInfoW(hdbc: *mut ::core::ffi::c_void, finfotype: u16, rgbinfovalue: *mut ::core::ffi::c_void, cbinfovaluemax: i16, pcbinfovalue: *mut i16) -> i16; } - SQLGetInfoW(::core::mem::transmute(hdbc), finfotype, ::core::mem::transmute(rgbinfovalue), cbinfovaluemax, ::core::mem::transmute(pcbinfovalue)) + SQLGetInfoW(::core::mem::transmute(hdbc), finfotype, ::core::mem::transmute(rgbinfovalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rgbinfovalue.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbinfovalue)) } #[doc = "*Required features: `\"Win32_System_Search\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -26178,30 +26285,30 @@ pub const SQLNUMERICN: u32 = 108u32; pub const SQLNVARCHAR: u32 = 231u32; #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLNativeSql(hdbc: *mut ::core::ffi::c_void, szsqlstrin: &[u8], szsqlstr: &mut [u8], pcbsqlstr: &mut i32) -> i16 { +pub unsafe fn SQLNativeSql(hdbc: *mut ::core::ffi::c_void, szsqlstrin: &[u8], szsqlstr: ::core::option::Option<&mut [u8]>, pcbsqlstr: &mut i32) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLNativeSql(hdbc: *mut ::core::ffi::c_void, szsqlstrin: *const u8, cchsqlstrin: i32, szsqlstr: *mut u8, cchsqlstrmax: i32, pcbsqlstr: *mut i32) -> i16; } - SQLNativeSql(::core::mem::transmute(hdbc), ::core::mem::transmute(::windows::core::as_ptr_or_null(szsqlstrin)), szsqlstrin.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szsqlstr)), szsqlstr.len() as _, ::core::mem::transmute(pcbsqlstr)) + SQLNativeSql(::core::mem::transmute(hdbc), ::core::mem::transmute(szsqlstrin.as_ptr()), szsqlstrin.len() as _, ::core::mem::transmute(szsqlstr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szsqlstr.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbsqlstr)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLNativeSqlA(hdbc: *mut ::core::ffi::c_void, szsqlstrin: &[u8], szsqlstr: &mut [u8], pcbsqlstr: &mut i32) -> i16 { +pub unsafe fn SQLNativeSqlA(hdbc: *mut ::core::ffi::c_void, szsqlstrin: &[u8], szsqlstr: ::core::option::Option<&mut [u8]>, pcbsqlstr: &mut i32) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLNativeSqlA(hdbc: *mut ::core::ffi::c_void, szsqlstrin: *const u8, cbsqlstrin: i32, szsqlstr: *mut u8, cbsqlstrmax: i32, pcbsqlstr: *mut i32) -> i16; } - SQLNativeSqlA(::core::mem::transmute(hdbc), ::core::mem::transmute(::windows::core::as_ptr_or_null(szsqlstrin)), szsqlstrin.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szsqlstr)), szsqlstr.len() as _, ::core::mem::transmute(pcbsqlstr)) + SQLNativeSqlA(::core::mem::transmute(hdbc), ::core::mem::transmute(szsqlstrin.as_ptr()), szsqlstrin.len() as _, ::core::mem::transmute(szsqlstr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szsqlstr.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbsqlstr)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLNativeSqlW(hdbc: *mut ::core::ffi::c_void, szsqlstrin: &[u16], szsqlstr: &mut [u16], pcchsqlstr: &mut i32) -> i16 { +pub unsafe fn SQLNativeSqlW(hdbc: *mut ::core::ffi::c_void, szsqlstrin: &[u16], szsqlstr: ::core::option::Option<&mut [u16]>, pcchsqlstr: &mut i32) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLNativeSqlW(hdbc: *mut ::core::ffi::c_void, szsqlstrin: *const u16, cchsqlstrin: i32, szsqlstr: *mut u16, cchsqlstrmax: i32, pcchsqlstr: *mut i32) -> i16; } - SQLNativeSqlW(::core::mem::transmute(hdbc), ::core::mem::transmute(::windows::core::as_ptr_or_null(szsqlstrin)), szsqlstrin.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(szsqlstr)), szsqlstr.len() as _, ::core::mem::transmute(pcchsqlstr)) + SQLNativeSqlW(::core::mem::transmute(hdbc), ::core::mem::transmute(szsqlstrin.as_ptr()), szsqlstrin.len() as _, ::core::mem::transmute(szsqlstr.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), szsqlstr.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchsqlstr)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] @@ -26257,7 +26364,7 @@ pub unsafe fn SQLPrepare(statementhandle: *mut ::core::ffi::c_void, statementtex extern "system" { fn SQLPrepare(statementhandle: *mut ::core::ffi::c_void, statementtext: *const u8, textlength: i32) -> i16; } - SQLPrepare(::core::mem::transmute(statementhandle), ::core::mem::transmute(::windows::core::as_ptr_or_null(statementtext)), statementtext.len() as _) + SQLPrepare(::core::mem::transmute(statementhandle), ::core::mem::transmute(statementtext.as_ptr()), statementtext.len() as _) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] @@ -26266,7 +26373,7 @@ pub unsafe fn SQLPrepareA(hstmt: *mut ::core::ffi::c_void, szsqlstr: &[u8]) -> i extern "system" { fn SQLPrepareA(hstmt: *mut ::core::ffi::c_void, szsqlstr: *const u8, cbsqlstr: i32) -> i16; } - SQLPrepareA(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szsqlstr)), szsqlstr.len() as _) + SQLPrepareA(::core::mem::transmute(hstmt), ::core::mem::transmute(szsqlstr.as_ptr()), szsqlstr.len() as _) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] @@ -26275,88 +26382,166 @@ pub unsafe fn SQLPrepareW(hstmt: *mut ::core::ffi::c_void, szsqlstr: &[u16]) -> extern "system" { fn SQLPrepareW(hstmt: *mut ::core::ffi::c_void, szsqlstr: *const u16, cchsqlstr: i32) -> i16; } - SQLPrepareW(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szsqlstr)), szsqlstr.len() as _) + SQLPrepareW(::core::mem::transmute(hstmt), ::core::mem::transmute(szsqlstr.as_ptr()), szsqlstr.len() as _) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLPrimaryKeys(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u8], szschemaname: &[u8], sztablename: &[u8]) -> i16 { +pub unsafe fn SQLPrimaryKeys(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u8]>, szschemaname: ::core::option::Option<&[u8]>, sztablename: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLPrimaryKeys(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u8, cchcatalogname: i16, szschemaname: *const u8, cchschemaname: i16, sztablename: *const u8, cchtablename: i16) -> i16; } - SQLPrimaryKeys(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _) + SQLPrimaryKeys( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLPrimaryKeysA(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u8], szschemaname: &[u8], sztablename: &[u8]) -> i16 { +pub unsafe fn SQLPrimaryKeysA(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u8]>, szschemaname: ::core::option::Option<&[u8]>, sztablename: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLPrimaryKeysA(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u8, cbcatalogname: i16, szschemaname: *const u8, cbschemaname: i16, sztablename: *const u8, cbtablename: i16) -> i16; } - SQLPrimaryKeysA(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _) + SQLPrimaryKeysA( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLPrimaryKeysW(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u16], szschemaname: &[u16], sztablename: &[u16]) -> i16 { +pub unsafe fn SQLPrimaryKeysW(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u16]>, szschemaname: ::core::option::Option<&[u16]>, sztablename: ::core::option::Option<&[u16]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLPrimaryKeysW(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u16, cchcatalogname: i16, szschemaname: *const u16, cchschemaname: i16, sztablename: *const u16, cchtablename: i16) -> i16; } - SQLPrimaryKeysW(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _) + SQLPrimaryKeysW( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLProcedureColumns(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u8], szschemaname: &[u8], szprocname: &[u8], szcolumnname: &[u8]) -> i16 { +pub unsafe fn SQLProcedureColumns(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u8]>, szschemaname: ::core::option::Option<&[u8]>, szprocname: ::core::option::Option<&[u8]>, szcolumnname: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLProcedureColumns(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u8, cchcatalogname: i16, szschemaname: *const u8, cchschemaname: i16, szprocname: *const u8, cchprocname: i16, szcolumnname: *const u8, cchcolumnname: i16) -> i16; } - SQLProcedureColumns(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szprocname)), szprocname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szcolumnname)), szcolumnname.len() as _) + SQLProcedureColumns( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szprocname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szprocname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szcolumnname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcolumnname.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLProcedureColumnsA(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u8], szschemaname: &[u8], szprocname: &[u8], szcolumnname: &[u8]) -> i16 { +pub unsafe fn SQLProcedureColumnsA(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u8]>, szschemaname: ::core::option::Option<&[u8]>, szprocname: ::core::option::Option<&[u8]>, szcolumnname: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLProcedureColumnsA(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u8, cbcatalogname: i16, szschemaname: *const u8, cbschemaname: i16, szprocname: *const u8, cbprocname: i16, szcolumnname: *const u8, cbcolumnname: i16) -> i16; } - SQLProcedureColumnsA(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szprocname)), szprocname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szcolumnname)), szcolumnname.len() as _) + SQLProcedureColumnsA( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szprocname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szprocname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szcolumnname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcolumnname.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLProcedureColumnsW(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u16], szschemaname: &[u16], szprocname: &[u16], szcolumnname: &[u16]) -> i16 { +pub unsafe fn SQLProcedureColumnsW(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u16]>, szschemaname: ::core::option::Option<&[u16]>, szprocname: ::core::option::Option<&[u16]>, szcolumnname: ::core::option::Option<&[u16]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLProcedureColumnsW(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u16, cchcatalogname: i16, szschemaname: *const u16, cchschemaname: i16, szprocname: *const u16, cchprocname: i16, szcolumnname: *const u16, cchcolumnname: i16) -> i16; } - SQLProcedureColumnsW(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szprocname)), szprocname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szcolumnname)), szcolumnname.len() as _) + SQLProcedureColumnsW( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szprocname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szprocname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szcolumnname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcolumnname.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLProcedures(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u8], szschemaname: &[u8], szprocname: &[u8]) -> i16 { +pub unsafe fn SQLProcedures(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u8]>, szschemaname: ::core::option::Option<&[u8]>, szprocname: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLProcedures(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u8, cchcatalogname: i16, szschemaname: *const u8, cchschemaname: i16, szprocname: *const u8, cchprocname: i16) -> i16; } - SQLProcedures(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szprocname)), szprocname.len() as _) + SQLProcedures( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szprocname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szprocname.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLProceduresA(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u8], szschemaname: &[u8], szprocname: &[u8]) -> i16 { +pub unsafe fn SQLProceduresA(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u8]>, szschemaname: ::core::option::Option<&[u8]>, szprocname: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLProceduresA(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u8, cbcatalogname: i16, szschemaname: *const u8, cbschemaname: i16, szprocname: *const u8, cbprocname: i16) -> i16; } - SQLProceduresA(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szprocname)), szprocname.len() as _) + SQLProceduresA( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szprocname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szprocname.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLProceduresW(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u16], szschemaname: &[u16], szprocname: &[u16]) -> i16 { +pub unsafe fn SQLProceduresW(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u16]>, szschemaname: ::core::option::Option<&[u16]>, szprocname: ::core::option::Option<&[u16]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLProceduresW(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u16, cchcatalogname: i16, szschemaname: *const u16, cchschemaname: i16, szprocname: *const u16, cchprocname: i16) -> i16; } - SQLProceduresW(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szprocname)), szprocname.len() as _) + SQLProceduresW( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szprocname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szprocname.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] @@ -26400,30 +26585,30 @@ pub unsafe fn SQLRowCount(statementhandle: *const ::core::ffi::c_void, rowcount: } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLSetConnectAttr(connectionhandle: *mut ::core::ffi::c_void, attribute: i32, value: *const ::core::ffi::c_void, stringlength: i32) -> i16 { +pub unsafe fn SQLSetConnectAttr(connectionhandle: *mut ::core::ffi::c_void, attribute: i32, value: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLSetConnectAttr(connectionhandle: *mut ::core::ffi::c_void, attribute: i32, value: *const ::core::ffi::c_void, stringlength: i32) -> i16; } - SQLSetConnectAttr(::core::mem::transmute(connectionhandle), attribute, ::core::mem::transmute(value), stringlength) + SQLSetConnectAttr(::core::mem::transmute(connectionhandle), attribute, ::core::mem::transmute(value.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), value.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLSetConnectAttrA(hdbc: *mut ::core::ffi::c_void, fattribute: i32, rgbvalue: *const ::core::ffi::c_void, cbvalue: i32) -> i16 { +pub unsafe fn SQLSetConnectAttrA(hdbc: *mut ::core::ffi::c_void, fattribute: i32, rgbvalue: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLSetConnectAttrA(hdbc: *mut ::core::ffi::c_void, fattribute: i32, rgbvalue: *const ::core::ffi::c_void, cbvalue: i32) -> i16; } - SQLSetConnectAttrA(::core::mem::transmute(hdbc), fattribute, ::core::mem::transmute(rgbvalue), cbvalue) + SQLSetConnectAttrA(::core::mem::transmute(hdbc), fattribute, ::core::mem::transmute(rgbvalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rgbvalue.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLSetConnectAttrW(hdbc: *mut ::core::ffi::c_void, fattribute: i32, rgbvalue: *const ::core::ffi::c_void, cbvalue: i32) -> i16 { +pub unsafe fn SQLSetConnectAttrW(hdbc: *mut ::core::ffi::c_void, fattribute: i32, rgbvalue: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLSetConnectAttrW(hdbc: *mut ::core::ffi::c_void, fattribute: i32, rgbvalue: *const ::core::ffi::c_void, cbvalue: i32) -> i16; } - SQLSetConnectAttrW(::core::mem::transmute(hdbc), fattribute, ::core::mem::transmute(rgbvalue), cbvalue) + SQLSetConnectAttrW(::core::mem::transmute(hdbc), fattribute, ::core::mem::transmute(rgbvalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), rgbvalue.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] @@ -26492,7 +26677,7 @@ pub unsafe fn SQLSetCursorName(statementhandle: *mut ::core::ffi::c_void, cursor extern "system" { fn SQLSetCursorName(statementhandle: *mut ::core::ffi::c_void, cursorname: *const u8, namelength: i16) -> i16; } - SQLSetCursorName(::core::mem::transmute(statementhandle), ::core::mem::transmute(::windows::core::as_ptr_or_null(cursorname)), cursorname.len() as _) + SQLSetCursorName(::core::mem::transmute(statementhandle), ::core::mem::transmute(cursorname.as_ptr()), cursorname.len() as _) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] @@ -26501,7 +26686,7 @@ pub unsafe fn SQLSetCursorNameA(hstmt: *mut ::core::ffi::c_void, szcursor: &[u8] extern "system" { fn SQLSetCursorNameA(hstmt: *mut ::core::ffi::c_void, szcursor: *const u8, cbcursor: i16) -> i16; } - SQLSetCursorNameA(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcursor)), szcursor.len() as _) + SQLSetCursorNameA(::core::mem::transmute(hstmt), ::core::mem::transmute(szcursor.as_ptr()), szcursor.len() as _) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] @@ -26510,7 +26695,7 @@ pub unsafe fn SQLSetCursorNameW(hstmt: *mut ::core::ffi::c_void, szcursor: &[u16 extern "system" { fn SQLSetCursorNameW(hstmt: *mut ::core::ffi::c_void, szcursor: *const u16, cchcursor: i16) -> i16; } - SQLSetCursorNameW(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcursor)), szcursor.len() as _) + SQLSetCursorNameW(::core::mem::transmute(hstmt), ::core::mem::transmute(szcursor.as_ptr()), szcursor.len() as _) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] @@ -26533,31 +26718,31 @@ pub unsafe fn SQLSetDescFieldW(descriptorhandle: *mut ::core::ffi::c_void, recnu #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] #[inline] -pub unsafe fn SQLSetDescRec(descriptorhandle: *mut ::core::ffi::c_void, recnumber: i16, r#type: i16, subtype: i16, length: i64, precision: i16, scale: i16, data: *mut ::core::ffi::c_void, stringlength: ::core::option::Option<&mut i64>, indicator: ::core::option::Option<&mut i64>) -> i16 { +pub unsafe fn SQLSetDescRec(descriptorhandle: *mut ::core::ffi::c_void, recnumber: i16, r#type: i16, subtype: i16, precision: i16, scale: i16, data: ::core::option::Option<&mut [u8]>, stringlength: ::core::option::Option<&mut i64>, indicator: ::core::option::Option<&mut i64>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLSetDescRec(descriptorhandle: *mut ::core::ffi::c_void, recnumber: i16, r#type: i16, subtype: i16, length: i64, precision: i16, scale: i16, data: *mut ::core::ffi::c_void, stringlength: *mut i64, indicator: *mut i64) -> i16; } - SQLSetDescRec(::core::mem::transmute(descriptorhandle), recnumber, r#type, subtype, length, precision, scale, ::core::mem::transmute(data), ::core::mem::transmute(stringlength), ::core::mem::transmute(indicator)) + SQLSetDescRec(::core::mem::transmute(descriptorhandle), recnumber, r#type, subtype, data.as_deref().map_or(0, |slice| slice.len() as _), precision, scale, ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(stringlength), ::core::mem::transmute(indicator)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(target_arch = "x86")] #[inline] -pub unsafe fn SQLSetDescRec(descriptorhandle: *mut ::core::ffi::c_void, recnumber: i16, r#type: i16, subtype: i16, length: i32, precision: i16, scale: i16, data: *mut ::core::ffi::c_void, stringlength: ::core::option::Option<&mut i32>, indicator: ::core::option::Option<&mut i32>) -> i16 { +pub unsafe fn SQLSetDescRec(descriptorhandle: *mut ::core::ffi::c_void, recnumber: i16, r#type: i16, subtype: i16, precision: i16, scale: i16, data: ::core::option::Option<&mut [u8]>, stringlength: ::core::option::Option<&mut i32>, indicator: ::core::option::Option<&mut i32>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLSetDescRec(descriptorhandle: *mut ::core::ffi::c_void, recnumber: i16, r#type: i16, subtype: i16, length: i32, precision: i16, scale: i16, data: *mut ::core::ffi::c_void, stringlength: *mut i32, indicator: *mut i32) -> i16; } - SQLSetDescRec(::core::mem::transmute(descriptorhandle), recnumber, r#type, subtype, length, precision, scale, ::core::mem::transmute(data), ::core::mem::transmute(stringlength), ::core::mem::transmute(indicator)) + SQLSetDescRec(::core::mem::transmute(descriptorhandle), recnumber, r#type, subtype, data.as_deref().map_or(0, |slice| slice.len() as _), precision, scale, ::core::mem::transmute(data.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(stringlength), ::core::mem::transmute(indicator)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLSetEnvAttr(environmenthandle: *mut ::core::ffi::c_void, attribute: i32, value: *const ::core::ffi::c_void, stringlength: i32) -> i16 { +pub unsafe fn SQLSetEnvAttr(environmenthandle: *mut ::core::ffi::c_void, attribute: i32, value: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLSetEnvAttr(environmenthandle: *mut ::core::ffi::c_void, attribute: i32, value: *const ::core::ffi::c_void, stringlength: i32) -> i16; } - SQLSetEnvAttr(::core::mem::transmute(environmenthandle), attribute, ::core::mem::transmute(value), stringlength) + SQLSetEnvAttr(::core::mem::transmute(environmenthandle), attribute, ::core::mem::transmute(value.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), value.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))] @@ -26659,113 +26844,230 @@ pub unsafe fn SQLSetStmtOption(statementhandle: *mut ::core::ffi::c_void, option } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLSpecialColumns(statementhandle: *mut ::core::ffi::c_void, identifiertype: u16, catalogname: &[u8], schemaname: &[u8], tablename: &[u8], scope: u16, nullable: u16) -> i16 { +pub unsafe fn SQLSpecialColumns(statementhandle: *mut ::core::ffi::c_void, identifiertype: u16, catalogname: ::core::option::Option<&[u8]>, schemaname: ::core::option::Option<&[u8]>, tablename: ::core::option::Option<&[u8]>, scope: u16, nullable: u16) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLSpecialColumns(statementhandle: *mut ::core::ffi::c_void, identifiertype: u16, catalogname: *const u8, namelength1: i16, schemaname: *const u8, namelength2: i16, tablename: *const u8, namelength3: i16, scope: u16, nullable: u16) -> i16; } - SQLSpecialColumns(::core::mem::transmute(statementhandle), identifiertype, ::core::mem::transmute(::windows::core::as_ptr_or_null(catalogname)), catalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(schemaname)), schemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(tablename)), tablename.len() as _, scope, nullable) + SQLSpecialColumns( + ::core::mem::transmute(statementhandle), + identifiertype, + ::core::mem::transmute(catalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + catalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(schemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + schemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(tablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + tablename.as_deref().map_or(0, |slice| slice.len() as _), + scope, + nullable, + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLSpecialColumnsA(hstmt: *mut ::core::ffi::c_void, fcoltype: u16, szcatalogname: &[u8], szschemaname: &[u8], sztablename: &[u8], fscope: u16, fnullable: u16) -> i16 { +pub unsafe fn SQLSpecialColumnsA(hstmt: *mut ::core::ffi::c_void, fcoltype: u16, szcatalogname: ::core::option::Option<&[u8]>, szschemaname: ::core::option::Option<&[u8]>, sztablename: ::core::option::Option<&[u8]>, fscope: u16, fnullable: u16) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLSpecialColumnsA(hstmt: *mut ::core::ffi::c_void, fcoltype: u16, szcatalogname: *const u8, cbcatalogname: i16, szschemaname: *const u8, cbschemaname: i16, sztablename: *const u8, cbtablename: i16, fscope: u16, fnullable: u16) -> i16; } - SQLSpecialColumnsA(::core::mem::transmute(hstmt), fcoltype, ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _, fscope, fnullable) + SQLSpecialColumnsA( + ::core::mem::transmute(hstmt), + fcoltype, + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + fscope, + fnullable, + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLSpecialColumnsW(hstmt: *mut ::core::ffi::c_void, fcoltype: u16, szcatalogname: &[u16], szschemaname: &[u16], sztablename: &[u16], fscope: u16, fnullable: u16) -> i16 { +pub unsafe fn SQLSpecialColumnsW(hstmt: *mut ::core::ffi::c_void, fcoltype: u16, szcatalogname: ::core::option::Option<&[u16]>, szschemaname: ::core::option::Option<&[u16]>, sztablename: ::core::option::Option<&[u16]>, fscope: u16, fnullable: u16) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLSpecialColumnsW(hstmt: *mut ::core::ffi::c_void, fcoltype: u16, szcatalogname: *const u16, cchcatalogname: i16, szschemaname: *const u16, cchschemaname: i16, sztablename: *const u16, cchtablename: i16, fscope: u16, fnullable: u16) -> i16; } - SQLSpecialColumnsW(::core::mem::transmute(hstmt), fcoltype, ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _, fscope, fnullable) + SQLSpecialColumnsW( + ::core::mem::transmute(hstmt), + fcoltype, + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + fscope, + fnullable, + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLStatistics(statementhandle: *mut ::core::ffi::c_void, catalogname: &[u8], schemaname: &[u8], tablename: &[u8], unique: u16, reserved: u16) -> i16 { +pub unsafe fn SQLStatistics(statementhandle: *mut ::core::ffi::c_void, catalogname: ::core::option::Option<&[u8]>, schemaname: ::core::option::Option<&[u8]>, tablename: ::core::option::Option<&[u8]>, unique: u16, reserved: u16) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLStatistics(statementhandle: *mut ::core::ffi::c_void, catalogname: *const u8, namelength1: i16, schemaname: *const u8, namelength2: i16, tablename: *const u8, namelength3: i16, unique: u16, reserved: u16) -> i16; } - SQLStatistics(::core::mem::transmute(statementhandle), ::core::mem::transmute(::windows::core::as_ptr_or_null(catalogname)), catalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(schemaname)), schemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(tablename)), tablename.len() as _, unique, reserved) + SQLStatistics( + ::core::mem::transmute(statementhandle), + ::core::mem::transmute(catalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + catalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(schemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + schemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(tablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + tablename.as_deref().map_or(0, |slice| slice.len() as _), + unique, + reserved, + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLStatisticsA(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u8], szschemaname: &[u8], sztablename: &[u8], funique: u16, faccuracy: u16) -> i16 { +pub unsafe fn SQLStatisticsA(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u8]>, szschemaname: ::core::option::Option<&[u8]>, sztablename: ::core::option::Option<&[u8]>, funique: u16, faccuracy: u16) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLStatisticsA(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u8, cbcatalogname: i16, szschemaname: *const u8, cbschemaname: i16, sztablename: *const u8, cbtablename: i16, funique: u16, faccuracy: u16) -> i16; } - SQLStatisticsA(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _, funique, faccuracy) + SQLStatisticsA( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + funique, + faccuracy, + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLStatisticsW(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u16], szschemaname: &[u16], sztablename: &[u16], funique: u16, faccuracy: u16) -> i16 { +pub unsafe fn SQLStatisticsW(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u16]>, szschemaname: ::core::option::Option<&[u16]>, sztablename: ::core::option::Option<&[u16]>, funique: u16, faccuracy: u16) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLStatisticsW(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u16, cchcatalogname: i16, szschemaname: *const u16, cchschemaname: i16, sztablename: *const u16, cchtablename: i16, funique: u16, faccuracy: u16) -> i16; } - SQLStatisticsW(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _, funique, faccuracy) + SQLStatisticsW( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + funique, + faccuracy, + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] pub const SQLTEXT: u32 = 35u32; #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLTablePrivileges(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u8], szschemaname: &[u8], sztablename: &[u8]) -> i16 { +pub unsafe fn SQLTablePrivileges(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u8]>, szschemaname: ::core::option::Option<&[u8]>, sztablename: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLTablePrivileges(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u8, cchcatalogname: i16, szschemaname: *const u8, cchschemaname: i16, sztablename: *const u8, cchtablename: i16) -> i16; } - SQLTablePrivileges(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _) + SQLTablePrivileges( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLTablePrivilegesA(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u8], szschemaname: &[u8], sztablename: &[u8]) -> i16 { +pub unsafe fn SQLTablePrivilegesA(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u8]>, szschemaname: ::core::option::Option<&[u8]>, sztablename: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLTablePrivilegesA(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u8, cbcatalogname: i16, szschemaname: *const u8, cbschemaname: i16, sztablename: *const u8, cbtablename: i16) -> i16; } - SQLTablePrivilegesA(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _) + SQLTablePrivilegesA( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLTablePrivilegesW(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u16], szschemaname: &[u16], sztablename: &[u16]) -> i16 { +pub unsafe fn SQLTablePrivilegesW(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u16]>, szschemaname: ::core::option::Option<&[u16]>, sztablename: ::core::option::Option<&[u16]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLTablePrivilegesW(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u16, cchcatalogname: i16, szschemaname: *const u16, cchschemaname: i16, sztablename: *const u16, cchtablename: i16) -> i16; } - SQLTablePrivilegesW(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _) + SQLTablePrivilegesW( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLTables(statementhandle: *mut ::core::ffi::c_void, catalogname: &[u8], schemaname: &[u8], tablename: &[u8], tabletype: &[u8]) -> i16 { +pub unsafe fn SQLTables(statementhandle: *mut ::core::ffi::c_void, catalogname: ::core::option::Option<&[u8]>, schemaname: ::core::option::Option<&[u8]>, tablename: ::core::option::Option<&[u8]>, tabletype: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLTables(statementhandle: *mut ::core::ffi::c_void, catalogname: *const u8, namelength1: i16, schemaname: *const u8, namelength2: i16, tablename: *const u8, namelength3: i16, tabletype: *const u8, namelength4: i16) -> i16; } - SQLTables(::core::mem::transmute(statementhandle), ::core::mem::transmute(::windows::core::as_ptr_or_null(catalogname)), catalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(schemaname)), schemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(tablename)), tablename.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(tabletype)), tabletype.len() as _) + SQLTables( + ::core::mem::transmute(statementhandle), + ::core::mem::transmute(catalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + catalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(schemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + schemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(tablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + tablename.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(tabletype.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + tabletype.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLTablesA(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u8], szschemaname: &[u8], sztablename: &[u8], sztabletype: &[u8]) -> i16 { +pub unsafe fn SQLTablesA(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u8]>, szschemaname: ::core::option::Option<&[u8]>, sztablename: ::core::option::Option<&[u8]>, sztabletype: ::core::option::Option<&[u8]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLTablesA(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u8, cbcatalogname: i16, szschemaname: *const u8, cbschemaname: i16, sztablename: *const u8, cbtablename: i16, sztabletype: *const u8, cbtabletype: i16) -> i16; } - SQLTablesA(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztabletype)), sztabletype.len() as _) + SQLTablesA( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztabletype.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztabletype.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] -pub unsafe fn SQLTablesW(hstmt: *mut ::core::ffi::c_void, szcatalogname: &[u16], szschemaname: &[u16], sztablename: &[u16], sztabletype: &[u16]) -> i16 { +pub unsafe fn SQLTablesW(hstmt: *mut ::core::ffi::c_void, szcatalogname: ::core::option::Option<&[u16]>, szschemaname: ::core::option::Option<&[u16]>, sztablename: ::core::option::Option<&[u16]>, sztabletype: ::core::option::Option<&[u16]>) -> i16 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SQLTablesW(hstmt: *mut ::core::ffi::c_void, szcatalogname: *const u16, cchcatalogname: i16, szschemaname: *const u16, cchschemaname: i16, sztablename: *const u16, cchtablename: i16, sztabletype: *const u16, cchtabletype: i16) -> i16; } - SQLTablesW(::core::mem::transmute(hstmt), ::core::mem::transmute(::windows::core::as_ptr_or_null(szcatalogname)), szcatalogname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(szschemaname)), szschemaname.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztablename)), sztablename.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(sztabletype)), sztabletype.len() as _) + SQLTablesW( + ::core::mem::transmute(hstmt), + ::core::mem::transmute(szcatalogname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szcatalogname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(szschemaname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + szschemaname.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztablename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztablename.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(sztabletype.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + sztabletype.as_deref().map_or(0, |slice| slice.len() as _), + ) } #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/System/ServerBackup/mod.rs b/crates/libs/windows/src/Windows/Win32/System/ServerBackup/mod.rs index 92cf050307..687ad57666 100644 --- a/crates/libs/windows/src/Windows/Win32/System/ServerBackup/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/ServerBackup/mod.rs @@ -56,7 +56,7 @@ pub struct IWsbApplicationAsync_Vtbl { #[repr(transparent)] pub struct IWsbApplicationBackupSupport(::windows::core::IUnknown); impl IWsbApplicationBackupSupport { - pub unsafe fn CheckConsistency<'a, P0, P1, P2>(&self, wszwritermetadata: P0, wszcomponentname: P1, wszcomponentlogicalpath: P2, cvolumes: u32, rgwszsourcevolumepath: &::windows::core::PWSTR, rgwszsnapshotvolumepath: &::windows::core::PWSTR) -> ::windows::core::Result + pub unsafe fn CheckConsistency<'a, P0, P1, P2>(&self, wszwritermetadata: P0, wszcomponentname: P1, wszcomponentlogicalpath: P2, cvolumes: u32, rgwszsourcevolumepath: *const ::windows::core::PWSTR, rgwszsnapshotvolumepath: *const ::windows::core::PWSTR) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -133,7 +133,7 @@ impl IWsbApplicationRestoreSupport { { (::windows::core::Interface::vtable(self).PostRestore)(::windows::core::Interface::as_raw(self), wszwritermetadata.into(), wszcomponentname.into(), wszcomponentlogicalpath.into(), bnorollforward.into()).ok() } - pub unsafe fn OrderComponents(&self, ccomponents: u32, rgcomponentname: &::windows::core::PWSTR, rgcomponentlogicalpaths: &::windows::core::PWSTR, prgcomponentname: &mut *mut ::windows::core::PWSTR, prgcomponentlogicalpath: &mut *mut ::windows::core::PWSTR) -> ::windows::core::Result<()> { + pub unsafe fn OrderComponents(&self, ccomponents: u32, rgcomponentname: *const ::windows::core::PWSTR, rgcomponentlogicalpaths: *const ::windows::core::PWSTR, prgcomponentname: *mut *mut ::windows::core::PWSTR, prgcomponentlogicalpath: *mut *mut ::windows::core::PWSTR) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OrderComponents)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ccomponents), ::core::mem::transmute(rgcomponentname), ::core::mem::transmute(rgcomponentlogicalpaths), ::core::mem::transmute(prgcomponentname), ::core::mem::transmute(prgcomponentlogicalpath)).ok() } pub unsafe fn IsRollForwardSupported(&self) -> ::windows::core::Result { diff --git a/crates/libs/windows/src/Windows/Win32/System/Services/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Services/mod.rs index 97dfa23ee1..8d9bfc3328 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Services/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Services/mod.rs @@ -403,7 +403,7 @@ impl ::core::ops::Not for ENUM_SERVICE_TYPE { #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn EnumDependentServicesA<'a, P0>(hservice: P0, dwservicestate: ENUM_SERVICE_STATE, lpservices: ::core::option::Option<&mut ENUM_SERVICE_STATUSA>, cbbufsize: u32, pcbbytesneeded: &mut u32, lpservicesreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumDependentServicesA<'a, P0>(hservice: P0, dwservicestate: ENUM_SERVICE_STATE, lpservices: ::core::option::Option<&mut [u8]>, pcbbytesneeded: &mut u32, lpservicesreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -411,12 +411,12 @@ where extern "system" { fn EnumDependentServicesA(hservice: super::super::Security::SC_HANDLE, dwservicestate: ENUM_SERVICE_STATE, lpservices: *mut ENUM_SERVICE_STATUSA, cbbufsize: u32, pcbbytesneeded: *mut u32, lpservicesreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumDependentServicesA(hservice.into(), dwservicestate, ::core::mem::transmute(lpservices), cbbufsize, ::core::mem::transmute(pcbbytesneeded), ::core::mem::transmute(lpservicesreturned)) + EnumDependentServicesA(hservice.into(), dwservicestate, ::core::mem::transmute(lpservices.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpservices.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbbytesneeded), ::core::mem::transmute(lpservicesreturned)) } #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn EnumDependentServicesW<'a, P0>(hservice: P0, dwservicestate: ENUM_SERVICE_STATE, lpservices: ::core::option::Option<&mut ENUM_SERVICE_STATUSW>, cbbufsize: u32, pcbbytesneeded: &mut u32, lpservicesreturned: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn EnumDependentServicesW<'a, P0>(hservice: P0, dwservicestate: ENUM_SERVICE_STATE, lpservices: ::core::option::Option<&mut [u8]>, pcbbytesneeded: &mut u32, lpservicesreturned: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -424,12 +424,12 @@ where extern "system" { fn EnumDependentServicesW(hservice: super::super::Security::SC_HANDLE, dwservicestate: ENUM_SERVICE_STATE, lpservices: *mut ENUM_SERVICE_STATUSW, cbbufsize: u32, pcbbytesneeded: *mut u32, lpservicesreturned: *mut u32) -> super::super::Foundation::BOOL; } - EnumDependentServicesW(hservice.into(), dwservicestate, ::core::mem::transmute(lpservices), cbbufsize, ::core::mem::transmute(pcbbytesneeded), ::core::mem::transmute(lpservicesreturned)) + EnumDependentServicesW(hservice.into(), dwservicestate, ::core::mem::transmute(lpservices.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpservices.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbbytesneeded), ::core::mem::transmute(lpservicesreturned)) } #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn EnumServicesStatusA<'a, P0>(hscmanager: P0, dwservicetype: ENUM_SERVICE_TYPE, dwservicestate: ENUM_SERVICE_STATE, lpservices: ::core::option::Option<&mut ENUM_SERVICE_STATUSA>, cbbufsize: u32, pcbbytesneeded: &mut u32, lpservicesreturned: &mut u32, lpresumehandle: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn EnumServicesStatusA<'a, P0>(hscmanager: P0, dwservicetype: ENUM_SERVICE_TYPE, dwservicestate: ENUM_SERVICE_STATE, lpservices: ::core::option::Option<&mut [u8]>, pcbbytesneeded: &mut u32, lpservicesreturned: &mut u32, lpresumehandle: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -437,12 +437,12 @@ where extern "system" { fn EnumServicesStatusA(hscmanager: super::super::Security::SC_HANDLE, dwservicetype: ENUM_SERVICE_TYPE, dwservicestate: ENUM_SERVICE_STATE, lpservices: *mut ENUM_SERVICE_STATUSA, cbbufsize: u32, pcbbytesneeded: *mut u32, lpservicesreturned: *mut u32, lpresumehandle: *mut u32) -> super::super::Foundation::BOOL; } - EnumServicesStatusA(hscmanager.into(), dwservicetype, dwservicestate, ::core::mem::transmute(lpservices), cbbufsize, ::core::mem::transmute(pcbbytesneeded), ::core::mem::transmute(lpservicesreturned), ::core::mem::transmute(lpresumehandle)) + EnumServicesStatusA(hscmanager.into(), dwservicetype, dwservicestate, ::core::mem::transmute(lpservices.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpservices.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbbytesneeded), ::core::mem::transmute(lpservicesreturned), ::core::mem::transmute(lpresumehandle)) } #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn EnumServicesStatusExA<'a, P0, P1>(hscmanager: P0, infolevel: SC_ENUM_TYPE, dwservicetype: ENUM_SERVICE_TYPE, dwservicestate: ENUM_SERVICE_STATE, lpservices: ::core::option::Option<&mut u8>, cbbufsize: u32, pcbbytesneeded: &mut u32, lpservicesreturned: &mut u32, lpresumehandle: ::core::option::Option<&mut u32>, pszgroupname: P1) -> super::super::Foundation::BOOL +pub unsafe fn EnumServicesStatusExA<'a, P0, P1>(hscmanager: P0, infolevel: SC_ENUM_TYPE, dwservicetype: ENUM_SERVICE_TYPE, dwservicestate: ENUM_SERVICE_STATE, lpservices: ::core::option::Option<&mut [u8]>, pcbbytesneeded: &mut u32, lpservicesreturned: &mut u32, lpresumehandle: ::core::option::Option<&mut u32>, pszgroupname: P1) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -451,12 +451,12 @@ where extern "system" { fn EnumServicesStatusExA(hscmanager: super::super::Security::SC_HANDLE, infolevel: SC_ENUM_TYPE, dwservicetype: ENUM_SERVICE_TYPE, dwservicestate: ENUM_SERVICE_STATE, lpservices: *mut u8, cbbufsize: u32, pcbbytesneeded: *mut u32, lpservicesreturned: *mut u32, lpresumehandle: *mut u32, pszgroupname: ::windows::core::PCSTR) -> super::super::Foundation::BOOL; } - EnumServicesStatusExA(hscmanager.into(), infolevel, dwservicetype, dwservicestate, ::core::mem::transmute(lpservices), cbbufsize, ::core::mem::transmute(pcbbytesneeded), ::core::mem::transmute(lpservicesreturned), ::core::mem::transmute(lpresumehandle), pszgroupname.into()) + EnumServicesStatusExA(hscmanager.into(), infolevel, dwservicetype, dwservicestate, ::core::mem::transmute(lpservices.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpservices.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbbytesneeded), ::core::mem::transmute(lpservicesreturned), ::core::mem::transmute(lpresumehandle), pszgroupname.into()) } #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn EnumServicesStatusExW<'a, P0, P1>(hscmanager: P0, infolevel: SC_ENUM_TYPE, dwservicetype: ENUM_SERVICE_TYPE, dwservicestate: ENUM_SERVICE_STATE, lpservices: ::core::option::Option<&mut u8>, cbbufsize: u32, pcbbytesneeded: &mut u32, lpservicesreturned: &mut u32, lpresumehandle: ::core::option::Option<&mut u32>, pszgroupname: P1) -> super::super::Foundation::BOOL +pub unsafe fn EnumServicesStatusExW<'a, P0, P1>(hscmanager: P0, infolevel: SC_ENUM_TYPE, dwservicetype: ENUM_SERVICE_TYPE, dwservicestate: ENUM_SERVICE_STATE, lpservices: ::core::option::Option<&mut [u8]>, pcbbytesneeded: &mut u32, lpservicesreturned: &mut u32, lpresumehandle: ::core::option::Option<&mut u32>, pszgroupname: P1) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -465,12 +465,12 @@ where extern "system" { fn EnumServicesStatusExW(hscmanager: super::super::Security::SC_HANDLE, infolevel: SC_ENUM_TYPE, dwservicetype: ENUM_SERVICE_TYPE, dwservicestate: ENUM_SERVICE_STATE, lpservices: *mut u8, cbbufsize: u32, pcbbytesneeded: *mut u32, lpservicesreturned: *mut u32, lpresumehandle: *mut u32, pszgroupname: ::windows::core::PCWSTR) -> super::super::Foundation::BOOL; } - EnumServicesStatusExW(hscmanager.into(), infolevel, dwservicetype, dwservicestate, ::core::mem::transmute(lpservices), cbbufsize, ::core::mem::transmute(pcbbytesneeded), ::core::mem::transmute(lpservicesreturned), ::core::mem::transmute(lpresumehandle), pszgroupname.into()) + EnumServicesStatusExW(hscmanager.into(), infolevel, dwservicetype, dwservicestate, ::core::mem::transmute(lpservices.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpservices.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbbytesneeded), ::core::mem::transmute(lpservicesreturned), ::core::mem::transmute(lpresumehandle), pszgroupname.into()) } #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn EnumServicesStatusW<'a, P0>(hscmanager: P0, dwservicetype: ENUM_SERVICE_TYPE, dwservicestate: ENUM_SERVICE_STATE, lpservices: ::core::option::Option<&mut ENUM_SERVICE_STATUSW>, cbbufsize: u32, pcbbytesneeded: &mut u32, lpservicesreturned: &mut u32, lpresumehandle: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn EnumServicesStatusW<'a, P0>(hscmanager: P0, dwservicetype: ENUM_SERVICE_TYPE, dwservicestate: ENUM_SERVICE_STATE, lpservices: ::core::option::Option<&mut [u8]>, pcbbytesneeded: &mut u32, lpservicesreturned: &mut u32, lpresumehandle: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -478,13 +478,13 @@ where extern "system" { fn EnumServicesStatusW(hscmanager: super::super::Security::SC_HANDLE, dwservicetype: ENUM_SERVICE_TYPE, dwservicestate: ENUM_SERVICE_STATE, lpservices: *mut ENUM_SERVICE_STATUSW, cbbufsize: u32, pcbbytesneeded: *mut u32, lpservicesreturned: *mut u32, lpresumehandle: *mut u32) -> super::super::Foundation::BOOL; } - EnumServicesStatusW(hscmanager.into(), dwservicetype, dwservicestate, ::core::mem::transmute(lpservices), cbbufsize, ::core::mem::transmute(pcbbytesneeded), ::core::mem::transmute(lpservicesreturned), ::core::mem::transmute(lpresumehandle)) + EnumServicesStatusW(hscmanager.into(), dwservicetype, dwservicestate, ::core::mem::transmute(lpservices.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpservices.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbbytesneeded), ::core::mem::transmute(lpservicesreturned), ::core::mem::transmute(lpresumehandle)) } pub const FIREWALL_PORT_CLOSE_GUID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa144ed38_8e12_4de4_9d96_e64740b1a524); pub const FIREWALL_PORT_OPEN_GUID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xb7569e07_8421_4ee0_ad10_86915afdad09); #[doc = "*Required features: `\"Win32_System_Services\"`*"] #[inline] -pub unsafe fn GetServiceDirectory<'a, P0>(hservicestatus: P0, edirectorytype: SERVICE_DIRECTORY_TYPE, lppathbuffer: &mut [u16], lpcchrequiredbufferlength: &mut u32) -> u32 +pub unsafe fn GetServiceDirectory<'a, P0>(hservicestatus: P0, edirectorytype: SERVICE_DIRECTORY_TYPE, lppathbuffer: ::core::option::Option<&mut [u16]>, lpcchrequiredbufferlength: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -492,7 +492,7 @@ where extern "system" { fn GetServiceDirectory(hservicestatus: SERVICE_STATUS_HANDLE, edirectorytype: SERVICE_DIRECTORY_TYPE, lppathbuffer: ::windows::core::PWSTR, cchpathbufferlength: u32, lpcchrequiredbufferlength: *mut u32) -> u32; } - GetServiceDirectory(hservicestatus.into(), edirectorytype, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lppathbuffer)), lppathbuffer.len() as _, ::core::mem::transmute(lpcchrequiredbufferlength)) + GetServiceDirectory(hservicestatus.into(), edirectorytype, ::core::mem::transmute(lppathbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lppathbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpcchrequiredbufferlength)) } #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] @@ -566,7 +566,7 @@ where #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Security\"`*"] #[cfg(feature = "Win32_Security")] #[inline] -pub unsafe fn GetSharedServiceDirectory<'a, P0>(servicehandle: P0, directorytype: SERVICE_SHARED_DIRECTORY_TYPE, pathbuffer: &mut [u16], requiredbufferlength: &mut u32) -> u32 +pub unsafe fn GetSharedServiceDirectory<'a, P0>(servicehandle: P0, directorytype: SERVICE_SHARED_DIRECTORY_TYPE, pathbuffer: ::core::option::Option<&mut [u16]>, requiredbufferlength: &mut u32) -> u32 where P0: ::std::convert::Into, { @@ -574,7 +574,7 @@ where extern "system" { fn GetSharedServiceDirectory(servicehandle: super::super::Security::SC_HANDLE, directorytype: SERVICE_SHARED_DIRECTORY_TYPE, pathbuffer: ::windows::core::PWSTR, pathbufferlength: u32, requiredbufferlength: *mut u32) -> u32; } - GetSharedServiceDirectory(servicehandle.into(), directorytype, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pathbuffer)), pathbuffer.len() as _, ::core::mem::transmute(requiredbufferlength)) + GetSharedServiceDirectory(servicehandle.into(), directorytype, ::core::mem::transmute(pathbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pathbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredbufferlength)) } #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Security\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_Security", feature = "Win32_System_Registry"))] @@ -864,7 +864,7 @@ impl ::core::default::Default for QUERY_SERVICE_LOCK_STATUSW { #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn QueryServiceConfig2A<'a, P0>(hservice: P0, dwinfolevel: SERVICE_CONFIG, lpbuffer: ::core::option::Option<&mut u8>, cbbufsize: u32, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn QueryServiceConfig2A<'a, P0>(hservice: P0, dwinfolevel: SERVICE_CONFIG, lpbuffer: ::core::option::Option<&mut [u8]>, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -872,12 +872,12 @@ where extern "system" { fn QueryServiceConfig2A(hservice: super::super::Security::SC_HANDLE, dwinfolevel: SERVICE_CONFIG, lpbuffer: *mut u8, cbbufsize: u32, pcbbytesneeded: *mut u32) -> super::super::Foundation::BOOL; } - QueryServiceConfig2A(hservice.into(), dwinfolevel, ::core::mem::transmute(lpbuffer), cbbufsize, ::core::mem::transmute(pcbbytesneeded)) + QueryServiceConfig2A(hservice.into(), dwinfolevel, ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbbytesneeded)) } #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn QueryServiceConfig2W<'a, P0>(hservice: P0, dwinfolevel: SERVICE_CONFIG, lpbuffer: ::core::option::Option<&mut u8>, cbbufsize: u32, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn QueryServiceConfig2W<'a, P0>(hservice: P0, dwinfolevel: SERVICE_CONFIG, lpbuffer: ::core::option::Option<&mut [u8]>, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -885,12 +885,12 @@ where extern "system" { fn QueryServiceConfig2W(hservice: super::super::Security::SC_HANDLE, dwinfolevel: SERVICE_CONFIG, lpbuffer: *mut u8, cbbufsize: u32, pcbbytesneeded: *mut u32) -> super::super::Foundation::BOOL; } - QueryServiceConfig2W(hservice.into(), dwinfolevel, ::core::mem::transmute(lpbuffer), cbbufsize, ::core::mem::transmute(pcbbytesneeded)) + QueryServiceConfig2W(hservice.into(), dwinfolevel, ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbbytesneeded)) } #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn QueryServiceConfigA<'a, P0>(hservice: P0, lpserviceconfig: ::core::option::Option<&mut QUERY_SERVICE_CONFIGA>, cbbufsize: u32, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn QueryServiceConfigA<'a, P0>(hservice: P0, lpserviceconfig: ::core::option::Option<&mut [u8]>, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -898,12 +898,12 @@ where extern "system" { fn QueryServiceConfigA(hservice: super::super::Security::SC_HANDLE, lpserviceconfig: *mut QUERY_SERVICE_CONFIGA, cbbufsize: u32, pcbbytesneeded: *mut u32) -> super::super::Foundation::BOOL; } - QueryServiceConfigA(hservice.into(), ::core::mem::transmute(lpserviceconfig), cbbufsize, ::core::mem::transmute(pcbbytesneeded)) + QueryServiceConfigA(hservice.into(), ::core::mem::transmute(lpserviceconfig.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpserviceconfig.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbbytesneeded)) } #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn QueryServiceConfigW<'a, P0>(hservice: P0, lpserviceconfig: ::core::option::Option<&mut QUERY_SERVICE_CONFIGW>, cbbufsize: u32, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn QueryServiceConfigW<'a, P0>(hservice: P0, lpserviceconfig: ::core::option::Option<&mut [u8]>, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -911,7 +911,7 @@ where extern "system" { fn QueryServiceConfigW(hservice: super::super::Security::SC_HANDLE, lpserviceconfig: *mut QUERY_SERVICE_CONFIGW, cbbufsize: u32, pcbbytesneeded: *mut u32) -> super::super::Foundation::BOOL; } - QueryServiceConfigW(hservice.into(), ::core::mem::transmute(lpserviceconfig), cbbufsize, ::core::mem::transmute(pcbbytesneeded)) + QueryServiceConfigW(hservice.into(), ::core::mem::transmute(lpserviceconfig.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpserviceconfig.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbbytesneeded)) } #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -929,7 +929,7 @@ where #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn QueryServiceLockStatusA<'a, P0>(hscmanager: P0, lplockstatus: ::core::option::Option<&mut QUERY_SERVICE_LOCK_STATUSA>, cbbufsize: u32, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn QueryServiceLockStatusA<'a, P0>(hscmanager: P0, lplockstatus: ::core::option::Option<&mut [u8]>, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -937,12 +937,12 @@ where extern "system" { fn QueryServiceLockStatusA(hscmanager: super::super::Security::SC_HANDLE, lplockstatus: *mut QUERY_SERVICE_LOCK_STATUSA, cbbufsize: u32, pcbbytesneeded: *mut u32) -> super::super::Foundation::BOOL; } - QueryServiceLockStatusA(hscmanager.into(), ::core::mem::transmute(lplockstatus), cbbufsize, ::core::mem::transmute(pcbbytesneeded)) + QueryServiceLockStatusA(hscmanager.into(), ::core::mem::transmute(lplockstatus.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lplockstatus.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbbytesneeded)) } #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn QueryServiceLockStatusW<'a, P0>(hscmanager: P0, lplockstatus: ::core::option::Option<&mut QUERY_SERVICE_LOCK_STATUSW>, cbbufsize: u32, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn QueryServiceLockStatusW<'a, P0>(hscmanager: P0, lplockstatus: ::core::option::Option<&mut [u8]>, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -950,12 +950,12 @@ where extern "system" { fn QueryServiceLockStatusW(hscmanager: super::super::Security::SC_HANDLE, lplockstatus: *mut QUERY_SERVICE_LOCK_STATUSW, cbbufsize: u32, pcbbytesneeded: *mut u32) -> super::super::Foundation::BOOL; } - QueryServiceLockStatusW(hscmanager.into(), ::core::mem::transmute(lplockstatus), cbbufsize, ::core::mem::transmute(pcbbytesneeded)) + QueryServiceLockStatusW(hscmanager.into(), ::core::mem::transmute(lplockstatus.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lplockstatus.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbbytesneeded)) } #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn QueryServiceObjectSecurity<'a, P0>(hservice: P0, dwsecurityinformation: u32, lpsecuritydescriptor: super::super::Security::PSECURITY_DESCRIPTOR, cbbufsize: u32, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn QueryServiceObjectSecurity<'a, P0>(hservice: P0, dwsecurityinformation: u32, lpsecuritydescriptor: ::core::option::Option<&mut [u8]>, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -963,7 +963,7 @@ where extern "system" { fn QueryServiceObjectSecurity(hservice: super::super::Security::SC_HANDLE, dwsecurityinformation: u32, lpsecuritydescriptor: super::super::Security::PSECURITY_DESCRIPTOR, cbbufsize: u32, pcbbytesneeded: *mut u32) -> super::super::Foundation::BOOL; } - QueryServiceObjectSecurity(hservice.into(), dwsecurityinformation, ::core::mem::transmute(lpsecuritydescriptor), cbbufsize, ::core::mem::transmute(pcbbytesneeded)) + QueryServiceObjectSecurity(hservice.into(), dwsecurityinformation, ::core::mem::transmute(lpsecuritydescriptor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpsecuritydescriptor.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbbytesneeded)) } #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] @@ -981,7 +981,7 @@ where #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn QueryServiceStatusEx<'a, P0>(hservice: P0, infolevel: SC_STATUS_TYPE, lpbuffer: ::core::option::Option<&mut u8>, cbbufsize: u32, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn QueryServiceStatusEx<'a, P0>(hservice: P0, infolevel: SC_STATUS_TYPE, lpbuffer: ::core::option::Option<&mut [u8]>, pcbbytesneeded: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -989,7 +989,7 @@ where extern "system" { fn QueryServiceStatusEx(hservice: super::super::Security::SC_HANDLE, infolevel: SC_STATUS_TYPE, lpbuffer: *mut u8, cbbufsize: u32, pcbbytesneeded: *mut u32) -> super::super::Foundation::BOOL; } - QueryServiceStatusEx(hservice.into(), infolevel, ::core::mem::transmute(lpbuffer), cbbufsize, ::core::mem::transmute(pcbbytesneeded)) + QueryServiceStatusEx(hservice.into(), infolevel, ::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbbytesneeded)) } pub const RPC_INTERFACE_EVENT_GUID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbc90d167_9470_4139_a9ba_be0bbbf5b74d); #[doc = "*Required features: `\"Win32_System_Services\"`*"] @@ -2923,7 +2923,7 @@ where #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn StartServiceA<'a, P0>(hservice: P0, lpserviceargvectors: &[::windows::core::PSTR]) -> super::super::Foundation::BOOL +pub unsafe fn StartServiceA<'a, P0>(hservice: P0, lpserviceargvectors: ::core::option::Option<&[::windows::core::PSTR]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -2931,7 +2931,7 @@ where extern "system" { fn StartServiceA(hservice: super::super::Security::SC_HANDLE, dwnumserviceargs: u32, lpserviceargvectors: *const ::windows::core::PSTR) -> super::super::Foundation::BOOL; } - StartServiceA(hservice.into(), lpserviceargvectors.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpserviceargvectors))) + StartServiceA(hservice.into(), lpserviceargvectors.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpserviceargvectors.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2956,7 +2956,7 @@ pub unsafe fn StartServiceCtrlDispatcherW(lpservicestarttable: &SERVICE_TABLE_EN #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] #[inline] -pub unsafe fn StartServiceW<'a, P0>(hservice: P0, lpserviceargvectors: &[::windows::core::PWSTR]) -> super::super::Foundation::BOOL +pub unsafe fn StartServiceW<'a, P0>(hservice: P0, lpserviceargvectors: ::core::option::Option<&[::windows::core::PWSTR]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -2964,7 +2964,7 @@ where extern "system" { fn StartServiceW(hservice: super::super::Security::SC_HANDLE, dwnumserviceargs: u32, lpserviceargvectors: *const ::windows::core::PWSTR) -> super::super::Foundation::BOOL; } - StartServiceW(hservice.into(), lpserviceargvectors.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpserviceargvectors))) + StartServiceW(hservice.into(), lpserviceargvectors.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpserviceargvectors.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } pub const USER_POLICY_PRESENT_GUID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x54fb46c8_f089_464c_b1fd_59d1b62c3b50); #[doc = "*Required features: `\"Win32_System_Services\"`, `\"Win32_Foundation\"`*"] diff --git a/crates/libs/windows/src/Windows/Win32/System/SettingsManagementInfrastructure/mod.rs b/crates/libs/windows/src/Windows/Win32/System/SettingsManagementInfrastructure/mod.rs index 5d12e7ad84..3116667caf 100644 --- a/crates/libs/windows/src/Windows/Win32/System/SettingsManagementInfrastructure/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/SettingsManagementInfrastructure/mod.rs @@ -82,7 +82,7 @@ impl ISettingsContext { } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Deserialize<'a, P0, P1>(&self, pstream: P0, ptarget: P1, pppresults: &mut *mut ::core::option::Option, pcresultcount: &mut usize) -> ::windows::core::Result<()> + pub unsafe fn Deserialize<'a, P0, P1>(&self, pstream: P0, ptarget: P1, pppresults: *mut *mut ::core::option::Option, pcresultcount: &mut usize) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::Com::IStream>>, P1: ::std::convert::Into<::windows::core::InParam<'a, ITargetInfo>>, @@ -426,11 +426,11 @@ impl ISettingsItem { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetDataType)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetValueRaw(&self, data: &mut *mut u8, datasize: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetValueRaw(&self, data: *mut *mut u8, datasize: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetValueRaw)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(data), ::core::mem::transmute(datasize)).ok() } pub unsafe fn SetValueRaw(&self, datatype: i32, data: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetValueRaw)(::windows::core::Interface::as_raw(self), datatype, ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _).ok() + (::windows::core::Interface::vtable(self).SetValueRaw)(::windows::core::Interface::as_raw(self), datatype, ::core::mem::transmute(data.as_ptr()), data.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/System/SideShow/mod.rs b/crates/libs/windows/src/Windows/Win32/System/SideShow/mod.rs index a793968fa4..c2c5a33075 100644 --- a/crates/libs/windows/src/Windows/Win32/System/SideShow/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/SideShow/mod.rs @@ -300,7 +300,7 @@ pub struct ISideShowCapabilitiesCollection_Vtbl { #[repr(transparent)] pub struct ISideShowContent(::windows::core::IUnknown); impl ISideShowContent { - pub unsafe fn GetContent<'a, P0>(&self, in_picapabilities: P0, out_pdwsize: &mut u32, out_ppbdata: &mut *mut u8) -> ::windows::core::Result<()> + pub unsafe fn GetContent<'a, P0>(&self, in_picapabilities: P0, out_pdwsize: &mut u32, out_ppbdata: *mut *mut u8) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ISideShowCapabilities>>, { @@ -443,11 +443,11 @@ impl ISideShowEvents { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).ContentMissing)(::windows::core::Interface::as_raw(self), in_contentid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn ApplicationEvent<'a, P0>(&self, in_picapabilities: P0, in_dweventid: u32, in_pbeventdata: &[u8]) -> ::windows::core::Result<()> + pub unsafe fn ApplicationEvent<'a, P0>(&self, in_picapabilities: P0, in_dweventid: u32, in_pbeventdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ISideShowCapabilities>>, { - (::windows::core::Interface::vtable(self).ApplicationEvent)(::windows::core::Interface::as_raw(self), in_picapabilities.into().abi(), in_dweventid, in_pbeventdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(in_pbeventdata))).ok() + (::windows::core::Interface::vtable(self).ApplicationEvent)(::windows::core::Interface::as_raw(self), in_picapabilities.into().abi(), in_dweventid, in_pbeventdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(in_pbeventdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn DeviceAdded<'a, P0>(&self, in_pidevice: P0) -> ::windows::core::Result<()> where diff --git a/crates/libs/windows/src/Windows/Win32/System/StationsAndDesktops/mod.rs b/crates/libs/windows/src/Windows/Win32/System/StationsAndDesktops/mod.rs index 73a384aec7..a47f12ff8d 100644 --- a/crates/libs/windows/src/Windows/Win32/System/StationsAndDesktops/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/StationsAndDesktops/mod.rs @@ -436,7 +436,7 @@ pub unsafe fn GetThreadDesktop(dwthreadid: u32) -> ::windows::core::Result(hobj: P0, nindex: USER_OBJECT_INFORMATION_INDEX, pvinfo: *mut ::core::ffi::c_void, nlength: u32, lpnlengthneeded: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn GetUserObjectInformationA<'a, P0>(hobj: P0, nindex: USER_OBJECT_INFORMATION_INDEX, pvinfo: ::core::option::Option<&mut [u8]>, lpnlengthneeded: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -444,12 +444,12 @@ where extern "system" { fn GetUserObjectInformationA(hobj: super::super::Foundation::HANDLE, nindex: USER_OBJECT_INFORMATION_INDEX, pvinfo: *mut ::core::ffi::c_void, nlength: u32, lpnlengthneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetUserObjectInformationA(hobj.into(), nindex, ::core::mem::transmute(pvinfo), nlength, ::core::mem::transmute(lpnlengthneeded)) + GetUserObjectInformationA(hobj.into(), nindex, ::core::mem::transmute(pvinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvinfo.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpnlengthneeded)) } #[doc = "*Required features: `\"Win32_System_StationsAndDesktops\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetUserObjectInformationW<'a, P0>(hobj: P0, nindex: USER_OBJECT_INFORMATION_INDEX, pvinfo: *mut ::core::ffi::c_void, nlength: u32, lpnlengthneeded: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn GetUserObjectInformationW<'a, P0>(hobj: P0, nindex: USER_OBJECT_INFORMATION_INDEX, pvinfo: ::core::option::Option<&mut [u8]>, lpnlengthneeded: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -457,7 +457,7 @@ where extern "system" { fn GetUserObjectInformationW(hobj: super::super::Foundation::HANDLE, nindex: USER_OBJECT_INFORMATION_INDEX, pvinfo: *mut ::core::ffi::c_void, nlength: u32, lpnlengthneeded: *mut u32) -> super::super::Foundation::BOOL; } - GetUserObjectInformationW(hobj.into(), nindex, ::core::mem::transmute(pvinfo), nlength, ::core::mem::transmute(lpnlengthneeded)) + GetUserObjectInformationW(hobj.into(), nindex, ::core::mem::transmute(pvinfo.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvinfo.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpnlengthneeded)) } #[repr(transparent)] #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] @@ -626,7 +626,7 @@ where #[doc = "*Required features: `\"Win32_System_StationsAndDesktops\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetUserObjectInformationA<'a, P0>(hobj: P0, nindex: i32, pvinfo: *const ::core::ffi::c_void, nlength: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetUserObjectInformationA<'a, P0>(hobj: P0, nindex: i32, pvinfo: &[u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -634,12 +634,12 @@ where extern "system" { fn SetUserObjectInformationA(hobj: super::super::Foundation::HANDLE, nindex: i32, pvinfo: *const ::core::ffi::c_void, nlength: u32) -> super::super::Foundation::BOOL; } - SetUserObjectInformationA(hobj.into(), nindex, ::core::mem::transmute(pvinfo), nlength) + SetUserObjectInformationA(hobj.into(), nindex, ::core::mem::transmute(pvinfo.as_ptr()), pvinfo.len() as _) } #[doc = "*Required features: `\"Win32_System_StationsAndDesktops\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetUserObjectInformationW<'a, P0>(hobj: P0, nindex: i32, pvinfo: *const ::core::ffi::c_void, nlength: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetUserObjectInformationW<'a, P0>(hobj: P0, nindex: i32, pvinfo: &[u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -647,7 +647,7 @@ where extern "system" { fn SetUserObjectInformationW(hobj: super::super::Foundation::HANDLE, nindex: i32, pvinfo: *const ::core::ffi::c_void, nlength: u32) -> super::super::Foundation::BOOL; } - SetUserObjectInformationW(hobj.into(), nindex, ::core::mem::transmute(pvinfo), nlength) + SetUserObjectInformationW(hobj.into(), nindex, ::core::mem::transmute(pvinfo.as_ptr()), pvinfo.len() as _) } #[doc = "*Required features: `\"Win32_System_StationsAndDesktops\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/System/SystemInformation/mod.rs b/crates/libs/windows/src/Windows/Win32/System/SystemInformation/mod.rs index d3af1b6a5d..d902ca114f 100644 --- a/crates/libs/windows/src/Windows/Win32/System/SystemInformation/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/SystemInformation/mod.rs @@ -382,12 +382,12 @@ where } #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"] #[inline] -pub unsafe fn EnumSystemFirmwareTables(firmwaretableprovidersignature: FIRMWARE_TABLE_PROVIDER, pfirmwaretableenumbuffer: ::core::option::Option<&mut FIRMWARE_TABLE_ID>, buffersize: u32) -> u32 { +pub unsafe fn EnumSystemFirmwareTables(firmwaretableprovidersignature: FIRMWARE_TABLE_PROVIDER, pfirmwaretableenumbuffer: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn EnumSystemFirmwareTables(firmwaretableprovidersignature: FIRMWARE_TABLE_PROVIDER, pfirmwaretableenumbuffer: *mut FIRMWARE_TABLE_ID, buffersize: u32) -> u32; } - EnumSystemFirmwareTables(firmwaretableprovidersignature, ::core::mem::transmute(pfirmwaretableenumbuffer), buffersize) + EnumSystemFirmwareTables(firmwaretableprovidersignature, ::core::mem::transmute(pfirmwaretableenumbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pfirmwaretableenumbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[repr(transparent)] #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] @@ -594,7 +594,7 @@ pub unsafe fn GetLocalTime(lpsystemtime: &mut super::super::Foundation::SYSTEMTI #[doc = "*Required features: `\"Win32_System_SystemInformation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetLogicalProcessorInformation(buffer: ::core::option::Option<&mut SYSTEM_LOGICAL_PROCESSOR_INFORMATION>, returnedlength: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn GetLogicalProcessorInformation(buffer: *mut SYSTEM_LOGICAL_PROCESSOR_INFORMATION, returnedlength: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetLogicalProcessorInformation(buffer: *mut SYSTEM_LOGICAL_PROCESSOR_INFORMATION, returnedlength: *mut u32) -> super::super::Foundation::BOOL; @@ -604,7 +604,7 @@ pub unsafe fn GetLogicalProcessorInformation(buffer: ::core::option::Option<&mut #[doc = "*Required features: `\"Win32_System_SystemInformation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetLogicalProcessorInformationEx(relationshiptype: LOGICAL_PROCESSOR_RELATIONSHIP, buffer: ::core::option::Option<&mut SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX>, returnedlength: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn GetLogicalProcessorInformationEx(relationshiptype: LOGICAL_PROCESSOR_RELATIONSHIP, buffer: *mut SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, returnedlength: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetLogicalProcessorInformationEx(relationshiptype: LOGICAL_PROCESSOR_RELATIONSHIP, buffer: *mut SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, returnedlength: *mut u32) -> super::super::Foundation::BOOL; @@ -654,7 +654,7 @@ pub unsafe fn GetPhysicallyInstalledSystemMemory(totalmemoryinkilobytes: &mut u6 #[doc = "*Required features: `\"Win32_System_SystemInformation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetProcessorSystemCycleTime(group: u16, buffer: ::core::option::Option<&mut SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION>, returnedlength: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn GetProcessorSystemCycleTime(group: u16, buffer: *mut SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION, returnedlength: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetProcessorSystemCycleTime(group: u16, buffer: *mut SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION, returnedlength: *mut u32) -> super::super::Foundation::BOOL; @@ -674,7 +674,7 @@ pub unsafe fn GetProductInfo(dwosmajorversion: u32, dwosminorversion: u32, dwspm #[doc = "*Required features: `\"Win32_System_SystemInformation\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetSystemCpuSetInformation<'a, P0>(information: ::core::option::Option<&mut SYSTEM_CPU_SET_INFORMATION>, bufferlength: u32, returnedlength: &mut u32, process: P0, flags: u32) -> super::super::Foundation::BOOL +pub unsafe fn GetSystemCpuSetInformation<'a, P0>(information: ::core::option::Option<&mut [u8]>, returnedlength: &mut u32, process: P0, flags: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -682,7 +682,7 @@ where extern "system" { fn GetSystemCpuSetInformation(information: *mut SYSTEM_CPU_SET_INFORMATION, bufferlength: u32, returnedlength: *mut u32, process: super::super::Foundation::HANDLE, flags: u32) -> super::super::Foundation::BOOL; } - GetSystemCpuSetInformation(::core::mem::transmute(information), bufferlength, ::core::mem::transmute(returnedlength), process.into(), flags) + GetSystemCpuSetInformation(::core::mem::transmute(information.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), information.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(returnedlength), process.into(), flags) } #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"] #[inline] @@ -695,25 +695,25 @@ pub unsafe fn GetSystemDEPPolicy() -> DEP_SYSTEM_POLICY_TYPE { } #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"] #[inline] -pub unsafe fn GetSystemDirectoryA(lpbuffer: &mut [u8]) -> u32 { +pub unsafe fn GetSystemDirectoryA(lpbuffer: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetSystemDirectoryA(lpbuffer: ::windows::core::PSTR, usize: u32) -> u32; } - GetSystemDirectoryA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _) + GetSystemDirectoryA(::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"] #[inline] -pub unsafe fn GetSystemDirectoryW(lpbuffer: &mut [u16]) -> u32 { +pub unsafe fn GetSystemDirectoryW(lpbuffer: ::core::option::Option<&mut [u16]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetSystemDirectoryW(lpbuffer: ::windows::core::PWSTR, usize: u32) -> u32; } - GetSystemDirectoryW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _) + GetSystemDirectoryW(::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"] #[inline] -pub unsafe fn GetSystemFirmwareTable<'a, P0>(firmwaretableprovidersignature: FIRMWARE_TABLE_PROVIDER, firmwaretableid: P0, pfirmwaretablebuffer: *mut ::core::ffi::c_void, buffersize: u32) -> u32 +pub unsafe fn GetSystemFirmwareTable<'a, P0>(firmwaretableprovidersignature: FIRMWARE_TABLE_PROVIDER, firmwaretableid: P0, pfirmwaretablebuffer: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -721,7 +721,7 @@ where extern "system" { fn GetSystemFirmwareTable(firmwaretableprovidersignature: FIRMWARE_TABLE_PROVIDER, firmwaretableid: FIRMWARE_TABLE_ID, pfirmwaretablebuffer: *mut ::core::ffi::c_void, buffersize: u32) -> u32; } - GetSystemFirmwareTable(firmwaretableprovidersignature, firmwaretableid.into(), ::core::mem::transmute(pfirmwaretablebuffer), buffersize) + GetSystemFirmwareTable(firmwaretableprovidersignature, firmwaretableid.into(), ::core::mem::transmute(pfirmwaretablebuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pfirmwaretablebuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_SystemInformation\"`, `\"Win32_System_Diagnostics_Debug\"`*"] #[cfg(feature = "Win32_System_Diagnostics_Debug")] @@ -795,57 +795,57 @@ pub unsafe fn GetSystemTimePreciseAsFileTime(lpsystemtimeasfiletime: &mut super: } #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"] #[inline] -pub unsafe fn GetSystemWindowsDirectoryA(lpbuffer: &mut [u8]) -> u32 { +pub unsafe fn GetSystemWindowsDirectoryA(lpbuffer: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetSystemWindowsDirectoryA(lpbuffer: ::windows::core::PSTR, usize: u32) -> u32; } - GetSystemWindowsDirectoryA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _) + GetSystemWindowsDirectoryA(::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"] #[inline] -pub unsafe fn GetSystemWindowsDirectoryW(lpbuffer: &mut [u16]) -> u32 { +pub unsafe fn GetSystemWindowsDirectoryW(lpbuffer: ::core::option::Option<&mut [u16]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetSystemWindowsDirectoryW(lpbuffer: ::windows::core::PWSTR, usize: u32) -> u32; } - GetSystemWindowsDirectoryW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _) + GetSystemWindowsDirectoryW(::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"] #[inline] -pub unsafe fn GetSystemWow64Directory2A(lpbuffer: &mut [u8], imagefilemachinetype: IMAGE_FILE_MACHINE) -> u32 { +pub unsafe fn GetSystemWow64Directory2A(lpbuffer: ::core::option::Option<&mut [u8]>, imagefilemachinetype: IMAGE_FILE_MACHINE) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetSystemWow64Directory2A(lpbuffer: ::windows::core::PSTR, usize: u32, imagefilemachinetype: IMAGE_FILE_MACHINE) -> u32; } - GetSystemWow64Directory2A(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _, imagefilemachinetype) + GetSystemWow64Directory2A(::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), imagefilemachinetype) } #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"] #[inline] -pub unsafe fn GetSystemWow64Directory2W(lpbuffer: &mut [u16], imagefilemachinetype: IMAGE_FILE_MACHINE) -> u32 { +pub unsafe fn GetSystemWow64Directory2W(lpbuffer: ::core::option::Option<&mut [u16]>, imagefilemachinetype: IMAGE_FILE_MACHINE) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetSystemWow64Directory2W(lpbuffer: ::windows::core::PWSTR, usize: u32, imagefilemachinetype: IMAGE_FILE_MACHINE) -> u32; } - GetSystemWow64Directory2W(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _, imagefilemachinetype) + GetSystemWow64Directory2W(::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _), imagefilemachinetype) } #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"] #[inline] -pub unsafe fn GetSystemWow64DirectoryA(lpbuffer: &mut [u8]) -> u32 { +pub unsafe fn GetSystemWow64DirectoryA(lpbuffer: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetSystemWow64DirectoryA(lpbuffer: ::windows::core::PSTR, usize: u32) -> u32; } - GetSystemWow64DirectoryA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _) + GetSystemWow64DirectoryA(::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"] #[inline] -pub unsafe fn GetSystemWow64DirectoryW(lpbuffer: &mut [u16]) -> u32 { +pub unsafe fn GetSystemWow64DirectoryW(lpbuffer: ::core::option::Option<&mut [u16]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetSystemWow64DirectoryW(lpbuffer: ::windows::core::PWSTR, usize: u32) -> u32; } - GetSystemWow64DirectoryW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _) + GetSystemWow64DirectoryW(::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"] #[inline] @@ -896,21 +896,21 @@ pub unsafe fn GetVersionExW(lpversioninformation: &mut OSVERSIONINFOW) -> super: } #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"] #[inline] -pub unsafe fn GetWindowsDirectoryA(lpbuffer: &mut [u8]) -> u32 { +pub unsafe fn GetWindowsDirectoryA(lpbuffer: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetWindowsDirectoryA(lpbuffer: ::windows::core::PSTR, usize: u32) -> u32; } - GetWindowsDirectoryA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _) + GetWindowsDirectoryA(::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"] #[inline] -pub unsafe fn GetWindowsDirectoryW(lpbuffer: &mut [u16]) -> u32 { +pub unsafe fn GetWindowsDirectoryW(lpbuffer: ::core::option::Option<&mut [u16]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetWindowsDirectoryW(lpbuffer: ::windows::core::PWSTR, usize: u32) -> u32; } - GetWindowsDirectoryW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpbuffer)), lpbuffer.len() as _) + GetWindowsDirectoryW(::core::mem::transmute(lpbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_SystemInformation\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/System/Threading/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Threading/mod.rs index 24bedba76e..001a0798c6 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Threading/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Threading/mod.rs @@ -1602,12 +1602,12 @@ pub unsafe fn GetNumaNodeProcessorMask(node: u8, processormask: &mut u64) -> sup #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] #[inline] -pub unsafe fn GetNumaNodeProcessorMask2(nodenumber: u16, processormasks: &mut [super::SystemInformation::GROUP_AFFINITY], requiredmaskcount: &mut u16) -> super::super::Foundation::BOOL { +pub unsafe fn GetNumaNodeProcessorMask2(nodenumber: u16, processormasks: ::core::option::Option<&mut [super::SystemInformation::GROUP_AFFINITY]>, requiredmaskcount: &mut u16) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetNumaNodeProcessorMask2(nodenumber: u16, processormasks: *mut super::SystemInformation::GROUP_AFFINITY, processormaskcount: u16, requiredmaskcount: *mut u16) -> super::super::Foundation::BOOL; } - GetNumaNodeProcessorMask2(nodenumber, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(processormasks)), processormasks.len() as _, ::core::mem::transmute(requiredmaskcount)) + GetNumaNodeProcessorMask2(nodenumber, ::core::mem::transmute(processormasks.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), processormasks.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredmaskcount)) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] @@ -1701,7 +1701,7 @@ where #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] #[inline] -pub unsafe fn GetProcessDefaultCpuSetMasks<'a, P0>(process: P0, cpusetmasks: &mut [super::SystemInformation::GROUP_AFFINITY], requiredmaskcount: &mut u16) -> super::super::Foundation::BOOL +pub unsafe fn GetProcessDefaultCpuSetMasks<'a, P0>(process: P0, cpusetmasks: ::core::option::Option<&mut [super::SystemInformation::GROUP_AFFINITY]>, requiredmaskcount: &mut u16) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1709,12 +1709,12 @@ where extern "system" { fn GetProcessDefaultCpuSetMasks(process: super::super::Foundation::HANDLE, cpusetmasks: *mut super::SystemInformation::GROUP_AFFINITY, cpusetmaskcount: u16, requiredmaskcount: *mut u16) -> super::super::Foundation::BOOL; } - GetProcessDefaultCpuSetMasks(process.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(cpusetmasks)), cpusetmasks.len() as _, ::core::mem::transmute(requiredmaskcount)) + GetProcessDefaultCpuSetMasks(process.into(), ::core::mem::transmute(cpusetmasks.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), cpusetmasks.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredmaskcount)) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetProcessDefaultCpuSets<'a, P0>(process: P0, cpusetids: &mut [u32], requiredidcount: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetProcessDefaultCpuSets<'a, P0>(process: P0, cpusetids: ::core::option::Option<&mut [u32]>, requiredidcount: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1722,12 +1722,12 @@ where extern "system" { fn GetProcessDefaultCpuSets(process: super::super::Foundation::HANDLE, cpusetids: *mut u32, cpusetidcount: u32, requiredidcount: *mut u32) -> super::super::Foundation::BOOL; } - GetProcessDefaultCpuSets(process.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(cpusetids)), cpusetids.len() as _, ::core::mem::transmute(requiredidcount)) + GetProcessDefaultCpuSets(process.into(), ::core::mem::transmute(cpusetids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), cpusetids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredidcount)) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetProcessGroupAffinity<'a, P0>(hprocess: P0, groupcount: &mut u16, grouparray: &mut u16) -> super::super::Foundation::BOOL +pub unsafe fn GetProcessGroupAffinity<'a, P0>(hprocess: P0, groupcount: &mut u16, grouparray: *mut u16) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1779,7 +1779,7 @@ where #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetProcessInformation<'a, P0>(hprocess: P0, processinformationclass: PROCESS_INFORMATION_CLASS, processinformation: *mut ::core::ffi::c_void, processinformationsize: u32) -> super::super::Foundation::BOOL +pub unsafe fn GetProcessInformation<'a, P0>(hprocess: P0, processinformationclass: PROCESS_INFORMATION_CLASS, processinformation: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1787,7 +1787,7 @@ where extern "system" { fn GetProcessInformation(hprocess: super::super::Foundation::HANDLE, processinformationclass: PROCESS_INFORMATION_CLASS, processinformation: *mut ::core::ffi::c_void, processinformationsize: u32) -> super::super::Foundation::BOOL; } - GetProcessInformation(hprocess.into(), processinformationclass, ::core::mem::transmute(processinformation), processinformationsize) + GetProcessInformation(hprocess.into(), processinformationclass, ::core::mem::transmute(processinformation.as_ptr()), processinformation.len() as _) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1805,7 +1805,7 @@ where #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetProcessMitigationPolicy<'a, P0>(hprocess: P0, mitigationpolicy: PROCESS_MITIGATION_POLICY, lpbuffer: *mut ::core::ffi::c_void, dwlength: usize) -> super::super::Foundation::BOOL +pub unsafe fn GetProcessMitigationPolicy<'a, P0>(hprocess: P0, mitigationpolicy: PROCESS_MITIGATION_POLICY, lpbuffer: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1813,7 +1813,7 @@ where extern "system" { fn GetProcessMitigationPolicy(hprocess: super::super::Foundation::HANDLE, mitigationpolicy: PROCESS_MITIGATION_POLICY, lpbuffer: *mut ::core::ffi::c_void, dwlength: usize) -> super::super::Foundation::BOOL; } - GetProcessMitigationPolicy(hprocess.into(), mitigationpolicy, ::core::mem::transmute(lpbuffer), dwlength) + GetProcessMitigationPolicy(hprocess.into(), mitigationpolicy, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1972,7 +1972,7 @@ where #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetThreadInformation<'a, P0>(hthread: P0, threadinformationclass: THREAD_INFORMATION_CLASS, threadinformation: *mut ::core::ffi::c_void, threadinformationsize: u32) -> super::super::Foundation::BOOL +pub unsafe fn GetThreadInformation<'a, P0>(hthread: P0, threadinformationclass: THREAD_INFORMATION_CLASS, threadinformation: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1980,7 +1980,7 @@ where extern "system" { fn GetThreadInformation(hthread: super::super::Foundation::HANDLE, threadinformationclass: THREAD_INFORMATION_CLASS, threadinformation: *mut ::core::ffi::c_void, threadinformationsize: u32) -> super::super::Foundation::BOOL; } - GetThreadInformation(hthread.into(), threadinformationclass, ::core::mem::transmute(threadinformation), threadinformationsize) + GetThreadInformation(hthread.into(), threadinformationclass, ::core::mem::transmute(threadinformation.as_ptr()), threadinformation.len() as _) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2011,7 +2011,7 @@ where #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] #[inline] -pub unsafe fn GetThreadSelectedCpuSetMasks<'a, P0>(thread: P0, cpusetmasks: &mut [super::SystemInformation::GROUP_AFFINITY], requiredmaskcount: &mut u16) -> super::super::Foundation::BOOL +pub unsafe fn GetThreadSelectedCpuSetMasks<'a, P0>(thread: P0, cpusetmasks: ::core::option::Option<&mut [super::SystemInformation::GROUP_AFFINITY]>, requiredmaskcount: &mut u16) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -2019,12 +2019,12 @@ where extern "system" { fn GetThreadSelectedCpuSetMasks(thread: super::super::Foundation::HANDLE, cpusetmasks: *mut super::SystemInformation::GROUP_AFFINITY, cpusetmaskcount: u16, requiredmaskcount: *mut u16) -> super::super::Foundation::BOOL; } - GetThreadSelectedCpuSetMasks(thread.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(cpusetmasks)), cpusetmasks.len() as _, ::core::mem::transmute(requiredmaskcount)) + GetThreadSelectedCpuSetMasks(thread.into(), ::core::mem::transmute(cpusetmasks.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), cpusetmasks.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredmaskcount)) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetThreadSelectedCpuSets<'a, P0>(thread: P0, cpusetids: &mut [u32], requiredidcount: &mut u32) -> super::super::Foundation::BOOL +pub unsafe fn GetThreadSelectedCpuSets<'a, P0>(thread: P0, cpusetids: ::core::option::Option<&mut [u32]>, requiredidcount: &mut u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -2032,7 +2032,7 @@ where extern "system" { fn GetThreadSelectedCpuSets(thread: super::super::Foundation::HANDLE, cpusetids: *mut u32, cpusetidcount: u32, requiredidcount: *mut u32) -> super::super::Foundation::BOOL; } - GetThreadSelectedCpuSets(thread.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(cpusetids)), cpusetids.len() as _, ::core::mem::transmute(requiredidcount)) + GetThreadSelectedCpuSets(thread.into(), ::core::mem::transmute(cpusetids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), cpusetids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(requiredidcount)) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2591,7 +2591,7 @@ where #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn NtSetInformationThread<'a, P0>(threadhandle: P0, threadinformationclass: THREADINFOCLASS, threadinformation: *const ::core::ffi::c_void, threadinformationlength: u32) -> ::windows::core::Result<()> +pub unsafe fn NtSetInformationThread<'a, P0>(threadhandle: P0, threadinformationclass: THREADINFOCLASS, threadinformation: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -2599,7 +2599,7 @@ where extern "system" { fn NtSetInformationThread(threadhandle: super::super::Foundation::HANDLE, threadinformationclass: THREADINFOCLASS, threadinformation: *const ::core::ffi::c_void, threadinformationlength: u32) -> super::super::Foundation::NTSTATUS; } - NtSetInformationThread(threadhandle.into(), threadinformationclass, ::core::mem::transmute(threadinformation), threadinformationlength).ok() + NtSetInformationThread(threadhandle.into(), threadinformationclass, ::core::mem::transmute(threadinformation.as_ptr()), threadinformation.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4166,12 +4166,12 @@ where #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn QueryUmsThreadInformation(umsthread: *const ::core::ffi::c_void, umsthreadinfoclass: RTL_UMS_THREAD_INFO_CLASS, umsthreadinformation: *mut ::core::ffi::c_void, umsthreadinformationlength: u32, returnlength: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn QueryUmsThreadInformation(umsthread: *const ::core::ffi::c_void, umsthreadinfoclass: RTL_UMS_THREAD_INFO_CLASS, umsthreadinformation: &mut [u8], returnlength: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn QueryUmsThreadInformation(umsthread: *const ::core::ffi::c_void, umsthreadinfoclass: RTL_UMS_THREAD_INFO_CLASS, umsthreadinformation: *mut ::core::ffi::c_void, umsthreadinformationlength: u32, returnlength: *mut u32) -> super::super::Foundation::BOOL; } - QueryUmsThreadInformation(::core::mem::transmute(umsthread), umsthreadinfoclass, ::core::mem::transmute(umsthreadinformation), umsthreadinformationlength, ::core::mem::transmute(returnlength)) + QueryUmsThreadInformation(::core::mem::transmute(umsthread), umsthreadinfoclass, ::core::mem::transmute(umsthreadinformation.as_ptr()), umsthreadinformation.len() as _, ::core::mem::transmute(returnlength)) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5113,7 +5113,7 @@ pub unsafe fn SetProcessDEPPolicy(dwflags: PROCESS_DEP_FLAGS) -> super::super::F #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] #[inline] -pub unsafe fn SetProcessDefaultCpuSetMasks<'a, P0>(process: P0, cpusetmasks: &[super::SystemInformation::GROUP_AFFINITY]) -> super::super::Foundation::BOOL +pub unsafe fn SetProcessDefaultCpuSetMasks<'a, P0>(process: P0, cpusetmasks: ::core::option::Option<&[super::SystemInformation::GROUP_AFFINITY]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -5121,12 +5121,12 @@ where extern "system" { fn SetProcessDefaultCpuSetMasks(process: super::super::Foundation::HANDLE, cpusetmasks: *const super::SystemInformation::GROUP_AFFINITY, cpusetmaskcount: u16) -> super::super::Foundation::BOOL; } - SetProcessDefaultCpuSetMasks(process.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(cpusetmasks)), cpusetmasks.len() as _) + SetProcessDefaultCpuSetMasks(process.into(), ::core::mem::transmute(cpusetmasks.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), cpusetmasks.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetProcessDefaultCpuSets<'a, P0>(process: P0, cpusetids: &[u32]) -> super::super::Foundation::BOOL +pub unsafe fn SetProcessDefaultCpuSets<'a, P0>(process: P0, cpusetids: ::core::option::Option<&[u32]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -5134,7 +5134,7 @@ where extern "system" { fn SetProcessDefaultCpuSets(process: super::super::Foundation::HANDLE, cpusetids: *const u32, cpusetidcount: u32) -> super::super::Foundation::BOOL; } - SetProcessDefaultCpuSets(process.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(cpusetids)), cpusetids.len() as _) + SetProcessDefaultCpuSets(process.into(), ::core::mem::transmute(cpusetids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), cpusetids.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5147,7 +5147,7 @@ where extern "system" { fn SetProcessDynamicEHContinuationTargets(process: super::super::Foundation::HANDLE, numberoftargets: u16, targets: *mut PROCESS_DYNAMIC_EH_CONTINUATION_TARGET) -> super::super::Foundation::BOOL; } - SetProcessDynamicEHContinuationTargets(process.into(), targets.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(targets))) + SetProcessDynamicEHContinuationTargets(process.into(), targets.len() as _, ::core::mem::transmute(targets.as_ptr())) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5160,12 +5160,12 @@ where extern "system" { fn SetProcessDynamicEnforcedCetCompatibleRanges(process: super::super::Foundation::HANDLE, numberofranges: u16, ranges: *mut PROCESS_DYNAMIC_ENFORCED_ADDRESS_RANGE) -> super::super::Foundation::BOOL; } - SetProcessDynamicEnforcedCetCompatibleRanges(process.into(), ranges.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ranges))) + SetProcessDynamicEnforcedCetCompatibleRanges(process.into(), ranges.len() as _, ::core::mem::transmute(ranges.as_ptr())) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetProcessInformation<'a, P0>(hprocess: P0, processinformationclass: PROCESS_INFORMATION_CLASS, processinformation: *const ::core::ffi::c_void, processinformationsize: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetProcessInformation<'a, P0>(hprocess: P0, processinformationclass: PROCESS_INFORMATION_CLASS, processinformation: &[u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -5173,17 +5173,17 @@ where extern "system" { fn SetProcessInformation(hprocess: super::super::Foundation::HANDLE, processinformationclass: PROCESS_INFORMATION_CLASS, processinformation: *const ::core::ffi::c_void, processinformationsize: u32) -> super::super::Foundation::BOOL; } - SetProcessInformation(hprocess.into(), processinformationclass, ::core::mem::transmute(processinformation), processinformationsize) + SetProcessInformation(hprocess.into(), processinformationclass, ::core::mem::transmute(processinformation.as_ptr()), processinformation.len() as _) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetProcessMitigationPolicy(mitigationpolicy: PROCESS_MITIGATION_POLICY, lpbuffer: *const ::core::ffi::c_void, dwlength: usize) -> super::super::Foundation::BOOL { +pub unsafe fn SetProcessMitigationPolicy(mitigationpolicy: PROCESS_MITIGATION_POLICY, lpbuffer: &[u8]) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetProcessMitigationPolicy(mitigationpolicy: PROCESS_MITIGATION_POLICY, lpbuffer: *const ::core::ffi::c_void, dwlength: usize) -> super::super::Foundation::BOOL; } - SetProcessMitigationPolicy(mitigationpolicy, ::core::mem::transmute(lpbuffer), dwlength) + SetProcessMitigationPolicy(mitigationpolicy, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5314,7 +5314,7 @@ where #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetThreadInformation<'a, P0>(hthread: P0, threadinformationclass: THREAD_INFORMATION_CLASS, threadinformation: *const ::core::ffi::c_void, threadinformationsize: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetThreadInformation<'a, P0>(hthread: P0, threadinformationclass: THREAD_INFORMATION_CLASS, threadinformation: &[u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -5322,7 +5322,7 @@ where extern "system" { fn SetThreadInformation(hthread: super::super::Foundation::HANDLE, threadinformationclass: THREAD_INFORMATION_CLASS, threadinformation: *const ::core::ffi::c_void, threadinformationsize: u32) -> super::super::Foundation::BOOL; } - SetThreadInformation(hthread.into(), threadinformationclass, ::core::mem::transmute(threadinformation), threadinformationsize) + SetThreadInformation(hthread.into(), threadinformationclass, ::core::mem::transmute(threadinformation.as_ptr()), threadinformation.len() as _) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5354,7 +5354,7 @@ where #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`, `\"Win32_System_SystemInformation\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_SystemInformation"))] #[inline] -pub unsafe fn SetThreadSelectedCpuSetMasks<'a, P0>(thread: P0, cpusetmasks: &[super::SystemInformation::GROUP_AFFINITY]) -> super::super::Foundation::BOOL +pub unsafe fn SetThreadSelectedCpuSetMasks<'a, P0>(thread: P0, cpusetmasks: ::core::option::Option<&[super::SystemInformation::GROUP_AFFINITY]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -5362,7 +5362,7 @@ where extern "system" { fn SetThreadSelectedCpuSetMasks(thread: super::super::Foundation::HANDLE, cpusetmasks: *const super::SystemInformation::GROUP_AFFINITY, cpusetmaskcount: u16) -> super::super::Foundation::BOOL; } - SetThreadSelectedCpuSetMasks(thread.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(cpusetmasks)), cpusetmasks.len() as _) + SetThreadSelectedCpuSetMasks(thread.into(), ::core::mem::transmute(cpusetmasks.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), cpusetmasks.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5375,7 +5375,7 @@ where extern "system" { fn SetThreadSelectedCpuSets(thread: super::super::Foundation::HANDLE, cpusetids: *const u32, cpusetidcount: u32) -> super::super::Foundation::BOOL; } - SetThreadSelectedCpuSets(thread.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(cpusetids)), cpusetids.len() as _) + SetThreadSelectedCpuSets(thread.into(), ::core::mem::transmute(cpusetids.as_ptr()), cpusetids.len() as _) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6387,7 +6387,7 @@ where extern "system" { fn UpdateProcThreadAttribute(lpattributelist: LPPROC_THREAD_ATTRIBUTE_LIST, dwflags: u32, attribute: usize, lpvalue: *const ::core::ffi::c_void, cbsize: usize, lppreviousvalue: *mut ::core::ffi::c_void, lpreturnsize: *const usize) -> super::super::Foundation::BOOL; } - UpdateProcThreadAttribute(lpattributelist.into(), dwflags, attribute, ::core::mem::transmute(lpvalue), cbsize, ::core::mem::transmute(lppreviousvalue), ::core::mem::transmute(lpreturnsize)) + UpdateProcThreadAttribute(lpattributelist.into(), dwflags, attribute, ::core::mem::transmute(lpvalue), ::core::mem::transmute(cbsize), ::core::mem::transmute(lppreviousvalue), ::core::mem::transmute(lpreturnsize)) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6483,7 +6483,7 @@ where extern "system" { fn WaitForMultipleObjects(ncount: u32, lphandles: *const super::super::Foundation::HANDLE, bwaitall: super::super::Foundation::BOOL, dwmilliseconds: u32) -> u32; } - WaitForMultipleObjects(lphandles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lphandles)), bwaitall.into(), dwmilliseconds) + WaitForMultipleObjects(lphandles.len() as _, ::core::mem::transmute(lphandles.as_ptr()), bwaitall.into(), dwmilliseconds) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6497,7 +6497,7 @@ where extern "system" { fn WaitForMultipleObjectsEx(ncount: u32, lphandles: *const super::super::Foundation::HANDLE, bwaitall: super::super::Foundation::BOOL, dwmilliseconds: u32, balertable: super::super::Foundation::BOOL) -> u32; } - WaitForMultipleObjectsEx(lphandles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lphandles)), bwaitall.into(), dwmilliseconds, balertable.into()) + WaitForMultipleObjectsEx(lphandles.len() as _, ::core::mem::transmute(lphandles.as_ptr()), bwaitall.into(), dwmilliseconds, balertable.into()) } #[doc = "*Required features: `\"Win32_System_Threading\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6586,7 +6586,7 @@ pub unsafe fn WaitOnAddress(address: *const ::core::ffi::c_void, compareaddress: extern "system" { fn WaitOnAddress(address: *const ::core::ffi::c_void, compareaddress: *const ::core::ffi::c_void, addresssize: usize, dwmilliseconds: u32) -> super::super::Foundation::BOOL; } - WaitOnAddress(::core::mem::transmute(address), ::core::mem::transmute(compareaddress), addresssize, dwmilliseconds) + WaitOnAddress(::core::mem::transmute(address), ::core::mem::transmute(compareaddress), ::core::mem::transmute(addresssize), dwmilliseconds) } #[doc = "*Required features: `\"Win32_System_Threading\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/System/TpmBaseServices/mod.rs b/crates/libs/windows/src/Windows/Win32/System/TpmBaseServices/mod.rs index 07850bf98b..cdd9003791 100644 --- a/crates/libs/windows/src/Windows/Win32/System/TpmBaseServices/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/TpmBaseServices/mod.rs @@ -1,22 +1,22 @@ #[doc = "*Required features: `\"Win32_System_TpmBaseServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetDeviceID(pbwindowsaik: ::core::option::Option<&mut u8>, cbwindowsaik: u32, pcbresult: &mut u32, pfprotectedbytpm: ::core::option::Option<&mut super::super::Foundation::BOOL>) -> ::windows::core::Result<()> { +pub unsafe fn GetDeviceID(pbwindowsaik: ::core::option::Option<&mut [u8]>, pcbresult: &mut u32, pfprotectedbytpm: ::core::option::Option<&mut super::super::Foundation::BOOL>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetDeviceID(pbwindowsaik: *mut u8, cbwindowsaik: u32, pcbresult: *mut u32, pfprotectedbytpm: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT; } - GetDeviceID(::core::mem::transmute(pbwindowsaik), cbwindowsaik, ::core::mem::transmute(pcbresult), ::core::mem::transmute(pfprotectedbytpm)).ok() + GetDeviceID(::core::mem::transmute(pbwindowsaik.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbwindowsaik.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbresult), ::core::mem::transmute(pfprotectedbytpm)).ok() } #[doc = "*Required features: `\"Win32_System_TpmBaseServices\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetDeviceIDString(pszwindowsaik: &mut [u16], pcchresult: &mut u32, pfprotectedbytpm: ::core::option::Option<&mut super::super::Foundation::BOOL>) -> ::windows::core::Result<()> { +pub unsafe fn GetDeviceIDString(pszwindowsaik: ::core::option::Option<&mut [u16]>, pcchresult: &mut u32, pfprotectedbytpm: ::core::option::Option<&mut super::super::Foundation::BOOL>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetDeviceIDString(pszwindowsaik: ::windows::core::PWSTR, cchwindowsaik: u32, pcchresult: *mut u32, pfprotectedbytpm: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT; } - GetDeviceIDString(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszwindowsaik)), pszwindowsaik.len() as _, ::core::mem::transmute(pcchresult), ::core::mem::transmute(pfprotectedbytpm)).ok() + GetDeviceIDString(::core::mem::transmute(pszwindowsaik.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszwindowsaik.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcchresult), ::core::mem::transmute(pfprotectedbytpm)).ok() } #[doc = "*Required features: `\"Win32_System_TpmBaseServices\"`*"] #[repr(transparent)] @@ -303,16 +303,16 @@ pub unsafe fn Tbsi_Create_Windows_Key(keyhandle: u32) -> u32 { } #[doc = "*Required features: `\"Win32_System_TpmBaseServices\"`*"] #[inline] -pub unsafe fn Tbsi_GetDeviceInfo(size: u32, info: *mut ::core::ffi::c_void) -> u32 { +pub unsafe fn Tbsi_GetDeviceInfo(info: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn Tbsi_GetDeviceInfo(size: u32, info: *mut ::core::ffi::c_void) -> u32; } - Tbsi_GetDeviceInfo(size, ::core::mem::transmute(info)) + Tbsi_GetDeviceInfo(info.len() as _, ::core::mem::transmute(info.as_ptr())) } #[doc = "*Required features: `\"Win32_System_TpmBaseServices\"`*"] #[inline] -pub unsafe fn Tbsi_Get_OwnerAuth(hcontext: *const ::core::ffi::c_void, ownerauthtype: u32, poutputbuf: ::core::option::Option<&mut u8>, poutputbuflen: &mut u32) -> u32 { +pub unsafe fn Tbsi_Get_OwnerAuth(hcontext: *const ::core::ffi::c_void, ownerauthtype: u32, poutputbuf: *mut u8, poutputbuflen: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn Tbsi_Get_OwnerAuth(hcontext: *const ::core::ffi::c_void, ownerauthtype: u32, poutputbuf: *mut u8, poutputbuflen: *mut u32) -> u32; @@ -321,7 +321,7 @@ pub unsafe fn Tbsi_Get_OwnerAuth(hcontext: *const ::core::ffi::c_void, ownerauth } #[doc = "*Required features: `\"Win32_System_TpmBaseServices\"`*"] #[inline] -pub unsafe fn Tbsi_Get_TCG_Log(hcontext: *const ::core::ffi::c_void, poutputbuf: ::core::option::Option<&mut u8>, poutputbuflen: &mut u32) -> u32 { +pub unsafe fn Tbsi_Get_TCG_Log(hcontext: *const ::core::ffi::c_void, poutputbuf: *mut u8, poutputbuflen: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn Tbsi_Get_TCG_Log(hcontext: *const ::core::ffi::c_void, poutputbuf: *mut u8, poutputbuflen: *mut u32) -> u32; @@ -330,7 +330,7 @@ pub unsafe fn Tbsi_Get_TCG_Log(hcontext: *const ::core::ffi::c_void, poutputbuf: } #[doc = "*Required features: `\"Win32_System_TpmBaseServices\"`*"] #[inline] -pub unsafe fn Tbsi_Get_TCG_Log_Ex(logtype: u32, pboutput: ::core::option::Option<&mut u8>, pcboutput: &mut u32) -> u32 { +pub unsafe fn Tbsi_Get_TCG_Log_Ex(logtype: u32, pboutput: *mut u8, pcboutput: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn Tbsi_Get_TCG_Log_Ex(logtype: u32, pboutput: *mut u8, pcboutput: *mut u32) -> u32; @@ -339,12 +339,12 @@ pub unsafe fn Tbsi_Get_TCG_Log_Ex(logtype: u32, pboutput: ::core::option::Option } #[doc = "*Required features: `\"Win32_System_TpmBaseServices\"`*"] #[inline] -pub unsafe fn Tbsi_Physical_Presence_Command(hcontext: *const ::core::ffi::c_void, pabinput: &u8, cbinput: u32, paboutput: &mut u8, pcboutput: &mut u32) -> u32 { +pub unsafe fn Tbsi_Physical_Presence_Command(hcontext: *const ::core::ffi::c_void, pabinput: &[u8], paboutput: *mut u8, pcboutput: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn Tbsi_Physical_Presence_Command(hcontext: *const ::core::ffi::c_void, pabinput: *const u8, cbinput: u32, paboutput: *mut u8, pcboutput: *mut u32) -> u32; } - Tbsi_Physical_Presence_Command(::core::mem::transmute(hcontext), ::core::mem::transmute(pabinput), cbinput, ::core::mem::transmute(paboutput), ::core::mem::transmute(pcboutput)) + Tbsi_Physical_Presence_Command(::core::mem::transmute(hcontext), ::core::mem::transmute(pabinput.as_ptr()), pabinput.len() as _, ::core::mem::transmute(paboutput), ::core::mem::transmute(pcboutput)) } #[doc = "*Required features: `\"Win32_System_TpmBaseServices\"`*"] #[inline] @@ -375,12 +375,12 @@ pub unsafe fn Tbsip_Context_Close(hcontext: *const ::core::ffi::c_void) -> u32 { } #[doc = "*Required features: `\"Win32_System_TpmBaseServices\"`*"] #[inline] -pub unsafe fn Tbsip_Submit_Command(hcontext: *const ::core::ffi::c_void, locality: TBS_COMMAND_LOCALITY, priority: TBS_COMMAND_PRIORITY, pabcommand: &u8, cbcommand: u32, pabresult: &mut u8, pcbresult: &mut u32) -> u32 { +pub unsafe fn Tbsip_Submit_Command(hcontext: *const ::core::ffi::c_void, locality: TBS_COMMAND_LOCALITY, priority: TBS_COMMAND_PRIORITY, pabcommand: &[u8], pabresult: *mut u8, pcbresult: &mut u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn Tbsip_Submit_Command(hcontext: *const ::core::ffi::c_void, locality: TBS_COMMAND_LOCALITY, priority: TBS_COMMAND_PRIORITY, pabcommand: *const u8, cbcommand: u32, pabresult: *mut u8, pcbresult: *mut u32) -> u32; } - Tbsip_Submit_Command(::core::mem::transmute(hcontext), locality, priority, ::core::mem::transmute(pabcommand), cbcommand, ::core::mem::transmute(pabresult), ::core::mem::transmute(pcbresult)) + Tbsip_Submit_Command(::core::mem::transmute(hcontext), locality, priority, ::core::mem::transmute(pabcommand.as_ptr()), pabcommand.len() as _, ::core::mem::transmute(pabresult), ::core::mem::transmute(pcbresult)) } #[repr(C)] #[doc = "*Required features: `\"Win32_System_TpmBaseServices\"`*"] diff --git a/crates/libs/windows/src/Windows/Win32/System/WinRT/ML/mod.rs b/crates/libs/windows/src/Windows/Win32/System/WinRT/ML/mod.rs index 90713bb47f..d40ed422fc 100644 --- a/crates/libs/windows/src/Windows/Win32/System/WinRT/ML/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/WinRT/ML/mod.rs @@ -164,7 +164,7 @@ pub struct ILearningModelSessionOptionsNative_Vtbl { #[repr(transparent)] pub struct ITensorNative(::windows::core::IUnknown); impl ITensorNative { - pub unsafe fn GetBuffer(&self, value: &mut *mut u8, capacity: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetBuffer(&self, value: *mut *mut u8, capacity: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(value), ::core::mem::transmute(capacity)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] diff --git a/crates/libs/windows/src/Windows/Win32/System/WinRT/Xaml/mod.rs b/crates/libs/windows/src/Windows/Win32/System/WinRT/Xaml/mod.rs index 677f6b6fe2..6ebec0788b 100644 --- a/crates/libs/windows/src/Windows/Win32/System/WinRT/Xaml/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/WinRT/Xaml/mod.rs @@ -1011,7 +1011,7 @@ impl IVirtualSurfaceImageSourceNative { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetUpdateRects(&self, updates: &mut [super::super::super::Foundation::RECT]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetUpdateRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(updates)), updates.len() as _).ok() + (::windows::core::Interface::vtable(self).GetUpdateRects)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(updates.as_ptr()), updates.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] 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 c431a7dce7..014b20cb20 100644 --- a/crates/libs/windows/src/Windows/Win32/System/WinRT/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/WinRT/mod.rs @@ -566,7 +566,7 @@ pub unsafe fn HSTRING_UserSize64(param0: &u32, param1: u32, param2: &::windows:: } #[doc = "*Required features: `\"Win32_System_WinRT\"`*"] #[inline] -pub unsafe fn HSTRING_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut ::windows::core::HSTRING) -> *mut u8 { +pub unsafe fn HSTRING_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut ::windows::core::HSTRING) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HSTRING_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> *mut u8; @@ -575,7 +575,7 @@ pub unsafe fn HSTRING_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut ::wi } #[doc = "*Required features: `\"Win32_System_WinRT\"`*"] #[inline] -pub unsafe fn HSTRING_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut ::windows::core::HSTRING) -> *mut u8 { +pub unsafe fn HSTRING_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut ::windows::core::HSTRING) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HSTRING_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> *mut u8; @@ -2322,7 +2322,7 @@ impl IRoSimpleMetaDataBuilder { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetInterfaceGroupParameterizedDefault)(::windows::core::Interface::as_raw(self), name.into(), defaultinterfacenameelements.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(defaultinterfacenameelements))).ok() + (::windows::core::Interface::vtable(self).SetInterfaceGroupParameterizedDefault)(::windows::core::Interface::as_raw(self), name.into(), defaultinterfacenameelements.len() as _, ::core::mem::transmute(defaultinterfacenameelements.as_ptr())).ok() } pub unsafe fn SetRuntimeClassSimpleDefault<'a, P0, P1>(&self, name: P0, defaultinterfacename: P1, defaultinterfaceiid: ::core::option::Option<&::windows::core::GUID>) -> ::windows::core::Result<()> where @@ -2335,13 +2335,13 @@ impl IRoSimpleMetaDataBuilder { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetRuntimeClassParameterizedDefault)(::windows::core::Interface::as_raw(self), name.into(), defaultinterfacenameelements.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(defaultinterfacenameelements))).ok() + (::windows::core::Interface::vtable(self).SetRuntimeClassParameterizedDefault)(::windows::core::Interface::as_raw(self), name.into(), defaultinterfacenameelements.len() as _, ::core::mem::transmute(defaultinterfacenameelements.as_ptr())).ok() } pub unsafe fn SetStruct<'a, P0>(&self, name: P0, fieldtypenames: &[::windows::core::PWSTR]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).SetStruct)(::windows::core::Interface::as_raw(self), name.into(), fieldtypenames.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(fieldtypenames))).ok() + (::windows::core::Interface::vtable(self).SetStruct)(::windows::core::Interface::as_raw(self), name.into(), fieldtypenames.len() as _, ::core::mem::transmute(fieldtypenames.as_ptr())).ok() } pub unsafe fn SetEnum<'a, P0, P1>(&self, name: P0, basetype: P1) -> ::windows::core::Result<()> where @@ -3480,7 +3480,7 @@ where extern "system" { fn RoGetParameterizedTypeInstanceIID(nameelementcount: u32, nameelements: *const ::windows::core::PWSTR, metadatalocator: *mut ::core::ffi::c_void, iid: *mut ::windows::core::GUID, pextra: *mut ROPARAMIIDHANDLE) -> ::windows::core::HRESULT; } - RoGetParameterizedTypeInstanceIID(nameelements.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(nameelements)), metadatalocator.into().abi(), ::core::mem::transmute(iid), ::core::mem::transmute(pextra)).ok() + RoGetParameterizedTypeInstanceIID(nameelements.len() as _, ::core::mem::transmute(nameelements.as_ptr()), metadatalocator.into().abi(), ::core::mem::transmute(iid), ::core::mem::transmute(pextra)).ok() } #[doc = "*Required features: `\"Win32_System_WinRT\"`*"] #[inline] @@ -3532,12 +3532,12 @@ pub unsafe fn RoOriginateError(error: ::windows::core::HRESULT, message: &::wind #[doc = "*Required features: `\"Win32_System_WinRT\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RoOriginateErrorW(error: ::windows::core::HRESULT, cchmax: u32, message: &[u16; 512]) -> super::super::Foundation::BOOL { +pub unsafe fn RoOriginateErrorW(error: ::windows::core::HRESULT, cchmax: u32, message: ::core::option::Option<&[u16; 512]>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RoOriginateErrorW(error: ::windows::core::HRESULT, cchmax: u32, message: ::windows::core::PCWSTR) -> super::super::Foundation::BOOL; } - RoOriginateErrorW(error, cchmax, ::core::mem::transmute(::windows::core::as_ptr_or_null(message))) + RoOriginateErrorW(error, cchmax, ::core::mem::transmute(message.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_System_WinRT\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3566,7 +3566,7 @@ where } #[doc = "*Required features: `\"Win32_System_WinRT\"`*"] #[inline] -pub unsafe fn RoRegisterActivationFactories(activatableclassids: &::windows::core::HSTRING, activationfactorycallbacks: &isize, count: u32) -> ::windows::core::Result { +pub unsafe fn RoRegisterActivationFactories(activatableclassids: *const ::windows::core::HSTRING, activationfactorycallbacks: *const isize, count: u32) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RoRegisterActivationFactories(activatableclassids: *const ::core::mem::ManuallyDrop<::windows::core::HSTRING>, activationfactorycallbacks: *const isize, count: u32, cookie: *mut isize) -> ::windows::core::HRESULT; @@ -3655,12 +3655,12 @@ pub unsafe fn RoTransformError(olderror: ::windows::core::HRESULT, newerror: ::w #[doc = "*Required features: `\"Win32_System_WinRT\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RoTransformErrorW(olderror: ::windows::core::HRESULT, newerror: ::windows::core::HRESULT, cchmax: u32, message: &[u16; 512]) -> super::super::Foundation::BOOL { +pub unsafe fn RoTransformErrorW(olderror: ::windows::core::HRESULT, newerror: ::windows::core::HRESULT, cchmax: u32, message: ::core::option::Option<&[u16; 512]>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RoTransformErrorW(olderror: ::windows::core::HRESULT, newerror: ::windows::core::HRESULT, cchmax: u32, message: ::windows::core::PCWSTR) -> super::super::Foundation::BOOL; } - RoTransformErrorW(olderror, newerror, cchmax, ::core::mem::transmute(::windows::core::as_ptr_or_null(message))) + RoTransformErrorW(olderror, newerror, cchmax, ::core::mem::transmute(message.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_System_WinRT\"`*"] #[inline] @@ -3778,13 +3778,13 @@ pub unsafe fn WindowsConcatString(string1: &::windows::core::HSTRING, string2: & } #[doc = "*Required features: `\"Win32_System_WinRT\"`*"] #[inline] -pub unsafe fn WindowsCreateString(sourcestring: &[u16]) -> ::windows::core::Result<::windows::core::HSTRING> { +pub unsafe fn WindowsCreateString(sourcestring: ::core::option::Option<&[u16]>) -> ::windows::core::Result<::windows::core::HSTRING> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WindowsCreateString(sourcestring: ::windows::core::PCWSTR, length: u32, string: *mut ::core::mem::ManuallyDrop<::windows::core::HSTRING>) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - WindowsCreateString(::core::mem::transmute(::windows::core::as_ptr_or_null(sourcestring)), sourcestring.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::HSTRING>(result__) + WindowsCreateString(::core::mem::transmute(sourcestring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), sourcestring.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::HSTRING>(result__) } #[doc = "*Required features: `\"Win32_System_WinRT\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/System/WindowsProgramming/mod.rs b/crates/libs/windows/src/Windows/Win32/System/WindowsProgramming/mod.rs index 4d281a7a0a..48dfd186c5 100644 --- a/crates/libs/windows/src/Windows/Win32/System/WindowsProgramming/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/WindowsProgramming/mod.rs @@ -2396,7 +2396,7 @@ pub unsafe fn GetFeatureVariant(featureid: u32, changetime: FEATURE_CHANGE_TIME, } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn GetFirmwareEnvironmentVariableA<'a, P0, P1>(lpname: P0, lpguid: P1, pbuffer: *mut ::core::ffi::c_void, nsize: u32) -> u32 +pub unsafe fn GetFirmwareEnvironmentVariableA<'a, P0, P1>(lpname: P0, lpguid: P1, pbuffer: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -2405,11 +2405,11 @@ where extern "system" { fn GetFirmwareEnvironmentVariableA(lpname: ::windows::core::PCSTR, lpguid: ::windows::core::PCSTR, pbuffer: *mut ::core::ffi::c_void, nsize: u32) -> u32; } - GetFirmwareEnvironmentVariableA(lpname.into(), lpguid.into(), ::core::mem::transmute(pbuffer), nsize) + GetFirmwareEnvironmentVariableA(lpname.into(), lpguid.into(), ::core::mem::transmute(pbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn GetFirmwareEnvironmentVariableExA<'a, P0, P1>(lpname: P0, lpguid: P1, pbuffer: *mut ::core::ffi::c_void, nsize: u32, pdwattribubutes: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn GetFirmwareEnvironmentVariableExA<'a, P0, P1>(lpname: P0, lpguid: P1, pbuffer: ::core::option::Option<&mut [u8]>, pdwattribubutes: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -2418,11 +2418,11 @@ where extern "system" { fn GetFirmwareEnvironmentVariableExA(lpname: ::windows::core::PCSTR, lpguid: ::windows::core::PCSTR, pbuffer: *mut ::core::ffi::c_void, nsize: u32, pdwattribubutes: *mut u32) -> u32; } - GetFirmwareEnvironmentVariableExA(lpname.into(), lpguid.into(), ::core::mem::transmute(pbuffer), nsize, ::core::mem::transmute(pdwattribubutes)) + GetFirmwareEnvironmentVariableExA(lpname.into(), lpguid.into(), ::core::mem::transmute(pbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdwattribubutes)) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn GetFirmwareEnvironmentVariableExW<'a, P0, P1>(lpname: P0, lpguid: P1, pbuffer: *mut ::core::ffi::c_void, nsize: u32, pdwattribubutes: ::core::option::Option<&mut u32>) -> u32 +pub unsafe fn GetFirmwareEnvironmentVariableExW<'a, P0, P1>(lpname: P0, lpguid: P1, pbuffer: ::core::option::Option<&mut [u8]>, pdwattribubutes: ::core::option::Option<&mut u32>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -2431,11 +2431,11 @@ where extern "system" { fn GetFirmwareEnvironmentVariableExW(lpname: ::windows::core::PCWSTR, lpguid: ::windows::core::PCWSTR, pbuffer: *mut ::core::ffi::c_void, nsize: u32, pdwattribubutes: *mut u32) -> u32; } - GetFirmwareEnvironmentVariableExW(lpname.into(), lpguid.into(), ::core::mem::transmute(pbuffer), nsize, ::core::mem::transmute(pdwattribubutes)) + GetFirmwareEnvironmentVariableExW(lpname.into(), lpguid.into(), ::core::mem::transmute(pbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdwattribubutes)) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn GetFirmwareEnvironmentVariableW<'a, P0, P1>(lpname: P0, lpguid: P1, pbuffer: *mut ::core::ffi::c_void, nsize: u32) -> u32 +pub unsafe fn GetFirmwareEnvironmentVariableW<'a, P0, P1>(lpname: P0, lpguid: P1, pbuffer: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -2444,7 +2444,7 @@ where extern "system" { fn GetFirmwareEnvironmentVariableW(lpname: ::windows::core::PCWSTR, lpguid: ::windows::core::PCWSTR, pbuffer: *mut ::core::ffi::c_void, nsize: u32) -> u32; } - GetFirmwareEnvironmentVariableW(lpname.into(), lpguid.into(), ::core::mem::transmute(pbuffer), nsize) + GetFirmwareEnvironmentVariableW(lpname.into(), lpguid.into(), ::core::mem::transmute(pbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pbuffer.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] @@ -2476,7 +2476,7 @@ where } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn GetPrivateProfileSectionA<'a, P0, P1>(lpappname: P0, lpreturnedstring: &mut [u8], lpfilename: P1) -> u32 +pub unsafe fn GetPrivateProfileSectionA<'a, P0, P1>(lpappname: P0, lpreturnedstring: ::core::option::Option<&mut [u8]>, lpfilename: P1) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -2485,11 +2485,11 @@ where extern "system" { fn GetPrivateProfileSectionA(lpappname: ::windows::core::PCSTR, lpreturnedstring: ::windows::core::PSTR, nsize: u32, lpfilename: ::windows::core::PCSTR) -> u32; } - GetPrivateProfileSectionA(lpappname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpreturnedstring)), lpreturnedstring.len() as _, lpfilename.into()) + GetPrivateProfileSectionA(lpappname.into(), ::core::mem::transmute(lpreturnedstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpreturnedstring.as_deref().map_or(0, |slice| slice.len() as _), lpfilename.into()) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn GetPrivateProfileSectionNamesA<'a, P0>(lpszreturnbuffer: &mut [u8], lpfilename: P0) -> u32 +pub unsafe fn GetPrivateProfileSectionNamesA<'a, P0>(lpszreturnbuffer: ::core::option::Option<&mut [u8]>, lpfilename: P0) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -2497,11 +2497,11 @@ where extern "system" { fn GetPrivateProfileSectionNamesA(lpszreturnbuffer: ::windows::core::PSTR, nsize: u32, lpfilename: ::windows::core::PCSTR) -> u32; } - GetPrivateProfileSectionNamesA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszreturnbuffer)), lpszreturnbuffer.len() as _, lpfilename.into()) + GetPrivateProfileSectionNamesA(::core::mem::transmute(lpszreturnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszreturnbuffer.as_deref().map_or(0, |slice| slice.len() as _), lpfilename.into()) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn GetPrivateProfileSectionNamesW<'a, P0>(lpszreturnbuffer: &mut [u16], lpfilename: P0) -> u32 +pub unsafe fn GetPrivateProfileSectionNamesW<'a, P0>(lpszreturnbuffer: ::core::option::Option<&mut [u16]>, lpfilename: P0) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2509,11 +2509,11 @@ where extern "system" { fn GetPrivateProfileSectionNamesW(lpszreturnbuffer: ::windows::core::PWSTR, nsize: u32, lpfilename: ::windows::core::PCWSTR) -> u32; } - GetPrivateProfileSectionNamesW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszreturnbuffer)), lpszreturnbuffer.len() as _, lpfilename.into()) + GetPrivateProfileSectionNamesW(::core::mem::transmute(lpszreturnbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszreturnbuffer.as_deref().map_or(0, |slice| slice.len() as _), lpfilename.into()) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn GetPrivateProfileSectionW<'a, P0, P1>(lpappname: P0, lpreturnedstring: &mut [u16], lpfilename: P1) -> u32 +pub unsafe fn GetPrivateProfileSectionW<'a, P0, P1>(lpappname: P0, lpreturnedstring: ::core::option::Option<&mut [u16]>, lpfilename: P1) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -2522,11 +2522,11 @@ where extern "system" { fn GetPrivateProfileSectionW(lpappname: ::windows::core::PCWSTR, lpreturnedstring: ::windows::core::PWSTR, nsize: u32, lpfilename: ::windows::core::PCWSTR) -> u32; } - GetPrivateProfileSectionW(lpappname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpreturnedstring)), lpreturnedstring.len() as _, lpfilename.into()) + GetPrivateProfileSectionW(lpappname.into(), ::core::mem::transmute(lpreturnedstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpreturnedstring.as_deref().map_or(0, |slice| slice.len() as _), lpfilename.into()) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn GetPrivateProfileStringA<'a, P0, P1, P2, P3>(lpappname: P0, lpkeyname: P1, lpdefault: P2, lpreturnedstring: &mut [u8], lpfilename: P3) -> u32 +pub unsafe fn GetPrivateProfileStringA<'a, P0, P1, P2, P3>(lpappname: P0, lpkeyname: P1, lpdefault: P2, lpreturnedstring: ::core::option::Option<&mut [u8]>, lpfilename: P3) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -2537,11 +2537,11 @@ where extern "system" { fn GetPrivateProfileStringA(lpappname: ::windows::core::PCSTR, lpkeyname: ::windows::core::PCSTR, lpdefault: ::windows::core::PCSTR, lpreturnedstring: ::windows::core::PSTR, nsize: u32, lpfilename: ::windows::core::PCSTR) -> u32; } - GetPrivateProfileStringA(lpappname.into(), lpkeyname.into(), lpdefault.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpreturnedstring)), lpreturnedstring.len() as _, lpfilename.into()) + GetPrivateProfileStringA(lpappname.into(), lpkeyname.into(), lpdefault.into(), ::core::mem::transmute(lpreturnedstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpreturnedstring.as_deref().map_or(0, |slice| slice.len() as _), lpfilename.into()) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn GetPrivateProfileStringW<'a, P0, P1, P2, P3>(lpappname: P0, lpkeyname: P1, lpdefault: P2, lpreturnedstring: &mut [u16], lpfilename: P3) -> u32 +pub unsafe fn GetPrivateProfileStringW<'a, P0, P1, P2, P3>(lpappname: P0, lpkeyname: P1, lpdefault: P2, lpreturnedstring: ::core::option::Option<&mut [u16]>, lpfilename: P3) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -2552,12 +2552,12 @@ where extern "system" { fn GetPrivateProfileStringW(lpappname: ::windows::core::PCWSTR, lpkeyname: ::windows::core::PCWSTR, lpdefault: ::windows::core::PCWSTR, lpreturnedstring: ::windows::core::PWSTR, nsize: u32, lpfilename: ::windows::core::PCWSTR) -> u32; } - GetPrivateProfileStringW(lpappname.into(), lpkeyname.into(), lpdefault.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpreturnedstring)), lpreturnedstring.len() as _, lpfilename.into()) + GetPrivateProfileStringW(lpappname.into(), lpkeyname.into(), lpdefault.into(), ::core::mem::transmute(lpreturnedstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpreturnedstring.as_deref().map_or(0, |slice| slice.len() as _), lpfilename.into()) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrivateProfileStructA<'a, P0, P1, P2>(lpszsection: P0, lpszkey: P1, lpstruct: *mut ::core::ffi::c_void, usizestruct: u32, szfile: P2) -> super::super::Foundation::BOOL +pub unsafe fn GetPrivateProfileStructA<'a, P0, P1, P2>(lpszsection: P0, lpszkey: P1, lpstruct: ::core::option::Option<&mut [u8]>, szfile: P2) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -2567,12 +2567,12 @@ where extern "system" { fn GetPrivateProfileStructA(lpszsection: ::windows::core::PCSTR, lpszkey: ::windows::core::PCSTR, lpstruct: *mut ::core::ffi::c_void, usizestruct: u32, szfile: ::windows::core::PCSTR) -> super::super::Foundation::BOOL; } - GetPrivateProfileStructA(lpszsection.into(), lpszkey.into(), ::core::mem::transmute(lpstruct), usizestruct, szfile.into()) + GetPrivateProfileStructA(lpszsection.into(), lpszkey.into(), ::core::mem::transmute(lpstruct.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpstruct.as_deref().map_or(0, |slice| slice.len() as _), szfile.into()) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPrivateProfileStructW<'a, P0, P1, P2>(lpszsection: P0, lpszkey: P1, lpstruct: *mut ::core::ffi::c_void, usizestruct: u32, szfile: P2) -> super::super::Foundation::BOOL +pub unsafe fn GetPrivateProfileStructW<'a, P0, P1, P2>(lpszsection: P0, lpszkey: P1, lpstruct: ::core::option::Option<&mut [u8]>, szfile: P2) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -2582,7 +2582,7 @@ where extern "system" { fn GetPrivateProfileStructW(lpszsection: ::windows::core::PCWSTR, lpszkey: ::windows::core::PCWSTR, lpstruct: *mut ::core::ffi::c_void, usizestruct: u32, szfile: ::windows::core::PCWSTR) -> super::super::Foundation::BOOL; } - GetPrivateProfileStructW(lpszsection.into(), lpszkey.into(), ::core::mem::transmute(lpstruct), usizestruct, szfile.into()) + GetPrivateProfileStructW(lpszsection.into(), lpszkey.into(), ::core::mem::transmute(lpstruct.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpstruct.as_deref().map_or(0, |slice| slice.len() as _), szfile.into()) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] @@ -2612,7 +2612,7 @@ where } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn GetProfileSectionA<'a, P0>(lpappname: P0, lpreturnedstring: &mut [u8]) -> u32 +pub unsafe fn GetProfileSectionA<'a, P0>(lpappname: P0, lpreturnedstring: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -2620,11 +2620,11 @@ where extern "system" { fn GetProfileSectionA(lpappname: ::windows::core::PCSTR, lpreturnedstring: ::windows::core::PSTR, nsize: u32) -> u32; } - GetProfileSectionA(lpappname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpreturnedstring)), lpreturnedstring.len() as _) + GetProfileSectionA(lpappname.into(), ::core::mem::transmute(lpreturnedstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpreturnedstring.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn GetProfileSectionW<'a, P0>(lpappname: P0, lpreturnedstring: &mut [u16]) -> u32 +pub unsafe fn GetProfileSectionW<'a, P0>(lpappname: P0, lpreturnedstring: ::core::option::Option<&mut [u16]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2632,11 +2632,11 @@ where extern "system" { fn GetProfileSectionW(lpappname: ::windows::core::PCWSTR, lpreturnedstring: ::windows::core::PWSTR, nsize: u32) -> u32; } - GetProfileSectionW(lpappname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpreturnedstring)), lpreturnedstring.len() as _) + GetProfileSectionW(lpappname.into(), ::core::mem::transmute(lpreturnedstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpreturnedstring.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn GetProfileStringA<'a, P0, P1, P2>(lpappname: P0, lpkeyname: P1, lpdefault: P2, lpreturnedstring: &mut [u8]) -> u32 +pub unsafe fn GetProfileStringA<'a, P0, P1, P2>(lpappname: P0, lpkeyname: P1, lpdefault: P2, lpreturnedstring: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -2646,11 +2646,11 @@ where extern "system" { fn GetProfileStringA(lpappname: ::windows::core::PCSTR, lpkeyname: ::windows::core::PCSTR, lpdefault: ::windows::core::PCSTR, lpreturnedstring: ::windows::core::PSTR, nsize: u32) -> u32; } - GetProfileStringA(lpappname.into(), lpkeyname.into(), lpdefault.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpreturnedstring)), lpreturnedstring.len() as _) + GetProfileStringA(lpappname.into(), lpkeyname.into(), lpdefault.into(), ::core::mem::transmute(lpreturnedstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpreturnedstring.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn GetProfileStringW<'a, P0, P1, P2>(lpappname: P0, lpkeyname: P1, lpdefault: P2, lpreturnedstring: &mut [u16]) -> u32 +pub unsafe fn GetProfileStringW<'a, P0, P1, P2>(lpappname: P0, lpkeyname: P1, lpdefault: P2, lpreturnedstring: ::core::option::Option<&mut [u16]>) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -2660,7 +2660,7 @@ where extern "system" { fn GetProfileStringW(lpappname: ::windows::core::PCWSTR, lpkeyname: ::windows::core::PCWSTR, lpdefault: ::windows::core::PCWSTR, lpreturnedstring: ::windows::core::PWSTR, nsize: u32) -> u32; } - GetProfileStringW(lpappname.into(), lpkeyname.into(), lpdefault.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpreturnedstring)), lpreturnedstring.len() as _) + GetProfileStringW(lpappname.into(), lpkeyname.into(), lpdefault.into(), ::core::mem::transmute(lpreturnedstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpreturnedstring.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4622,7 +4622,7 @@ where #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn NtNotifyChangeMultipleKeys<'a, P0, P1, P2, P3>(masterkeyhandle: P0, subordinateobjects: &[OBJECT_ATTRIBUTES], event: P1, apcroutine: PIO_APC_ROUTINE, apccontext: *const ::core::ffi::c_void, iostatusblock: &mut IO_STATUS_BLOCK, completionfilter: u32, watchtree: P2, buffer: *mut ::core::ffi::c_void, buffersize: u32, asynchronous: P3) -> ::windows::core::Result<()> +pub unsafe fn NtNotifyChangeMultipleKeys<'a, P0, P1, P2, P3>(masterkeyhandle: P0, subordinateobjects: ::core::option::Option<&[OBJECT_ATTRIBUTES]>, event: P1, apcroutine: PIO_APC_ROUTINE, apccontext: *const ::core::ffi::c_void, iostatusblock: &mut IO_STATUS_BLOCK, completionfilter: u32, watchtree: P2, buffer: ::core::option::Option<&mut [u8]>, asynchronous: P3) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -4633,7 +4633,21 @@ where extern "system" { fn NtNotifyChangeMultipleKeys(masterkeyhandle: super::super::Foundation::HANDLE, count: u32, subordinateobjects: *const OBJECT_ATTRIBUTES, event: super::super::Foundation::HANDLE, apcroutine: *mut ::core::ffi::c_void, apccontext: *const ::core::ffi::c_void, iostatusblock: *mut IO_STATUS_BLOCK, completionfilter: u32, watchtree: super::super::Foundation::BOOLEAN, buffer: *mut ::core::ffi::c_void, buffersize: u32, asynchronous: super::super::Foundation::BOOLEAN) -> super::super::Foundation::NTSTATUS; } - NtNotifyChangeMultipleKeys(masterkeyhandle.into(), subordinateobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(subordinateobjects)), event.into(), ::core::mem::transmute(apcroutine), ::core::mem::transmute(apccontext), ::core::mem::transmute(iostatusblock), completionfilter, watchtree.into(), ::core::mem::transmute(buffer), buffersize, asynchronous.into()).ok() + NtNotifyChangeMultipleKeys( + masterkeyhandle.into(), + subordinateobjects.as_deref().map_or(0, |slice| slice.len() as _), + ::core::mem::transmute(subordinateobjects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + event.into(), + ::core::mem::transmute(apcroutine), + ::core::mem::transmute(apccontext), + ::core::mem::transmute(iostatusblock), + completionfilter, + watchtree.into(), + ::core::mem::transmute(buffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), + buffer.as_deref().map_or(0, |slice| slice.len() as _), + asynchronous.into(), + ) + .ok() } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4656,12 +4670,12 @@ where extern "system" { fn NtQueryMultipleValueKey(keyhandle: super::super::Foundation::HANDLE, valueentries: *mut KEY_VALUE_ENTRY, entrycount: u32, valuebuffer: *mut ::core::ffi::c_void, bufferlength: *mut u32, requiredbufferlength: *mut u32) -> super::super::Foundation::NTSTATUS; } - NtQueryMultipleValueKey(keyhandle.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(valueentries)), valueentries.len() as _, ::core::mem::transmute(valuebuffer), ::core::mem::transmute(bufferlength), ::core::mem::transmute(requiredbufferlength)).ok() + NtQueryMultipleValueKey(keyhandle.into(), ::core::mem::transmute(valueentries.as_ptr()), valueentries.len() as _, ::core::mem::transmute(valuebuffer), ::core::mem::transmute(bufferlength), ::core::mem::transmute(requiredbufferlength)).ok() } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn NtQueryObject<'a, P0>(handle: P0, objectinformationclass: OBJECT_INFORMATION_CLASS, objectinformation: *mut ::core::ffi::c_void, objectinformationlength: u32, returnlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> +pub unsafe fn NtQueryObject<'a, P0>(handle: P0, objectinformationclass: OBJECT_INFORMATION_CLASS, objectinformation: ::core::option::Option<&mut [u8]>, returnlength: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -4669,7 +4683,7 @@ where extern "system" { fn NtQueryObject(handle: super::super::Foundation::HANDLE, objectinformationclass: OBJECT_INFORMATION_CLASS, objectinformation: *mut ::core::ffi::c_void, objectinformationlength: u32, returnlength: *mut u32) -> super::super::Foundation::NTSTATUS; } - NtQueryObject(handle.into(), objectinformationclass, ::core::mem::transmute(objectinformation), objectinformationlength, ::core::mem::transmute(returnlength)).ok() + NtQueryObject(handle.into(), objectinformationclass, ::core::mem::transmute(objectinformation.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), objectinformation.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(returnlength)).ok() } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4717,7 +4731,7 @@ where #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn NtSetInformationKey<'a, P0>(keyhandle: P0, keysetinformationclass: KEY_SET_INFORMATION_CLASS, keysetinformation: *const ::core::ffi::c_void, keysetinformationlength: u32) -> ::windows::core::Result<()> +pub unsafe fn NtSetInformationKey<'a, P0>(keyhandle: P0, keysetinformationclass: KEY_SET_INFORMATION_CLASS, keysetinformation: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -4725,7 +4739,7 @@ where extern "system" { fn NtSetInformationKey(keyhandle: super::super::Foundation::HANDLE, keysetinformationclass: KEY_SET_INFORMATION_CLASS, keysetinformation: *const ::core::ffi::c_void, keysetinformationlength: u32) -> super::super::Foundation::NTSTATUS; } - NtSetInformationKey(keyhandle.into(), keysetinformationclass, ::core::mem::transmute(keysetinformation), keysetinformationlength).ok() + NtSetInformationKey(keyhandle.into(), keysetinformationclass, ::core::mem::transmute(keysetinformation.as_ptr()), keysetinformation.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5157,7 +5171,7 @@ pub unsafe fn QueryAuxiliaryCounterFrequency() -> ::windows::core::Result { #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn QueryIdleProcessorCycleTime(bufferlength: &mut u32, processoridlecycletime: ::core::option::Option<&mut u64>) -> super::super::Foundation::BOOL { +pub unsafe fn QueryIdleProcessorCycleTime(bufferlength: &mut u32, processoridlecycletime: *mut u64) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn QueryIdleProcessorCycleTime(bufferlength: *mut u32, processoridlecycletime: *mut u64) -> super::super::Foundation::BOOL; @@ -5167,7 +5181,7 @@ pub unsafe fn QueryIdleProcessorCycleTime(bufferlength: &mut u32, processoridlec #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn QueryIdleProcessorCycleTimeEx(group: u16, bufferlength: &mut u32, processoridlecycletime: ::core::option::Option<&mut u64>) -> super::super::Foundation::BOOL { +pub unsafe fn QueryIdleProcessorCycleTimeEx(group: u16, bufferlength: &mut u32, processoridlecycletime: *mut u64) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn QueryIdleProcessorCycleTimeEx(group: u16, bufferlength: *mut u32, processoridlecycletime: *mut u64) -> super::super::Foundation::BOOL; @@ -5706,15 +5720,12 @@ where #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn RtlUnicodeToMultiByteSize<'a, P0>(bytesinmultibytestring: &mut u32, unicodestring: P0, bytesinunicodestring: u32) -> ::windows::core::Result<()> -where - P0: ::std::convert::Into<::windows::core::PCWSTR>, -{ +pub unsafe fn RtlUnicodeToMultiByteSize(bytesinmultibytestring: &mut u32, unicodestring: &[u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn RtlUnicodeToMultiByteSize(bytesinmultibytestring: *mut u32, unicodestring: ::windows::core::PCWSTR, bytesinunicodestring: u32) -> super::super::Foundation::NTSTATUS; } - RtlUnicodeToMultiByteSize(::core::mem::transmute(bytesinmultibytestring), unicodestring.into(), bytesinunicodestring).ok() + RtlUnicodeToMultiByteSize(::core::mem::transmute(bytesinmultibytestring), ::core::mem::transmute(unicodestring.as_ptr()), unicodestring.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] @@ -6546,7 +6557,7 @@ where #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetFirmwareEnvironmentVariableA<'a, P0, P1>(lpname: P0, lpguid: P1, pvalue: *const ::core::ffi::c_void, nsize: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetFirmwareEnvironmentVariableA<'a, P0, P1>(lpname: P0, lpguid: P1, pvalue: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -6555,12 +6566,12 @@ where extern "system" { fn SetFirmwareEnvironmentVariableA(lpname: ::windows::core::PCSTR, lpguid: ::windows::core::PCSTR, pvalue: *const ::core::ffi::c_void, nsize: u32) -> super::super::Foundation::BOOL; } - SetFirmwareEnvironmentVariableA(lpname.into(), lpguid.into(), ::core::mem::transmute(pvalue), nsize) + SetFirmwareEnvironmentVariableA(lpname.into(), lpguid.into(), ::core::mem::transmute(pvalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvalue.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetFirmwareEnvironmentVariableExA<'a, P0, P1>(lpname: P0, lpguid: P1, pvalue: *const ::core::ffi::c_void, nsize: u32, dwattributes: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetFirmwareEnvironmentVariableExA<'a, P0, P1>(lpname: P0, lpguid: P1, pvalue: ::core::option::Option<&[u8]>, dwattributes: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -6569,12 +6580,12 @@ where extern "system" { fn SetFirmwareEnvironmentVariableExA(lpname: ::windows::core::PCSTR, lpguid: ::windows::core::PCSTR, pvalue: *const ::core::ffi::c_void, nsize: u32, dwattributes: u32) -> super::super::Foundation::BOOL; } - SetFirmwareEnvironmentVariableExA(lpname.into(), lpguid.into(), ::core::mem::transmute(pvalue), nsize, dwattributes) + SetFirmwareEnvironmentVariableExA(lpname.into(), lpguid.into(), ::core::mem::transmute(pvalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvalue.as_deref().map_or(0, |slice| slice.len() as _), dwattributes) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetFirmwareEnvironmentVariableExW<'a, P0, P1>(lpname: P0, lpguid: P1, pvalue: *const ::core::ffi::c_void, nsize: u32, dwattributes: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetFirmwareEnvironmentVariableExW<'a, P0, P1>(lpname: P0, lpguid: P1, pvalue: ::core::option::Option<&[u8]>, dwattributes: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -6583,12 +6594,12 @@ where extern "system" { fn SetFirmwareEnvironmentVariableExW(lpname: ::windows::core::PCWSTR, lpguid: ::windows::core::PCWSTR, pvalue: *const ::core::ffi::c_void, nsize: u32, dwattributes: u32) -> super::super::Foundation::BOOL; } - SetFirmwareEnvironmentVariableExW(lpname.into(), lpguid.into(), ::core::mem::transmute(pvalue), nsize, dwattributes) + SetFirmwareEnvironmentVariableExW(lpname.into(), lpguid.into(), ::core::mem::transmute(pvalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvalue.as_deref().map_or(0, |slice| slice.len() as _), dwattributes) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetFirmwareEnvironmentVariableW<'a, P0, P1>(lpname: P0, lpguid: P1, pvalue: *const ::core::ffi::c_void, nsize: u32) -> super::super::Foundation::BOOL +pub unsafe fn SetFirmwareEnvironmentVariableW<'a, P0, P1>(lpname: P0, lpguid: P1, pvalue: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -6597,7 +6608,7 @@ where extern "system" { fn SetFirmwareEnvironmentVariableW(lpname: ::windows::core::PCWSTR, lpguid: ::windows::core::PCWSTR, pvalue: *const ::core::ffi::c_void, nsize: u32) -> super::super::Foundation::BOOL; } - SetFirmwareEnvironmentVariableW(lpname.into(), lpguid.into(), ::core::mem::transmute(pvalue), nsize) + SetFirmwareEnvironmentVariableW(lpname.into(), lpguid.into(), ::core::mem::transmute(pvalue.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvalue.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] @@ -6906,7 +6917,7 @@ impl ::core::default::Default for THREAD_NAME_INFORMATION { pub const THREAD_PRIORITY_ERROR_RETURN: u32 = 2147483647u32; #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn TranslateInfStringA<'a, P0, P1, P2, P3>(pszinffilename: P0, pszinstallsection: P1, psztranslatesection: P2, psztranslatekey: P3, pszbuffer: &mut [u8], pdwrequiredsize: &mut u32, pvreserved: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> +pub unsafe fn TranslateInfStringA<'a, P0, P1, P2, P3>(pszinffilename: P0, pszinstallsection: P1, psztranslatesection: P2, psztranslatekey: P3, pszbuffer: ::core::option::Option<&mut [u8]>, pdwrequiredsize: &mut u32, pvreserved: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -6917,7 +6928,7 @@ where extern "system" { fn TranslateInfStringA(pszinffilename: ::windows::core::PCSTR, pszinstallsection: ::windows::core::PCSTR, psztranslatesection: ::windows::core::PCSTR, psztranslatekey: ::windows::core::PCSTR, pszbuffer: ::windows::core::PSTR, cchbuffer: u32, pdwrequiredsize: *mut u32, pvreserved: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - TranslateInfStringA(pszinffilename.into(), pszinstallsection.into(), psztranslatesection.into(), psztranslatekey.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), pszbuffer.len() as _, ::core::mem::transmute(pdwrequiredsize), ::core::mem::transmute(pvreserved)).ok() + TranslateInfStringA(pszinffilename.into(), pszinstallsection.into(), psztranslatesection.into(), psztranslatekey.into(), ::core::mem::transmute(pszbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdwrequiredsize), ::core::mem::transmute(pvreserved)).ok() } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] @@ -6931,7 +6942,7 @@ where extern "system" { fn TranslateInfStringExA(hinf: *mut ::core::ffi::c_void, pszinffilename: ::windows::core::PCSTR, psztranslatesection: ::windows::core::PCSTR, psztranslatekey: ::windows::core::PCSTR, pszbuffer: ::windows::core::PSTR, dwbuffersize: u32, pdwrequiredsize: *mut u32, pvreserved: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - TranslateInfStringExA(::core::mem::transmute(hinf), pszinffilename.into(), psztranslatesection.into(), psztranslatekey.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), pszbuffer.len() as _, ::core::mem::transmute(pdwrequiredsize), ::core::mem::transmute(pvreserved)).ok() + TranslateInfStringExA(::core::mem::transmute(hinf), pszinffilename.into(), psztranslatesection.into(), psztranslatekey.into(), ::core::mem::transmute(pszbuffer.as_ptr()), pszbuffer.len() as _, ::core::mem::transmute(pdwrequiredsize), ::core::mem::transmute(pvreserved)).ok() } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] @@ -6945,11 +6956,11 @@ where extern "system" { fn TranslateInfStringExW(hinf: *mut ::core::ffi::c_void, pszinffilename: ::windows::core::PCWSTR, psztranslatesection: ::windows::core::PCWSTR, psztranslatekey: ::windows::core::PCWSTR, pszbuffer: ::windows::core::PWSTR, dwbuffersize: u32, pdwrequiredsize: *mut u32, pvreserved: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - TranslateInfStringExW(::core::mem::transmute(hinf), pszinffilename.into(), psztranslatesection.into(), psztranslatekey.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), pszbuffer.len() as _, ::core::mem::transmute(pdwrequiredsize), ::core::mem::transmute(pvreserved)).ok() + TranslateInfStringExW(::core::mem::transmute(hinf), pszinffilename.into(), psztranslatesection.into(), psztranslatekey.into(), ::core::mem::transmute(pszbuffer.as_ptr()), pszbuffer.len() as _, ::core::mem::transmute(pdwrequiredsize), ::core::mem::transmute(pvreserved)).ok() } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn TranslateInfStringW<'a, P0, P1, P2, P3>(pszinffilename: P0, pszinstallsection: P1, psztranslatesection: P2, psztranslatekey: P3, pszbuffer: &mut [u16], pdwrequiredsize: &mut u32, pvreserved: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> +pub unsafe fn TranslateInfStringW<'a, P0, P1, P2, P3>(pszinffilename: P0, pszinstallsection: P1, psztranslatesection: P2, psztranslatekey: P3, pszbuffer: ::core::option::Option<&mut [u16]>, pdwrequiredsize: &mut u32, pvreserved: *mut ::core::ffi::c_void) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -6960,7 +6971,7 @@ where extern "system" { fn TranslateInfStringW(pszinffilename: ::windows::core::PCWSTR, pszinstallsection: ::windows::core::PCWSTR, psztranslatesection: ::windows::core::PCWSTR, psztranslatekey: ::windows::core::PCWSTR, pszbuffer: ::windows::core::PWSTR, cchbuffer: u32, pdwrequiredsize: *mut u32, pvreserved: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - TranslateInfStringW(pszinffilename.into(), pszinstallsection.into(), psztranslatesection.into(), psztranslatekey.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuffer)), pszbuffer.len() as _, ::core::mem::transmute(pdwrequiredsize), ::core::mem::transmute(pvreserved)).ok() + TranslateInfStringW(pszinffilename.into(), pszinstallsection.into(), psztranslatesection.into(), psztranslatekey.into(), ::core::mem::transmute(pszbuffer.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszbuffer.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pdwrequiredsize), ::core::mem::transmute(pvreserved)).ok() } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] pub const UMS_VERSION: u32 = 256u32; @@ -7669,17 +7680,17 @@ pub unsafe fn WldpIsDynamicCodePolicyEnabled() -> ::windows::core::Result ::windows::core::Result<()> { +pub unsafe fn WldpQueryDeviceSecurityInformation(information: ::core::option::Option<&mut [WLDP_DEVICE_SECURITY_INFORMATION]>, returnlength: &mut u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WldpQueryDeviceSecurityInformation(information: *mut WLDP_DEVICE_SECURITY_INFORMATION, informationlength: u32, returnlength: *mut u32) -> ::windows::core::HRESULT; } - WldpQueryDeviceSecurityInformation(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(information)), information.len() as _, ::core::mem::transmute(returnlength)).ok() + WldpQueryDeviceSecurityInformation(::core::mem::transmute(information.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), information.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(returnlength)).ok() } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WldpQueryDynamicCodeTrust<'a, P0>(filehandle: P0, baseimage: *const ::core::ffi::c_void, imagesize: u32) -> ::windows::core::Result<()> +pub unsafe fn WldpQueryDynamicCodeTrust<'a, P0>(filehandle: P0, baseimage: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -7687,7 +7698,7 @@ where extern "system" { fn WldpQueryDynamicCodeTrust(filehandle: super::super::Foundation::HANDLE, baseimage: *const ::core::ffi::c_void, imagesize: u32) -> ::windows::core::HRESULT; } - WldpQueryDynamicCodeTrust(filehandle.into(), ::core::mem::transmute(baseimage), imagesize).ok() + WldpQueryDynamicCodeTrust(filehandle.into(), ::core::mem::transmute(baseimage.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), baseimage.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7767,7 +7778,7 @@ where #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WritePrivateProfileStructA<'a, P0, P1, P2>(lpszsection: P0, lpszkey: P1, lpstruct: *const ::core::ffi::c_void, usizestruct: u32, szfile: P2) -> super::super::Foundation::BOOL +pub unsafe fn WritePrivateProfileStructA<'a, P0, P1, P2>(lpszsection: P0, lpszkey: P1, lpstruct: ::core::option::Option<&[u8]>, szfile: P2) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -7777,12 +7788,12 @@ where extern "system" { fn WritePrivateProfileStructA(lpszsection: ::windows::core::PCSTR, lpszkey: ::windows::core::PCSTR, lpstruct: *const ::core::ffi::c_void, usizestruct: u32, szfile: ::windows::core::PCSTR) -> super::super::Foundation::BOOL; } - WritePrivateProfileStructA(lpszsection.into(), lpszkey.into(), ::core::mem::transmute(lpstruct), usizestruct, szfile.into()) + WritePrivateProfileStructA(lpszsection.into(), lpszkey.into(), ::core::mem::transmute(lpstruct.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpstruct.as_deref().map_or(0, |slice| slice.len() as _), szfile.into()) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WritePrivateProfileStructW<'a, P0, P1, P2>(lpszsection: P0, lpszkey: P1, lpstruct: *const ::core::ffi::c_void, usizestruct: u32, szfile: P2) -> super::super::Foundation::BOOL +pub unsafe fn WritePrivateProfileStructW<'a, P0, P1, P2>(lpszsection: P0, lpszkey: P1, lpstruct: ::core::option::Option<&[u8]>, szfile: P2) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -7792,7 +7803,7 @@ where extern "system" { fn WritePrivateProfileStructW(lpszsection: ::windows::core::PCWSTR, lpszkey: ::windows::core::PCWSTR, lpstruct: *const ::core::ffi::c_void, usizestruct: u32, szfile: ::windows::core::PCWSTR) -> super::super::Foundation::BOOL; } - WritePrivateProfileStructW(lpszsection.into(), lpszkey.into(), ::core::mem::transmute(lpstruct), usizestruct, szfile.into()) + WritePrivateProfileStructW(lpszsection.into(), lpszkey.into(), ::core::mem::transmute(lpstruct.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpstruct.as_deref().map_or(0, |slice| slice.len() as _), szfile.into()) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -7858,24 +7869,21 @@ pub struct _D3DHAL_CALLBACKS(pub u8); pub struct _D3DHAL_GLOBALDRIVERDATA(pub u8); #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn _hread(hfile: i32, lpbuffer: *mut ::core::ffi::c_void, lbytes: i32) -> i32 { +pub unsafe fn _hread(hfile: i32, lpbuffer: &mut [u8]) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn _hread(hfile: i32, lpbuffer: *mut ::core::ffi::c_void, lbytes: i32) -> i32; } - _hread(hfile, ::core::mem::transmute(lpbuffer), lbytes) + _hread(hfile, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn _hwrite<'a, P0>(hfile: i32, lpbuffer: P0, lbytes: i32) -> i32 -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn _hwrite(hfile: i32, lpbuffer: &[u8]) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn _hwrite(hfile: i32, lpbuffer: ::windows::core::PCSTR, lbytes: i32) -> i32; } - _hwrite(hfile, lpbuffer.into(), lbytes) + _hwrite(hfile, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] @@ -7921,24 +7929,21 @@ where } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn _lread(hfile: i32, lpbuffer: *mut ::core::ffi::c_void, ubytes: u32) -> u32 { +pub unsafe fn _lread(hfile: i32, lpbuffer: &mut [u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn _lread(hfile: i32, lpbuffer: *mut ::core::ffi::c_void, ubytes: u32) -> u32; } - _lread(hfile, ::core::mem::transmute(lpbuffer), ubytes) + _lread(hfile, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _) } #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] #[inline] -pub unsafe fn _lwrite<'a, P0>(hfile: i32, lpbuffer: P0, ubytes: u32) -> u32 -where - P0: ::std::convert::Into<::windows::core::PCSTR>, -{ +pub unsafe fn _lwrite(hfile: i32, lpbuffer: &[u8]) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn _lwrite(hfile: i32, lpbuffer: ::windows::core::PCSTR, ubytes: u32) -> u32; } - _lwrite(hfile, lpbuffer.into(), ubytes) + _lwrite(hfile, ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _) } #[repr(C)] #[doc = "*Required features: `\"Win32_System_WindowsProgramming\"`*"] diff --git a/crates/libs/windows/src/Windows/Win32/System/WindowsSync/mod.rs b/crates/libs/windows/src/Windows/Win32/System/WindowsSync/mod.rs index 550741df29..5cc1f4fa5b 100644 --- a/crates/libs/windows/src/Windows/Win32/System/WindowsSync/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/WindowsSync/mod.rs @@ -1553,7 +1553,7 @@ pub struct IEnumSyncProviderConfigUIInfos(::windows::core::IUnknown); impl IEnumSyncProviderConfigUIInfos { #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] - pub unsafe fn Next(&self, cfactories: u32, ppsyncproviderconfiguiinfo: &mut ::core::option::Option, pcfetched: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Next(&self, cfactories: u32, ppsyncproviderconfiguiinfo: *mut ::core::option::Option, pcfetched: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), cfactories, ::core::mem::transmute(ppsyncproviderconfiguiinfo), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Skip(&self, cfactories: u32) -> ::windows::core::Result<()> { @@ -1620,7 +1620,7 @@ pub struct IEnumSyncProviderInfos(::windows::core::IUnknown); impl IEnumSyncProviderInfos { #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] - pub unsafe fn Next(&self, cinstances: u32, ppsyncproviderinfo: &mut ::core::option::Option, pcfetched: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Next(&self, cinstances: u32, ppsyncproviderinfo: *mut ::core::option::Option, pcfetched: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), cinstances, ::core::mem::transmute(ppsyncproviderinfo), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Skip(&self, cinstances: u32) -> ::windows::core::Result<()> { diff --git a/crates/libs/windows/src/Windows/Win32/System/Wmi/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Wmi/mod.rs index ac5b2fcda4..e33bf8ee84 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Wmi/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Wmi/mod.rs @@ -67,7 +67,7 @@ impl IEnumWbemClassObject { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() } pub unsafe fn Next(&self, ltimeout: i32, apobjects: &mut [::core::option::Option], pureturned: &mut u32) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ltimeout, apobjects.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(apobjects)), ::core::mem::transmute(pureturned)) + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ltimeout, apobjects.len() as _, ::core::mem::transmute(apobjects.as_ptr()), ::core::mem::transmute(pureturned)) } pub unsafe fn NextAsync<'a, P0>(&self, ucount: u32, psink: P0) -> ::windows::core::HRESULT where @@ -142,14 +142,14 @@ impl IMofCompiler { { (::windows::core::Interface::vtable(self).CompileFile)(::windows::core::Interface::as_raw(self), filename.into(), serverandnamespace.into(), user.into(), authority.into(), password.into(), loptionflags, lclassflags, linstanceflags, ::core::mem::transmute(pinfo)).ok() } - pub unsafe fn CompileBuffer<'a, P0, P1, P2, P3>(&self, buffsize: i32, pbuffer: &u8, serverandnamespace: P0, user: P1, authority: P2, password: P3, loptionflags: i32, lclassflags: i32, linstanceflags: i32, pinfo: &mut WBEM_COMPILE_STATUS_INFO) -> ::windows::core::Result<()> + pub unsafe fn CompileBuffer<'a, P0, P1, P2, P3>(&self, pbuffer: &[u8], serverandnamespace: P0, user: P1, authority: P2, password: P3, loptionflags: i32, lclassflags: i32, linstanceflags: i32, pinfo: &mut WBEM_COMPILE_STATUS_INFO) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, P2: ::std::convert::Into<::windows::core::PCWSTR>, P3: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).CompileBuffer)(::windows::core::Interface::as_raw(self), buffsize, ::core::mem::transmute(pbuffer), serverandnamespace.into(), user.into(), authority.into(), password.into(), loptionflags, lclassflags, linstanceflags, ::core::mem::transmute(pinfo)).ok() + (::windows::core::Interface::vtable(self).CompileBuffer)(::windows::core::Interface::as_raw(self), pbuffer.len() as _, ::core::mem::transmute(pbuffer.as_ptr()), serverandnamespace.into(), user.into(), authority.into(), password.into(), loptionflags, lclassflags, linstanceflags, ::core::mem::transmute(pinfo)).ok() } pub unsafe fn CreateBMOF<'a, P0, P1, P2>(&self, textfilename: P0, bmoffilename: P1, serverandnamespace: P2, loptionflags: i32, lclassflags: i32, linstanceflags: i32, pinfo: &mut WBEM_COMPILE_STATUS_INFO) -> ::windows::core::Result<()> where @@ -5294,7 +5294,7 @@ impl IWbemClientConnectionTransport { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).Open)(::windows::core::Interface::as_raw(self), straddresstype.into().abi(), abbinaryaddress.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(abbinaryaddress)), strobject.into().abi(), struser.into().abi(), strpassword.into().abi(), strlocale.into().abi(), lflags, pctx.into().abi(), &::IID, &mut result__ as *mut _ as *mut _, ::core::mem::transmute(pcallres)).and_some(result__) + (::windows::core::Interface::vtable(self).Open)(::windows::core::Interface::as_raw(self), straddresstype.into().abi(), abbinaryaddress.len() as _, ::core::mem::transmute(abbinaryaddress.as_ptr()), strobject.into().abi(), struser.into().abi(), strpassword.into().abi(), strlocale.into().abi(), lflags, pctx.into().abi(), &::IID, &mut result__ as *mut _ as *mut _, ::core::mem::transmute(pcallres)).and_some(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5308,7 +5308,7 @@ impl IWbemClientConnectionTransport { P5: ::std::convert::Into<::windows::core::InParam<'a, IWbemContext>>, P6: ::std::convert::Into<::windows::core::InParam<'a, IWbemObjectSink>>, { - (::windows::core::Interface::vtable(self).OpenAsync)(::windows::core::Interface::as_raw(self), straddresstype.into().abi(), abbinaryaddress.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(abbinaryaddress)), strobject.into().abi(), struser.into().abi(), strpassword.into().abi(), strlocale.into().abi(), lflags, pctx.into().abi(), ::core::mem::transmute(riid), presponsehandler.into().abi()).ok() + (::windows::core::Interface::vtable(self).OpenAsync)(::windows::core::Interface::as_raw(self), straddresstype.into().abi(), abbinaryaddress.len() as _, ::core::mem::transmute(abbinaryaddress.as_ptr()), strobject.into().abi(), struser.into().abi(), strpassword.into().abi(), strlocale.into().abi(), lflags, pctx.into().abi(), ::core::mem::transmute(riid), presponsehandler.into().abi()).ok() } pub unsafe fn Cancel<'a, P0>(&self, lflags: i32, phandler: P0) -> ::windows::core::Result<()> where @@ -5383,7 +5383,7 @@ impl IWbemClientTransport { P6: ::std::convert::Into<::windows::core::InParam<'a, IWbemContext>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).ConnectServer)(::windows::core::Interface::as_raw(self), straddresstype.into().abi(), abbinaryaddress.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(abbinaryaddress)), strnetworkresource.into().abi(), struser.into().abi(), strpassword.into().abi(), strlocale.into().abi(), lsecurityflags, strauthority.into().abi(), pctx.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).ConnectServer)(::windows::core::Interface::as_raw(self), straddresstype.into().abi(), abbinaryaddress.len() as _, ::core::mem::transmute(abbinaryaddress.as_ptr()), strnetworkresource.into().abi(), struser.into().abi(), strpassword.into().abi(), strlocale.into().abi(), lsecurityflags, strauthority.into().abi(), pctx.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -5573,8 +5573,8 @@ pub struct IWbemConnectorLogin_Vtbl { #[repr(transparent)] pub struct IWbemConstructClassObject(::windows::core::IUnknown); impl IWbemConstructClassObject { - pub unsafe fn SetInheritanceChain(&self, lnumantecedents: i32, awszantecedents: &::windows::core::PWSTR) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetInheritanceChain)(::windows::core::Interface::as_raw(self), lnumantecedents, ::core::mem::transmute(awszantecedents)).ok() + pub unsafe fn SetInheritanceChain(&self, awszantecedents: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetInheritanceChain)(::windows::core::Interface::as_raw(self), awszantecedents.len() as _, ::core::mem::transmute(awszantecedents.as_ptr())).ok() } pub unsafe fn SetPropertyOrigin<'a, P0>(&self, wszpropertyname: P0, loriginindex: i32) -> ::windows::core::Result<()> where @@ -6067,7 +6067,7 @@ pub struct IWbemEventProviderQuerySink_Vtbl { pub struct IWbemEventProviderSecurity(::windows::core::IUnknown); impl IWbemEventProviderSecurity { pub unsafe fn AccessCheck(&self, wszquerylanguage: &u16, wszquery: &u16, psid: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AccessCheck)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(wszquerylanguage), ::core::mem::transmute(wszquery), psid.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psid))).ok() + (::windows::core::Interface::vtable(self).AccessCheck)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(wszquerylanguage), ::core::mem::transmute(wszquery), psid.len() as _, ::core::mem::transmute(psid.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -6116,7 +6116,7 @@ pub struct IWbemEventProviderSecurity_Vtbl { pub struct IWbemEventSink(::windows::core::IUnknown); impl IWbemEventSink { pub unsafe fn Indicate(&self, apobjarray: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.Indicate)(::windows::core::Interface::as_raw(self), apobjarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(apobjarray))).ok() + (::windows::core::Interface::vtable(self).base__.Indicate)(::windows::core::Interface::as_raw(self), apobjarray.len() as _, ::core::mem::transmute(apobjarray.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6128,7 +6128,7 @@ impl IWbemEventSink { (::windows::core::Interface::vtable(self).base__.SetStatus)(::windows::core::Interface::as_raw(self), lflags, hresult, strparam.into().abi(), pobjparam.into().abi()).ok() } pub unsafe fn SetSinkSecurity(&self, psd: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSinkSecurity)(::windows::core::Interface::as_raw(self), psd.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(psd))).ok() + (::windows::core::Interface::vtable(self).SetSinkSecurity)(::windows::core::Interface::as_raw(self), psd.len() as _, ::core::mem::transmute(psd.as_ptr())).ok() } pub unsafe fn IsActive(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).IsActive)(::windows::core::Interface::as_raw(self)).ok() @@ -6138,7 +6138,7 @@ impl IWbemEventSink { P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetRestrictedSink)(::windows::core::Interface::as_raw(self), awszqueries.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(awszqueries)), pcallback.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetRestrictedSink)(::windows::core::Interface::as_raw(self), awszqueries.len() as _, ::core::mem::transmute(awszqueries.as_ptr()), pcallback.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetBatchingParameters(&self, lflags: i32, dwmaxbuffersize: u32, dwmaxsendlatency: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetBatchingParameters)(::windows::core::Interface::as_raw(self), lflags, dwmaxbuffersize, dwmaxsendlatency).ok() @@ -6207,14 +6207,14 @@ pub struct IWbemEventSink_Vtbl { #[repr(transparent)] pub struct IWbemHiPerfEnum(::windows::core::IUnknown); impl IWbemHiPerfEnum { - pub unsafe fn AddObjects(&self, lflags: i32, unumobjects: u32, apids: &i32, apobj: &::core::option::Option) -> ::windows::core::Result<()> { + pub unsafe fn AddObjects(&self, lflags: i32, unumobjects: u32, apids: *const i32, apobj: *const ::core::option::Option) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AddObjects)(::windows::core::Interface::as_raw(self), lflags, ::core::mem::transmute(unumobjects), ::core::mem::transmute(apids), ::core::mem::transmute(apobj)).ok() } pub unsafe fn RemoveObjects(&self, lflags: i32, apids: &[i32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RemoveObjects)(::windows::core::Interface::as_raw(self), lflags, apids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(apids))).ok() + (::windows::core::Interface::vtable(self).RemoveObjects)(::windows::core::Interface::as_raw(self), lflags, apids.len() as _, ::core::mem::transmute(apids.as_ptr())).ok() } pub unsafe fn GetObjects(&self, lflags: i32, apobj: &mut [::core::option::Option], pureturned: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetObjects)(::windows::core::Interface::as_raw(self), lflags, apobj.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(apobj)), ::core::mem::transmute(pureturned)).ok() + (::windows::core::Interface::vtable(self).GetObjects)(::windows::core::Interface::as_raw(self), lflags, apobj.len() as _, ::core::mem::transmute(apobj.as_ptr()), ::core::mem::transmute(pureturned)).ok() } pub unsafe fn RemoveAll(&self, lflags: i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).RemoveAll)(::windows::core::Interface::as_raw(self), lflags).ok() @@ -6315,7 +6315,7 @@ impl IWbemHiPerfProvider { P0: ::std::convert::Into<::windows::core::InParam<'a, IWbemServices>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IWbemContext>>, { - (::windows::core::Interface::vtable(self).GetObjects)(::windows::core::Interface::as_raw(self), pnamespace.into().abi(), apobj.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(apobj)), lflags, pcontext.into().abi()).ok() + (::windows::core::Interface::vtable(self).GetObjects)(::windows::core::Interface::as_raw(self), pnamespace.into().abi(), apobj.len() as _, ::core::mem::transmute(apobj.as_ptr()), lflags, pcontext.into().abi()).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -6658,10 +6658,10 @@ impl IWbemObjectAccess { (::windows::core::Interface::vtable(self).GetPropertyHandle)(::windows::core::Interface::as_raw(self), wszpropertyname.into(), ::core::mem::transmute(ptype), ::core::mem::transmute(plhandle)).ok() } pub unsafe fn WritePropertyValue(&self, lhandle: i32, adata: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WritePropertyValue)(::windows::core::Interface::as_raw(self), lhandle, adata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(adata))).ok() + (::windows::core::Interface::vtable(self).WritePropertyValue)(::windows::core::Interface::as_raw(self), lhandle, adata.len() as _, ::core::mem::transmute(adata.as_ptr())).ok() } pub unsafe fn ReadPropertyValue(&self, lhandle: i32, plnumbytes: &mut i32, adata: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadPropertyValue)(::windows::core::Interface::as_raw(self), lhandle, adata.len() as _, ::core::mem::transmute(plnumbytes), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(adata))).ok() + (::windows::core::Interface::vtable(self).ReadPropertyValue)(::windows::core::Interface::as_raw(self), lhandle, adata.len() as _, ::core::mem::transmute(plnumbytes), ::core::mem::transmute(adata.as_ptr())).ok() } pub unsafe fn ReadDWORD(&self, lhandle: i32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -6762,7 +6762,7 @@ pub struct IWbemObjectAccess_Vtbl { pub struct IWbemObjectSink(::windows::core::IUnknown); impl IWbemObjectSink { pub unsafe fn Indicate(&self, apobjarray: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Indicate)(::windows::core::Interface::as_raw(self), apobjarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(apobjarray))).ok() + (::windows::core::Interface::vtable(self).Indicate)(::windows::core::Interface::as_raw(self), apobjarray.len() as _, ::core::mem::transmute(apobjarray.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6824,7 +6824,7 @@ pub struct IWbemObjectSink_Vtbl { pub struct IWbemObjectSinkEx(::windows::core::IUnknown); impl IWbemObjectSinkEx { pub unsafe fn Indicate(&self, apobjarray: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.Indicate)(::windows::core::Interface::as_raw(self), apobjarray.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(apobjarray))).ok() + (::windows::core::Interface::vtable(self).base__.Indicate)(::windows::core::Interface::as_raw(self), apobjarray.len() as _, ::core::mem::transmute(apobjarray.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8306,7 +8306,7 @@ impl IWbemUnboundObjectSink { where P0: ::std::convert::Into<::windows::core::InParam<'a, IWbemClassObject>>, { - (::windows::core::Interface::vtable(self).IndicateToConsumer)(::windows::core::Interface::as_raw(self), plogicalconsumer.into().abi(), apobjects.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(apobjects))).ok() + (::windows::core::Interface::vtable(self).IndicateToConsumer)(::windows::core::Interface::as_raw(self), plogicalconsumer.into().abi(), apobjects.len() as _, ::core::mem::transmute(apobjects.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/UI/Accessibility/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/Accessibility/mod.rs index 02d841165b..864f76bbba 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/Accessibility/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/Accessibility/mod.rs @@ -131,7 +131,7 @@ where extern "system" { fn AccessibleChildren(pacccontainer: *mut ::core::ffi::c_void, ichildstart: i32, cchildren: i32, rgvarchildren: *mut super::super::System::Com::VARIANT, pcobtained: *mut i32) -> ::windows::core::HRESULT; } - AccessibleChildren(pacccontainer.into().abi(), ichildstart, rgvarchildren.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgvarchildren)), ::core::mem::transmute(pcobtained)).ok() + AccessibleChildren(pacccontainer.into().abi(), ichildstart, rgvarchildren.len() as _, ::core::mem::transmute(rgvarchildren.as_ptr()), ::core::mem::transmute(pcobtained)).ok() } #[doc = "*Required features: `\"Win32_UI_Accessibility\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -1093,39 +1093,39 @@ pub unsafe fn GetOleaccVersionInfo(pver: &mut u32, pbuild: &mut u32) { } #[doc = "*Required features: `\"Win32_UI_Accessibility\"`*"] #[inline] -pub unsafe fn GetRoleTextA(lrole: u32, lpszrole: &mut [u8]) -> u32 { +pub unsafe fn GetRoleTextA(lrole: u32, lpszrole: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetRoleTextA(lrole: u32, lpszrole: ::windows::core::PSTR, cchrolemax: u32) -> u32; } - GetRoleTextA(lrole, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszrole)), lpszrole.len() as _) + GetRoleTextA(lrole, ::core::mem::transmute(lpszrole.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszrole.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Accessibility\"`*"] #[inline] -pub unsafe fn GetRoleTextW(lrole: u32, lpszrole: &mut [u16]) -> u32 { +pub unsafe fn GetRoleTextW(lrole: u32, lpszrole: ::core::option::Option<&mut [u16]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetRoleTextW(lrole: u32, lpszrole: ::windows::core::PWSTR, cchrolemax: u32) -> u32; } - GetRoleTextW(lrole, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszrole)), lpszrole.len() as _) + GetRoleTextW(lrole, ::core::mem::transmute(lpszrole.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszrole.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Accessibility\"`*"] #[inline] -pub unsafe fn GetStateTextA(lstatebit: u32, lpszstate: &mut [u8]) -> u32 { +pub unsafe fn GetStateTextA(lstatebit: u32, lpszstate: ::core::option::Option<&mut [u8]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetStateTextA(lstatebit: u32, lpszstate: ::windows::core::PSTR, cchstate: u32) -> u32; } - GetStateTextA(lstatebit, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszstate)), lpszstate.len() as _) + GetStateTextA(lstatebit, ::core::mem::transmute(lpszstate.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszstate.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Accessibility\"`*"] #[inline] -pub unsafe fn GetStateTextW(lstatebit: u32, lpszstate: &mut [u16]) -> u32 { +pub unsafe fn GetStateTextW(lstatebit: u32, lpszstate: ::core::option::Option<&mut [u16]>) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetStateTextW(lstatebit: u32, lpszstate: ::windows::core::PWSTR, cchstate: u32) -> u32; } - GetStateTextW(lstatebit, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszstate)), lpszstate.len() as _) + GetStateTextW(lstatebit, ::core::mem::transmute(lpszstate.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszstate.as_deref().map_or(0, |slice| slice.len() as _)) } pub const GridItem_ColumnSpan_Property_GUID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x583ea3f5_86d0_4b08_a6ec_2c5463ffc109); pub const GridItem_Column_Property_GUID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc774c15c_62c0_4519_8bdc_47be573c8ad5); @@ -1502,7 +1502,7 @@ pub const Hyperlink_Control_GUID: ::windows::core::GUID = ::windows::core::GUID: #[repr(transparent)] pub struct IAccIdentity(::windows::core::IUnknown); impl IAccIdentity { - pub unsafe fn GetIdentityString(&self, dwidchild: u32, ppidstring: &mut *mut u8, pdwidstringlen: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetIdentityString(&self, dwidchild: u32, ppidstring: *mut *mut u8, pdwidstringlen: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetIdentityString)(::windows::core::Interface::as_raw(self), dwidchild, ::core::mem::transmute(ppidstring), ::core::mem::transmute(pdwidstringlen)).ok() } } @@ -1554,7 +1554,7 @@ impl IAccPropServer { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] pub unsafe fn GetPropValue(&self, pidstring: &[u8], idprop: ::windows::core::GUID, pvarvalue: &mut super::super::System::Com::VARIANT, pfhasprop: &mut super::super::Foundation::BOOL) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPropValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pidstring)), pidstring.len() as _, ::core::mem::transmute(idprop), ::core::mem::transmute(pvarvalue), ::core::mem::transmute(pfhasprop)).ok() + (::windows::core::Interface::vtable(self).GetPropValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pidstring.as_ptr()), pidstring.len() as _, ::core::mem::transmute(idprop), ::core::mem::transmute(pvarvalue), ::core::mem::transmute(pfhasprop)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -1611,16 +1611,16 @@ impl IAccPropServices { where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::System::Com::VARIANT>>, { - (::windows::core::Interface::vtable(self).SetPropValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pidstring)), pidstring.len() as _, ::core::mem::transmute(idprop), var.into().abi()).ok() + (::windows::core::Interface::vtable(self).SetPropValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pidstring.as_ptr()), pidstring.len() as _, ::core::mem::transmute(idprop), var.into().abi()).ok() } pub unsafe fn SetPropServer<'a, P0>(&self, pidstring: &[u8], paprops: &[::windows::core::GUID], pserver: P0, annoscope: AnnoScope) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IAccPropServer>>, { - (::windows::core::Interface::vtable(self).SetPropServer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pidstring)), pidstring.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(paprops)), paprops.len() as _, pserver.into().abi(), annoscope).ok() + (::windows::core::Interface::vtable(self).SetPropServer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pidstring.as_ptr()), pidstring.len() as _, ::core::mem::transmute(paprops.as_ptr()), paprops.len() as _, pserver.into().abi(), annoscope).ok() } pub unsafe fn ClearProps(&self, pidstring: &[u8], paprops: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ClearProps)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pidstring)), pidstring.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(paprops)), paprops.len() as _).ok() + (::windows::core::Interface::vtable(self).ClearProps)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pidstring.as_ptr()), pidstring.len() as _, ::core::mem::transmute(paprops.as_ptr()), paprops.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -1647,7 +1647,7 @@ impl IAccPropServices { P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::InParam<'a, IAccPropServer>>, { - (::windows::core::Interface::vtable(self).SetHwndPropServer)(::windows::core::Interface::as_raw(self), hwnd.into(), idobject, idchild, ::core::mem::transmute(::windows::core::as_ptr_or_null(paprops)), paprops.len() as _, pserver.into().abi(), annoscope).ok() + (::windows::core::Interface::vtable(self).SetHwndPropServer)(::windows::core::Interface::as_raw(self), hwnd.into(), idobject, idchild, ::core::mem::transmute(paprops.as_ptr()), paprops.len() as _, pserver.into().abi(), annoscope).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1655,11 +1655,11 @@ impl IAccPropServices { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).ClearHwndProps)(::windows::core::Interface::as_raw(self), hwnd.into(), idobject, idchild, ::core::mem::transmute(::windows::core::as_ptr_or_null(paprops)), paprops.len() as _).ok() + (::windows::core::Interface::vtable(self).ClearHwndProps)(::windows::core::Interface::as_raw(self), hwnd.into(), idobject, idchild, ::core::mem::transmute(paprops.as_ptr()), paprops.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn ComposeHwndIdentityString<'a, P0>(&self, hwnd: P0, idobject: u32, idchild: u32, ppidstring: &mut *mut u8, pdwidstringlen: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn ComposeHwndIdentityString<'a, P0>(&self, hwnd: P0, idobject: u32, idchild: u32, ppidstring: *mut *mut u8, pdwidstringlen: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -1668,7 +1668,7 @@ impl IAccPropServices { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn DecomposeHwndIdentityString(&self, pidstring: &[u8], phwnd: &mut super::super::Foundation::HWND, pidobject: &mut u32, pidchild: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DecomposeHwndIdentityString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pidstring)), pidstring.len() as _, ::core::mem::transmute(phwnd), ::core::mem::transmute(pidobject), ::core::mem::transmute(pidchild)).ok() + (::windows::core::Interface::vtable(self).DecomposeHwndIdentityString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pidstring.as_ptr()), pidstring.len() as _, ::core::mem::transmute(phwnd), ::core::mem::transmute(pidobject), ::core::mem::transmute(pidchild)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_UI_WindowsAndMessaging"))] @@ -1695,7 +1695,7 @@ impl IAccPropServices { P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::InParam<'a, IAccPropServer>>, { - (::windows::core::Interface::vtable(self).SetHmenuPropServer)(::windows::core::Interface::as_raw(self), hmenu.into(), idchild, ::core::mem::transmute(::windows::core::as_ptr_or_null(paprops)), paprops.len() as _, pserver.into().abi(), annoscope).ok() + (::windows::core::Interface::vtable(self).SetHmenuPropServer)(::windows::core::Interface::as_raw(self), hmenu.into(), idchild, ::core::mem::transmute(paprops.as_ptr()), paprops.len() as _, pserver.into().abi(), annoscope).ok() } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] @@ -1703,11 +1703,11 @@ impl IAccPropServices { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).ClearHmenuProps)(::windows::core::Interface::as_raw(self), hmenu.into(), idchild, ::core::mem::transmute(::windows::core::as_ptr_or_null(paprops)), paprops.len() as _).ok() + (::windows::core::Interface::vtable(self).ClearHmenuProps)(::windows::core::Interface::as_raw(self), hmenu.into(), idchild, ::core::mem::transmute(paprops.as_ptr()), paprops.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] - pub unsafe fn ComposeHmenuIdentityString<'a, P0>(&self, hmenu: P0, idchild: u32, ppidstring: &mut *mut u8, pdwidstringlen: &mut u32) -> ::windows::core::Result<()> + pub unsafe fn ComposeHmenuIdentityString<'a, P0>(&self, hmenu: P0, idchild: u32, ppidstring: *mut *mut u8, pdwidstringlen: &mut u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -1716,7 +1716,7 @@ impl IAccPropServices { #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] pub unsafe fn DecomposeHmenuIdentityString(&self, pidstring: &[u8], phmenu: &mut super::WindowsAndMessaging::HMENU, pidchild: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DecomposeHmenuIdentityString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pidstring)), pidstring.len() as _, ::core::mem::transmute(phmenu), ::core::mem::transmute(pidchild)).ok() + (::windows::core::Interface::vtable(self).DecomposeHmenuIdentityString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pidstring.as_ptr()), pidstring.len() as _, ::core::mem::transmute(phmenu), ::core::mem::transmute(pidchild)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -6214,7 +6214,7 @@ impl IUIAutomation { } pub unsafe fn CreateAndConditionFromNativeArray(&self, conditions: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateAndConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(conditions)), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateAndConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(conditions.as_ptr()), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateOrCondition<'a, P0, P1>(&self, condition1: P0, condition2: P1) -> ::windows::core::Result where @@ -6232,7 +6232,7 @@ impl IUIAutomation { } pub unsafe fn CreateOrConditionFromNativeArray(&self, conditions: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateOrConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(conditions)), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateOrConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(conditions.as_ptr()), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateNotCondition<'a, P0>(&self, condition: P0) -> ::windows::core::Result where @@ -6262,7 +6262,7 @@ impl IUIAutomation { P1: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationCacheRequest>>, P2: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationPropertyChangedEventHandler>>, { - (::windows::core::Interface::vtable(self).AddPropertyChangedEventHandlerNativeArray)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, cacherequest.into().abi(), handler.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(propertyarray)), propertyarray.len() as _).ok() + (::windows::core::Interface::vtable(self).AddPropertyChangedEventHandlerNativeArray)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, cacherequest.into().abi(), handler.into().abi(), ::core::mem::transmute(propertyarray.as_ptr()), propertyarray.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -6316,11 +6316,11 @@ impl IUIAutomation { #[cfg(feature = "Win32_System_Com")] pub unsafe fn IntNativeArrayToSafeArray(&self, array: &[i32]) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).IntNativeArrayToSafeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(array)), array.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut super::super::System::Com::SAFEARRAY>(result__) + (::windows::core::Interface::vtable(self).IntNativeArrayToSafeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(array.as_ptr()), array.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut super::super::System::Com::SAFEARRAY>(result__) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn IntSafeArrayToNativeArray(&self, intarray: &super::super::System::Com::SAFEARRAY, array: &mut *mut i32, arraycount: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn IntSafeArrayToNativeArray(&self, intarray: &super::super::System::Com::SAFEARRAY, array: *mut *mut i32, arraycount: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).IntSafeArrayToNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(intarray), ::core::mem::transmute(array), ::core::mem::transmute(arraycount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] @@ -6340,7 +6340,7 @@ impl IUIAutomation { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] - pub unsafe fn SafeArrayToRectNativeArray(&self, rects: &super::super::System::Com::SAFEARRAY, rectarray: &mut *mut super::super::Foundation::RECT, rectarraycount: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn SafeArrayToRectNativeArray(&self, rects: &super::super::System::Com::SAFEARRAY, rectarray: *mut *mut super::super::Foundation::RECT, rectarraycount: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SafeArrayToRectNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rects), ::core::mem::transmute(rectarray), ::core::mem::transmute(rectarraycount)).ok() } pub unsafe fn CreateProxyFactoryEntry<'a, P0>(&self, factory: P0) -> ::windows::core::Result @@ -6736,7 +6736,7 @@ impl IUIAutomation2 { } pub unsafe fn CreateAndConditionFromNativeArray(&self, conditions: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateAndConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(conditions)), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateAndConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(conditions.as_ptr()), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateOrCondition<'a, P0, P1>(&self, condition1: P0, condition2: P1) -> ::windows::core::Result where @@ -6754,7 +6754,7 @@ impl IUIAutomation2 { } pub unsafe fn CreateOrConditionFromNativeArray(&self, conditions: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.CreateOrConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(conditions)), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.CreateOrConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(conditions.as_ptr()), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateNotCondition<'a, P0>(&self, condition: P0) -> ::windows::core::Result where @@ -6784,7 +6784,7 @@ impl IUIAutomation2 { P1: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationCacheRequest>>, P2: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationPropertyChangedEventHandler>>, { - (::windows::core::Interface::vtable(self).base__.AddPropertyChangedEventHandlerNativeArray)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, cacherequest.into().abi(), handler.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(propertyarray)), propertyarray.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.AddPropertyChangedEventHandlerNativeArray)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, cacherequest.into().abi(), handler.into().abi(), ::core::mem::transmute(propertyarray.as_ptr()), propertyarray.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -6838,11 +6838,11 @@ impl IUIAutomation2 { #[cfg(feature = "Win32_System_Com")] pub unsafe fn IntNativeArrayToSafeArray(&self, array: &[i32]) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.IntNativeArrayToSafeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(array)), array.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut super::super::System::Com::SAFEARRAY>(result__) + (::windows::core::Interface::vtable(self).base__.IntNativeArrayToSafeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(array.as_ptr()), array.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut super::super::System::Com::SAFEARRAY>(result__) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn IntSafeArrayToNativeArray(&self, intarray: &super::super::System::Com::SAFEARRAY, array: &mut *mut i32, arraycount: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn IntSafeArrayToNativeArray(&self, intarray: &super::super::System::Com::SAFEARRAY, array: *mut *mut i32, arraycount: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.IntSafeArrayToNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(intarray), ::core::mem::transmute(array), ::core::mem::transmute(arraycount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] @@ -6862,7 +6862,7 @@ impl IUIAutomation2 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] - pub unsafe fn SafeArrayToRectNativeArray(&self, rects: &super::super::System::Com::SAFEARRAY, rectarray: &mut *mut super::super::Foundation::RECT, rectarraycount: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn SafeArrayToRectNativeArray(&self, rects: &super::super::System::Com::SAFEARRAY, rectarray: *mut *mut super::super::Foundation::RECT, rectarraycount: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SafeArrayToRectNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rects), ::core::mem::transmute(rectarray), ::core::mem::transmute(rectarraycount)).ok() } pub unsafe fn CreateProxyFactoryEntry<'a, P0>(&self, factory: P0) -> ::windows::core::Result @@ -7189,7 +7189,7 @@ impl IUIAutomation3 { } pub unsafe fn CreateAndConditionFromNativeArray(&self, conditions: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateAndConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(conditions)), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateAndConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(conditions.as_ptr()), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateOrCondition<'a, P0, P1>(&self, condition1: P0, condition2: P1) -> ::windows::core::Result where @@ -7207,7 +7207,7 @@ impl IUIAutomation3 { } pub unsafe fn CreateOrConditionFromNativeArray(&self, conditions: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.CreateOrConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(conditions)), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.CreateOrConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(conditions.as_ptr()), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateNotCondition<'a, P0>(&self, condition: P0) -> ::windows::core::Result where @@ -7237,7 +7237,7 @@ impl IUIAutomation3 { P1: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationCacheRequest>>, P2: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationPropertyChangedEventHandler>>, { - (::windows::core::Interface::vtable(self).base__.base__.AddPropertyChangedEventHandlerNativeArray)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, cacherequest.into().abi(), handler.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(propertyarray)), propertyarray.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.AddPropertyChangedEventHandlerNativeArray)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, cacherequest.into().abi(), handler.into().abi(), ::core::mem::transmute(propertyarray.as_ptr()), propertyarray.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -7291,11 +7291,11 @@ impl IUIAutomation3 { #[cfg(feature = "Win32_System_Com")] pub unsafe fn IntNativeArrayToSafeArray(&self, array: &[i32]) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.IntNativeArrayToSafeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(array)), array.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut super::super::System::Com::SAFEARRAY>(result__) + (::windows::core::Interface::vtable(self).base__.base__.IntNativeArrayToSafeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(array.as_ptr()), array.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut super::super::System::Com::SAFEARRAY>(result__) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn IntSafeArrayToNativeArray(&self, intarray: &super::super::System::Com::SAFEARRAY, array: &mut *mut i32, arraycount: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn IntSafeArrayToNativeArray(&self, intarray: &super::super::System::Com::SAFEARRAY, array: *mut *mut i32, arraycount: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.IntSafeArrayToNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(intarray), ::core::mem::transmute(array), ::core::mem::transmute(arraycount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] @@ -7315,7 +7315,7 @@ impl IUIAutomation3 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] - pub unsafe fn SafeArrayToRectNativeArray(&self, rects: &super::super::System::Com::SAFEARRAY, rectarray: &mut *mut super::super::Foundation::RECT, rectarraycount: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn SafeArrayToRectNativeArray(&self, rects: &super::super::System::Com::SAFEARRAY, rectarray: *mut *mut super::super::Foundation::RECT, rectarraycount: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.SafeArrayToRectNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rects), ::core::mem::transmute(rectarray), ::core::mem::transmute(rectarraycount)).ok() } pub unsafe fn CreateProxyFactoryEntry<'a, P0>(&self, factory: P0) -> ::windows::core::Result @@ -7662,7 +7662,7 @@ impl IUIAutomation4 { } pub unsafe fn CreateAndConditionFromNativeArray(&self, conditions: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateAndConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(conditions)), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateAndConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(conditions.as_ptr()), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateOrCondition<'a, P0, P1>(&self, condition1: P0, condition2: P1) -> ::windows::core::Result where @@ -7680,7 +7680,7 @@ impl IUIAutomation4 { } pub unsafe fn CreateOrConditionFromNativeArray(&self, conditions: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.CreateOrConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(conditions)), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.CreateOrConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(conditions.as_ptr()), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateNotCondition<'a, P0>(&self, condition: P0) -> ::windows::core::Result where @@ -7710,7 +7710,7 @@ impl IUIAutomation4 { P1: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationCacheRequest>>, P2: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationPropertyChangedEventHandler>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.AddPropertyChangedEventHandlerNativeArray)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, cacherequest.into().abi(), handler.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(propertyarray)), propertyarray.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.AddPropertyChangedEventHandlerNativeArray)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, cacherequest.into().abi(), handler.into().abi(), ::core::mem::transmute(propertyarray.as_ptr()), propertyarray.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -7764,11 +7764,11 @@ impl IUIAutomation4 { #[cfg(feature = "Win32_System_Com")] pub unsafe fn IntNativeArrayToSafeArray(&self, array: &[i32]) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.IntNativeArrayToSafeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(array)), array.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut super::super::System::Com::SAFEARRAY>(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.IntNativeArrayToSafeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(array.as_ptr()), array.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut super::super::System::Com::SAFEARRAY>(result__) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn IntSafeArrayToNativeArray(&self, intarray: &super::super::System::Com::SAFEARRAY, array: &mut *mut i32, arraycount: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn IntSafeArrayToNativeArray(&self, intarray: &super::super::System::Com::SAFEARRAY, array: *mut *mut i32, arraycount: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.IntSafeArrayToNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(intarray), ::core::mem::transmute(array), ::core::mem::transmute(arraycount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] @@ -7788,7 +7788,7 @@ impl IUIAutomation4 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] - pub unsafe fn SafeArrayToRectNativeArray(&self, rects: &super::super::System::Com::SAFEARRAY, rectarray: &mut *mut super::super::Foundation::RECT, rectarraycount: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn SafeArrayToRectNativeArray(&self, rects: &super::super::System::Com::SAFEARRAY, rectarray: *mut *mut super::super::Foundation::RECT, rectarraycount: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.SafeArrayToRectNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rects), ::core::mem::transmute(rectarray), ::core::mem::transmute(rectarraycount)).ok() } pub unsafe fn CreateProxyFactoryEntry<'a, P0>(&self, factory: P0) -> ::windows::core::Result @@ -7915,7 +7915,7 @@ impl IUIAutomation4 { P1: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationCacheRequest>>, P2: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationChangesEventHandler>>, { - (::windows::core::Interface::vtable(self).AddChangesEventHandler)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, ::core::mem::transmute(::windows::core::as_ptr_or_null(changetypes)), changetypes.len() as _, pcacherequest.into().abi(), handler.into().abi()).ok() + (::windows::core::Interface::vtable(self).AddChangesEventHandler)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, ::core::mem::transmute(changetypes.as_ptr()), changetypes.len() as _, pcacherequest.into().abi(), handler.into().abi()).ok() } pub unsafe fn RemoveChangesEventHandler<'a, P0, P1>(&self, element: P0, handler: P1) -> ::windows::core::Result<()> where @@ -8165,7 +8165,7 @@ impl IUIAutomation5 { } pub unsafe fn CreateAndConditionFromNativeArray(&self, conditions: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateAndConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(conditions)), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateAndConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(conditions.as_ptr()), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateOrCondition<'a, P0, P1>(&self, condition1: P0, condition2: P1) -> ::windows::core::Result where @@ -8183,7 +8183,7 @@ impl IUIAutomation5 { } pub unsafe fn CreateOrConditionFromNativeArray(&self, conditions: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateOrConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(conditions)), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateOrConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(conditions.as_ptr()), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateNotCondition<'a, P0>(&self, condition: P0) -> ::windows::core::Result where @@ -8213,7 +8213,7 @@ impl IUIAutomation5 { P1: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationCacheRequest>>, P2: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationPropertyChangedEventHandler>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.AddPropertyChangedEventHandlerNativeArray)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, cacherequest.into().abi(), handler.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(propertyarray)), propertyarray.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.AddPropertyChangedEventHandlerNativeArray)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, cacherequest.into().abi(), handler.into().abi(), ::core::mem::transmute(propertyarray.as_ptr()), propertyarray.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -8267,11 +8267,11 @@ impl IUIAutomation5 { #[cfg(feature = "Win32_System_Com")] pub unsafe fn IntNativeArrayToSafeArray(&self, array: &[i32]) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IntNativeArrayToSafeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(array)), array.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut super::super::System::Com::SAFEARRAY>(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IntNativeArrayToSafeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(array.as_ptr()), array.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut super::super::System::Com::SAFEARRAY>(result__) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn IntSafeArrayToNativeArray(&self, intarray: &super::super::System::Com::SAFEARRAY, array: &mut *mut i32, arraycount: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn IntSafeArrayToNativeArray(&self, intarray: &super::super::System::Com::SAFEARRAY, array: *mut *mut i32, arraycount: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IntSafeArrayToNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(intarray), ::core::mem::transmute(array), ::core::mem::transmute(arraycount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] @@ -8291,7 +8291,7 @@ impl IUIAutomation5 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] - pub unsafe fn SafeArrayToRectNativeArray(&self, rects: &super::super::System::Com::SAFEARRAY, rectarray: &mut *mut super::super::Foundation::RECT, rectarraycount: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn SafeArrayToRectNativeArray(&self, rects: &super::super::System::Com::SAFEARRAY, rectarray: *mut *mut super::super::Foundation::RECT, rectarraycount: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SafeArrayToRectNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rects), ::core::mem::transmute(rectarray), ::core::mem::transmute(rectarraycount)).ok() } pub unsafe fn CreateProxyFactoryEntry<'a, P0>(&self, factory: P0) -> ::windows::core::Result @@ -8418,7 +8418,7 @@ impl IUIAutomation5 { P1: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationCacheRequest>>, P2: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationChangesEventHandler>>, { - (::windows::core::Interface::vtable(self).base__.AddChangesEventHandler)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, ::core::mem::transmute(::windows::core::as_ptr_or_null(changetypes)), changetypes.len() as _, pcacherequest.into().abi(), handler.into().abi()).ok() + (::windows::core::Interface::vtable(self).base__.AddChangesEventHandler)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, ::core::mem::transmute(changetypes.as_ptr()), changetypes.len() as _, pcacherequest.into().abi(), handler.into().abi()).ok() } pub unsafe fn RemoveChangesEventHandler<'a, P0, P1>(&self, element: P0, handler: P1) -> ::windows::core::Result<()> where @@ -8698,7 +8698,7 @@ impl IUIAutomation6 { } pub unsafe fn CreateAndConditionFromNativeArray(&self, conditions: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateAndConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(conditions)), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateAndConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(conditions.as_ptr()), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateOrCondition<'a, P0, P1>(&self, condition1: P0, condition2: P1) -> ::windows::core::Result where @@ -8716,7 +8716,7 @@ impl IUIAutomation6 { } pub unsafe fn CreateOrConditionFromNativeArray(&self, conditions: &[::core::option::Option]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateOrConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(conditions)), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateOrConditionFromNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(conditions.as_ptr()), conditions.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateNotCondition<'a, P0>(&self, condition: P0) -> ::windows::core::Result where @@ -8746,7 +8746,7 @@ impl IUIAutomation6 { P1: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationCacheRequest>>, P2: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationPropertyChangedEventHandler>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.AddPropertyChangedEventHandlerNativeArray)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, cacherequest.into().abi(), handler.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(propertyarray)), propertyarray.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.AddPropertyChangedEventHandlerNativeArray)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, cacherequest.into().abi(), handler.into().abi(), ::core::mem::transmute(propertyarray.as_ptr()), propertyarray.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -8800,11 +8800,11 @@ impl IUIAutomation6 { #[cfg(feature = "Win32_System_Com")] pub unsafe fn IntNativeArrayToSafeArray(&self, array: &[i32]) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.IntNativeArrayToSafeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(array)), array.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut super::super::System::Com::SAFEARRAY>(result__) + (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.IntNativeArrayToSafeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(array.as_ptr()), array.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut super::super::System::Com::SAFEARRAY>(result__) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn IntSafeArrayToNativeArray(&self, intarray: &super::super::System::Com::SAFEARRAY, array: &mut *mut i32, arraycount: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn IntSafeArrayToNativeArray(&self, intarray: &super::super::System::Com::SAFEARRAY, array: *mut *mut i32, arraycount: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.IntSafeArrayToNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(intarray), ::core::mem::transmute(array), ::core::mem::transmute(arraycount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] @@ -8824,7 +8824,7 @@ impl IUIAutomation6 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] - pub unsafe fn SafeArrayToRectNativeArray(&self, rects: &super::super::System::Com::SAFEARRAY, rectarray: &mut *mut super::super::Foundation::RECT, rectarraycount: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn SafeArrayToRectNativeArray(&self, rects: &super::super::System::Com::SAFEARRAY, rectarray: *mut *mut super::super::Foundation::RECT, rectarraycount: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SafeArrayToRectNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rects), ::core::mem::transmute(rectarray), ::core::mem::transmute(rectarraycount)).ok() } pub unsafe fn CreateProxyFactoryEntry<'a, P0>(&self, factory: P0) -> ::windows::core::Result @@ -8951,7 +8951,7 @@ impl IUIAutomation6 { P1: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationCacheRequest>>, P2: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationChangesEventHandler>>, { - (::windows::core::Interface::vtable(self).base__.base__.AddChangesEventHandler)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, ::core::mem::transmute(::windows::core::as_ptr_or_null(changetypes)), changetypes.len() as _, pcacherequest.into().abi(), handler.into().abi()).ok() + (::windows::core::Interface::vtable(self).base__.base__.AddChangesEventHandler)(::windows::core::Interface::as_raw(self), element.into().abi(), scope, ::core::mem::transmute(changetypes.as_ptr()), changetypes.len() as _, pcacherequest.into().abi(), handler.into().abi()).ok() } pub unsafe fn RemoveChangesEventHandler<'a, P0, P1>(&self, element: P0, handler: P1) -> ::windows::core::Result<()> where @@ -9208,7 +9208,7 @@ impl IUIAutomationAndCondition { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).ChildCount)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetChildrenAsNativeArray(&self, childarray: &mut *mut ::core::option::Option, childarraycount: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn GetChildrenAsNativeArray(&self, childarray: *mut *mut ::core::option::Option, childarraycount: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetChildrenAsNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(childarray), ::core::mem::transmute(childarraycount)).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] @@ -9572,7 +9572,7 @@ impl IUIAutomationChangesEventHandler { where P0: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationElement>>, { - (::windows::core::Interface::vtable(self).HandleChangesEvent)(::windows::core::Interface::as_raw(self), sender.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(uiachanges)), uiachanges.len() as _).ok() + (::windows::core::Interface::vtable(self).HandleChangesEvent)(::windows::core::Interface::as_raw(self), sender.into().abi(), ::core::mem::transmute(uiachanges.as_ptr()), uiachanges.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -16420,7 +16420,7 @@ impl IUIAutomationEventHandlerGroup { P0: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationCacheRequest>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationChangesEventHandler>>, { - (::windows::core::Interface::vtable(self).AddChangesEventHandler)(::windows::core::Interface::as_raw(self), scope, ::core::mem::transmute(::windows::core::as_ptr_or_null(changetypes)), changetypes.len() as _, cacherequest.into().abi(), handler.into().abi()).ok() + (::windows::core::Interface::vtable(self).AddChangesEventHandler)(::windows::core::Interface::as_raw(self), scope, ::core::mem::transmute(changetypes.as_ptr()), changetypes.len() as _, cacherequest.into().abi(), handler.into().abi()).ok() } pub unsafe fn AddNotificationEventHandler<'a, P0, P1>(&self, scope: TreeScope, cacherequest: P0, handler: P1) -> ::windows::core::Result<()> where @@ -16434,7 +16434,7 @@ impl IUIAutomationEventHandlerGroup { P0: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationCacheRequest>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IUIAutomationPropertyChangedEventHandler>>, { - (::windows::core::Interface::vtable(self).AddPropertyChangedEventHandler)(::windows::core::Interface::as_raw(self), scope, cacherequest.into().abi(), handler.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(propertyarray)), propertyarray.len() as _).ok() + (::windows::core::Interface::vtable(self).AddPropertyChangedEventHandler)(::windows::core::Interface::as_raw(self), scope, cacherequest.into().abi(), handler.into().abi(), ::core::mem::transmute(propertyarray.as_ptr()), propertyarray.len() as _).ok() } pub unsafe fn AddStructureChangedEventHandler<'a, P0, P1>(&self, scope: TreeScope, cacherequest: P0, handler: P1) -> ::windows::core::Result<()> where @@ -17387,7 +17387,7 @@ impl IUIAutomationOrCondition { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).ChildCount)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetChildrenAsNativeArray(&self, childarray: &mut *mut ::core::option::Option, childarraycount: &mut i32) -> ::windows::core::Result<()> { + pub unsafe fn GetChildrenAsNativeArray(&self, childarray: *mut *mut ::core::option::Option, childarraycount: &mut i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetChildrenAsNativeArray)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(childarray), ::core::mem::transmute(childarraycount)).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] @@ -18190,7 +18190,7 @@ impl IUIAutomationRegistrar { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn RegisterPattern(&self, pattern: &UIAutomationPatternInfo, ppatternid: &mut i32, ppatternavailablepropertyid: &mut i32, ppropertyids: &mut [i32], peventids: &mut [i32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RegisterPattern)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pattern), ::core::mem::transmute(ppatternid), ::core::mem::transmute(ppatternavailablepropertyid), ppropertyids.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppropertyids)), peventids.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(peventids))).ok() + (::windows::core::Interface::vtable(self).RegisterPattern)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pattern), ::core::mem::transmute(ppatternid), ::core::mem::transmute(ppatternavailablepropertyid), ppropertyids.len() as _, ::core::mem::transmute(ppropertyids.as_ptr()), peventids.len() as _, ::core::mem::transmute(peventids.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -20187,7 +20187,7 @@ impl IUIAutomationTextRange3 { #[cfg(feature = "Win32_System_Com")] pub unsafe fn GetAttributeValues(&self, attributeids: &[i32]) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY> { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetAttributeValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(attributeids)), attributeids.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut super::super::System::Com::SAFEARRAY>(result__) + (::windows::core::Interface::vtable(self).GetAttributeValues)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(attributeids.as_ptr()), attributeids.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<*mut super::super::System::Com::SAFEARRAY>(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/UI/Animation/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/Animation/mod.rs index 0aa94d26e8..6266dbaa40 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/Animation/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/Animation/mod.rs @@ -83,7 +83,7 @@ impl IUIAnimationInterpolator2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetDimension)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn SetInitialValueAndVelocity(&self, initialvalue: &f64, initialvelocity: &f64, cdimension: u32) -> ::windows::core::Result<()> { + pub unsafe fn SetInitialValueAndVelocity(&self, initialvalue: *const f64, initialvelocity: *const f64, cdimension: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetInitialValueAndVelocity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(initialvalue), ::core::mem::transmute(initialvelocity), ::core::mem::transmute(cdimension)).ok() } pub unsafe fn SetDuration(&self, duration: f64) -> ::windows::core::Result<()> { @@ -94,13 +94,13 @@ impl IUIAnimationInterpolator2 { (::windows::core::Interface::vtable(self).GetDuration)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetFinalValue(&self, value: &mut [f64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFinalValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(value)), value.len() as _).ok() + (::windows::core::Interface::vtable(self).GetFinalValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(value.as_ptr()), value.len() as _).ok() } pub unsafe fn InterpolateValue(&self, offset: f64, value: &mut [f64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).InterpolateValue)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(value)), value.len() as _).ok() + (::windows::core::Interface::vtable(self).InterpolateValue)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(value.as_ptr()), value.len() as _).ok() } pub unsafe fn InterpolateVelocity(&self, offset: f64, velocity: &mut [f64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).InterpolateVelocity)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(velocity)), velocity.len() as _).ok() + (::windows::core::Interface::vtable(self).InterpolateVelocity)(::windows::core::Interface::as_raw(self), offset, ::core::mem::transmute(velocity.as_ptr()), velocity.len() as _).ok() } pub unsafe fn GetPrimitiveInterpolation<'a, P0>(&self, interpolation: P0, cdimension: u32) -> ::windows::core::Result<()> where @@ -371,7 +371,7 @@ pub struct IUIAnimationManager2(::windows::core::IUnknown); impl IUIAnimationManager2 { pub unsafe fn CreateAnimationVectorVariable(&self, initialvalue: &[f64]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateAnimationVectorVariable)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(initialvalue)), initialvalue.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateAnimationVectorVariable)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(initialvalue.as_ptr()), initialvalue.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateAnimationVariable(&self, initialvalue: f64) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1551,13 +1551,13 @@ impl IUIAnimationTransition2 { (::windows::core::Interface::vtable(self).SetInitialValue)(::windows::core::Interface::as_raw(self), value).ok() } pub unsafe fn SetInitialVectorValue(&self, value: &[f64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetInitialVectorValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(value)), value.len() as _).ok() + (::windows::core::Interface::vtable(self).SetInitialVectorValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(value.as_ptr()), value.len() as _).ok() } pub unsafe fn SetInitialVelocity(&self, velocity: f64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetInitialVelocity)(::windows::core::Interface::as_raw(self), velocity).ok() } pub unsafe fn SetInitialVectorVelocity(&self, velocity: &[f64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetInitialVectorVelocity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(velocity)), velocity.len() as _).ok() + (::windows::core::Interface::vtable(self).SetInitialVectorVelocity)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(velocity.as_ptr()), velocity.len() as _).ok() } pub unsafe fn IsDurationKnown(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).IsDurationKnown)(::windows::core::Interface::as_raw(self)).ok() @@ -1835,7 +1835,7 @@ impl IUIAnimationTransitionLibrary2 { } pub unsafe fn CreateInstantaneousVectorTransition(&self, finalvalue: &[f64]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateInstantaneousVectorTransition)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(finalvalue)), finalvalue.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateInstantaneousVectorTransition)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(finalvalue.as_ptr()), finalvalue.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateConstantTransition(&self, duration: f64) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1847,7 +1847,7 @@ impl IUIAnimationTransitionLibrary2 { } pub unsafe fn CreateDiscreteVectorTransition(&self, delay: f64, finalvalue: &[f64], hold: f64) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateDiscreteVectorTransition)(::windows::core::Interface::as_raw(self), delay, ::core::mem::transmute(::windows::core::as_ptr_or_null(finalvalue)), finalvalue.len() as _, hold, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateDiscreteVectorTransition)(::windows::core::Interface::as_raw(self), delay, ::core::mem::transmute(finalvalue.as_ptr()), finalvalue.len() as _, hold, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateLinearTransition(&self, duration: f64, finalvalue: f64) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1855,7 +1855,7 @@ impl IUIAnimationTransitionLibrary2 { } pub unsafe fn CreateLinearVectorTransition(&self, duration: f64, finalvalue: &[f64]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateLinearVectorTransition)(::windows::core::Interface::as_raw(self), duration, ::core::mem::transmute(::windows::core::as_ptr_or_null(finalvalue)), finalvalue.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateLinearVectorTransition)(::windows::core::Interface::as_raw(self), duration, ::core::mem::transmute(finalvalue.as_ptr()), finalvalue.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateLinearTransitionFromSpeed(&self, speed: f64, finalvalue: f64) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1863,7 +1863,7 @@ impl IUIAnimationTransitionLibrary2 { } pub unsafe fn CreateLinearVectorTransitionFromSpeed(&self, speed: f64, finalvalue: &[f64]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateLinearVectorTransitionFromSpeed)(::windows::core::Interface::as_raw(self), speed, ::core::mem::transmute(::windows::core::as_ptr_or_null(finalvalue)), finalvalue.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateLinearVectorTransitionFromSpeed)(::windows::core::Interface::as_raw(self), speed, ::core::mem::transmute(finalvalue.as_ptr()), finalvalue.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn CreateSinusoidalTransitionFromVelocity(&self, duration: f64, period: f64) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -1885,7 +1885,7 @@ impl IUIAnimationTransitionLibrary2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).CreateCubicTransition)(::windows::core::Interface::as_raw(self), duration, finalvalue, finalvelocity, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn CreateCubicVectorTransition(&self, duration: f64, finalvalue: &f64, finalvelocity: &f64, cdimension: u32) -> ::windows::core::Result { + pub unsafe fn CreateCubicVectorTransition(&self, duration: f64, finalvalue: *const f64, finalvelocity: *const f64, cdimension: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).CreateCubicVectorTransition)(::windows::core::Interface::as_raw(self), duration, ::core::mem::transmute(finalvalue), ::core::mem::transmute(finalvelocity), ::core::mem::transmute(cdimension), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } @@ -1903,7 +1903,7 @@ impl IUIAnimationTransitionLibrary2 { } pub unsafe fn CreateCubicBezierLinearVectorTransition(&self, duration: f64, finalvalue: &[f64], x1: f64, y1: f64, x2: f64, y2: f64) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateCubicBezierLinearVectorTransition)(::windows::core::Interface::as_raw(self), duration, ::core::mem::transmute(::windows::core::as_ptr_or_null(finalvalue)), finalvalue.len() as _, x1, y1, x2, y2, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateCubicBezierLinearVectorTransition)(::windows::core::Interface::as_raw(self), duration, ::core::mem::transmute(finalvalue.as_ptr()), finalvalue.len() as _, x1, y1, x2, y2, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2095,7 +2095,7 @@ impl IUIAnimationVariable2 { (::windows::core::Interface::vtable(self).GetValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetVectorValue(&self, value: &mut [f64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetVectorValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(value)), value.len() as _).ok() + (::windows::core::Interface::vtable(self).GetVectorValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(value.as_ptr()), value.len() as _).ok() } #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] #[cfg(feature = "Win32_Graphics_DirectComposition")] @@ -2108,42 +2108,42 @@ impl IUIAnimationVariable2 { #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] #[cfg(feature = "Win32_Graphics_DirectComposition")] pub unsafe fn GetVectorCurve(&self, animation: &[::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetVectorCurve)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(animation)), animation.len() as _).ok() + (::windows::core::Interface::vtable(self).GetVectorCurve)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(animation.as_ptr()), animation.len() as _).ok() } pub unsafe fn GetFinalValue(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetFinalValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetFinalVectorValue(&self, finalvalue: &mut [f64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFinalVectorValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(finalvalue)), finalvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).GetFinalVectorValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(finalvalue.as_ptr()), finalvalue.len() as _).ok() } pub unsafe fn GetPreviousValue(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetPreviousValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetPreviousVectorValue(&self, previousvalue: &mut [f64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPreviousVectorValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(previousvalue)), previousvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).GetPreviousVectorValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(previousvalue.as_ptr()), previousvalue.len() as _).ok() } pub unsafe fn GetIntegerValue(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetIntegerValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetIntegerVectorValue(&self, value: &mut [i32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIntegerVectorValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(value)), value.len() as _).ok() + (::windows::core::Interface::vtable(self).GetIntegerVectorValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(value.as_ptr()), value.len() as _).ok() } pub unsafe fn GetFinalIntegerValue(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetFinalIntegerValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetFinalIntegerVectorValue(&self, finalvalue: &mut [i32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFinalIntegerVectorValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(finalvalue)), finalvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).GetFinalIntegerVectorValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(finalvalue.as_ptr()), finalvalue.len() as _).ok() } pub unsafe fn GetPreviousIntegerValue(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetPreviousIntegerValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetPreviousIntegerVectorValue(&self, previousvalue: &mut [i32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPreviousIntegerVectorValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(previousvalue)), previousvalue.len() as _).ok() + (::windows::core::Interface::vtable(self).GetPreviousIntegerVectorValue)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(previousvalue.as_ptr()), previousvalue.len() as _).ok() } pub unsafe fn GetCurrentStoryboard(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2153,13 +2153,13 @@ impl IUIAnimationVariable2 { (::windows::core::Interface::vtable(self).SetLowerBound)(::windows::core::Interface::as_raw(self), bound).ok() } pub unsafe fn SetLowerBoundVector(&self, bound: &[f64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetLowerBoundVector)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(bound)), bound.len() as _).ok() + (::windows::core::Interface::vtable(self).SetLowerBoundVector)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(bound.as_ptr()), bound.len() as _).ok() } pub unsafe fn SetUpperBound(&self, bound: f64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetUpperBound)(::windows::core::Interface::as_raw(self), bound).ok() } pub unsafe fn SetUpperBoundVector(&self, bound: &[f64]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetUpperBoundVector)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(bound)), bound.len() as _).ok() + (::windows::core::Interface::vtable(self).SetUpperBoundVector)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(bound.as_ptr()), bound.len() as _).ok() } pub unsafe fn SetRoundingMode(&self, mode: UI_ANIMATION_ROUNDING_MODE) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetRoundingMode)(::windows::core::Interface::as_raw(self), mode).ok() @@ -2333,7 +2333,7 @@ pub struct IUIAnimationVariableChangeHandler_Vtbl { #[repr(transparent)] pub struct IUIAnimationVariableChangeHandler2(::windows::core::IUnknown); impl IUIAnimationVariableChangeHandler2 { - pub unsafe fn OnValueChanged<'a, P0, P1>(&self, storyboard: P0, variable: P1, newvalue: &f64, previousvalue: &f64, cdimension: u32) -> ::windows::core::Result<()> + pub unsafe fn OnValueChanged<'a, P0, P1>(&self, storyboard: P0, variable: P1, newvalue: *const f64, previousvalue: *const f64, cdimension: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IUIAnimationStoryboard2>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IUIAnimationVariable2>>, @@ -2491,7 +2491,7 @@ pub struct IUIAnimationVariableIntegerChangeHandler_Vtbl { #[repr(transparent)] pub struct IUIAnimationVariableIntegerChangeHandler2(::windows::core::IUnknown); impl IUIAnimationVariableIntegerChangeHandler2 { - pub unsafe fn OnIntegerValueChanged<'a, P0, P1>(&self, storyboard: P0, variable: P1, newvalue: &i32, previousvalue: &i32, cdimension: u32) -> ::windows::core::Result<()> + pub unsafe fn OnIntegerValueChanged<'a, P0, P1>(&self, storyboard: P0, variable: P1, newvalue: *const i32, previousvalue: *const i32, cdimension: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IUIAnimationStoryboard2>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IUIAnimationVariable2>>, diff --git a/crates/libs/windows/src/Windows/Win32/UI/ColorSystem/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/ColorSystem/mod.rs index 71514ec235..b8c9e5780d 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/ColorSystem/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/ColorSystem/mod.rs @@ -182,7 +182,7 @@ pub const CATID_WcsPlugin: ::windows::core::GUID = ::windows::core::GUID::from_u #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CMCheckColors(hcmtransform: isize, lpainputcolors: &COLOR, ncolors: u32, ctinput: COLORTYPE, lparesult: &mut u8) -> super::super::Foundation::BOOL { +pub unsafe fn CMCheckColors(hcmtransform: isize, lpainputcolors: *const COLOR, ncolors: u32, ctinput: COLORTYPE, lparesult: *mut u8) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CMCheckColors(hcmtransform: isize, lpainputcolors: *const COLOR, ncolors: u32, ctinput: COLORTYPE, lparesult: *mut u8) -> super::super::Foundation::BOOL; @@ -192,12 +192,12 @@ pub unsafe fn CMCheckColors(hcmtransform: isize, lpainputcolors: &COLOR, ncolors #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] #[inline] -pub unsafe fn CMCheckColorsInGamut(hcmtransform: isize, lpargbtriple: &[super::super::Graphics::Gdi::RGBTRIPLE], lparesult: &mut u8) -> super::super::Foundation::BOOL { +pub unsafe fn CMCheckColorsInGamut(hcmtransform: isize, lpargbtriple: *const super::super::Graphics::Gdi::RGBTRIPLE, lparesult: *mut u8, ncount: u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CMCheckColorsInGamut(hcmtransform: isize, lpargbtriple: *const super::super::Graphics::Gdi::RGBTRIPLE, lparesult: *mut u8, ncount: u32) -> super::super::Foundation::BOOL; } - CMCheckColorsInGamut(hcmtransform, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpargbtriple)), ::core::mem::transmute(lparesult), lpargbtriple.len() as _) + CMCheckColorsInGamut(hcmtransform, ::core::mem::transmute(lpargbtriple), ::core::mem::transmute(lparesult), ::core::mem::transmute(ncount)) } #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -215,7 +215,7 @@ where #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CMConvertColorNameToIndex(hprofile: isize, pacolorname: &*const i8, paindex: &mut u32, dwcount: u32) -> super::super::Foundation::BOOL { +pub unsafe fn CMConvertColorNameToIndex(hprofile: isize, pacolorname: *const *const i8, paindex: *mut u32, dwcount: u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CMConvertColorNameToIndex(hprofile: isize, pacolorname: *const *const i8, paindex: *mut u32, dwcount: u32) -> super::super::Foundation::BOOL; @@ -225,7 +225,7 @@ pub unsafe fn CMConvertColorNameToIndex(hprofile: isize, pacolorname: &*const i8 #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CMConvertIndexToColorName(hprofile: isize, paindex: &u32, pacolorname: &mut *mut i8, dwcount: u32) -> super::super::Foundation::BOOL { +pub unsafe fn CMConvertIndexToColorName(hprofile: isize, paindex: *const u32, pacolorname: *mut *mut i8, dwcount: u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CMConvertIndexToColorName(hprofile: isize, paindex: *const u32, pacolorname: *mut *mut i8, dwcount: u32) -> super::super::Foundation::BOOL; @@ -240,7 +240,7 @@ pub unsafe fn CMCreateDeviceLinkProfile(pahprofiles: &[isize], padwintents: &[u3 extern "system" { fn CMCreateDeviceLinkProfile(pahprofiles: *const isize, nprofiles: u32, padwintents: *const u32, nintents: u32, dwflags: u32, lpprofiledata: *mut *mut u8) -> super::super::Foundation::BOOL; } - CMCreateDeviceLinkProfile(::core::mem::transmute(::windows::core::as_ptr_or_null(pahprofiles)), pahprofiles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(padwintents)), padwintents.len() as _, dwflags, ::core::mem::transmute(lpprofiledata)) + CMCreateDeviceLinkProfile(::core::mem::transmute(pahprofiles.as_ptr()), pahprofiles.len() as _, ::core::mem::transmute(padwintents.as_ptr()), padwintents.len() as _, dwflags, ::core::mem::transmute(lpprofiledata)) } #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`*"] #[inline] @@ -249,7 +249,7 @@ pub unsafe fn CMCreateMultiProfileTransform(pahprofiles: &[isize], padwintents: extern "system" { fn CMCreateMultiProfileTransform(pahprofiles: *const isize, nprofiles: u32, padwintents: *const u32, nintents: u32, dwflags: u32) -> isize; } - CMCreateMultiProfileTransform(::core::mem::transmute(::windows::core::as_ptr_or_null(pahprofiles)), pahprofiles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(padwintents)), padwintents.len() as _, dwflags) + CMCreateMultiProfileTransform(::core::mem::transmute(pahprofiles.as_ptr()), pahprofiles.len() as _, ::core::mem::transmute(padwintents.as_ptr()), padwintents.len() as _, dwflags) } #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -403,7 +403,7 @@ pub const CMS_USEHOOK: u32 = 128u32; #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CMTranslateColors(hcmtransform: isize, lpainputcolors: &COLOR, ncolors: u32, ctinput: COLORTYPE, lpaoutputcolors: &mut COLOR, ctoutput: COLORTYPE) -> super::super::Foundation::BOOL { +pub unsafe fn CMTranslateColors(hcmtransform: isize, lpainputcolors: *const COLOR, ncolors: u32, ctinput: COLORTYPE, lpaoutputcolors: *mut COLOR, ctoutput: COLORTYPE) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CMTranslateColors(hcmtransform: isize, lpainputcolors: *const COLOR, ncolors: u32, ctinput: COLORTYPE, lpaoutputcolors: *mut COLOR, ctoutput: COLORTYPE) -> super::super::Foundation::BOOL; @@ -912,7 +912,7 @@ where #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CheckColors(hcolortransform: isize, painputcolors: &COLOR, ncolors: u32, ctinput: COLORTYPE, paresult: &mut u8) -> super::super::Foundation::BOOL { +pub unsafe fn CheckColors(hcolortransform: isize, painputcolors: *const COLOR, ncolors: u32, ctinput: COLORTYPE, paresult: *mut u8) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CheckColors(hcolortransform: isize, painputcolors: *const COLOR, ncolors: u32, ctinput: COLORTYPE, paresult: *mut u8) -> super::super::Foundation::BOOL; @@ -922,7 +922,7 @@ pub unsafe fn CheckColors(hcolortransform: isize, painputcolors: &COLOR, ncolors #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] #[inline] -pub unsafe fn CheckColorsInGamut<'a, P0>(hdc: P0, lprgbtriple: &[super::super::Graphics::Gdi::RGBTRIPLE], dlpbuffer: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn CheckColorsInGamut<'a, P0>(hdc: P0, lprgbtriple: *const super::super::Graphics::Gdi::RGBTRIPLE, dlpbuffer: *mut ::core::ffi::c_void, ncount: u32) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -930,7 +930,7 @@ where extern "system" { fn CheckColorsInGamut(hdc: super::super::Graphics::Gdi::HDC, lprgbtriple: *const super::super::Graphics::Gdi::RGBTRIPLE, dlpbuffer: *mut ::core::ffi::c_void, ncount: u32) -> super::super::Foundation::BOOL; } - CheckColorsInGamut(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(lprgbtriple)), ::core::mem::transmute(dlpbuffer), lprgbtriple.len() as _) + CheckColorsInGamut(hdc.into(), ::core::mem::transmute(lprgbtriple), ::core::mem::transmute(dlpbuffer), ::core::mem::transmute(ncount)) } #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1047,7 +1047,7 @@ where #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ConvertColorNameToIndex(hprofile: isize, pacolorname: &*const i8, paindex: &mut u32, dwcount: u32) -> super::super::Foundation::BOOL { +pub unsafe fn ConvertColorNameToIndex(hprofile: isize, pacolorname: *const *const i8, paindex: *mut u32, dwcount: u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ConvertColorNameToIndex(hprofile: isize, pacolorname: *const *const i8, paindex: *mut u32, dwcount: u32) -> super::super::Foundation::BOOL; @@ -1057,7 +1057,7 @@ pub unsafe fn ConvertColorNameToIndex(hprofile: isize, pacolorname: &*const i8, #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ConvertIndexToColorName(hprofile: isize, paindex: &u32, pacolorname: &mut *mut i8, dwcount: u32) -> super::super::Foundation::BOOL { +pub unsafe fn ConvertIndexToColorName(hprofile: isize, paindex: *const u32, pacolorname: *mut *mut i8, dwcount: u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ConvertIndexToColorName(hprofile: isize, paindex: *const u32, pacolorname: *mut *mut i8, dwcount: u32) -> super::super::Foundation::BOOL; @@ -1112,7 +1112,7 @@ pub unsafe fn CreateDeviceLinkProfile(hprofile: &[isize], padwintent: &[u32], dw extern "system" { fn CreateDeviceLinkProfile(hprofile: *const isize, nprofiles: u32, padwintent: *const u32, nintents: u32, dwflags: u32, pprofiledata: *mut *mut u8, indexpreferredcmm: u32) -> super::super::Foundation::BOOL; } - CreateDeviceLinkProfile(::core::mem::transmute(::windows::core::as_ptr_or_null(hprofile)), hprofile.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(padwintent)), padwintent.len() as _, dwflags, ::core::mem::transmute(pprofiledata), indexpreferredcmm) + CreateDeviceLinkProfile(::core::mem::transmute(hprofile.as_ptr()), hprofile.len() as _, ::core::mem::transmute(padwintent.as_ptr()), padwintent.len() as _, dwflags, ::core::mem::transmute(pprofiledata), indexpreferredcmm) } #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`*"] #[inline] @@ -1121,7 +1121,7 @@ pub unsafe fn CreateMultiProfileTransform(pahprofiles: &[isize], padwintent: &[u extern "system" { fn CreateMultiProfileTransform(pahprofiles: *const isize, nprofiles: u32, padwintent: *const u32, nintents: u32, dwflags: u32, indexpreferredcmm: u32) -> isize; } - CreateMultiProfileTransform(::core::mem::transmute(::windows::core::as_ptr_or_null(pahprofiles)), pahprofiles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(padwintent)), padwintent.len() as _, dwflags, indexpreferredcmm) + CreateMultiProfileTransform(::core::mem::transmute(pahprofiles.as_ptr()), pahprofiles.len() as _, ::core::mem::transmute(padwintent.as_ptr()), padwintent.len() as _, dwflags, indexpreferredcmm) } #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -1466,7 +1466,7 @@ pub const ET_STANDARDDISPLAYCOLOR: u32 = 131072u32; #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumColorProfilesA<'a, P0>(pmachinename: P0, penumrecord: &ENUMTYPEA, penumerationbuffer: ::core::option::Option<&mut u8>, pdwsizeofenumerationbuffer: &mut u32, pnprofiles: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn EnumColorProfilesA<'a, P0>(pmachinename: P0, penumrecord: &ENUMTYPEA, penumerationbuffer: *mut u8, pdwsizeofenumerationbuffer: &mut u32, pnprofiles: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -1479,7 +1479,7 @@ where #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn EnumColorProfilesW<'a, P0>(pmachinename: P0, penumrecord: &ENUMTYPEW, penumerationbuffer: ::core::option::Option<&mut u8>, pdwsizeofenumerationbuffer: &mut u32, pnprofiles: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL +pub unsafe fn EnumColorProfilesW<'a, P0>(pmachinename: P0, penumrecord: &ENUMTYPEW, penumerationbuffer: *mut u8, pdwsizeofenumerationbuffer: &mut u32, pnprofiles: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -1745,7 +1745,7 @@ pub unsafe fn GetColorProfileElementTag(hprofile: isize, dwindex: u32, ptag: &mu #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetColorProfileFromHandle(hprofile: isize, pprofile: ::core::option::Option<&mut u8>, pcbprofile: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn GetColorProfileFromHandle(hprofile: isize, pprofile: *mut u8, pcbprofile: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetColorProfileFromHandle(hprofile: isize, pprofile: *mut u8, pcbprofile: *mut u32) -> super::super::Foundation::BOOL; @@ -1827,7 +1827,7 @@ where #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] #[inline] -pub unsafe fn GetLogColorSpaceA<'a, P0>(hcolorspace: P0, lpbuffer: &mut LOGCOLORSPACEA, nsize: u32) -> super::super::Foundation::BOOL +pub unsafe fn GetLogColorSpaceA<'a, P0>(hcolorspace: P0, lpbuffer: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1835,12 +1835,12 @@ where extern "system" { fn GetLogColorSpaceA(hcolorspace: HCOLORSPACE, lpbuffer: *mut LOGCOLORSPACEA, nsize: u32) -> super::super::Foundation::BOOL; } - GetLogColorSpaceA(hcolorspace.into(), ::core::mem::transmute(lpbuffer), nsize) + GetLogColorSpaceA(hcolorspace.into(), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _) } #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] #[inline] -pub unsafe fn GetLogColorSpaceW<'a, P0>(hcolorspace: P0, lpbuffer: &mut LOGCOLORSPACEW, nsize: u32) -> super::super::Foundation::BOOL +pub unsafe fn GetLogColorSpaceW<'a, P0>(hcolorspace: P0, lpbuffer: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -1848,7 +1848,7 @@ where extern "system" { fn GetLogColorSpaceW(hcolorspace: HCOLORSPACE, lpbuffer: *mut LOGCOLORSPACEW, nsize: u32) -> super::super::Foundation::BOOL; } - GetLogColorSpaceW(hcolorspace.into(), ::core::mem::transmute(lpbuffer), nsize) + GetLogColorSpaceW(hcolorspace.into(), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _) } #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1863,7 +1863,7 @@ pub unsafe fn GetNamedProfileInfo(hprofile: isize, pnamedprofileinfo: &mut NAMED #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPS2ColorRenderingDictionary(hprofile: isize, dwintent: u32, pps2colorrenderingdictionary: ::core::option::Option<&mut u8>, pcbps2colorrenderingdictionary: &mut u32, pbbinary: &mut super::super::Foundation::BOOL) -> super::super::Foundation::BOOL { +pub unsafe fn GetPS2ColorRenderingDictionary(hprofile: isize, dwintent: u32, pps2colorrenderingdictionary: *mut u8, pcbps2colorrenderingdictionary: &mut u32, pbbinary: &mut super::super::Foundation::BOOL) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetPS2ColorRenderingDictionary(hprofile: isize, dwintent: u32, pps2colorrenderingdictionary: *mut u8, pcbps2colorrenderingdictionary: *mut u32, pbbinary: *mut super::super::Foundation::BOOL) -> super::super::Foundation::BOOL; @@ -1873,7 +1873,7 @@ pub unsafe fn GetPS2ColorRenderingDictionary(hprofile: isize, dwintent: u32, pps #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPS2ColorRenderingIntent(hprofile: isize, dwintent: u32, pbuffer: ::core::option::Option<&mut u8>, pcbps2colorrenderingintent: &mut u32) -> super::super::Foundation::BOOL { +pub unsafe fn GetPS2ColorRenderingIntent(hprofile: isize, dwintent: u32, pbuffer: *mut u8, pcbps2colorrenderingintent: &mut u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetPS2ColorRenderingIntent(hprofile: isize, dwintent: u32, pbuffer: *mut u8, pcbps2colorrenderingintent: *mut u32) -> super::super::Foundation::BOOL; @@ -1883,7 +1883,7 @@ pub unsafe fn GetPS2ColorRenderingIntent(hprofile: isize, dwintent: u32, pbuffer #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetPS2ColorSpaceArray(hprofile: isize, dwintent: u32, dwcsatype: u32, pps2colorspacearray: ::core::option::Option<&mut u8>, pcbps2colorspacearray: &mut u32, pbbinary: &mut super::super::Foundation::BOOL) -> super::super::Foundation::BOOL { +pub unsafe fn GetPS2ColorSpaceArray(hprofile: isize, dwintent: u32, dwcsatype: u32, pps2colorspacearray: *mut u8, pcbps2colorspacearray: &mut u32, pbbinary: &mut super::super::Foundation::BOOL) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetPS2ColorSpaceArray(hprofile: isize, dwintent: u32, dwcsatype: u32, pps2colorspacearray: *mut u8, pcbps2colorspacearray: *mut u32, pbbinary: *mut super::super::Foundation::BOOL) -> super::super::Foundation::BOOL; @@ -2069,15 +2069,15 @@ impl IDeviceModelPlugIn { (::windows::core::Interface::vtable(self).GetNumChannels)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn DeviceToColorimetricColors(&self, cchannels: u32, pdevicevalues: &f32, pxyzcolors: &mut [XYZColorF]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).DeviceToColorimetricColors)(::windows::core::Interface::as_raw(self), pxyzcolors.len() as _, cchannels, ::core::mem::transmute(pdevicevalues), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pxyzcolors))).ok() + (::windows::core::Interface::vtable(self).DeviceToColorimetricColors)(::windows::core::Interface::as_raw(self), pxyzcolors.len() as _, cchannels, ::core::mem::transmute(pdevicevalues), ::core::mem::transmute(pxyzcolors.as_ptr())).ok() } pub unsafe fn ColorimetricToDeviceColors(&self, cchannels: u32, pxyzcolors: &[XYZColorF]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).ColorimetricToDeviceColors)(::windows::core::Interface::as_raw(self), pxyzcolors.len() as _, cchannels, ::core::mem::transmute(::windows::core::as_ptr_or_null(pxyzcolors)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).ColorimetricToDeviceColors)(::windows::core::Interface::as_raw(self), pxyzcolors.len() as _, cchannels, ::core::mem::transmute(pxyzcolors.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn ColorimetricToDeviceColorsWithBlack(&self, ccolors: u32, cchannels: u32, pxyzcolors: &XYZColorF, pblackinformation: &BlackInformation) -> ::windows::core::Result { + pub unsafe fn ColorimetricToDeviceColorsWithBlack(&self, ccolors: u32, cchannels: u32, pxyzcolors: *const XYZColorF, pblackinformation: *const BlackInformation) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).ColorimetricToDeviceColorsWithBlack)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ccolors), cchannels, ::core::mem::transmute(pxyzcolors), ::core::mem::transmute(pblackinformation), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } @@ -2095,14 +2095,14 @@ impl IDeviceModelPlugIn { (::windows::core::Interface::vtable(self).GetGamutBoundaryMeshSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pnumvertices), ::core::mem::transmute(pnumtriangles)).ok() } pub unsafe fn GetGamutBoundaryMesh(&self, cchannels: u32, cvertices: u32, pvertices: &mut f32, ptriangles: &mut [GamutShellTriangle]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetGamutBoundaryMesh)(::windows::core::Interface::as_raw(self), cchannels, cvertices, ptriangles.len() as _, ::core::mem::transmute(pvertices), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ptriangles))).ok() + (::windows::core::Interface::vtable(self).GetGamutBoundaryMesh)(::windows::core::Interface::as_raw(self), cchannels, cvertices, ptriangles.len() as _, ::core::mem::transmute(pvertices), ::core::mem::transmute(ptriangles.as_ptr())).ok() } pub unsafe fn GetNeutralAxisSize(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetNeutralAxisSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetNeutralAxis(&self, pxyzcolors: &mut [XYZColorF]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetNeutralAxis)(::windows::core::Interface::as_raw(self), pxyzcolors.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pxyzcolors))).ok() + (::windows::core::Interface::vtable(self).GetNeutralAxis)(::windows::core::Interface::as_raw(self), pxyzcolors.len() as _, ::core::mem::transmute(pxyzcolors.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2176,7 +2176,7 @@ impl IGamutMapModelPlugIn { { (::windows::core::Interface::vtable(self).Initialize)(::windows::core::Interface::as_raw(self), bstrxml.into().abi(), psrcplugin.into().abi(), pdestplugin.into().abi(), ::core::mem::transmute(psrcgbd), ::core::mem::transmute(pdestgbd)).ok() } - pub unsafe fn SourceToDestinationAppearanceColors(&self, ccolors: u32, pinputcolors: &JChColorF, poutputcolors: &mut JChColorF) -> ::windows::core::Result<()> { + pub unsafe fn SourceToDestinationAppearanceColors(&self, ccolors: u32, pinputcolors: *const JChColorF, poutputcolors: *mut JChColorF) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SourceToDestinationAppearanceColors)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ccolors), ::core::mem::transmute(pinputcolors), ::core::mem::transmute(poutputcolors)).ok() } } @@ -2835,12 +2835,12 @@ pub unsafe fn SelectCMM(dwcmmtype: u32) -> super::super::Foundation::BOOL { #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetColorProfileElement(hprofile: isize, tag: u32, dwoffset: u32, pelement: &[u8]) -> super::super::Foundation::BOOL { +pub unsafe fn SetColorProfileElement(hprofile: isize, tag: u32, dwoffset: u32, pcbelement: &u32, pelement: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetColorProfileElement(hprofile: isize, tag: u32, dwoffset: u32, pcbelement: *const u32, pelement: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetColorProfileElement(hprofile, tag, dwoffset, pelement.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pelement))) + SetColorProfileElement(hprofile, tag, dwoffset, ::core::mem::transmute(pcbelement), ::core::mem::transmute(pelement)) } #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3004,7 +3004,7 @@ where #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn TranslateColors(hcolortransform: isize, painputcolors: &COLOR, ncolors: u32, ctinput: COLORTYPE, paoutputcolors: &mut COLOR, ctoutput: COLORTYPE) -> super::super::Foundation::BOOL { +pub unsafe fn TranslateColors(hcolortransform: isize, painputcolors: *const COLOR, ncolors: u32, ctinput: COLORTYPE, paoutputcolors: *mut COLOR, ctoutput: COLORTYPE) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn TranslateColors(hcolortransform: isize, painputcolors: *const COLOR, ncolors: u32, ctinput: COLORTYPE, paoutputcolors: *mut COLOR, ctoutput: COLORTYPE) -> super::super::Foundation::BOOL; @@ -3255,12 +3255,12 @@ where #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WcsCheckColors(hcolortransform: isize, ninputchannels: u32, cdtinput: COLORDATATYPE, cbinput: u32, pinputdata: *const ::core::ffi::c_void, paresult: &mut [u8]) -> super::super::Foundation::BOOL { +pub unsafe fn WcsCheckColors(hcolortransform: isize, ninputchannels: u32, cdtinput: COLORDATATYPE, pinputdata: &[u8], paresult: &mut [u8]) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WcsCheckColors(hcolortransform: isize, ncolors: u32, ninputchannels: u32, cdtinput: COLORDATATYPE, cbinput: u32, pinputdata: *const ::core::ffi::c_void, paresult: *mut u8) -> super::super::Foundation::BOOL; } - WcsCheckColors(hcolortransform, paresult.len() as _, ninputchannels, cdtinput, cbinput, ::core::mem::transmute(pinputdata), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(paresult))) + WcsCheckColors(hcolortransform, paresult.len() as _, ninputchannels, cdtinput, pinputdata.len() as _, ::core::mem::transmute(pinputdata.as_ptr()), ::core::mem::transmute(paresult.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`*"] #[inline] @@ -3288,12 +3288,12 @@ where #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WcsEnumColorProfiles(scope: WCS_PROFILE_MANAGEMENT_SCOPE, penumrecord: &ENUMTYPEW, pbuffer: &mut u8, dwsize: u32, pnprofiles: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { +pub unsafe fn WcsEnumColorProfiles(scope: WCS_PROFILE_MANAGEMENT_SCOPE, penumrecord: &ENUMTYPEW, pbuffer: &mut [u8], pnprofiles: ::core::option::Option<&mut u32>) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WcsEnumColorProfiles(scope: WCS_PROFILE_MANAGEMENT_SCOPE, penumrecord: *const ENUMTYPEW, pbuffer: *mut u8, dwsize: u32, pnprofiles: *mut u32) -> super::super::Foundation::BOOL; } - WcsEnumColorProfiles(scope, ::core::mem::transmute(penumrecord), ::core::mem::transmute(pbuffer), dwsize, ::core::mem::transmute(pnprofiles)) + WcsEnumColorProfiles(scope, ::core::mem::transmute(penumrecord), ::core::mem::transmute(pbuffer.as_ptr()), pbuffer.len() as _, ::core::mem::transmute(pnprofiles)) } #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3318,7 +3318,7 @@ pub unsafe fn WcsGetCalibrationManagementState(pbisenabled: &mut super::super::F #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WcsGetDefaultColorProfile<'a, P0>(scope: WCS_PROFILE_MANAGEMENT_SCOPE, pdevicename: P0, cptcolorprofiletype: COLORPROFILETYPE, cpstcolorprofilesubtype: COLORPROFILESUBTYPE, dwprofileid: u32, cbprofilename: u32, pprofilename: ::windows::core::PWSTR) -> super::super::Foundation::BOOL +pub unsafe fn WcsGetDefaultColorProfile<'a, P0>(scope: WCS_PROFILE_MANAGEMENT_SCOPE, pdevicename: P0, cptcolorprofiletype: COLORPROFILETYPE, cpstcolorprofilesubtype: COLORPROFILESUBTYPE, dwprofileid: u32, pprofilename: &mut [u8]) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -3326,7 +3326,7 @@ where extern "system" { fn WcsGetDefaultColorProfile(scope: WCS_PROFILE_MANAGEMENT_SCOPE, pdevicename: ::windows::core::PCWSTR, cptcolorprofiletype: COLORPROFILETYPE, cpstcolorprofilesubtype: COLORPROFILESUBTYPE, dwprofileid: u32, cbprofilename: u32, pprofilename: ::windows::core::PWSTR) -> super::super::Foundation::BOOL; } - WcsGetDefaultColorProfile(scope, pdevicename.into(), cptcolorprofiletype, cpstcolorprofilesubtype, dwprofileid, cbprofilename, ::core::mem::transmute(pprofilename)) + WcsGetDefaultColorProfile(scope, pdevicename.into(), cptcolorprofiletype, cpstcolorprofilesubtype, dwprofileid, pprofilename.len() as _, ::core::mem::transmute(pprofilename.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3436,12 +3436,12 @@ where #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn WcsTranslateColors(hcolortransform: isize, ncolors: u32, ninputchannels: u32, cdtinput: COLORDATATYPE, cbinput: u32, pinputdata: *const ::core::ffi::c_void, noutputchannels: u32, cdtoutput: COLORDATATYPE, cboutput: u32, poutputdata: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL { +pub unsafe fn WcsTranslateColors(hcolortransform: isize, ncolors: u32, ninputchannels: u32, cdtinput: COLORDATATYPE, pinputdata: &[u8], noutputchannels: u32, cdtoutput: COLORDATATYPE, poutputdata: &mut [u8]) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn WcsTranslateColors(hcolortransform: isize, ncolors: u32, ninputchannels: u32, cdtinput: COLORDATATYPE, cbinput: u32, pinputdata: *const ::core::ffi::c_void, noutputchannels: u32, cdtoutput: COLORDATATYPE, cboutput: u32, poutputdata: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - WcsTranslateColors(hcolortransform, ncolors, ninputchannels, cdtinput, cbinput, ::core::mem::transmute(pinputdata), noutputchannels, cdtoutput, cboutput, ::core::mem::transmute(poutputdata)) + WcsTranslateColors(hcolortransform, ncolors, ninputchannels, cdtinput, pinputdata.len() as _, ::core::mem::transmute(pinputdata.as_ptr()), noutputchannels, cdtoutput, poutputdata.len() as _, ::core::mem::transmute(poutputdata.as_ptr())) } #[repr(C)] #[doc = "*Required features: `\"Win32_UI_ColorSystem\"`*"] diff --git a/crates/libs/windows/src/Windows/Win32/UI/Controls/Dialogs/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/Controls/Dialogs/mod.rs index 34727812d4..3aaaf3f970 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/Controls/Dialogs/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/Controls/Dialogs/mod.rs @@ -1225,7 +1225,7 @@ where extern "system" { fn GetFileTitleA(param0: ::windows::core::PCSTR, buf: ::windows::core::PSTR, cchsize: u16) -> i16; } - GetFileTitleA(param0.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buf)), buf.len() as _) + GetFileTitleA(param0.into(), ::core::mem::transmute(buf.as_ptr()), buf.len() as _) } #[doc = "*Required features: `\"Win32_UI_Controls_Dialogs\"`*"] #[inline] @@ -1237,7 +1237,7 @@ where extern "system" { fn GetFileTitleW(param0: ::windows::core::PCWSTR, buf: ::windows::core::PWSTR, cchsize: u16) -> i16; } - GetFileTitleW(param0.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(buf)), buf.len() as _) + GetFileTitleW(param0.into(), ::core::mem::transmute(buf.as_ptr()), buf.len() as _) } #[doc = "*Required features: `\"Win32_UI_Controls_Dialogs\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/UI/Controls/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/Controls/mod.rs index a6f3c003cb..644a7815fa 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/Controls/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/Controls/mod.rs @@ -2770,7 +2770,7 @@ where extern "system" { fn DlgDirSelectComboBoxExA(hwnddlg: super::super::Foundation::HWND, lpstring: ::windows::core::PSTR, cchout: i32, idcombobox: i32) -> super::super::Foundation::BOOL; } - DlgDirSelectComboBoxExA(hwnddlg.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstring)), lpstring.len() as _, idcombobox) + DlgDirSelectComboBoxExA(hwnddlg.into(), ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _, idcombobox) } #[doc = "*Required features: `\"Win32_UI_Controls\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2783,7 +2783,7 @@ where extern "system" { fn DlgDirSelectComboBoxExW(hwnddlg: super::super::Foundation::HWND, lpstring: ::windows::core::PWSTR, cchout: i32, idcombobox: i32) -> super::super::Foundation::BOOL; } - DlgDirSelectComboBoxExW(hwnddlg.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstring)), lpstring.len() as _, idcombobox) + DlgDirSelectComboBoxExW(hwnddlg.into(), ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _, idcombobox) } #[doc = "*Required features: `\"Win32_UI_Controls\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2796,7 +2796,7 @@ where extern "system" { fn DlgDirSelectExA(hwnddlg: super::super::Foundation::HWND, lpstring: ::windows::core::PSTR, chcount: i32, idlistbox: i32) -> super::super::Foundation::BOOL; } - DlgDirSelectExA(hwnddlg.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstring)), lpstring.len() as _, idlistbox) + DlgDirSelectExA(hwnddlg.into(), ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _, idlistbox) } #[doc = "*Required features: `\"Win32_UI_Controls\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2809,7 +2809,7 @@ where extern "system" { fn DlgDirSelectExW(hwnddlg: super::super::Foundation::HWND, lpstring: ::windows::core::PWSTR, chcount: i32, idlistbox: i32) -> super::super::Foundation::BOOL; } - DlgDirSelectExW(hwnddlg.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstring)), lpstring.len() as _, idlistbox) + DlgDirSelectExW(hwnddlg.into(), ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _, idlistbox) } #[doc = "*Required features: `\"Win32_UI_Controls\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2836,7 +2836,7 @@ where extern "system" { fn DrawShadowText(hdc: super::super::Graphics::Gdi::HDC, psztext: ::windows::core::PCWSTR, cch: u32, prc: *const super::super::Foundation::RECT, dwflags: u32, crtext: u32, crshadow: u32, ixoffset: i32, iyoffset: i32) -> i32; } - DrawShadowText(hdc.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(psztext)), psztext.len() as _, ::core::mem::transmute(prc), dwflags, crtext, crshadow, ixoffset, iyoffset) + DrawShadowText(hdc.into(), ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _, ::core::mem::transmute(prc), dwflags, crtext, crshadow, ixoffset, iyoffset) } #[doc = "*Required features: `\"Win32_UI_Controls\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -2959,7 +2959,7 @@ where extern "system" { fn DrawThemeText(htheme: isize, hdc: super::super::Graphics::Gdi::HDC, ipartid: i32, istateid: i32, psztext: ::windows::core::PCWSTR, cchtext: i32, dwtextflags: u32, dwtextflags2: u32, prect: *const super::super::Foundation::RECT) -> ::windows::core::HRESULT; } - DrawThemeText(htheme, hdc.into(), ipartid, istateid, ::core::mem::transmute(::windows::core::as_ptr_or_null(psztext)), psztext.len() as _, dwtextflags, dwtextflags2, ::core::mem::transmute(prect)).ok() + DrawThemeText(htheme, hdc.into(), ipartid, istateid, ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _, dwtextflags, dwtextflags2, ::core::mem::transmute(prect)).ok() } #[doc = "*Required features: `\"Win32_UI_Controls\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -2972,7 +2972,7 @@ where extern "system" { fn DrawThemeTextEx(htheme: isize, hdc: super::super::Graphics::Gdi::HDC, ipartid: i32, istateid: i32, psztext: ::windows::core::PCWSTR, cchtext: i32, dwtextflags: u32, prect: *mut super::super::Foundation::RECT, poptions: *const DTTOPTS) -> ::windows::core::HRESULT; } - DrawThemeTextEx(htheme, hdc.into(), ipartid, istateid, ::core::mem::transmute(::windows::core::as_ptr_or_null(psztext)), psztext.len() as _, dwtextflags, ::core::mem::transmute(prect), ::core::mem::transmute(poptions)).ok() + DrawThemeTextEx(htheme, hdc.into(), ipartid, istateid, ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _, dwtextflags, ::core::mem::transmute(prect), ::core::mem::transmute(poptions)).ok() } #[doc = "*Required features: `\"Win32_UI_Controls\"`*"] pub const ECM_FIRST: u32 = 5376u32; @@ -3397,7 +3397,7 @@ pub unsafe fn EvaluateProximityToPolygon(controlpolygon: &[super::super::Foundat extern "system" { fn EvaluateProximityToPolygon(numvertices: u32, controlpolygon: *const super::super::Foundation::POINT, phittestinginput: *const TOUCH_HIT_TESTING_INPUT, pproximityeval: *mut TOUCH_HIT_TESTING_PROXIMITY_EVALUATION) -> super::super::Foundation::BOOL; } - EvaluateProximityToPolygon(controlpolygon.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(controlpolygon)), ::core::mem::transmute(phittestinginput), ::core::mem::transmute(pproximityeval)) + EvaluateProximityToPolygon(controlpolygon.len() as _, ::core::mem::transmute(controlpolygon.as_ptr()), ::core::mem::transmute(phittestinginput), ::core::mem::transmute(pproximityeval)) } #[doc = "*Required features: `\"Win32_UI_Controls\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3902,12 +3902,12 @@ where } #[doc = "*Required features: `\"Win32_UI_Controls\"`*"] #[inline] -pub unsafe fn GetCurrentThemeName(pszthemefilename: &mut [u16], pszcolorbuff: &mut [u16], pszsizebuff: &mut [u16]) -> ::windows::core::Result<()> { +pub unsafe fn GetCurrentThemeName(pszthemefilename: &mut [u16], pszcolorbuff: ::core::option::Option<&mut [u16]>, pszsizebuff: ::core::option::Option<&mut [u16]>) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetCurrentThemeName(pszthemefilename: ::windows::core::PWSTR, cchmaxnamechars: i32, pszcolorbuff: ::windows::core::PWSTR, cchmaxcolorchars: i32, pszsizebuff: ::windows::core::PWSTR, cchmaxsizechars: i32) -> ::windows::core::HRESULT; } - GetCurrentThemeName(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszthemefilename)), pszthemefilename.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszcolorbuff)), pszcolorbuff.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszsizebuff)), pszsizebuff.len() as _).ok() + GetCurrentThemeName(::core::mem::transmute(pszthemefilename.as_ptr()), pszthemefilename.len() as _, ::core::mem::transmute(pszcolorbuff.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszcolorbuff.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pszsizebuff.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszsizebuff.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_UI_Controls\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3946,21 +3946,21 @@ pub unsafe fn GetMUILanguage() -> u16 { } #[doc = "*Required features: `\"Win32_UI_Controls\"`*"] #[inline] -pub unsafe fn GetThemeAnimationProperty(htheme: isize, istoryboardid: i32, itargetid: i32, eproperty: TA_PROPERTY, pvproperty: *mut ::core::ffi::c_void, cbsize: u32, pcbsizeout: &mut u32) -> ::windows::core::Result<()> { +pub unsafe fn GetThemeAnimationProperty(htheme: isize, istoryboardid: i32, itargetid: i32, eproperty: TA_PROPERTY, pvproperty: ::core::option::Option<&mut [u8]>, pcbsizeout: &mut u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetThemeAnimationProperty(htheme: isize, istoryboardid: i32, itargetid: i32, eproperty: TA_PROPERTY, pvproperty: *mut ::core::ffi::c_void, cbsize: u32, pcbsizeout: *mut u32) -> ::windows::core::HRESULT; } - GetThemeAnimationProperty(htheme, istoryboardid, itargetid, eproperty, ::core::mem::transmute(pvproperty), cbsize, ::core::mem::transmute(pcbsizeout)).ok() + GetThemeAnimationProperty(htheme, istoryboardid, itargetid, eproperty, ::core::mem::transmute(pvproperty.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvproperty.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbsizeout)).ok() } #[doc = "*Required features: `\"Win32_UI_Controls\"`*"] #[inline] -pub unsafe fn GetThemeAnimationTransform(htheme: isize, istoryboardid: i32, itargetid: i32, dwtransformindex: u32, ptransform: ::core::option::Option<&mut TA_TRANSFORM>, cbsize: u32, pcbsizeout: &mut u32) -> ::windows::core::Result<()> { +pub unsafe fn GetThemeAnimationTransform(htheme: isize, istoryboardid: i32, itargetid: i32, dwtransformindex: u32, ptransform: ::core::option::Option<&mut [u8]>, pcbsizeout: &mut u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetThemeAnimationTransform(htheme: isize, istoryboardid: i32, itargetid: i32, dwtransformindex: u32, ptransform: *mut TA_TRANSFORM, cbsize: u32, pcbsizeout: *mut u32) -> ::windows::core::HRESULT; } - GetThemeAnimationTransform(htheme, istoryboardid, itargetid, dwtransformindex, ::core::mem::transmute(ptransform), cbsize, ::core::mem::transmute(pcbsizeout)).ok() + GetThemeAnimationTransform(htheme, istoryboardid, itargetid, dwtransformindex, ::core::mem::transmute(ptransform.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ptransform.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbsizeout)).ok() } #[doc = "*Required features: `\"Win32_UI_Controls\"`*"] #[inline] @@ -4056,7 +4056,7 @@ where extern "system" { fn GetThemeDocumentationProperty(pszthemename: ::windows::core::PCWSTR, pszpropertyname: ::windows::core::PCWSTR, pszvaluebuff: ::windows::core::PWSTR, cchmaxvalchars: i32) -> ::windows::core::HRESULT; } - GetThemeDocumentationProperty(pszthemename.into(), pszpropertyname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszvaluebuff)), pszvaluebuff.len() as _).ok() + GetThemeDocumentationProperty(pszthemename.into(), pszpropertyname.into(), ::core::mem::transmute(pszvaluebuff.as_ptr()), pszvaluebuff.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Controls\"`*"] #[inline] @@ -4075,7 +4075,7 @@ pub unsafe fn GetThemeFilename(htheme: isize, ipartid: i32, istateid: i32, iprop extern "system" { fn GetThemeFilename(htheme: isize, ipartid: i32, istateid: i32, ipropid: i32, pszthemefilename: ::windows::core::PWSTR, cchmaxbuffchars: i32) -> ::windows::core::HRESULT; } - GetThemeFilename(htheme, ipartid, istateid, ipropid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszthemefilename)), pszthemefilename.len() as _).ok() + GetThemeFilename(htheme, ipartid, istateid, ipropid, ::core::mem::transmute(pszthemefilename.as_ptr()), pszthemefilename.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Controls\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] @@ -4205,7 +4205,7 @@ pub unsafe fn GetThemeString(htheme: isize, ipartid: i32, istateid: i32, ipropid extern "system" { fn GetThemeString(htheme: isize, ipartid: i32, istateid: i32, ipropid: i32, pszbuff: ::windows::core::PWSTR, cchmaxbuffchars: i32) -> ::windows::core::HRESULT; } - GetThemeString(htheme, ipartid, istateid, ipropid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuff)), pszbuff.len() as _).ok() + GetThemeString(htheme, ipartid, istateid, ipropid, ::core::mem::transmute(pszbuff.as_ptr()), pszbuff.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Controls\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4273,7 +4273,7 @@ pub unsafe fn GetThemeSysString(htheme: isize, istringid: THEME_PROPERTY_SYMBOL_ extern "system" { fn GetThemeSysString(htheme: isize, istringid: THEME_PROPERTY_SYMBOL_ID, pszstringbuff: ::windows::core::PWSTR, cchmaxstringchars: i32) -> ::windows::core::HRESULT; } - GetThemeSysString(htheme, istringid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszstringbuff)), pszstringbuff.len() as _).ok() + GetThemeSysString(htheme, istringid, ::core::mem::transmute(pszstringbuff.as_ptr()), pszstringbuff.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Controls\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -4287,7 +4287,7 @@ where fn GetThemeTextExtent(htheme: isize, hdc: super::super::Graphics::Gdi::HDC, ipartid: i32, istateid: i32, psztext: ::windows::core::PCWSTR, cchcharcount: i32, dwtextflags: u32, pboundingrect: *const super::super::Foundation::RECT, pextentrect: *mut super::super::Foundation::RECT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - GetThemeTextExtent(htheme, hdc.into(), ipartid, istateid, ::core::mem::transmute(::windows::core::as_ptr_or_null(psztext)), psztext.len() as _, dwtextflags, ::core::mem::transmute(pboundingrect), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + GetThemeTextExtent(htheme, hdc.into(), ipartid, istateid, ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _, dwtextflags, ::core::mem::transmute(pboundingrect), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Controls\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] @@ -4305,12 +4305,12 @@ where } #[doc = "*Required features: `\"Win32_UI_Controls\"`*"] #[inline] -pub unsafe fn GetThemeTimingFunction(htheme: isize, itimingfunctionid: i32, ptimingfunction: ::core::option::Option<&mut TA_TIMINGFUNCTION>, cbsize: u32, pcbsizeout: &mut u32) -> ::windows::core::Result<()> { +pub unsafe fn GetThemeTimingFunction(htheme: isize, itimingfunctionid: i32, ptimingfunction: ::core::option::Option<&mut [u8]>, pcbsizeout: &mut u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetThemeTimingFunction(htheme: isize, itimingfunctionid: i32, ptimingfunction: *mut TA_TIMINGFUNCTION, cbsize: u32, pcbsizeout: *mut u32) -> ::windows::core::HRESULT; } - GetThemeTimingFunction(htheme, itimingfunctionid, ::core::mem::transmute(ptimingfunction), cbsize, ::core::mem::transmute(pcbsizeout)).ok() + GetThemeTimingFunction(htheme, itimingfunctionid, ::core::mem::transmute(ptimingfunction.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ptimingfunction.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcbsizeout)).ok() } #[doc = "*Required features: `\"Win32_UI_Controls\"`*"] #[inline] @@ -17492,7 +17492,7 @@ pub unsafe fn SetThemeAppProperties(dwflags: u32) { #[doc = "*Required features: `\"Win32_UI_Controls\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetWindowFeedbackSetting<'a, P0>(hwnd: P0, feedback: FEEDBACK_TYPE, dwflags: u32, size: u32, configuration: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL +pub unsafe fn SetWindowFeedbackSetting<'a, P0>(hwnd: P0, feedback: FEEDBACK_TYPE, dwflags: u32, configuration: ::core::option::Option<&[u8]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -17500,7 +17500,7 @@ where extern "system" { fn SetWindowFeedbackSetting(hwnd: super::super::Foundation::HWND, feedback: FEEDBACK_TYPE, dwflags: u32, size: u32, configuration: *const ::core::ffi::c_void) -> super::super::Foundation::BOOL; } - SetWindowFeedbackSetting(hwnd.into(), feedback, dwflags, size, ::core::mem::transmute(configuration)) + SetWindowFeedbackSetting(hwnd.into(), feedback, dwflags, configuration.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(configuration.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_UI_Controls\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -17520,7 +17520,7 @@ where #[doc = "*Required features: `\"Win32_UI_Controls\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetWindowThemeAttribute<'a, P0>(hwnd: P0, eattribute: WINDOWTHEMEATTRIBUTETYPE, pvattribute: *const ::core::ffi::c_void, cbattribute: u32) -> ::windows::core::Result<()> +pub unsafe fn SetWindowThemeAttribute<'a, P0>(hwnd: P0, eattribute: WINDOWTHEMEATTRIBUTETYPE, pvattribute: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into, { @@ -17528,7 +17528,7 @@ where extern "system" { fn SetWindowThemeAttribute(hwnd: super::super::Foundation::HWND, eattribute: WINDOWTHEMEATTRIBUTETYPE, pvattribute: *const ::core::ffi::c_void, cbattribute: u32) -> ::windows::core::HRESULT; } - SetWindowThemeAttribute(hwnd.into(), eattribute, ::core::mem::transmute(pvattribute), cbattribute).ok() + SetWindowThemeAttribute(hwnd.into(), eattribute, ::core::mem::transmute(pvattribute.as_ptr()), pvattribute.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Controls\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/UI/Input/Ime/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/Input/Ime/mod.rs index bf09e7b2a6..74ede2adb7 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/Input/Ime/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/Input/Ime/mod.rs @@ -3427,7 +3427,7 @@ pub struct IFEClassFactory_Vtbl { pub struct IFECommon(::windows::core::IUnknown); impl IFECommon { pub unsafe fn IsDefaultIME(&self, szname: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).IsDefaultIME)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(szname)), szname.len() as _).ok() + (::windows::core::Interface::vtable(self).IsDefaultIME)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(szname.as_ptr()), szname.len() as _).ok() } pub unsafe fn SetDefaultIME(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetDefaultIME)(::windows::core::Interface::as_raw(self)).ok() @@ -3611,16 +3611,16 @@ pub struct IFEDictionary(::windows::core::IUnknown); impl IFEDictionary { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn Open(&self, pchdictpath: &mut [u8; 260], pshf: &mut IMESHF) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Open)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pchdictpath)), ::core::mem::transmute(pshf)).ok() + pub unsafe fn Open(&self, pchdictpath: ::core::option::Option<&mut [u8; 260]>, pshf: &mut IMESHF) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).Open)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pchdictpath.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pshf)).ok() } pub unsafe fn Close(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Close)(::windows::core::Interface::as_raw(self)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetHeader(&self, pchdictpath: &mut [u8; 260], pshf: &mut IMESHF, pjfmt: &mut IMEFMT, pultype: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetHeader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pchdictpath)), ::core::mem::transmute(pshf), ::core::mem::transmute(pjfmt), ::core::mem::transmute(pultype)).ok() + pub unsafe fn GetHeader(&self, pchdictpath: ::core::option::Option<&mut [u8; 260]>, pshf: &mut IMESHF, pjfmt: &mut IMEFMT, pultype: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetHeader)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pchdictpath.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pshf), ::core::mem::transmute(pjfmt), ::core::mem::transmute(pultype)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6151,7 +6151,7 @@ where #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Globalization\"`*"] #[cfg(feature = "Win32_Globalization")] #[inline] -pub unsafe fn ImmGetCandidateListA<'a, P0>(param0: P0, deindex: u32, lpcandlist: ::core::option::Option<&mut CANDIDATELIST>, dwbuflen: u32) -> u32 +pub unsafe fn ImmGetCandidateListA<'a, P0>(param0: P0, deindex: u32, lpcandlist: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -6159,7 +6159,7 @@ where extern "system" { fn ImmGetCandidateListA(param0: super::super::super::Globalization::HIMC, deindex: u32, lpcandlist: *mut CANDIDATELIST, dwbuflen: u32) -> u32; } - ImmGetCandidateListA(param0.into(), deindex, ::core::mem::transmute(lpcandlist), dwbuflen) + ImmGetCandidateListA(param0.into(), deindex, ::core::mem::transmute(lpcandlist.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpcandlist.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Globalization\"`*"] #[cfg(feature = "Win32_Globalization")] @@ -6190,7 +6190,7 @@ where #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Globalization\"`*"] #[cfg(feature = "Win32_Globalization")] #[inline] -pub unsafe fn ImmGetCandidateListW<'a, P0>(param0: P0, deindex: u32, lpcandlist: ::core::option::Option<&mut CANDIDATELIST>, dwbuflen: u32) -> u32 +pub unsafe fn ImmGetCandidateListW<'a, P0>(param0: P0, deindex: u32, lpcandlist: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -6198,7 +6198,7 @@ where extern "system" { fn ImmGetCandidateListW(param0: super::super::super::Globalization::HIMC, deindex: u32, lpcandlist: *mut CANDIDATELIST, dwbuflen: u32) -> u32; } - ImmGetCandidateListW(param0.into(), deindex, ::core::mem::transmute(lpcandlist), dwbuflen) + ImmGetCandidateListW(param0.into(), deindex, ::core::mem::transmute(lpcandlist.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpcandlist.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Foundation\"`, `\"Win32_Globalization\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] @@ -6242,7 +6242,7 @@ where #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Globalization\"`*"] #[cfg(feature = "Win32_Globalization")] #[inline] -pub unsafe fn ImmGetCompositionStringA<'a, P0>(param0: P0, param1: u32, lpbuf: *mut ::core::ffi::c_void, dwbuflen: u32) -> i32 +pub unsafe fn ImmGetCompositionStringA<'a, P0>(param0: P0, param1: u32, lpbuf: ::core::option::Option<&mut [u8]>) -> i32 where P0: ::std::convert::Into, { @@ -6250,12 +6250,12 @@ where extern "system" { fn ImmGetCompositionStringA(param0: super::super::super::Globalization::HIMC, param1: u32, lpbuf: *mut ::core::ffi::c_void, dwbuflen: u32) -> i32; } - ImmGetCompositionStringA(param0.into(), param1, ::core::mem::transmute(lpbuf), dwbuflen) + ImmGetCompositionStringA(param0.into(), param1, ::core::mem::transmute(lpbuf.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuf.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Globalization\"`*"] #[cfg(feature = "Win32_Globalization")] #[inline] -pub unsafe fn ImmGetCompositionStringW<'a, P0>(param0: P0, param1: u32, lpbuf: *mut ::core::ffi::c_void, dwbuflen: u32) -> i32 +pub unsafe fn ImmGetCompositionStringW<'a, P0>(param0: P0, param1: u32, lpbuf: ::core::option::Option<&mut [u8]>) -> i32 where P0: ::std::convert::Into, { @@ -6263,7 +6263,7 @@ where extern "system" { fn ImmGetCompositionStringW(param0: super::super::super::Globalization::HIMC, param1: u32, lpbuf: *mut ::core::ffi::c_void, dwbuflen: u32) -> i32; } - ImmGetCompositionStringW(param0.into(), param1, ::core::mem::transmute(lpbuf), dwbuflen) + ImmGetCompositionStringW(param0.into(), param1, ::core::mem::transmute(lpbuf.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuf.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Foundation\"`, `\"Win32_Globalization\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] @@ -6294,7 +6294,7 @@ where #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Globalization\"`, `\"Win32_UI_TextServices\"`*"] #[cfg(all(feature = "Win32_Globalization", feature = "Win32_UI_TextServices"))] #[inline] -pub unsafe fn ImmGetConversionListA<'a, P0, P1, P2>(param0: P0, param1: P1, lpsrc: P2, lpdst: &mut CANDIDATELIST, dwbuflen: u32, uflag: GET_CONVERSION_LIST_FLAG) -> u32 +pub unsafe fn ImmGetConversionListA<'a, P0, P1, P2>(param0: P0, param1: P1, lpsrc: P2, lpdst: &mut [u8], uflag: GET_CONVERSION_LIST_FLAG) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -6304,12 +6304,12 @@ where extern "system" { fn ImmGetConversionListA(param0: super::super::TextServices::HKL, param1: super::super::super::Globalization::HIMC, lpsrc: ::windows::core::PCSTR, lpdst: *mut CANDIDATELIST, dwbuflen: u32, uflag: GET_CONVERSION_LIST_FLAG) -> u32; } - ImmGetConversionListA(param0.into(), param1.into(), lpsrc.into(), ::core::mem::transmute(lpdst), dwbuflen, uflag) + ImmGetConversionListA(param0.into(), param1.into(), lpsrc.into(), ::core::mem::transmute(lpdst.as_ptr()), lpdst.len() as _, uflag) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Globalization\"`, `\"Win32_UI_TextServices\"`*"] #[cfg(all(feature = "Win32_Globalization", feature = "Win32_UI_TextServices"))] #[inline] -pub unsafe fn ImmGetConversionListW<'a, P0, P1, P2>(param0: P0, param1: P1, lpsrc: P2, lpdst: &mut CANDIDATELIST, dwbuflen: u32, uflag: GET_CONVERSION_LIST_FLAG) -> u32 +pub unsafe fn ImmGetConversionListW<'a, P0, P1, P2>(param0: P0, param1: P1, lpsrc: P2, lpdst: &mut [u8], uflag: GET_CONVERSION_LIST_FLAG) -> u32 where P0: ::std::convert::Into, P1: ::std::convert::Into, @@ -6319,7 +6319,7 @@ where extern "system" { fn ImmGetConversionListW(param0: super::super::TextServices::HKL, param1: super::super::super::Globalization::HIMC, lpsrc: ::windows::core::PCWSTR, lpdst: *mut CANDIDATELIST, dwbuflen: u32, uflag: GET_CONVERSION_LIST_FLAG) -> u32; } - ImmGetConversionListW(param0.into(), param1.into(), lpsrc.into(), ::core::mem::transmute(lpdst), dwbuflen, uflag) + ImmGetConversionListW(param0.into(), param1.into(), lpsrc.into(), ::core::mem::transmute(lpdst.as_ptr()), lpdst.len() as _, uflag) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Foundation\"`, `\"Win32_Globalization\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] @@ -6350,7 +6350,7 @@ where #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_UI_TextServices\"`*"] #[cfg(feature = "Win32_UI_TextServices")] #[inline] -pub unsafe fn ImmGetDescriptionA<'a, P0>(param0: P0, lpszdescription: &mut [u8]) -> u32 +pub unsafe fn ImmGetDescriptionA<'a, P0>(param0: P0, lpszdescription: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -6358,12 +6358,12 @@ where extern "system" { fn ImmGetDescriptionA(param0: super::super::TextServices::HKL, lpszdescription: ::windows::core::PSTR, ubuflen: u32) -> u32; } - ImmGetDescriptionA(param0.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszdescription)), lpszdescription.len() as _) + ImmGetDescriptionA(param0.into(), ::core::mem::transmute(lpszdescription.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszdescription.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_UI_TextServices\"`*"] #[cfg(feature = "Win32_UI_TextServices")] #[inline] -pub unsafe fn ImmGetDescriptionW<'a, P0>(param0: P0, lpszdescription: &mut [u16]) -> u32 +pub unsafe fn ImmGetDescriptionW<'a, P0>(param0: P0, lpszdescription: ::core::option::Option<&mut [u16]>) -> u32 where P0: ::std::convert::Into, { @@ -6371,12 +6371,12 @@ where extern "system" { fn ImmGetDescriptionW(param0: super::super::TextServices::HKL, lpszdescription: ::windows::core::PWSTR, ubuflen: u32) -> u32; } - ImmGetDescriptionW(param0.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszdescription)), lpszdescription.len() as _) + ImmGetDescriptionW(param0.into(), ::core::mem::transmute(lpszdescription.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszdescription.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Globalization\"`*"] #[cfg(feature = "Win32_Globalization")] #[inline] -pub unsafe fn ImmGetGuideLineA<'a, P0>(param0: P0, dwindex: GET_GUIDE_LINE_TYPE, lpbuf: ::windows::core::PSTR, dwbuflen: u32) -> u32 +pub unsafe fn ImmGetGuideLineA<'a, P0>(param0: P0, dwindex: GET_GUIDE_LINE_TYPE, lpbuf: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -6384,12 +6384,12 @@ where extern "system" { fn ImmGetGuideLineA(param0: super::super::super::Globalization::HIMC, dwindex: GET_GUIDE_LINE_TYPE, lpbuf: ::windows::core::PSTR, dwbuflen: u32) -> u32; } - ImmGetGuideLineA(param0.into(), dwindex, ::core::mem::transmute(lpbuf), dwbuflen) + ImmGetGuideLineA(param0.into(), dwindex, ::core::mem::transmute(lpbuf.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuf.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Globalization\"`*"] #[cfg(feature = "Win32_Globalization")] #[inline] -pub unsafe fn ImmGetGuideLineW<'a, P0>(param0: P0, dwindex: GET_GUIDE_LINE_TYPE, lpbuf: ::windows::core::PWSTR, dwbuflen: u32) -> u32 +pub unsafe fn ImmGetGuideLineW<'a, P0>(param0: P0, dwindex: GET_GUIDE_LINE_TYPE, lpbuf: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -6397,7 +6397,7 @@ where extern "system" { fn ImmGetGuideLineW(param0: super::super::super::Globalization::HIMC, dwindex: GET_GUIDE_LINE_TYPE, lpbuf: ::windows::core::PWSTR, dwbuflen: u32) -> u32; } - ImmGetGuideLineW(param0.into(), dwindex, ::core::mem::transmute(lpbuf), dwbuflen) + ImmGetGuideLineW(param0.into(), dwindex, ::core::mem::transmute(lpbuf.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuf.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6451,7 +6451,7 @@ where #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_UI_TextServices\"`*"] #[cfg(feature = "Win32_UI_TextServices")] #[inline] -pub unsafe fn ImmGetIMEFileNameA<'a, P0>(param0: P0, lpszfilename: &mut [u8]) -> u32 +pub unsafe fn ImmGetIMEFileNameA<'a, P0>(param0: P0, lpszfilename: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -6459,12 +6459,12 @@ where extern "system" { fn ImmGetIMEFileNameA(param0: super::super::TextServices::HKL, lpszfilename: ::windows::core::PSTR, ubuflen: u32) -> u32; } - ImmGetIMEFileNameA(param0.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszfilename)), lpszfilename.len() as _) + ImmGetIMEFileNameA(param0.into(), ::core::mem::transmute(lpszfilename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszfilename.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_UI_TextServices\"`*"] #[cfg(feature = "Win32_UI_TextServices")] #[inline] -pub unsafe fn ImmGetIMEFileNameW<'a, P0>(param0: P0, lpszfilename: &mut [u16]) -> u32 +pub unsafe fn ImmGetIMEFileNameW<'a, P0>(param0: P0, lpszfilename: ::core::option::Option<&mut [u16]>) -> u32 where P0: ::std::convert::Into, { @@ -6472,12 +6472,12 @@ where extern "system" { fn ImmGetIMEFileNameW(param0: super::super::TextServices::HKL, lpszfilename: ::windows::core::PWSTR, ubuflen: u32) -> u32; } - ImmGetIMEFileNameW(param0.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszfilename)), lpszfilename.len() as _) + ImmGetIMEFileNameW(param0.into(), ::core::mem::transmute(lpszfilename.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszfilename.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Foundation\"`, `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))] #[inline] -pub unsafe fn ImmGetImeMenuItemsA<'a, P0>(param0: P0, param1: u32, param2: u32, lpimeparentmenu: ::core::option::Option<&mut IMEMENUITEMINFOA>, lpimemenu: ::core::option::Option<&mut IMEMENUITEMINFOA>, dwsize: u32) -> u32 +pub unsafe fn ImmGetImeMenuItemsA<'a, P0>(param0: P0, param1: u32, param2: u32, lpimeparentmenu: ::core::option::Option<&mut IMEMENUITEMINFOA>, lpimemenu: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -6485,12 +6485,12 @@ where extern "system" { fn ImmGetImeMenuItemsA(param0: super::super::super::Globalization::HIMC, param1: u32, param2: u32, lpimeparentmenu: *mut IMEMENUITEMINFOA, lpimemenu: *mut IMEMENUITEMINFOA, dwsize: u32) -> u32; } - ImmGetImeMenuItemsA(param0.into(), param1, param2, ::core::mem::transmute(lpimeparentmenu), ::core::mem::transmute(lpimemenu), dwsize) + ImmGetImeMenuItemsA(param0.into(), param1, param2, ::core::mem::transmute(lpimeparentmenu), ::core::mem::transmute(lpimemenu.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpimemenu.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Globalization\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Globalization", feature = "Win32_Graphics_Gdi"))] #[inline] -pub unsafe fn ImmGetImeMenuItemsW<'a, P0>(param0: P0, param1: u32, param2: u32, lpimeparentmenu: ::core::option::Option<&mut IMEMENUITEMINFOW>, lpimemenu: ::core::option::Option<&mut IMEMENUITEMINFOW>, dwsize: u32) -> u32 +pub unsafe fn ImmGetImeMenuItemsW<'a, P0>(param0: P0, param1: u32, param2: u32, lpimeparentmenu: ::core::option::Option<&mut IMEMENUITEMINFOW>, lpimemenu: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -6498,7 +6498,7 @@ where extern "system" { fn ImmGetImeMenuItemsW(param0: super::super::super::Globalization::HIMC, param1: u32, param2: u32, lpimeparentmenu: *mut IMEMENUITEMINFOW, lpimemenu: *mut IMEMENUITEMINFOW, dwsize: u32) -> u32; } - ImmGetImeMenuItemsW(param0.into(), param1, param2, ::core::mem::transmute(lpimeparentmenu), ::core::mem::transmute(lpimemenu), dwsize) + ImmGetImeMenuItemsW(param0.into(), param1, param2, ::core::mem::transmute(lpimeparentmenu), ::core::mem::transmute(lpimemenu.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpimemenu.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Foundation\"`, `\"Win32_Globalization\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] @@ -6537,7 +6537,7 @@ where extern "system" { fn ImmGetRegisterWordStyleA(param0: super::super::TextServices::HKL, nitem: u32, lpstylebuf: *mut STYLEBUFA) -> u32; } - ImmGetRegisterWordStyleA(param0.into(), lpstylebuf.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstylebuf))) + ImmGetRegisterWordStyleA(param0.into(), lpstylebuf.len() as _, ::core::mem::transmute(lpstylebuf.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_UI_TextServices\"`*"] #[cfg(feature = "Win32_UI_TextServices")] @@ -6550,7 +6550,7 @@ where extern "system" { fn ImmGetRegisterWordStyleW(param0: super::super::TextServices::HKL, nitem: u32, lpstylebuf: *mut STYLEBUFW) -> u32; } - ImmGetRegisterWordStyleW(param0.into(), lpstylebuf.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstylebuf))) + ImmGetRegisterWordStyleW(param0.into(), lpstylebuf.len() as _, ::core::mem::transmute(lpstylebuf.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Foundation\"`, `\"Win32_Globalization\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] @@ -6817,7 +6817,7 @@ where #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Foundation\"`, `\"Win32_Globalization\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] #[inline] -pub unsafe fn ImmSetCompositionStringA<'a, P0>(param0: P0, dwindex: SET_COMPOSITION_STRING_TYPE, lpcomp: *const ::core::ffi::c_void, dwcomplen: u32, lpread: *const ::core::ffi::c_void, dwreadlen: u32) -> super::super::super::Foundation::BOOL +pub unsafe fn ImmSetCompositionStringA<'a, P0>(param0: P0, dwindex: SET_COMPOSITION_STRING_TYPE, lpcomp: ::core::option::Option<&[u8]>, lpread: ::core::option::Option<&[u8]>) -> super::super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -6825,12 +6825,12 @@ where extern "system" { fn ImmSetCompositionStringA(param0: super::super::super::Globalization::HIMC, dwindex: SET_COMPOSITION_STRING_TYPE, lpcomp: *const ::core::ffi::c_void, dwcomplen: u32, lpread: *const ::core::ffi::c_void, dwreadlen: u32) -> super::super::super::Foundation::BOOL; } - ImmSetCompositionStringA(param0.into(), dwindex, ::core::mem::transmute(lpcomp), dwcomplen, ::core::mem::transmute(lpread), dwreadlen) + ImmSetCompositionStringA(param0.into(), dwindex, ::core::mem::transmute(lpcomp.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpcomp.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpread.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpread.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Foundation\"`, `\"Win32_Globalization\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] #[inline] -pub unsafe fn ImmSetCompositionStringW<'a, P0>(param0: P0, dwindex: SET_COMPOSITION_STRING_TYPE, lpcomp: *const ::core::ffi::c_void, dwcomplen: u32, lpread: *const ::core::ffi::c_void, dwreadlen: u32) -> super::super::super::Foundation::BOOL +pub unsafe fn ImmSetCompositionStringW<'a, P0>(param0: P0, dwindex: SET_COMPOSITION_STRING_TYPE, lpcomp: ::core::option::Option<&[u8]>, lpread: ::core::option::Option<&[u8]>) -> super::super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -6838,7 +6838,7 @@ where extern "system" { fn ImmSetCompositionStringW(param0: super::super::super::Globalization::HIMC, dwindex: SET_COMPOSITION_STRING_TYPE, lpcomp: *const ::core::ffi::c_void, dwcomplen: u32, lpread: *const ::core::ffi::c_void, dwreadlen: u32) -> super::super::super::Foundation::BOOL; } - ImmSetCompositionStringW(param0.into(), dwindex, ::core::mem::transmute(lpcomp), dwcomplen, ::core::mem::transmute(lpread), dwreadlen) + ImmSetCompositionStringW(param0.into(), dwindex, ::core::mem::transmute(lpcomp.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpcomp.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpread.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpread.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Input_Ime\"`, `\"Win32_Foundation\"`, `\"Win32_Globalization\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Globalization"))] diff --git a/crates/libs/windows/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs index 912760a879..d3b2ede863 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/Input/KeyboardAndMouse/mod.rs @@ -258,7 +258,7 @@ pub unsafe fn GetKeyNameTextA(lparam: i32, lpstring: &mut [u8]) -> i32 { extern "system" { fn GetKeyNameTextA(lparam: i32, lpstring: ::windows::core::PSTR, cchsize: i32) -> i32; } - GetKeyNameTextA(lparam, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstring)), lpstring.len() as _) + GetKeyNameTextA(lparam, ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _) } #[doc = "*Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`*"] #[inline] @@ -267,7 +267,7 @@ pub unsafe fn GetKeyNameTextW(lparam: i32, lpstring: &mut [u16]) -> i32 { extern "system" { fn GetKeyNameTextW(lparam: i32, lpstring: ::windows::core::PWSTR, cchsize: i32) -> i32; } - GetKeyNameTextW(lparam, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstring)), lpstring.len() as _) + GetKeyNameTextW(lparam, ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _) } #[doc = "*Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`*"] #[inline] @@ -291,12 +291,12 @@ pub unsafe fn GetKeyboardLayout(idthread: u32) -> super::super::TextServices::HK #[doc = "*Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`, `\"Win32_UI_TextServices\"`*"] #[cfg(feature = "Win32_UI_TextServices")] #[inline] -pub unsafe fn GetKeyboardLayoutList(lplist: &mut [super::super::TextServices::HKL]) -> i32 { +pub unsafe fn GetKeyboardLayoutList(lplist: ::core::option::Option<&mut [super::super::TextServices::HKL]>) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetKeyboardLayoutList(nbuff: i32, lplist: *mut super::super::TextServices::HKL) -> i32; } - GetKeyboardLayoutList(lplist.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lplist))) + GetKeyboardLayoutList(lplist.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lplist.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -306,7 +306,7 @@ pub unsafe fn GetKeyboardLayoutNameA(pwszklid: &mut [u8; 9]) -> super::super::su extern "system" { fn GetKeyboardLayoutNameA(pwszklid: ::windows::core::PSTR) -> super::super::super::Foundation::BOOL; } - GetKeyboardLayoutNameA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszklid))) + GetKeyboardLayoutNameA(::core::mem::transmute(pwszklid.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -316,7 +316,7 @@ pub unsafe fn GetKeyboardLayoutNameW(pwszklid: &mut [u16; 9]) -> super::super::s extern "system" { fn GetKeyboardLayoutNameW(pwszklid: ::windows::core::PWSTR) -> super::super::super::Foundation::BOOL; } - GetKeyboardLayoutNameW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszklid))) + GetKeyboardLayoutNameW(::core::mem::transmute(pwszklid.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -326,7 +326,7 @@ pub unsafe fn GetKeyboardState(lpkeystate: &mut [u8; 256]) -> super::super::supe extern "system" { fn GetKeyboardState(lpkeystate: *mut u8) -> super::super::super::Foundation::BOOL; } - GetKeyboardState(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpkeystate))) + GetKeyboardState(::core::mem::transmute(lpkeystate.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`*"] #[inline] @@ -354,7 +354,7 @@ pub unsafe fn GetMouseMovePointsEx(cbsize: u32, lppt: &MOUSEMOVEPOINT, lpptbuf: extern "system" { fn GetMouseMovePointsEx(cbsize: u32, lppt: *const MOUSEMOVEPOINT, lpptbuf: *mut MOUSEMOVEPOINT, nbufpoints: i32, resolution: GET_MOUSE_MOVE_POINTS_EX_RESOLUTION) -> i32; } - GetMouseMovePointsEx(cbsize, ::core::mem::transmute(lppt), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpptbuf)), lpptbuf.len() as _, resolution) + GetMouseMovePointsEx(cbsize, ::core::mem::transmute(lppt), ::core::mem::transmute(lpptbuf.as_ptr()), lpptbuf.len() as _, resolution) } #[doc = "*Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`*"] pub const HACEK: u32 = 780u32; @@ -1385,7 +1385,7 @@ pub unsafe fn SendInput(pinputs: &[INPUT], cbsize: i32) -> u32 { extern "system" { fn SendInput(cinputs: u32, pinputs: *const INPUT, cbsize: i32) -> u32; } - SendInput(pinputs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pinputs)), cbsize) + SendInput(pinputs.len() as _, ::core::mem::transmute(pinputs.as_ptr()), cbsize) } #[doc = "*Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1444,7 +1444,7 @@ pub unsafe fn SetKeyboardState(lpkeystate: &[u8; 256]) -> super::super::super::F extern "system" { fn SetKeyboardState(lpkeystate: *const u8) -> super::super::super::Foundation::BOOL; } - SetKeyboardState(::core::mem::transmute(::windows::core::as_ptr_or_null(lpkeystate))) + SetKeyboardState(::core::mem::transmute(lpkeystate.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1571,17 +1571,17 @@ impl ::core::ops::Not for TRACKMOUSEEVENT_FLAGS { } #[doc = "*Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`*"] #[inline] -pub unsafe fn ToAscii(uvirtkey: u32, uscancode: u32, lpkeystate: &[u8; 256], lpchar: &mut u16, uflags: u32) -> i32 { +pub unsafe fn ToAscii(uvirtkey: u32, uscancode: u32, lpkeystate: ::core::option::Option<&[u8; 256]>, lpchar: &mut u16, uflags: u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ToAscii(uvirtkey: u32, uscancode: u32, lpkeystate: *const u8, lpchar: *mut u16, uflags: u32) -> i32; } - ToAscii(uvirtkey, uscancode, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpkeystate)), ::core::mem::transmute(lpchar), uflags) + ToAscii(uvirtkey, uscancode, ::core::mem::transmute(lpkeystate.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(lpchar), uflags) } #[doc = "*Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`, `\"Win32_UI_TextServices\"`*"] #[cfg(feature = "Win32_UI_TextServices")] #[inline] -pub unsafe fn ToAsciiEx<'a, P0>(uvirtkey: u32, uscancode: u32, lpkeystate: &[u8; 256], lpchar: &mut u16, uflags: u32, dwhkl: P0) -> i32 +pub unsafe fn ToAsciiEx<'a, P0>(uvirtkey: u32, uscancode: u32, lpkeystate: ::core::option::Option<&[u8; 256]>, lpchar: &mut u16, uflags: u32, dwhkl: P0) -> i32 where P0: ::std::convert::Into, { @@ -1589,16 +1589,16 @@ where extern "system" { fn ToAsciiEx(uvirtkey: u32, uscancode: u32, lpkeystate: *const u8, lpchar: *mut u16, uflags: u32, dwhkl: super::super::TextServices::HKL) -> i32; } - ToAsciiEx(uvirtkey, uscancode, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpkeystate)), ::core::mem::transmute(lpchar), uflags, dwhkl.into()) + ToAsciiEx(uvirtkey, uscancode, ::core::mem::transmute(lpkeystate.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(lpchar), uflags, dwhkl.into()) } #[doc = "*Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`*"] #[inline] -pub unsafe fn ToUnicode(wvirtkey: u32, wscancode: u32, lpkeystate: &[u8; 256], pwszbuff: &mut [u16], wflags: u32) -> i32 { +pub unsafe fn ToUnicode(wvirtkey: u32, wscancode: u32, lpkeystate: ::core::option::Option<&[u8; 256]>, pwszbuff: &mut [u16], wflags: u32) -> i32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ToUnicode(wvirtkey: u32, wscancode: u32, lpkeystate: *const u8, pwszbuff: ::windows::core::PWSTR, cchbuff: i32, wflags: u32) -> i32; } - ToUnicode(wvirtkey, wscancode, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpkeystate)), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszbuff)), pwszbuff.len() as _, wflags) + ToUnicode(wvirtkey, wscancode, ::core::mem::transmute(lpkeystate.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pwszbuff.as_ptr()), pwszbuff.len() as _, wflags) } #[doc = "*Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`, `\"Win32_UI_TextServices\"`*"] #[cfg(feature = "Win32_UI_TextServices")] @@ -1611,7 +1611,7 @@ where extern "system" { fn ToUnicodeEx(wvirtkey: u32, wscancode: u32, lpkeystate: *const u8, pwszbuff: ::windows::core::PWSTR, cchbuff: i32, wflags: u32, dwhkl: super::super::TextServices::HKL) -> i32; } - ToUnicodeEx(wvirtkey, wscancode, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpkeystate)), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszbuff)), pwszbuff.len() as _, wflags, dwhkl.into()) + ToUnicodeEx(wvirtkey, wscancode, ::core::mem::transmute(lpkeystate.as_ptr()), ::core::mem::transmute(pwszbuff.as_ptr()), pwszbuff.len() as _, wflags, dwhkl.into()) } #[doc = "*Required features: `\"Win32_UI_Input_KeyboardAndMouse\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/UI/Input/Pointer/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/Input/Pointer/mod.rs index 1900e0d5c7..c175e8e250 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/Input/Pointer/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/Input/Pointer/mod.rs @@ -37,7 +37,7 @@ where #[doc = "*Required features: `\"Win32_UI_Input_Pointer\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] #[inline] -pub unsafe fn GetPointerDeviceCursors<'a, P0>(device: P0, cursorcount: &mut u32, devicecursors: ::core::option::Option<&mut super::super::Controls::POINTER_DEVICE_CURSOR_INFO>) -> super::super::super::Foundation::BOOL +pub unsafe fn GetPointerDeviceCursors<'a, P0>(device: P0, cursorcount: &mut u32, devicecursors: *mut super::super::Controls::POINTER_DEVICE_CURSOR_INFO) -> super::super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -50,7 +50,7 @@ where #[doc = "*Required features: `\"Win32_UI_Input_Pointer\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] #[inline] -pub unsafe fn GetPointerDeviceProperties<'a, P0>(device: P0, propertycount: &mut u32, pointerproperties: ::core::option::Option<&mut super::super::Controls::POINTER_DEVICE_PROPERTY>) -> super::super::super::Foundation::BOOL +pub unsafe fn GetPointerDeviceProperties<'a, P0>(device: P0, propertycount: &mut u32, pointerproperties: *mut super::super::Controls::POINTER_DEVICE_PROPERTY) -> super::super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -76,7 +76,7 @@ where #[doc = "*Required features: `\"Win32_UI_Input_Pointer\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_UI_Controls\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_UI_Controls"))] #[inline] -pub unsafe fn GetPointerDevices(devicecount: &mut u32, pointerdevices: ::core::option::Option<&mut super::super::Controls::POINTER_DEVICE_INFO>) -> super::super::super::Foundation::BOOL { +pub unsafe fn GetPointerDevices(devicecount: &mut u32, pointerdevices: *mut super::super::Controls::POINTER_DEVICE_INFO) -> super::super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetPointerDevices(devicecount: *mut u32, pointerdevices: *mut super::super::Controls::POINTER_DEVICE_INFO) -> super::super::super::Foundation::BOOL; @@ -86,7 +86,7 @@ pub unsafe fn GetPointerDevices(devicecount: &mut u32, pointerdevices: ::core::o #[doc = "*Required features: `\"Win32_UI_Input_Pointer\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] #[inline] -pub unsafe fn GetPointerFrameInfo(pointerid: u32, pointercount: &mut u32, pointerinfo: ::core::option::Option<&mut POINTER_INFO>) -> super::super::super::Foundation::BOOL { +pub unsafe fn GetPointerFrameInfo(pointerid: u32, pointercount: &mut u32, pointerinfo: *mut POINTER_INFO) -> super::super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetPointerFrameInfo(pointerid: u32, pointercount: *mut u32, pointerinfo: *mut POINTER_INFO) -> super::super::super::Foundation::BOOL; @@ -106,7 +106,7 @@ pub unsafe fn GetPointerFrameInfoHistory(pointerid: u32, entriescount: &mut u32, #[doc = "*Required features: `\"Win32_UI_Input_Pointer\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] #[inline] -pub unsafe fn GetPointerFramePenInfo(pointerid: u32, pointercount: &mut u32, peninfo: ::core::option::Option<&mut POINTER_PEN_INFO>) -> super::super::super::Foundation::BOOL { +pub unsafe fn GetPointerFramePenInfo(pointerid: u32, pointercount: &mut u32, peninfo: *mut POINTER_PEN_INFO) -> super::super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetPointerFramePenInfo(pointerid: u32, pointercount: *mut u32, peninfo: *mut POINTER_PEN_INFO) -> super::super::super::Foundation::BOOL; @@ -126,7 +126,7 @@ pub unsafe fn GetPointerFramePenInfoHistory(pointerid: u32, entriescount: &mut u #[doc = "*Required features: `\"Win32_UI_Input_Pointer\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] #[inline] -pub unsafe fn GetPointerFrameTouchInfo(pointerid: u32, pointercount: &mut u32, touchinfo: ::core::option::Option<&mut POINTER_TOUCH_INFO>) -> super::super::super::Foundation::BOOL { +pub unsafe fn GetPointerFrameTouchInfo(pointerid: u32, pointercount: &mut u32, touchinfo: *mut POINTER_TOUCH_INFO) -> super::super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetPointerFrameTouchInfo(pointerid: u32, pointercount: *mut u32, touchinfo: *mut POINTER_TOUCH_INFO) -> super::super::super::Foundation::BOOL; @@ -156,7 +156,7 @@ pub unsafe fn GetPointerInfo(pointerid: u32, pointerinfo: &mut POINTER_INFO) -> #[doc = "*Required features: `\"Win32_UI_Input_Pointer\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] #[inline] -pub unsafe fn GetPointerInfoHistory(pointerid: u32, entriescount: &mut u32, pointerinfo: ::core::option::Option<&mut POINTER_INFO>) -> super::super::super::Foundation::BOOL { +pub unsafe fn GetPointerInfoHistory(pointerid: u32, entriescount: &mut u32, pointerinfo: *mut POINTER_INFO) -> super::super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetPointerInfoHistory(pointerid: u32, entriescount: *mut u32, pointerinfo: *mut POINTER_INFO) -> super::super::super::Foundation::BOOL; @@ -171,7 +171,7 @@ pub unsafe fn GetPointerInputTransform(pointerid: u32, inputtransform: &mut [INP extern "system" { fn GetPointerInputTransform(pointerid: u32, historycount: u32, inputtransform: *mut INPUT_TRANSFORM) -> super::super::super::Foundation::BOOL; } - GetPointerInputTransform(pointerid, inputtransform.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(inputtransform))) + GetPointerInputTransform(pointerid, inputtransform.len() as _, ::core::mem::transmute(inputtransform.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Input_Pointer\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] @@ -186,7 +186,7 @@ pub unsafe fn GetPointerPenInfo(pointerid: u32, peninfo: &mut POINTER_PEN_INFO) #[doc = "*Required features: `\"Win32_UI_Input_Pointer\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] #[inline] -pub unsafe fn GetPointerPenInfoHistory(pointerid: u32, entriescount: &mut u32, peninfo: ::core::option::Option<&mut POINTER_PEN_INFO>) -> super::super::super::Foundation::BOOL { +pub unsafe fn GetPointerPenInfoHistory(pointerid: u32, entriescount: &mut u32, peninfo: *mut POINTER_PEN_INFO) -> super::super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetPointerPenInfoHistory(pointerid: u32, entriescount: *mut u32, peninfo: *mut POINTER_PEN_INFO) -> super::super::super::Foundation::BOOL; @@ -206,7 +206,7 @@ pub unsafe fn GetPointerTouchInfo(pointerid: u32, touchinfo: &mut POINTER_TOUCH_ #[doc = "*Required features: `\"Win32_UI_Input_Pointer\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] #[inline] -pub unsafe fn GetPointerTouchInfoHistory(pointerid: u32, entriescount: &mut u32, touchinfo: ::core::option::Option<&mut POINTER_TOUCH_INFO>) -> super::super::super::Foundation::BOOL { +pub unsafe fn GetPointerTouchInfoHistory(pointerid: u32, entriescount: &mut u32, touchinfo: *mut POINTER_TOUCH_INFO) -> super::super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetPointerTouchInfoHistory(pointerid: u32, entriescount: *mut u32, touchinfo: *mut POINTER_TOUCH_INFO) -> super::super::super::Foundation::BOOL; @@ -231,7 +231,7 @@ pub unsafe fn GetRawPointerDeviceData(pointerid: u32, historycount: u32, pproper extern "system" { fn GetRawPointerDeviceData(pointerid: u32, historycount: u32, propertiescount: u32, pproperties: *const super::super::Controls::POINTER_DEVICE_PROPERTY, pvalues: *mut i32) -> super::super::super::Foundation::BOOL; } - GetRawPointerDeviceData(pointerid, historycount, pproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pproperties)), ::core::mem::transmute(pvalues)) + GetRawPointerDeviceData(pointerid, historycount, pproperties.len() as _, ::core::mem::transmute(pproperties.as_ptr()), ::core::mem::transmute(pvalues)) } #[doc = "*Required features: `\"Win32_UI_Input_Pointer\"`*"] #[inline] @@ -392,7 +392,7 @@ where extern "system" { fn InjectSyntheticPointerInput(device: super::super::Controls::HSYNTHETICPOINTERDEVICE, pointerinfo: *const super::super::Controls::POINTER_TYPE_INFO, count: u32) -> super::super::super::Foundation::BOOL; } - InjectSyntheticPointerInput(device.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pointerinfo)), pointerinfo.len() as _) + InjectSyntheticPointerInput(device.into(), ::core::mem::transmute(pointerinfo.as_ptr()), pointerinfo.len() as _) } #[doc = "*Required features: `\"Win32_UI_Input_Pointer\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] @@ -402,7 +402,7 @@ pub unsafe fn InjectTouchInput(contacts: &[POINTER_TOUCH_INFO]) -> super::super: extern "system" { fn InjectTouchInput(count: u32, contacts: *const POINTER_TOUCH_INFO) -> super::super::super::Foundation::BOOL; } - InjectTouchInput(contacts.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(contacts))) + InjectTouchInput(contacts.len() as _, ::core::mem::transmute(contacts.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Input_Pointer\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/UI/Input/Touch/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/Input/Touch/mod.rs index 5e246fcf56..6a42974141 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/Input/Touch/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/Input/Touch/mod.rs @@ -214,7 +214,7 @@ impl ::core::default::Default for GESTURENOTIFYSTRUCT { #[doc = "*Required features: `\"Win32_UI_Input_Touch\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetGestureConfig<'a, P0>(hwnd: P0, dwreserved: u32, dwflags: u32, pgestureconfig: &mut [GESTURECONFIG], cbsize: u32) -> super::super::super::Foundation::BOOL +pub unsafe fn GetGestureConfig<'a, P0>(hwnd: P0, dwreserved: u32, dwflags: u32, pcids: &u32, pgestureconfig: *mut GESTURECONFIG, cbsize: u32) -> super::super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -222,12 +222,12 @@ where extern "system" { fn GetGestureConfig(hwnd: super::super::super::Foundation::HWND, dwreserved: u32, dwflags: u32, pcids: *const u32, pgestureconfig: *mut GESTURECONFIG, cbsize: u32) -> super::super::super::Foundation::BOOL; } - GetGestureConfig(hwnd.into(), dwreserved, dwflags, pgestureconfig.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pgestureconfig)), cbsize) + GetGestureConfig(hwnd.into(), dwreserved, dwflags, ::core::mem::transmute(pcids), ::core::mem::transmute(pgestureconfig), cbsize) } #[doc = "*Required features: `\"Win32_UI_Input_Touch\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetGestureExtraArgs<'a, P0>(hgestureinfo: P0, cbextraargs: u32, pextraargs: &mut u8) -> super::super::super::Foundation::BOOL +pub unsafe fn GetGestureExtraArgs<'a, P0>(hgestureinfo: P0, pextraargs: &mut [u8]) -> super::super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -235,7 +235,7 @@ where extern "system" { fn GetGestureExtraArgs(hgestureinfo: HGESTUREINFO, cbextraargs: u32, pextraargs: *mut u8) -> super::super::super::Foundation::BOOL; } - GetGestureExtraArgs(hgestureinfo.into(), cbextraargs, ::core::mem::transmute(pextraargs)) + GetGestureExtraArgs(hgestureinfo.into(), pextraargs.len() as _, ::core::mem::transmute(pextraargs.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Input_Touch\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -261,7 +261,7 @@ where extern "system" { fn GetTouchInputInfo(htouchinput: HTOUCHINPUT, cinputs: u32, pinputs: *mut TOUCHINPUT, cbsize: i32) -> super::super::super::Foundation::BOOL; } - GetTouchInputInfo(htouchinput.into(), pinputs.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pinputs)), cbsize) + GetTouchInputInfo(htouchinput.into(), pinputs.len() as _, ::core::mem::transmute(pinputs.as_ptr()), cbsize) } #[repr(transparent)] #[derive(::core::cmp::PartialEq, ::core::cmp::Eq)] @@ -841,7 +841,7 @@ where extern "system" { fn SetGestureConfig(hwnd: super::super::super::Foundation::HWND, dwreserved: u32, cids: u32, pgestureconfig: *const GESTURECONFIG, cbsize: u32) -> super::super::super::Foundation::BOOL; } - SetGestureConfig(hwnd.into(), dwreserved, pgestureconfig.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pgestureconfig)), cbsize) + SetGestureConfig(hwnd.into(), dwreserved, pgestureconfig.len() as _, ::core::mem::transmute(pgestureconfig.as_ptr()), cbsize) } #[doc = "*Required features: `\"Win32_UI_Input_Touch\"`*"] #[repr(transparent)] diff --git a/crates/libs/windows/src/Windows/Win32/UI/Input/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/Input/mod.rs index d4db5ee8da..aaef695388 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/Input/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/Input/mod.rs @@ -20,7 +20,7 @@ pub unsafe fn DefRawInputProc(parawinput: &[*const RAWINPUT], cbsizeheader: u32) extern "system" { fn DefRawInputProc(parawinput: *const *const RAWINPUT, ninput: i32, cbsizeheader: u32) -> super::super::Foundation::LRESULT; } - DefRawInputProc(::core::mem::transmute(::windows::core::as_ptr_or_null(parawinput)), parawinput.len() as _, cbsizeheader) + DefRawInputProc(::core::mem::transmute(parawinput.as_ptr()), parawinput.len() as _, cbsizeheader) } #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -45,7 +45,7 @@ pub unsafe fn GetCurrentInputMessageSource(inputmessagesource: &mut INPUT_MESSAG #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetRawInputBuffer(pdata: ::core::option::Option<&mut RAWINPUT>, pcbsize: &mut u32, cbsizeheader: u32) -> u32 { +pub unsafe fn GetRawInputBuffer(pdata: *mut RAWINPUT, pcbsize: &mut u32, cbsizeheader: u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetRawInputBuffer(pdata: *mut RAWINPUT, pcbsize: *mut u32, cbsizeheader: u32) -> u32; @@ -93,7 +93,7 @@ where #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetRawInputDeviceList(prawinputdevicelist: ::core::option::Option<&mut RAWINPUTDEVICELIST>, puinumdevices: &mut u32, cbsize: u32) -> u32 { +pub unsafe fn GetRawInputDeviceList(prawinputdevicelist: *mut RAWINPUTDEVICELIST, puinumdevices: &mut u32, cbsize: u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetRawInputDeviceList(prawinputdevicelist: *mut RAWINPUTDEVICELIST, puinumdevices: *mut u32, cbsize: u32) -> u32; @@ -103,7 +103,7 @@ pub unsafe fn GetRawInputDeviceList(prawinputdevicelist: ::core::option::Option< #[doc = "*Required features: `\"Win32_UI_Input\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetRegisteredRawInputDevices(prawinputdevices: ::core::option::Option<&mut RAWINPUTDEVICE>, puinumdevices: &mut u32, cbsize: u32) -> u32 { +pub unsafe fn GetRegisteredRawInputDevices(prawinputdevices: *mut RAWINPUTDEVICE, puinumdevices: &mut u32, cbsize: u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn GetRegisteredRawInputDevices(prawinputdevices: *mut RAWINPUTDEVICE, puinumdevices: *mut u32, cbsize: u32) -> u32; @@ -923,7 +923,7 @@ pub unsafe fn RegisterRawInputDevices(prawinputdevices: &[RAWINPUTDEVICE], cbsiz extern "system" { fn RegisterRawInputDevices(prawinputdevices: *const RAWINPUTDEVICE, uinumdevices: u32, cbsize: u32) -> super::super::Foundation::BOOL; } - RegisterRawInputDevices(::core::mem::transmute(::windows::core::as_ptr_or_null(prawinputdevices)), prawinputdevices.len() as _, cbsize) + RegisterRawInputDevices(::core::mem::transmute(prawinputdevices.as_ptr()), prawinputdevices.len() as _, cbsize) } #[cfg(feature = "implement")] ::core::include!("impl.rs"); diff --git a/crates/libs/windows/src/Windows/Win32/UI/InteractionContext/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/InteractionContext/mod.rs index 8bac7fd08c..b0e1835611 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/InteractionContext/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/InteractionContext/mod.rs @@ -21,7 +21,7 @@ where extern "system" { fn BufferPointerPacketsInteractionContext(interactioncontext: HINTERACTIONCONTEXT, entriescount: u32, pointerinfo: *const super::Input::Pointer::POINTER_INFO) -> ::windows::core::HRESULT; } - BufferPointerPacketsInteractionContext(interactioncontext.into(), pointerinfo.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pointerinfo))).ok() + BufferPointerPacketsInteractionContext(interactioncontext.into(), pointerinfo.len() as _, ::core::mem::transmute(pointerinfo.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_UI_InteractionContext\"`*"] #[repr(transparent)] @@ -221,7 +221,7 @@ where extern "system" { fn GetInteractionConfigurationInteractionContext(interactioncontext: HINTERACTIONCONTEXT, configurationcount: u32, configuration: *mut INTERACTION_CONTEXT_CONFIGURATION) -> ::windows::core::HRESULT; } - GetInteractionConfigurationInteractionContext(interactioncontext.into(), configuration.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(configuration))).ok() + GetInteractionConfigurationInteractionContext(interactioncontext.into(), configuration.len() as _, ::core::mem::transmute(configuration.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_UI_InteractionContext\"`*"] #[inline] @@ -1168,7 +1168,7 @@ where extern "system" { fn SetCrossSlideParametersInteractionContext(interactioncontext: HINTERACTIONCONTEXT, parametercount: u32, crossslideparameters: *const CROSS_SLIDE_PARAMETER) -> ::windows::core::HRESULT; } - SetCrossSlideParametersInteractionContext(interactioncontext.into(), crossslideparameters.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(crossslideparameters))).ok() + SetCrossSlideParametersInteractionContext(interactioncontext.into(), crossslideparameters.len() as _, ::core::mem::transmute(crossslideparameters.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_UI_InteractionContext\"`*"] #[inline] @@ -1204,7 +1204,7 @@ where extern "system" { fn SetInteractionConfigurationInteractionContext(interactioncontext: HINTERACTIONCONTEXT, configurationcount: u32, configuration: *const INTERACTION_CONTEXT_CONFIGURATION) -> ::windows::core::HRESULT; } - SetInteractionConfigurationInteractionContext(interactioncontext.into(), configuration.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(configuration))).ok() + SetInteractionConfigurationInteractionContext(interactioncontext.into(), configuration.len() as _, ::core::mem::transmute(configuration.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_UI_InteractionContext\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/UI/LegacyWindowsEnvironmentFeatures/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/LegacyWindowsEnvironmentFeatures/mod.rs index 4b4fd254b2..1bfb8c51f1 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/LegacyWindowsEnvironmentFeatures/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/LegacyWindowsEnvironmentFeatures/mod.rs @@ -476,7 +476,7 @@ impl IReconcilableObject { P2: ::std::convert::Into, P3: ::std::convert::Into<::windows::core::InParam<'a, super::super::System::Com::StructuredStorage::IStorage>>, { - (::windows::core::Interface::vtable(self).Reconcile)(::windows::core::Interface::as_raw(self), pinitiator.into().abi(), dwflags, hwndowner.into(), hwndprogressfeedback.into(), rgpmkotherinput.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgpmkotherinput)), ::core::mem::transmute(ploutindex), pstgnewresidues.into().abi(), ::core::mem::transmute(pvreserved)).ok() + (::windows::core::Interface::vtable(self).Reconcile)(::windows::core::Interface::as_raw(self), pinitiator.into().abi(), dwflags, hwndowner.into(), hwndprogressfeedback.into(), rgpmkotherinput.len() as _, ::core::mem::transmute(rgpmkotherinput.as_ptr()), ::core::mem::transmute(ploutindex), pstgnewresidues.into().abi(), ::core::mem::transmute(pvreserved)).ok() } pub unsafe fn GetProgressFeedbackMaxEstimate(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); diff --git a/crates/libs/windows/src/Windows/Win32/UI/Notifications/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/Notifications/mod.rs index 017d1ea61a..6fc0d28c9c 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/Notifications/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/Notifications/mod.rs @@ -7,7 +7,7 @@ impl INotificationActivationCallback { P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).Activate)(::windows::core::Interface::as_raw(self), appusermodelid.into(), invokedargs.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(data)), data.len() as _).ok() + (::windows::core::Interface::vtable(self).Activate)(::windows::core::Interface::as_raw(self), appusermodelid.into(), invokedargs.into(), ::core::mem::transmute(data.as_ptr()), data.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { diff --git a/crates/libs/windows/src/Windows/Win32/UI/Shell/PropertiesSystem/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/Shell/PropertiesSystem/mod.rs index 6b1ee7c8c4..ecb571884d 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/Shell/PropertiesSystem/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/Shell/PropertiesSystem/mod.rs @@ -6,7 +6,7 @@ pub unsafe fn ClearPropVariantArray(rgpropvar: &mut [super::super::super::System extern "system" { fn ClearPropVariantArray(rgpropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT, cvars: u32); } - ClearPropVariantArray(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgpropvar)), rgpropvar.len() as _) + ClearPropVariantArray(::core::mem::transmute(rgpropvar.as_ptr()), rgpropvar.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -16,7 +16,7 @@ pub unsafe fn ClearVariantArray(pvars: &mut [super::super::super::System::Com::V extern "system" { fn ClearVariantArray(pvars: *mut super::super::super::System::Com::VARIANT, cvars: u32); } - ClearVariantArray(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pvars)), pvars.len() as _) + ClearVariantArray(::core::mem::transmute(pvars.as_ptr()), pvars.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[repr(transparent)] @@ -554,8 +554,8 @@ impl IPersistSerializedPropStorage { pub unsafe fn SetFlags(&self, flags: i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetFlags)(::windows::core::Interface::as_raw(self), flags).ok() } - pub unsafe fn SetPropertyStorage(&self, psps: &SERIALIZEDPROPSTORAGE, cb: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPropertyStorage)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psps), cb).ok() + pub unsafe fn SetPropertyStorage(&self, psps: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetPropertyStorage)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psps.as_ptr()), psps.len() as _).ok() } pub unsafe fn GetPropertyStorage(&self, ppsps: &mut *mut SERIALIZEDPROPSTORAGE, pcb: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPropertyStorage)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppsps), ::core::mem::transmute(pcb)).ok() @@ -611,8 +611,8 @@ impl IPersistSerializedPropStorage2 { pub unsafe fn SetFlags(&self, flags: i32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SetFlags)(::windows::core::Interface::as_raw(self), flags).ok() } - pub unsafe fn SetPropertyStorage(&self, psps: &SERIALIZEDPROPSTORAGE, cb: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPropertyStorage)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psps), cb).ok() + pub unsafe fn SetPropertyStorage(&self, psps: &[u8]) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).base__.SetPropertyStorage)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psps.as_ptr()), psps.len() as _).ok() } pub unsafe fn GetPropertyStorage(&self, ppsps: &mut *mut SERIALIZEDPROPSTORAGE, pcb: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPropertyStorage)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppsps), ::core::mem::transmute(pcb)).ok() @@ -621,8 +621,8 @@ impl IPersistSerializedPropStorage2 { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetPropertyStorageSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetPropertyStorageBuffer(&self, psps: &mut SERIALIZEDPROPSTORAGE, cb: u32, pcbwritten: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPropertyStorageBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psps), cb, ::core::mem::transmute(pcbwritten)).ok() + pub unsafe fn GetPropertyStorageBuffer(&self, psps: &mut [u8], pcbwritten: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).GetPropertyStorageBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psps.as_ptr()), psps.len() as _, ::core::mem::transmute(pcbwritten)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2360,7 +2360,7 @@ impl IPropertySystem { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] pub unsafe fn FormatForDisplay(&self, key: &PROPERTYKEY, propvar: &super::super::super::System::Com::StructuredStorage::PROPVARIANT, pdff: PROPDESC_FORMAT_FLAGS, psztext: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).FormatForDisplay)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(key), ::core::mem::transmute(propvar), pdff, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psztext)), psztext.len() as _).ok() + (::windows::core::Interface::vtable(self).FormatForDisplay)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(key), ::core::mem::transmute(propvar), pdff, ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -2499,13 +2499,13 @@ impl IPropertyUI { (::windows::core::Interface::vtable(self).ParsePropertyName)(::windows::core::Interface::as_raw(self), pszname.into(), ::core::mem::transmute(pfmtid), ::core::mem::transmute(ppid), ::core::mem::transmute(pcheaten)).ok() } pub unsafe fn GetCannonicalName(&self, fmtid: &::windows::core::GUID, pid: u32, pwsztext: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCannonicalName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fmtid), pid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwsztext)), pwsztext.len() as _).ok() + (::windows::core::Interface::vtable(self).GetCannonicalName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fmtid), pid, ::core::mem::transmute(pwsztext.as_ptr()), pwsztext.len() as _).ok() } pub unsafe fn GetDisplayName(&self, fmtid: &::windows::core::GUID, pid: u32, flags: PROPERTYUI_NAME_FLAGS, pwsztext: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDisplayName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fmtid), pid, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwsztext)), pwsztext.len() as _).ok() + (::windows::core::Interface::vtable(self).GetDisplayName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fmtid), pid, flags, ::core::mem::transmute(pwsztext.as_ptr()), pwsztext.len() as _).ok() } pub unsafe fn GetPropertyDescription(&self, fmtid: &::windows::core::GUID, pid: u32, pwsztext: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPropertyDescription)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fmtid), pid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwsztext)), pwsztext.len() as _).ok() + (::windows::core::Interface::vtable(self).GetPropertyDescription)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fmtid), pid, ::core::mem::transmute(pwsztext.as_ptr()), pwsztext.len() as _).ok() } pub unsafe fn GetDefaultWidth(&self, fmtid: &::windows::core::GUID, pid: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2518,10 +2518,10 @@ impl IPropertyUI { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] pub unsafe fn FormatForDisplay(&self, fmtid: &::windows::core::GUID, pid: u32, ppropvar: &super::super::super::System::Com::StructuredStorage::PROPVARIANT, puiff: PROPERTYUI_FORMAT_FLAGS, pwsztext: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).FormatForDisplay)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fmtid), pid, ::core::mem::transmute(ppropvar), puiff, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwsztext)), pwsztext.len() as _).ok() + (::windows::core::Interface::vtable(self).FormatForDisplay)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fmtid), pid, ::core::mem::transmute(ppropvar), puiff, ::core::mem::transmute(pwsztext.as_ptr()), pwsztext.len() as _).ok() } pub unsafe fn GetHelpInfo(&self, fmtid: &::windows::core::GUID, pid: u32, pwszhelpfile: &mut [u16], puhelpid: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetHelpInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fmtid), pid, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszhelpfile)), pwszhelpfile.len() as _, ::core::mem::transmute(puhelpid)).ok() + (::windows::core::Interface::vtable(self).GetHelpInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(fmtid), pid, ::core::mem::transmute(pwszhelpfile.as_ptr()), pwszhelpfile.len() as _, ::core::mem::transmute(puhelpid)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2580,24 +2580,24 @@ pub const InMemoryPropertyStoreMarshalByValue: ::windows::core::GUID = ::windows #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn InitPropVariantFromBooleanVector(prgf: &[super::super::super::Foundation::BOOL]) -> ::windows::core::Result { +pub unsafe fn InitPropVariantFromBooleanVector(prgf: ::core::option::Option<&[super::super::super::Foundation::BOOL]>) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InitPropVariantFromBooleanVector(prgf: *const super::super::super::Foundation::BOOL, celems: u32, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitPropVariantFromBooleanVector(::core::mem::transmute(::windows::core::as_ptr_or_null(prgf)), prgf.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitPropVariantFromBooleanVector(::core::mem::transmute(prgf.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prgf.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn InitPropVariantFromBuffer(pv: *const ::core::ffi::c_void, cb: u32) -> ::windows::core::Result { +pub unsafe fn InitPropVariantFromBuffer(pv: &[u8]) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InitPropVariantFromBuffer(pv: *const ::core::ffi::c_void, cb: u32, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitPropVariantFromBuffer(::core::mem::transmute(pv), cb, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitPropVariantFromBuffer(::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -2613,13 +2613,13 @@ pub unsafe fn InitPropVariantFromCLSID(clsid: &::windows::core::GUID) -> ::windo #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn InitPropVariantFromDoubleVector(prgn: &[f64]) -> ::windows::core::Result { +pub unsafe fn InitPropVariantFromDoubleVector(prgn: ::core::option::Option<&[f64]>) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InitPropVariantFromDoubleVector(prgn: *const f64, celems: u32, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitPropVariantFromDoubleVector(::core::mem::transmute(::windows::core::as_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitPropVariantFromDoubleVector(::core::mem::transmute(prgn.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prgn.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -2635,13 +2635,13 @@ pub unsafe fn InitPropVariantFromFileTime(pftin: &super::super::super::Foundatio #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn InitPropVariantFromFileTimeVector(prgft: &[super::super::super::Foundation::FILETIME]) -> ::windows::core::Result { +pub unsafe fn InitPropVariantFromFileTimeVector(prgft: ::core::option::Option<&[super::super::super::Foundation::FILETIME]>) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InitPropVariantFromFileTimeVector(prgft: *const super::super::super::Foundation::FILETIME, celems: u32, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitPropVariantFromFileTimeVector(::core::mem::transmute(::windows::core::as_ptr_or_null(prgft)), prgft.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitPropVariantFromFileTimeVector(::core::mem::transmute(prgft.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prgft.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -2657,35 +2657,35 @@ pub unsafe fn InitPropVariantFromGUIDAsString(guid: &::windows::core::GUID) -> : #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn InitPropVariantFromInt16Vector(prgn: &[i16]) -> ::windows::core::Result { +pub unsafe fn InitPropVariantFromInt16Vector(prgn: ::core::option::Option<&[i16]>) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InitPropVariantFromInt16Vector(prgn: *const i16, celems: u32, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitPropVariantFromInt16Vector(::core::mem::transmute(::windows::core::as_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitPropVariantFromInt16Vector(::core::mem::transmute(prgn.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prgn.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn InitPropVariantFromInt32Vector(prgn: &[i32]) -> ::windows::core::Result { +pub unsafe fn InitPropVariantFromInt32Vector(prgn: ::core::option::Option<&[i32]>) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InitPropVariantFromInt32Vector(prgn: *const i32, celems: u32, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitPropVariantFromInt32Vector(::core::mem::transmute(::windows::core::as_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitPropVariantFromInt32Vector(::core::mem::transmute(prgn.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prgn.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn InitPropVariantFromInt64Vector(prgn: &[i64]) -> ::windows::core::Result { +pub unsafe fn InitPropVariantFromInt64Vector(prgn: ::core::option::Option<&[i64]>) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InitPropVariantFromInt64Vector(prgn: *const i64, celems: u32, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitPropVariantFromInt64Vector(::core::mem::transmute(::windows::core::as_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitPropVariantFromInt64Vector(::core::mem::transmute(prgn.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prgn.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -2739,46 +2739,46 @@ where #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn InitPropVariantFromStringVector(prgsz: &[::windows::core::PWSTR]) -> ::windows::core::Result { +pub unsafe fn InitPropVariantFromStringVector(prgsz: ::core::option::Option<&[::windows::core::PWSTR]>) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InitPropVariantFromStringVector(prgsz: *const ::windows::core::PWSTR, celems: u32, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitPropVariantFromStringVector(::core::mem::transmute(::windows::core::as_ptr_or_null(prgsz)), prgsz.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitPropVariantFromStringVector(::core::mem::transmute(prgsz.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prgsz.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn InitPropVariantFromUInt16Vector(prgn: &[u16]) -> ::windows::core::Result { +pub unsafe fn InitPropVariantFromUInt16Vector(prgn: ::core::option::Option<&[u16]>) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InitPropVariantFromUInt16Vector(prgn: *const u16, celems: u32, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitPropVariantFromUInt16Vector(::core::mem::transmute(::windows::core::as_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitPropVariantFromUInt16Vector(::core::mem::transmute(prgn.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prgn.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn InitPropVariantFromUInt32Vector(prgn: &[u32]) -> ::windows::core::Result { +pub unsafe fn InitPropVariantFromUInt32Vector(prgn: ::core::option::Option<&[u32]>) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InitPropVariantFromUInt32Vector(prgn: *const u32, celems: u32, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitPropVariantFromUInt32Vector(::core::mem::transmute(::windows::core::as_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitPropVariantFromUInt32Vector(::core::mem::transmute(prgn.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prgn.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn InitPropVariantFromUInt64Vector(prgn: &[u64]) -> ::windows::core::Result { +pub unsafe fn InitPropVariantFromUInt64Vector(prgn: ::core::option::Option<&[u64]>) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InitPropVariantFromUInt64Vector(prgn: *const u64, celems: u32, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitPropVariantFromUInt64Vector(::core::mem::transmute(::windows::core::as_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitPropVariantFromUInt64Vector(::core::mem::transmute(prgn.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prgn.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -2800,18 +2800,18 @@ pub unsafe fn InitVariantFromBooleanArray(prgf: &[super::super::super::Foundatio fn InitVariantFromBooleanArray(prgf: *const super::super::super::Foundation::BOOL, celems: u32, pvar: *mut super::super::super::System::Com::VARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitVariantFromBooleanArray(::core::mem::transmute(::windows::core::as_ptr_or_null(prgf)), prgf.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitVariantFromBooleanArray(::core::mem::transmute(prgf.as_ptr()), prgf.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] #[inline] -pub unsafe fn InitVariantFromBuffer(pv: *const ::core::ffi::c_void, cb: u32) -> ::windows::core::Result { +pub unsafe fn InitVariantFromBuffer(pv: &[u8]) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InitVariantFromBuffer(pv: *const ::core::ffi::c_void, cb: u32, pvar: *mut super::super::super::System::Com::VARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitVariantFromBuffer(::core::mem::transmute(pv), cb, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitVariantFromBuffer(::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -2822,7 +2822,7 @@ pub unsafe fn InitVariantFromDoubleArray(prgn: &[f64]) -> ::windows::core::Resul fn InitVariantFromDoubleArray(prgn: *const f64, celems: u32, pvar: *mut super::super::super::System::Com::VARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitVariantFromDoubleArray(::core::mem::transmute(::windows::core::as_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitVariantFromDoubleArray(::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -2838,13 +2838,13 @@ pub unsafe fn InitVariantFromFileTime(pft: &super::super::super::Foundation::FIL #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] #[inline] -pub unsafe fn InitVariantFromFileTimeArray(prgft: &[super::super::super::Foundation::FILETIME]) -> ::windows::core::Result { +pub unsafe fn InitVariantFromFileTimeArray(prgft: ::core::option::Option<&[super::super::super::Foundation::FILETIME]>) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn InitVariantFromFileTimeArray(prgft: *const super::super::super::Foundation::FILETIME, celems: u32, pvar: *mut super::super::super::System::Com::VARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitVariantFromFileTimeArray(::core::mem::transmute(::windows::core::as_ptr_or_null(prgft)), prgft.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitVariantFromFileTimeArray(::core::mem::transmute(prgft.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), prgft.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -2866,7 +2866,7 @@ pub unsafe fn InitVariantFromInt16Array(prgn: &[i16]) -> ::windows::core::Result fn InitVariantFromInt16Array(prgn: *const i16, celems: u32, pvar: *mut super::super::super::System::Com::VARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitVariantFromInt16Array(::core::mem::transmute(::windows::core::as_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitVariantFromInt16Array(::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -2877,7 +2877,7 @@ pub unsafe fn InitVariantFromInt32Array(prgn: &[i32]) -> ::windows::core::Result fn InitVariantFromInt32Array(prgn: *const i32, celems: u32, pvar: *mut super::super::super::System::Com::VARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitVariantFromInt32Array(::core::mem::transmute(::windows::core::as_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitVariantFromInt32Array(::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -2888,7 +2888,7 @@ pub unsafe fn InitVariantFromInt64Array(prgn: &[i64]) -> ::windows::core::Result fn InitVariantFromInt64Array(prgn: *const i64, celems: u32, pvar: *mut super::super::super::System::Com::VARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitVariantFromInt64Array(::core::mem::transmute(::windows::core::as_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitVariantFromInt64Array(::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -2924,7 +2924,7 @@ pub unsafe fn InitVariantFromStringArray(prgsz: &[::windows::core::PWSTR]) -> :: fn InitVariantFromStringArray(prgsz: *const ::windows::core::PWSTR, celems: u32, pvar: *mut super::super::super::System::Com::VARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitVariantFromStringArray(::core::mem::transmute(::windows::core::as_ptr_or_null(prgsz)), prgsz.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitVariantFromStringArray(::core::mem::transmute(prgsz.as_ptr()), prgsz.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -2935,7 +2935,7 @@ pub unsafe fn InitVariantFromUInt16Array(prgn: &[u16]) -> ::windows::core::Resul fn InitVariantFromUInt16Array(prgn: *const u16, celems: u32, pvar: *mut super::super::super::System::Com::VARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitVariantFromUInt16Array(::core::mem::transmute(::windows::core::as_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitVariantFromUInt16Array(::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -2946,7 +2946,7 @@ pub unsafe fn InitVariantFromUInt32Array(prgn: &[u32]) -> ::windows::core::Resul fn InitVariantFromUInt32Array(prgn: *const u32, celems: u32, pvar: *mut super::super::super::System::Com::VARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitVariantFromUInt32Array(::core::mem::transmute(::windows::core::as_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitVariantFromUInt32Array(::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -2957,7 +2957,7 @@ pub unsafe fn InitVariantFromUInt64Array(prgn: &[u64]) -> ::windows::core::Resul fn InitVariantFromUInt64Array(prgn: *const u64, celems: u32, pvar: *mut super::super::super::System::Com::VARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - InitVariantFromUInt64Array(::core::mem::transmute(::windows::core::as_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + InitVariantFromUInt64Array(::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -4233,7 +4233,7 @@ where extern "system" { fn PSCreateDelayedMultiplexPropertyStore(flags: GETPROPERTYSTOREFLAGS, pdpsf: *mut ::core::ffi::c_void, rgstoreids: *const u32, cstores: u32, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - PSCreateDelayedMultiplexPropertyStore(flags, pdpsf.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgstoreids)), rgstoreids.len() as _, ::core::mem::transmute(riid), ::core::mem::transmute(ppv)).ok() + PSCreateDelayedMultiplexPropertyStore(flags, pdpsf.into().abi(), ::core::mem::transmute(rgstoreids.as_ptr()), rgstoreids.len() as _, ::core::mem::transmute(riid), ::core::mem::transmute(ppv)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[inline] @@ -4251,12 +4251,12 @@ pub unsafe fn PSCreateMultiplexPropertyStore(prgpunkstores: &[::core::option::Op extern "system" { fn PSCreateMultiplexPropertyStore(prgpunkstores: *const *mut ::core::ffi::c_void, cstores: u32, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - PSCreateMultiplexPropertyStore(::core::mem::transmute(::windows::core::as_ptr_or_null(prgpunkstores)), prgpunkstores.len() as _, ::core::mem::transmute(riid), ::core::mem::transmute(ppv)).ok() + PSCreateMultiplexPropertyStore(::core::mem::transmute(prgpunkstores.as_ptr()), prgpunkstores.len() as _, ::core::mem::transmute(riid), ::core::mem::transmute(ppv)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn PSCreatePropertyChangeArray(rgpropkey: ::core::option::Option<&PROPERTYKEY>, rgflags: ::core::option::Option<&PKA_FLAGS>, rgpropvar: ::core::option::Option<&super::super::super::System::Com::StructuredStorage::PROPVARIANT>, cchanges: u32, riid: &::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { +pub unsafe fn PSCreatePropertyChangeArray(rgpropkey: *const PROPERTYKEY, rgflags: *const PKA_FLAGS, rgpropvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, cchanges: u32, riid: &::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PSCreatePropertyChangeArray(rgpropkey: *const PROPERTYKEY, rgflags: *const PKA_FLAGS, rgpropvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, cchanges: u32, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; @@ -4315,7 +4315,7 @@ pub unsafe fn PSFormatForDisplay(propkey: &PROPERTYKEY, propvar: &super::super:: extern "system" { fn PSFormatForDisplay(propkey: *const PROPERTYKEY, propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, pdfflags: PROPDESC_FORMAT_FLAGS, pwsztext: ::windows::core::PWSTR, cchtext: u32) -> ::windows::core::HRESULT; } - PSFormatForDisplay(::core::mem::transmute(propkey), ::core::mem::transmute(propvar), pdfflags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwsztext)), pwsztext.len() as _).ok() + PSFormatForDisplay(::core::mem::transmute(propkey), ::core::mem::transmute(propvar), pdfflags, ::core::mem::transmute(pwsztext.as_ptr()), pwsztext.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -4395,7 +4395,7 @@ pub unsafe fn PSGetNameFromPropertyKey(propkey: &PROPERTYKEY) -> ::windows::core #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn PSGetNamedPropertyFromPropertyStorage<'a, P0>(psps: &SERIALIZEDPROPSTORAGE, cb: u32, pszname: P0) -> ::windows::core::Result +pub unsafe fn PSGetNamedPropertyFromPropertyStorage<'a, P0>(psps: &[u8], pszname: P0) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -4404,7 +4404,7 @@ where fn PSGetNamedPropertyFromPropertyStorage(psps: *const SERIALIZEDPROPSTORAGE, cb: u32, pszname: ::windows::core::PCWSTR, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - PSGetNamedPropertyFromPropertyStorage(::core::mem::transmute(psps), cb, pszname.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + PSGetNamedPropertyFromPropertyStorage(::core::mem::transmute(psps.as_ptr()), psps.len() as _, pszname.into(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[inline] @@ -4442,13 +4442,13 @@ where #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn PSGetPropertyFromPropertyStorage(psps: &SERIALIZEDPROPSTORAGE, cb: u32, rpkey: &PROPERTYKEY) -> ::windows::core::Result { +pub unsafe fn PSGetPropertyFromPropertyStorage(psps: &[u8], rpkey: &PROPERTYKEY) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PSGetPropertyFromPropertyStorage(psps: *const SERIALIZEDPROPSTORAGE, cb: u32, rpkey: *const PROPERTYKEY, ppropvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - PSGetPropertyFromPropertyStorage(::core::mem::transmute(psps), cb, ::core::mem::transmute(rpkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + PSGetPropertyFromPropertyStorage(::core::mem::transmute(psps.as_ptr()), psps.len() as _, ::core::mem::transmute(rpkey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[inline] @@ -4691,7 +4691,7 @@ where extern "system" { fn PSPropertyBag_ReadStr(propbag: *mut ::core::ffi::c_void, propname: ::windows::core::PCWSTR, value: ::windows::core::PWSTR, charactercount: i32) -> ::windows::core::HRESULT; } - PSPropertyBag_ReadStr(propbag.into().abi(), propname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(value)), value.len() as _).ok() + PSPropertyBag_ReadStr(propbag.into().abi(), propname.into(), ::core::mem::transmute(value.as_ptr()), value.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(feature = "Win32_System_Com_StructuredStorage")] @@ -5036,7 +5036,7 @@ pub unsafe fn PSStringFromPropertyKey(pkey: &PROPERTYKEY, psz: &mut [u16]) -> :: extern "system" { fn PSStringFromPropertyKey(pkey: *const PROPERTYKEY, psz: ::windows::core::PWSTR, cch: u32) -> ::windows::core::HRESULT; } - PSStringFromPropertyKey(::core::mem::transmute(pkey), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psz)), psz.len() as _).ok() + PSStringFromPropertyKey(::core::mem::transmute(pkey), ::core::mem::transmute(psz.as_ptr()), psz.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[repr(transparent)] @@ -5121,7 +5121,7 @@ where #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PifMgr_GetProperties<'a, P0, P1>(hprops: P0, pszgroup: P1, lpprops: *mut ::core::ffi::c_void, cbprops: i32, flopt: u32) -> i32 +pub unsafe fn PifMgr_GetProperties<'a, P0, P1>(hprops: P0, pszgroup: P1, lpprops: ::core::option::Option<&mut [u8]>, flopt: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -5130,7 +5130,7 @@ where extern "system" { fn PifMgr_GetProperties(hprops: super::super::super::Foundation::HANDLE, pszgroup: ::windows::core::PCSTR, lpprops: *mut ::core::ffi::c_void, cbprops: i32, flopt: u32) -> i32; } - PifMgr_GetProperties(hprops.into(), pszgroup.into(), ::core::mem::transmute(lpprops), cbprops, flopt) + PifMgr_GetProperties(hprops.into(), pszgroup.into(), ::core::mem::transmute(lpprops.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpprops.as_deref().map_or(0, |slice| slice.len() as _), flopt) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5149,7 +5149,7 @@ where #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn PifMgr_SetProperties<'a, P0, P1>(hprops: P0, pszgroup: P1, lpprops: *const ::core::ffi::c_void, cbprops: i32, flopt: u32) -> i32 +pub unsafe fn PifMgr_SetProperties<'a, P0, P1>(hprops: P0, pszgroup: P1, lpprops: &[u8], flopt: u32) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -5158,7 +5158,7 @@ where extern "system" { fn PifMgr_SetProperties(hprops: super::super::super::Foundation::HANDLE, pszgroup: ::windows::core::PCSTR, lpprops: *const ::core::ffi::c_void, cbprops: i32, flopt: u32) -> i32; } - PifMgr_SetProperties(hprops.into(), pszgroup.into(), ::core::mem::transmute(lpprops), cbprops, flopt) + PifMgr_SetProperties(hprops.into(), pszgroup.into(), ::core::mem::transmute(lpprops.as_ptr()), lpprops.len() as _, flopt) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -5330,7 +5330,7 @@ pub unsafe fn PropVariantToBooleanVector(propvar: &super::super::super::System:: extern "system" { fn PropVariantToBooleanVector(propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, prgf: *mut super::super::super::Foundation::BOOL, crgf: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - PropVariantToBooleanVector(::core::mem::transmute(propvar), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgf)), prgf.len() as _, ::core::mem::transmute(pcelem)).ok() + PropVariantToBooleanVector(::core::mem::transmute(propvar), ::core::mem::transmute(prgf.as_ptr()), prgf.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -5358,12 +5358,12 @@ where #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn PropVariantToBuffer(propvar: &super::super::super::System::Com::StructuredStorage::PROPVARIANT, pv: *mut ::core::ffi::c_void, cb: u32) -> ::windows::core::Result<()> { +pub unsafe fn PropVariantToBuffer(propvar: &super::super::super::System::Com::StructuredStorage::PROPVARIANT, pv: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PropVariantToBuffer(propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, pv: *mut ::core::ffi::c_void, cb: u32) -> ::windows::core::HRESULT; } - PropVariantToBuffer(::core::mem::transmute(propvar), ::core::mem::transmute(pv), cb).ok() + PropVariantToBuffer(::core::mem::transmute(propvar), ::core::mem::transmute(pv.as_ptr()), pv.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -5384,7 +5384,7 @@ pub unsafe fn PropVariantToDoubleVector(propvar: &super::super::super::System::C extern "system" { fn PropVariantToDoubleVector(propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, prgn: *mut f64, crgn: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - PropVariantToDoubleVector(::core::mem::transmute(propvar), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() + PropVariantToDoubleVector(::core::mem::transmute(propvar), ::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -5425,7 +5425,7 @@ pub unsafe fn PropVariantToFileTimeVector(propvar: &super::super::super::System: extern "system" { fn PropVariantToFileTimeVector(propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, prgft: *mut super::super::super::Foundation::FILETIME, crgft: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - PropVariantToFileTimeVector(::core::mem::transmute(propvar), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgft)), prgft.len() as _, ::core::mem::transmute(pcelem)).ok() + PropVariantToFileTimeVector(::core::mem::transmute(propvar), ::core::mem::transmute(prgft.as_ptr()), prgft.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -5467,7 +5467,7 @@ pub unsafe fn PropVariantToInt16Vector(propvar: &super::super::super::System::Co extern "system" { fn PropVariantToInt16Vector(propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, prgn: *mut i16, crgn: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - PropVariantToInt16Vector(::core::mem::transmute(propvar), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() + PropVariantToInt16Vector(::core::mem::transmute(propvar), ::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -5508,7 +5508,7 @@ pub unsafe fn PropVariantToInt32Vector(propvar: &super::super::super::System::Co extern "system" { fn PropVariantToInt32Vector(propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, prgn: *mut i32, crgn: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - PropVariantToInt32Vector(::core::mem::transmute(propvar), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() + PropVariantToInt32Vector(::core::mem::transmute(propvar), ::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -5549,7 +5549,7 @@ pub unsafe fn PropVariantToInt64Vector(propvar: &super::super::super::System::Co extern "system" { fn PropVariantToInt64Vector(propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, prgn: *mut i64, crgn: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - PropVariantToInt64Vector(::core::mem::transmute(propvar), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() + PropVariantToInt64Vector(::core::mem::transmute(propvar), ::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -5590,7 +5590,7 @@ pub unsafe fn PropVariantToString(propvar: &super::super::super::System::Com::St extern "system" { fn PropVariantToString(propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, psz: ::windows::core::PWSTR, cch: u32) -> ::windows::core::HRESULT; } - PropVariantToString(::core::mem::transmute(propvar), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psz)), psz.len() as _).ok() + PropVariantToString(::core::mem::transmute(propvar), ::core::mem::transmute(psz.as_ptr()), psz.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -5611,7 +5611,7 @@ pub unsafe fn PropVariantToStringVector(propvar: &super::super::super::System::C extern "system" { fn PropVariantToStringVector(propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, prgsz: *mut ::windows::core::PWSTR, crgsz: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - PropVariantToStringVector(::core::mem::transmute(propvar), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgsz)), prgsz.len() as _, ::core::mem::transmute(pcelem)).ok() + PropVariantToStringVector(::core::mem::transmute(propvar), ::core::mem::transmute(prgsz.as_ptr()), prgsz.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -5655,7 +5655,7 @@ pub unsafe fn PropVariantToUInt16Vector(propvar: &super::super::super::System::C extern "system" { fn PropVariantToUInt16Vector(propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, prgn: *mut u16, crgn: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - PropVariantToUInt16Vector(::core::mem::transmute(propvar), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() + PropVariantToUInt16Vector(::core::mem::transmute(propvar), ::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -5696,7 +5696,7 @@ pub unsafe fn PropVariantToUInt32Vector(propvar: &super::super::super::System::C extern "system" { fn PropVariantToUInt32Vector(propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, prgn: *mut u32, crgn: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - PropVariantToUInt32Vector(::core::mem::transmute(propvar), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() + PropVariantToUInt32Vector(::core::mem::transmute(propvar), ::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -5737,7 +5737,7 @@ pub unsafe fn PropVariantToUInt64Vector(propvar: &super::super::super::System::C extern "system" { fn PropVariantToUInt64Vector(propvar: *const super::super::super::System::Com::StructuredStorage::PROPVARIANT, prgn: *mut u64, crgn: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - PropVariantToUInt64Vector(::core::mem::transmute(propvar), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() + PropVariantToUInt64Vector(::core::mem::transmute(propvar), ::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] @@ -5861,12 +5861,12 @@ where fn SHPropStgReadMultiple(pps: *mut ::core::ffi::c_void, ucodepage: u32, cpspec: u32, rgpspec: *const super::super::super::System::Com::StructuredStorage::PROPSPEC, rgvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - SHPropStgReadMultiple(pps.into().abi(), ucodepage, rgpspec.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpspec)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + SHPropStgReadMultiple(pps.into().abi(), ucodepage, rgpspec.len() as _, ::core::mem::transmute(rgpspec.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] #[inline] -pub unsafe fn SHPropStgWriteMultiple<'a, P0>(pps: P0, pucodepage: ::core::option::Option<&mut u32>, cpspec: u32, rgpspec: &super::super::super::System::Com::StructuredStorage::PROPSPEC, rgvar: &mut super::super::super::System::Com::StructuredStorage::PROPVARIANT, propidnamefirst: u32) -> ::windows::core::Result<()> +pub unsafe fn SHPropStgWriteMultiple<'a, P0>(pps: P0, pucodepage: ::core::option::Option<&mut u32>, cpspec: u32, rgpspec: *const super::super::super::System::Com::StructuredStorage::PROPSPEC, rgvar: *mut super::super::super::System::Com::StructuredStorage::PROPVARIANT, propidnamefirst: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::super::System::Com::StructuredStorage::IPropertyStorage>>, { @@ -6162,7 +6162,7 @@ pub unsafe fn VariantToBooleanArray(var: &super::super::super::System::Com::VARI extern "system" { fn VariantToBooleanArray(var: *const super::super::super::System::Com::VARIANT, prgf: *mut super::super::super::Foundation::BOOL, crgn: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - VariantToBooleanArray(::core::mem::transmute(var), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgf)), prgf.len() as _, ::core::mem::transmute(pcelem)).ok() + VariantToBooleanArray(::core::mem::transmute(var), ::core::mem::transmute(prgf.as_ptr()), prgf.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -6190,12 +6190,12 @@ where #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] #[inline] -pub unsafe fn VariantToBuffer(varin: &super::super::super::System::Com::VARIANT, pv: *mut ::core::ffi::c_void, cb: u32) -> ::windows::core::Result<()> { +pub unsafe fn VariantToBuffer(varin: &super::super::super::System::Com::VARIANT, pv: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn VariantToBuffer(varin: *const super::super::super::System::Com::VARIANT, pv: *mut ::core::ffi::c_void, cb: u32) -> ::windows::core::HRESULT; } - VariantToBuffer(::core::mem::transmute(varin), ::core::mem::transmute(pv), cb).ok() + VariantToBuffer(::core::mem::transmute(varin), ::core::mem::transmute(pv.as_ptr()), pv.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -6226,7 +6226,7 @@ pub unsafe fn VariantToDoubleArray(var: &super::super::super::System::Com::VARIA extern "system" { fn VariantToDoubleArray(var: *const super::super::super::System::Com::VARIANT, prgn: *mut f64, crgn: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - VariantToDoubleArray(::core::mem::transmute(var), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() + VariantToDoubleArray(::core::mem::transmute(var), ::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -6289,7 +6289,7 @@ pub unsafe fn VariantToInt16Array(var: &super::super::super::System::Com::VARIAN extern "system" { fn VariantToInt16Array(var: *const super::super::super::System::Com::VARIANT, prgn: *mut i16, crgn: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - VariantToInt16Array(::core::mem::transmute(var), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() + VariantToInt16Array(::core::mem::transmute(var), ::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -6330,7 +6330,7 @@ pub unsafe fn VariantToInt32Array(var: &super::super::super::System::Com::VARIAN extern "system" { fn VariantToInt32Array(var: *const super::super::super::System::Com::VARIANT, prgn: *mut i32, crgn: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - VariantToInt32Array(::core::mem::transmute(var), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() + VariantToInt32Array(::core::mem::transmute(var), ::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -6371,7 +6371,7 @@ pub unsafe fn VariantToInt64Array(var: &super::super::super::System::Com::VARIAN extern "system" { fn VariantToInt64Array(var: *const super::super::super::System::Com::VARIANT, prgn: *mut i64, crgn: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - VariantToInt64Array(::core::mem::transmute(var), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() + VariantToInt64Array(::core::mem::transmute(var), ::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -6423,7 +6423,7 @@ pub unsafe fn VariantToString(varin: &super::super::super::System::Com::VARIANT, extern "system" { fn VariantToString(varin: *const super::super::super::System::Com::VARIANT, pszbuf: ::windows::core::PWSTR, cchbuf: u32) -> ::windows::core::HRESULT; } - VariantToString(::core::mem::transmute(varin), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszbuf.len() as _).ok() + VariantToString(::core::mem::transmute(varin), ::core::mem::transmute(pszbuf.as_ptr()), pszbuf.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -6444,7 +6444,7 @@ pub unsafe fn VariantToStringArray(var: &super::super::super::System::Com::VARIA extern "system" { fn VariantToStringArray(var: *const super::super::super::System::Com::VARIANT, prgsz: *mut ::windows::core::PWSTR, crgsz: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - VariantToStringArray(::core::mem::transmute(var), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgsz)), prgsz.len() as _, ::core::mem::transmute(pcelem)).ok() + VariantToStringArray(::core::mem::transmute(var), ::core::mem::transmute(prgsz.as_ptr()), prgsz.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -6488,7 +6488,7 @@ pub unsafe fn VariantToUInt16Array(var: &super::super::super::System::Com::VARIA extern "system" { fn VariantToUInt16Array(var: *const super::super::super::System::Com::VARIANT, prgn: *mut u16, crgn: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - VariantToUInt16Array(::core::mem::transmute(var), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() + VariantToUInt16Array(::core::mem::transmute(var), ::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -6529,7 +6529,7 @@ pub unsafe fn VariantToUInt32Array(var: &super::super::super::System::Com::VARIA extern "system" { fn VariantToUInt32Array(var: *const super::super::super::System::Com::VARIANT, prgn: *mut u32, crgn: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - VariantToUInt32Array(::core::mem::transmute(var), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() + VariantToUInt32Array(::core::mem::transmute(var), ::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] @@ -6570,7 +6570,7 @@ pub unsafe fn VariantToUInt64Array(var: &super::super::super::System::Com::VARIA extern "system" { fn VariantToUInt64Array(var: *const super::super::super::System::Com::VARIANT, prgn: *mut u64, crgn: u32, pcelem: *mut u32) -> ::windows::core::HRESULT; } - VariantToUInt64Array(::core::mem::transmute(var), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgn)), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() + VariantToUInt64Array(::core::mem::transmute(var), ::core::mem::transmute(prgn.as_ptr()), prgn.len() as _, ::core::mem::transmute(pcelem)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] diff --git a/crates/libs/windows/src/Windows/Win32/UI/Shell/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/Shell/mod.rs index ae42887fef..f8d2e9f51b 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/Shell/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/Shell/mod.rs @@ -1446,7 +1446,7 @@ where fn AssocCreateForClasses(rgclasses: *const ASSOCIATIONELEMENT, cclasses: u32, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::option::Option::None; - AssocCreateForClasses(::core::mem::transmute(::windows::core::as_ptr_or_null(rgclasses)), rgclasses.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + AssocCreateForClasses(::core::mem::transmute(rgclasses.as_ptr()), rgclasses.len() as _, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_UI_Shell_Common\"`, `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_UI_Shell_Common", feature = "Win32_UI_Shell_PropertiesSystem"))] @@ -2635,7 +2635,7 @@ impl ::core::fmt::Debug for CDCONTROLSTATEF { #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Registry\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common"))] #[inline] -pub unsafe fn CDefFolderMenu_Create2<'a, P0, P1>(pidlfolder: ::core::option::Option<&Common::ITEMIDLIST>, hwnd: P0, apidl: &[*const Common::ITEMIDLIST], psf: P1, pfn: LPFNDFMCALLBACK, ahkeys: &[super::super::System::Registry::HKEY]) -> ::windows::core::Result +pub unsafe fn CDefFolderMenu_Create2<'a, P0, P1>(pidlfolder: ::core::option::Option<&Common::ITEMIDLIST>, hwnd: P0, apidl: ::core::option::Option<&[*const Common::ITEMIDLIST]>, psf: P1, pfn: LPFNDFMCALLBACK, ahkeys: ::core::option::Option<&[super::super::System::Registry::HKEY]>) -> ::windows::core::Result where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::InParam<'a, IShellFolder>>, @@ -2645,7 +2645,7 @@ where fn CDefFolderMenu_Create2(pidlfolder: *const Common::ITEMIDLIST, hwnd: super::super::Foundation::HWND, cidl: u32, apidl: *const *const Common::ITEMIDLIST, psf: *mut ::core::ffi::c_void, pfn: *mut ::core::ffi::c_void, nkeys: u32, ahkeys: *const super::super::System::Registry::HKEY, ppcm: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - CDefFolderMenu_Create2(::core::mem::transmute(pidlfolder), hwnd.into(), apidl.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(apidl)), psf.into().abi(), ::core::mem::transmute(pfn), ahkeys.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ahkeys)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + CDefFolderMenu_Create2(::core::mem::transmute(pidlfolder), hwnd.into(), apidl.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(apidl.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psf.into().abi(), ::core::mem::transmute(pfn), ahkeys.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ahkeys.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] pub const CFSTR_AUTOPLAY_SHELLIDLISTS: &str = "Autoplay Enumerated IDList Array"; @@ -2749,13 +2749,13 @@ impl ::core::default::Default for CIDA { #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))] #[inline] -pub unsafe fn CIDLData_CreateFromIDArray(pidlfolder: &Common::ITEMIDLIST, apidl: &[*const Common::ITEMIDLIST]) -> ::windows::core::Result { +pub unsafe fn CIDLData_CreateFromIDArray(pidlfolder: &Common::ITEMIDLIST, apidl: ::core::option::Option<&[*const Common::ITEMIDLIST]>) -> ::windows::core::Result { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn CIDLData_CreateFromIDArray(pidlfolder: *const Common::ITEMIDLIST, cidl: u32, apidl: *const *const Common::ITEMIDLIST, ppdtobj: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - CIDLData_CreateFromIDArray(::core::mem::transmute(pidlfolder), apidl.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(apidl)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + CIDLData_CreateFromIDArray(::core::mem::transmute(pidlfolder), apidl.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(apidl.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -4395,7 +4395,7 @@ where extern "system" { fn CreateProfile(pszusersid: ::windows::core::PCWSTR, pszusername: ::windows::core::PCWSTR, pszprofilepath: ::windows::core::PWSTR, cchprofilepath: u32) -> ::windows::core::HRESULT; } - CreateProfile(pszusersid.into(), pszusername.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszprofilepath)), pszprofilepath.len() as _).ok() + CreateProfile(pszusersid.into(), pszusername.into(), ::core::mem::transmute(pszprofilepath.as_ptr()), pszprofilepath.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6209,7 +6209,7 @@ pub unsafe fn DoEnvironmentSubstA(pszsrc: &mut [u8]) -> u32 { extern "system" { fn DoEnvironmentSubstA(pszsrc: ::windows::core::PSTR, cchsrc: u32) -> u32; } - DoEnvironmentSubstA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszsrc)), pszsrc.len() as _) + DoEnvironmentSubstA(::core::mem::transmute(pszsrc.as_ptr()), pszsrc.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -6218,7 +6218,7 @@ pub unsafe fn DoEnvironmentSubstW(pszsrc: &mut [u16]) -> u32 { extern "system" { fn DoEnvironmentSubstW(pszsrc: ::windows::core::PWSTR, cchsrc: u32) -> u32; } - DoEnvironmentSubstW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszsrc)), pszsrc.len() as _) + DoEnvironmentSubstW(::core::mem::transmute(pszsrc.as_ptr()), pszsrc.len() as _) } pub const DocPropShellExtension: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x883373c3_bf89_11d1_be35_080036b11a03); #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] @@ -6249,7 +6249,7 @@ where } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] -pub unsafe fn DragQueryFileA<'a, P0>(hdrop: P0, ifile: u32, lpszfile: &mut [u8]) -> u32 +pub unsafe fn DragQueryFileA<'a, P0>(hdrop: P0, ifile: u32, lpszfile: ::core::option::Option<&mut [u8]>) -> u32 where P0: ::std::convert::Into, { @@ -6257,11 +6257,11 @@ where extern "system" { fn DragQueryFileA(hdrop: HDROP, ifile: u32, lpszfile: ::windows::core::PSTR, cch: u32) -> u32; } - DragQueryFileA(hdrop.into(), ifile, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszfile)), lpszfile.len() as _) + DragQueryFileA(hdrop.into(), ifile, ::core::mem::transmute(lpszfile.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszfile.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] -pub unsafe fn DragQueryFileW<'a, P0>(hdrop: P0, ifile: u32, lpszfile: &mut [u16]) -> u32 +pub unsafe fn DragQueryFileW<'a, P0>(hdrop: P0, ifile: u32, lpszfile: ::core::option::Option<&mut [u16]>) -> u32 where P0: ::std::convert::Into, { @@ -6269,7 +6269,7 @@ where extern "system" { fn DragQueryFileW(hdrop: HDROP, ifile: u32, lpszfile: ::windows::core::PWSTR, cch: u32) -> u32; } - DragQueryFileW(hdrop.into(), ifile, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszfile)), lpszfile.len() as _) + DragQueryFileW(hdrop.into(), ifile, ::core::mem::transmute(lpszfile.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpszfile.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -6676,7 +6676,7 @@ where extern "system" { fn ExtractAssociatedIconA(hinst: super::super::Foundation::HINSTANCE, psziconpath: ::windows::core::PSTR, piicon: *mut u16) -> super::WindowsAndMessaging::HICON; } - ExtractAssociatedIconA(hinst.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psziconpath)), ::core::mem::transmute(piicon)) + ExtractAssociatedIconA(hinst.into(), ::core::mem::transmute(psziconpath.as_ptr()), ::core::mem::transmute(piicon)) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] @@ -6689,7 +6689,7 @@ where extern "system" { fn ExtractAssociatedIconExA(hinst: super::super::Foundation::HINSTANCE, psziconpath: ::windows::core::PSTR, piiconindex: *mut u16, piiconid: *mut u16) -> super::WindowsAndMessaging::HICON; } - ExtractAssociatedIconExA(hinst.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psziconpath)), ::core::mem::transmute(piiconindex), ::core::mem::transmute(piiconid)) + ExtractAssociatedIconExA(hinst.into(), ::core::mem::transmute(psziconpath.as_ptr()), ::core::mem::transmute(piiconindex), ::core::mem::transmute(piiconid)) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] @@ -6702,7 +6702,7 @@ where extern "system" { fn ExtractAssociatedIconExW(hinst: super::super::Foundation::HINSTANCE, psziconpath: ::windows::core::PWSTR, piiconindex: *mut u16, piiconid: *mut u16) -> super::WindowsAndMessaging::HICON; } - ExtractAssociatedIconExW(hinst.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psziconpath)), ::core::mem::transmute(piiconindex), ::core::mem::transmute(piiconid)) + ExtractAssociatedIconExW(hinst.into(), ::core::mem::transmute(psziconpath.as_ptr()), ::core::mem::transmute(piiconindex), ::core::mem::transmute(piiconid)) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] @@ -6715,7 +6715,7 @@ where extern "system" { fn ExtractAssociatedIconW(hinst: super::super::Foundation::HINSTANCE, psziconpath: ::windows::core::PWSTR, piicon: *mut u16) -> super::WindowsAndMessaging::HICON; } - ExtractAssociatedIconW(hinst.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psziconpath)), ::core::mem::transmute(piicon)) + ExtractAssociatedIconW(hinst.into(), ::core::mem::transmute(psziconpath.as_ptr()), ::core::mem::transmute(piicon)) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] @@ -6734,7 +6734,7 @@ where #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] #[inline] -pub unsafe fn ExtractIconExA<'a, P0>(lpszfile: P0, niconindex: i32, phiconlarge: ::core::option::Option<&mut super::WindowsAndMessaging::HICON>, phiconsmall: ::core::option::Option<&mut super::WindowsAndMessaging::HICON>, nicons: u32) -> u32 +pub unsafe fn ExtractIconExA<'a, P0>(lpszfile: P0, niconindex: i32, phiconlarge: *mut super::WindowsAndMessaging::HICON, phiconsmall: *mut super::WindowsAndMessaging::HICON, nicons: u32) -> u32 where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -6747,7 +6747,7 @@ where #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] #[inline] -pub unsafe fn ExtractIconExW<'a, P0>(lpszfile: P0, niconindex: i32, phiconlarge: ::core::option::Option<&mut super::WindowsAndMessaging::HICON>, phiconsmall: ::core::option::Option<&mut super::WindowsAndMessaging::HICON>, nicons: u32) -> u32 +pub unsafe fn ExtractIconExW<'a, P0>(lpszfile: P0, niconindex: i32, phiconlarge: *mut super::WindowsAndMessaging::HICON, phiconsmall: *mut super::WindowsAndMessaging::HICON, nicons: u32) -> u32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -8032,7 +8032,7 @@ where extern "system" { fn FindExecutableA(lpfile: ::windows::core::PCSTR, lpdirectory: ::windows::core::PCSTR, lpresult: ::windows::core::PSTR) -> super::super::Foundation::HINSTANCE; } - FindExecutableA(lpfile.into(), lpdirectory.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpresult))) + FindExecutableA(lpfile.into(), lpdirectory.into(), ::core::mem::transmute(lpresult.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8046,7 +8046,7 @@ where extern "system" { fn FindExecutableW(lpfile: ::windows::core::PCWSTR, lpdirectory: ::windows::core::PCWSTR, lpresult: ::windows::core::PWSTR) -> super::super::Foundation::HINSTANCE; } - FindExecutableW(lpfile.into(), lpdirectory.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpresult))) + FindExecutableW(lpfile.into(), lpdirectory.into(), ::core::mem::transmute(lpresult.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -9877,7 +9877,7 @@ where extern "system" { fn GetFileNameFromBrowse(hwnd: super::super::Foundation::HWND, pszfilepath: ::windows::core::PWSTR, cchfilepath: u32, pszworkingdir: ::windows::core::PCWSTR, pszdefext: ::windows::core::PCWSTR, pszfilters: ::windows::core::PCWSTR, psztitle: ::windows::core::PCWSTR) -> super::super::Foundation::BOOL; } - GetFileNameFromBrowse(hwnd.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszfilepath)), pszfilepath.len() as _, pszworkingdir.into(), pszdefext.into(), pszfilters.into(), psztitle.into()) + GetFileNameFromBrowse(hwnd.into(), ::core::mem::transmute(pszfilepath.as_ptr()), pszfilepath.len() as _, pszworkingdir.into(), pszdefext.into(), pszfilters.into(), psztitle.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] @@ -10753,7 +10753,7 @@ pub unsafe fn HMONITOR_UserSize64(param0: &u32, param1: u32, param2: &super::sup #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn HMONITOR_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut super::super::Graphics::Gdi::HMONITOR) -> *mut u8 { +pub unsafe fn HMONITOR_UserUnmarshal(param0: &u32, param1: *const u8, param2: &mut super::super::Graphics::Gdi::HMONITOR) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HMONITOR_UserUnmarshal(param0: *const u32, param1: *const u8, param2: *mut super::super::Graphics::Gdi::HMONITOR) -> *mut u8; @@ -10763,7 +10763,7 @@ pub unsafe fn HMONITOR_UserUnmarshal(param0: &u32, param1: &u8, param2: &mut sup #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] #[inline] -pub unsafe fn HMONITOR_UserUnmarshal64(param0: &u32, param1: &u8, param2: &mut super::super::Graphics::Gdi::HMONITOR) -> *mut u8 { +pub unsafe fn HMONITOR_UserUnmarshal64(param0: &u32, param1: *const u8, param2: &mut super::super::Graphics::Gdi::HMONITOR) -> *mut u8 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HMONITOR_UserUnmarshal64(param0: *const u32, param1: *const u8, param2: *mut super::super::Graphics::Gdi::HMONITOR) -> *mut u8; @@ -10843,12 +10843,12 @@ unsafe impl ::windows::core::Abi for HPSXA { } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] -pub unsafe fn HashData(pbdata: &u8, cbdata: u32, pbhash: &mut u8, cbhash: u32) -> ::windows::core::Result<()> { +pub unsafe fn HashData(pbdata: &[u8], pbhash: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn HashData(pbdata: *const u8, cbdata: u32, pbhash: *mut u8, cbhash: u32) -> ::windows::core::HRESULT; } - HashData(::core::mem::transmute(pbdata), cbdata, ::core::mem::transmute(pbhash), cbhash).ok() + HashData(::core::mem::transmute(pbdata.as_ptr()), pbdata.len() as _, ::core::mem::transmute(pbhash.as_ptr()), pbhash.len() as _).ok() } pub const HideInputPaneAnimationCoordinator: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x384742b1_2a77_4cb3_8cf8_1136f5e17e59); #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] @@ -13159,8 +13159,8 @@ impl IBandSite { } #[doc = "*Required features: `\"Win32_System_Ole\"`*"] #[cfg(feature = "Win32_System_Ole")] - pub unsafe fn QueryBand(&self, dwbandid: u32, ppstb: ::core::option::Option<&mut ::core::option::Option>, pdwstate: ::core::option::Option<&mut u32>, pszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).QueryBand)(::windows::core::Interface::as_raw(self), dwbandid, ::core::mem::transmute(ppstb), ::core::mem::transmute(pdwstate), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), pszname.len() as _).ok() + pub unsafe fn QueryBand(&self, dwbandid: u32, ppstb: ::core::option::Option<&mut ::core::option::Option>, pdwstate: ::core::option::Option<&mut u32>, pszname: ::core::option::Option<&mut [u16]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).QueryBand)(::windows::core::Interface::as_raw(self), dwbandid, ::core::mem::transmute(ppstb), ::core::mem::transmute(pdwstate), ::core::mem::transmute(pszname.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszname.as_deref().map_or(0, |slice| slice.len() as _)).ok() } pub unsafe fn SetBandState(&self, dwbandid: u32, dwmask: u32, dwstate: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetBandState)(::windows::core::Interface::as_raw(self), dwbandid, dwmask, dwstate).ok() @@ -13433,7 +13433,7 @@ impl IBrowserService { where P0: ::std::convert::Into<::windows::core::InParam<'a, IShellView>>, { - (::windows::core::Interface::vtable(self).GetTitle)(::windows::core::Interface::as_raw(self), psv.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), pszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetTitle)(::windows::core::Interface::as_raw(self), psv.into().abi(), ::core::mem::transmute(pszname.as_ptr()), pszname.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Ole\"`*"] #[cfg(feature = "Win32_System_Ole")] @@ -13739,7 +13739,7 @@ impl IBrowserService2 { where P0: ::std::convert::Into<::windows::core::InParam<'a, IShellView>>, { - (::windows::core::Interface::vtable(self).base__.GetTitle)(::windows::core::Interface::as_raw(self), psv.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), pszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetTitle)(::windows::core::Interface::as_raw(self), psv.into().abi(), ::core::mem::transmute(pszname.as_ptr()), pszname.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Ole\"`*"] #[cfg(feature = "Win32_System_Ole")] @@ -14478,7 +14478,7 @@ impl IBrowserService3 { where P0: ::std::convert::Into<::windows::core::InParam<'a, IShellView>>, { - (::windows::core::Interface::vtable(self).base__.base__.GetTitle)(::windows::core::Interface::as_raw(self), psv.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), pszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.GetTitle)(::windows::core::Interface::as_raw(self), psv.into().abi(), ::core::mem::transmute(pszname.as_ptr()), pszname.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Ole\"`*"] #[cfg(feature = "Win32_System_Ole")] @@ -15093,7 +15093,7 @@ impl IBrowserService4 { where P0: ::std::convert::Into<::windows::core::InParam<'a, IShellView>>, { - (::windows::core::Interface::vtable(self).base__.base__.base__.GetTitle)(::windows::core::Interface::as_raw(self), psv.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), pszname.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.base__.base__.GetTitle)(::windows::core::Interface::as_raw(self), psv.into().abi(), ::core::mem::transmute(pszname.as_ptr()), pszname.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Ole\"`*"] #[cfg(feature = "Win32_System_Ole")] @@ -15715,7 +15715,7 @@ pub struct IBrowserService4_Vtbl { pub struct ICDBurn(::windows::core::IUnknown); impl ICDBurn { pub unsafe fn GetRecorderDriveLetter(&self, pszdrive: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetRecorderDriveLetter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdrive)), pszdrive.len() as _).ok() + (::windows::core::Interface::vtable(self).GetRecorderDriveLetter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszdrive.as_ptr()), pszdrive.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -15836,11 +15836,11 @@ pub struct ICDBurnExt_Vtbl { pub struct ICategorizer(::windows::core::IUnknown); impl ICategorizer { pub unsafe fn GetDescription(&self, pszdesc: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDescription)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdesc)), pszdesc.len() as _).ok() + (::windows::core::Interface::vtable(self).GetDescription)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszdesc.as_ptr()), pszdesc.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] - pub unsafe fn GetCategory(&self, cidl: u32, apidl: &*const Common::ITEMIDLIST, rgcategoryids: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetCategory(&self, cidl: u32, apidl: *const *const Common::ITEMIDLIST, rgcategoryids: *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetCategory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cidl), ::core::mem::transmute(apidl), ::core::mem::transmute(rgcategoryids)).ok() } pub unsafe fn GetCategoryInfo(&self, dwcategoryid: u32) -> ::windows::core::Result { @@ -15925,7 +15925,7 @@ impl ICategoryProvider { (::windows::core::Interface::vtable(self).EnumCategories)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetCategoryName(&self, pguid: &::windows::core::GUID, pszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCategoryName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pguid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), pszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetCategoryName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pguid), ::core::mem::transmute(pszname.as_ptr()), pszname.len() as _).ok() } pub unsafe fn CreateCategory(&self, pguid: &::windows::core::GUID) -> ::windows::core::Result where @@ -16014,12 +16014,12 @@ impl IColumnManager { #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] pub unsafe fn GetColumns(&self, dwflags: CM_ENUM_FLAGS, rgkeyorder: &mut [PropertiesSystem::PROPERTYKEY]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetColumns)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgkeyorder)), rgkeyorder.len() as _).ok() + (::windows::core::Interface::vtable(self).GetColumns)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(rgkeyorder.as_ptr()), rgkeyorder.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] pub unsafe fn SetColumns(&self, rgkeyorder: &[PropertiesSystem::PROPERTYKEY]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetColumns)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgkeyorder)), rgkeyorder.len() as _).ok() + (::windows::core::Interface::vtable(self).SetColumns)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rgkeyorder.as_ptr()), rgkeyorder.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -16271,7 +16271,7 @@ impl ICommDlgBrowser2 { where P0: ::std::convert::Into<::windows::core::InParam<'a, IShellView>>, { - (::windows::core::Interface::vtable(self).GetDefaultMenuText)(::windows::core::Interface::as_raw(self), ppshv.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psztext)), psztext.len() as _).ok() + (::windows::core::Interface::vtable(self).GetDefaultMenuText)(::windows::core::Interface::as_raw(self), ppshv.into().abi(), ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _).ok() } pub unsafe fn GetViewFlags(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -16384,7 +16384,7 @@ impl ICommDlgBrowser3 { where P0: ::std::convert::Into<::windows::core::InParam<'a, IShellView>>, { - (::windows::core::Interface::vtable(self).base__.GetDefaultMenuText)(::windows::core::Interface::as_raw(self), ppshv.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psztext)), psztext.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.GetDefaultMenuText)(::windows::core::Interface::as_raw(self), ppshv.into().abi(), ::core::mem::transmute(psztext.as_ptr()), psztext.len() as _).ok() } pub unsafe fn GetViewFlags(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -16399,7 +16399,7 @@ impl ICommDlgBrowser3 { (::windows::core::Interface::vtable(self).OnColumnClicked)(::windows::core::Interface::as_raw(self), ppshv.into().abi(), icolumn).ok() } pub unsafe fn GetCurrentFilter(&self, pszfilespec: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetCurrentFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszfilespec)), pszfilespec.len() as _).ok() + (::windows::core::Interface::vtable(self).GetCurrentFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszfilespec.as_ptr()), pszfilespec.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Ole\"`*"] #[cfg(feature = "Win32_System_Ole")] @@ -18158,7 +18158,7 @@ pub struct ICredentialProviderFilter(::windows::core::IUnknown); impl ICredentialProviderFilter { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn Filter(&self, cpus: CREDENTIAL_PROVIDER_USAGE_SCENARIO, dwflags: u32, rgclsidproviders: &::windows::core::GUID, rgballow: &mut super::super::Foundation::BOOL, cproviders: u32) -> ::windows::core::Result<()> { + pub unsafe fn Filter(&self, cpus: CREDENTIAL_PROVIDER_USAGE_SCENARIO, dwflags: u32, rgclsidproviders: *const ::windows::core::GUID, rgballow: *mut super::super::Foundation::BOOL, cproviders: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Filter)(::windows::core::Interface::as_raw(self), cpus, dwflags, ::core::mem::transmute(rgclsidproviders), ::core::mem::transmute(rgballow), ::core::mem::transmute(cproviders)).ok() } pub unsafe fn UpdateRemoteCredential(&self, pcpcsin: &CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION) -> ::windows::core::Result { @@ -18477,7 +18477,7 @@ pub struct ICurrentItem_Vtbl { pub struct ICurrentWorkingDirectory(::windows::core::IUnknown); impl ICurrentWorkingDirectory { pub unsafe fn GetDirectory(&self, pwzpath: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDirectory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwzpath)), pwzpath.len() as _).ok() + (::windows::core::Interface::vtable(self).GetDirectory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwzpath.as_ptr()), pwzpath.len() as _).ok() } pub unsafe fn SetDirectory<'a, P0>(&self, pwzpath: P0) -> ::windows::core::Result<()> where @@ -19003,7 +19003,7 @@ impl IDefaultFolderMenuInitialize { P2: ::std::convert::Into<::windows::core::InParam<'a, IShellFolder>>, P3: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).Initialize)(::windows::core::Interface::as_raw(self), hwnd.into(), pcmcb.into().abi(), ::core::mem::transmute(pidlfolder), psf.into().abi(), apidl.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(apidl)), punkassociation.into().abi(), ckeys, ::core::mem::transmute(akeys)).ok() + (::windows::core::Interface::vtable(self).Initialize)(::windows::core::Interface::as_raw(self), hwnd.into(), pcmcb.into().abi(), ::core::mem::transmute(pidlfolder), psf.into().abi(), apidl.len() as _, ::core::mem::transmute(apidl.as_ptr()), punkassociation.into().abi(), ckeys, ::core::mem::transmute(akeys)).ok() } pub unsafe fn SetMenuRestrictions(&self, dfmrvalues: DEFAULT_FOLDER_MENU_RESTRICTIONS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetMenuRestrictions)(::windows::core::Interface::as_raw(self), dfmrvalues).ok() @@ -20900,7 +20900,7 @@ impl IEnumACString { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn Next(&self, rgelt: &mut [::windows::core::PWSTR], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)) + (::windows::core::Interface::vtable(self).base__.Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -20918,8 +20918,8 @@ impl IEnumACString { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).base__.Clone)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn NextItem(&self, pszurl: &mut [u16], pulsortindex: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).NextItem)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszurl)), pszurl.len() as _, ::core::mem::transmute(pulsortindex)).ok() + pub unsafe fn NextItem(&self, pszurl: ::core::option::Option<&mut [u16]>, pulsortindex: &mut u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).NextItem)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszurl.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszurl.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pulsortindex)).ok() } pub unsafe fn SetEnumOptions(&self, dwoptions: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetEnumOptions)(::windows::core::Interface::as_raw(self), dwoptions).ok() @@ -21004,7 +21004,7 @@ pub struct IEnumACString_Vtbl { pub struct IEnumAssocHandlers(::windows::core::IUnknown); impl IEnumAssocHandlers { pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -21053,7 +21053,7 @@ pub struct IEnumAssocHandlers_Vtbl { pub struct IEnumExplorerCommand(::windows::core::IUnknown); impl IEnumExplorerCommand { pub unsafe fn Next(&self, puicommand: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), puicommand.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(puicommand)), ::core::mem::transmute(pceltfetched)) + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), puicommand.len() as _, ::core::mem::transmute(puicommand.as_ptr()), ::core::mem::transmute(pceltfetched)) } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -21115,7 +21115,7 @@ pub struct IEnumExplorerCommand_Vtbl { pub struct IEnumExtraSearch(::windows::core::IUnknown); impl IEnumExtraSearch { pub unsafe fn Next(&self, rgelt: &mut [EXTRASEARCH], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -21179,7 +21179,7 @@ impl IEnumFullIDList { #[doc = "*Required features: `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] pub unsafe fn Next(&self, rgelt: &mut [*mut Common::ITEMIDLIST], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -21308,7 +21308,7 @@ impl IEnumIDList { #[doc = "*Required features: `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] pub unsafe fn Next(&self, rgelt: &mut [*mut Common::ITEMIDLIST], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -21373,7 +21373,7 @@ pub struct IEnumIDList_Vtbl { pub struct IEnumObjects(::windows::core::IUnknown); impl IEnumObjects { pub unsafe fn Next(&self, riid: &::windows::core::GUID, rgelt: &mut [*mut ::core::ffi::c_void], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(riid), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(riid), ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -21538,7 +21538,7 @@ pub struct IEnumReadyCallback_Vtbl { pub struct IEnumResources(::windows::core::IUnknown); impl IEnumResources { pub unsafe fn Next(&self, psir: &mut [SHELL_ITEM_RESOURCE], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), psir.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psir)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), psir.len() as _, ::core::mem::transmute(psir.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -21600,7 +21600,7 @@ pub struct IEnumResources_Vtbl { pub struct IEnumShellItems(::windows::core::IUnknown); impl IEnumShellItems { pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: ::core::option::Option<&mut u32>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -21662,7 +21662,7 @@ pub struct IEnumShellItems_Vtbl { pub struct IEnumSyncMgrConflict(::windows::core::IUnknown); impl IEnumSyncMgrConflict { pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -21724,7 +21724,7 @@ pub struct IEnumSyncMgrConflict_Vtbl { pub struct IEnumSyncMgrEvents(::windows::core::IUnknown); impl IEnumSyncMgrEvents { pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -21786,7 +21786,7 @@ pub struct IEnumSyncMgrEvents_Vtbl { pub struct IEnumSyncMgrSyncItems(::windows::core::IUnknown); impl IEnumSyncMgrSyncItems { pub unsafe fn Next(&self, rgelt: &mut [::core::option::Option], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -21847,7 +21847,7 @@ pub struct IEnumSyncMgrSyncItems_Vtbl { #[repr(transparent)] pub struct IEnumTravelLogEntry(::windows::core::IUnknown); impl IEnumTravelLogEntry { - pub unsafe fn Next(&self, celt: u32, rgelt: &mut ::core::option::Option, pceltfetched: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn Next(&self, celt: u32, rgelt: *mut ::core::option::Option, pceltfetched: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), celt, ::core::mem::transmute(rgelt), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { @@ -22886,7 +22886,7 @@ pub struct IExtensionServices_Vtbl { pub struct IExtractIconA(::windows::core::IUnknown); impl IExtractIconA { pub unsafe fn GetIconLocation(&self, uflags: u32, psziconfile: &mut [u8], piindex: &mut i32, pwflags: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIconLocation)(::windows::core::Interface::as_raw(self), uflags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psziconfile)), psziconfile.len() as _, ::core::mem::transmute(piindex), ::core::mem::transmute(pwflags)).ok() + (::windows::core::Interface::vtable(self).GetIconLocation)(::windows::core::Interface::as_raw(self), uflags, ::core::mem::transmute(psziconfile.as_ptr()), psziconfile.len() as _, ::core::mem::transmute(piindex), ::core::mem::transmute(pwflags)).ok() } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] @@ -22947,7 +22947,7 @@ pub struct IExtractIconA_Vtbl { pub struct IExtractIconW(::windows::core::IUnknown); impl IExtractIconW { pub unsafe fn GetIconLocation(&self, uflags: u32, psziconfile: &mut [u16], piindex: &mut i32, pwflags: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIconLocation)(::windows::core::Interface::as_raw(self), uflags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psziconfile)), psziconfile.len() as _, ::core::mem::transmute(piindex), ::core::mem::transmute(pwflags)).ok() + (::windows::core::Interface::vtable(self).GetIconLocation)(::windows::core::Interface::as_raw(self), uflags, ::core::mem::transmute(psziconfile.as_ptr()), psziconfile.len() as _, ::core::mem::transmute(piindex), ::core::mem::transmute(pwflags)).ok() } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] @@ -23010,7 +23010,7 @@ impl IExtractImage { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetLocation(&self, pszpathbuffer: &mut [u16], pdwpriority: &mut u32, prgsize: &super::super::Foundation::SIZE, dwrecclrdepth: u32, pdwflags: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetLocation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpathbuffer)), pszpathbuffer.len() as _, ::core::mem::transmute(pdwpriority), ::core::mem::transmute(prgsize), dwrecclrdepth, ::core::mem::transmute(pdwflags)).ok() + (::windows::core::Interface::vtable(self).GetLocation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszpathbuffer.as_ptr()), pszpathbuffer.len() as _, ::core::mem::transmute(pdwpriority), ::core::mem::transmute(prgsize), dwrecclrdepth, ::core::mem::transmute(pdwflags)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] @@ -23074,7 +23074,7 @@ impl IExtractImage2 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetLocation(&self, pszpathbuffer: &mut [u16], pdwpriority: &mut u32, prgsize: &super::super::Foundation::SIZE, dwrecclrdepth: u32, pdwflags: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetLocation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpathbuffer)), pszpathbuffer.len() as _, ::core::mem::transmute(pdwpriority), ::core::mem::transmute(prgsize), dwrecclrdepth, ::core::mem::transmute(pdwflags)).ok() + (::windows::core::Interface::vtable(self).base__.GetLocation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszpathbuffer.as_ptr()), pszpathbuffer.len() as _, ::core::mem::transmute(pdwpriority), ::core::mem::transmute(prgsize), dwrecclrdepth, ::core::mem::transmute(pdwflags)).ok() } #[doc = "*Required features: `\"Win32_Graphics_Gdi\"`*"] #[cfg(feature = "Win32_Graphics_Gdi")] @@ -23163,7 +23163,7 @@ impl IFileDialog { #[doc = "*Required features: `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] pub unsafe fn SetFileTypes(&self, rgfilterspec: &[Common::COMDLG_FILTERSPEC]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetFileTypes)(::windows::core::Interface::as_raw(self), rgfilterspec.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgfilterspec))).ok() + (::windows::core::Interface::vtable(self).SetFileTypes)(::windows::core::Interface::as_raw(self), rgfilterspec.len() as _, ::core::mem::transmute(rgfilterspec.as_ptr())).ok() } pub unsafe fn SetFileTypeIndex(&self, ifiletype: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SetFileTypeIndex)(::windows::core::Interface::as_raw(self), ifiletype).ok() @@ -23365,7 +23365,7 @@ impl IFileDialog2 { #[doc = "*Required features: `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] pub unsafe fn SetFileTypes(&self, rgfilterspec: &[Common::COMDLG_FILTERSPEC]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetFileTypes)(::windows::core::Interface::as_raw(self), rgfilterspec.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgfilterspec))).ok() + (::windows::core::Interface::vtable(self).base__.SetFileTypes)(::windows::core::Interface::as_raw(self), rgfilterspec.len() as _, ::core::mem::transmute(rgfilterspec.as_ptr())).ok() } pub unsafe fn SetFileTypeIndex(&self, ifiletype: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SetFileTypeIndex)(::windows::core::Interface::as_raw(self), ifiletype).ok() @@ -24029,7 +24029,7 @@ impl IFileOpenDialog { #[doc = "*Required features: `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] pub unsafe fn SetFileTypes(&self, rgfilterspec: &[Common::COMDLG_FILTERSPEC]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetFileTypes)(::windows::core::Interface::as_raw(self), rgfilterspec.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgfilterspec))).ok() + (::windows::core::Interface::vtable(self).base__.SetFileTypes)(::windows::core::Interface::as_raw(self), rgfilterspec.len() as _, ::core::mem::transmute(rgfilterspec.as_ptr())).ok() } pub unsafe fn SetFileTypeIndex(&self, ifiletype: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SetFileTypeIndex)(::windows::core::Interface::as_raw(self), ifiletype).ok() @@ -24787,7 +24787,7 @@ impl IFileSaveDialog { #[doc = "*Required features: `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] pub unsafe fn SetFileTypes(&self, rgfilterspec: &[Common::COMDLG_FILTERSPEC]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetFileTypes)(::windows::core::Interface::as_raw(self), rgfilterspec.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgfilterspec))).ok() + (::windows::core::Interface::vtable(self).base__.SetFileTypes)(::windows::core::Interface::as_raw(self), rgfilterspec.len() as _, ::core::mem::transmute(rgfilterspec.as_ptr())).ok() } pub unsafe fn SetFileTypeIndex(&self, ifiletype: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SetFileTypeIndex)(::windows::core::Interface::as_raw(self), ifiletype).ok() @@ -25639,7 +25639,7 @@ impl IFolderView { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] - pub unsafe fn SelectAndPositionItems(&self, cidl: u32, apidl: &*const Common::ITEMIDLIST, apt: ::core::option::Option<&super::super::Foundation::POINT>, dwflags: u32) -> ::windows::core::Result<()> { + pub unsafe fn SelectAndPositionItems(&self, cidl: u32, apidl: *const *const Common::ITEMIDLIST, apt: *const super::super::Foundation::POINT, dwflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).SelectAndPositionItems)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cidl), ::core::mem::transmute(apidl), ::core::mem::transmute(apt), dwflags).ok() } } @@ -25780,7 +25780,7 @@ impl IFolderView2 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] - pub unsafe fn SelectAndPositionItems(&self, cidl: u32, apidl: &*const Common::ITEMIDLIST, apt: ::core::option::Option<&super::super::Foundation::POINT>, dwflags: u32) -> ::windows::core::Result<()> { + pub unsafe fn SelectAndPositionItems(&self, cidl: u32, apidl: *const *const Common::ITEMIDLIST, apt: *const super::super::Foundation::POINT, dwflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.SelectAndPositionItems)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(cidl), ::core::mem::transmute(apidl), ::core::mem::transmute(apt), dwflags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_PropertiesSystem\"`*"] @@ -25843,12 +25843,12 @@ impl IFolderView2 { #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] pub unsafe fn SetSortColumns(&self, rgsortcolumns: &[SORTCOLUMN]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSortColumns)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgsortcolumns)), rgsortcolumns.len() as _).ok() + (::windows::core::Interface::vtable(self).SetSortColumns)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rgsortcolumns.as_ptr()), rgsortcolumns.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] pub unsafe fn GetSortColumns(&self, rgsortcolumns: &mut [SORTCOLUMN]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSortColumns)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgsortcolumns)), rgsortcolumns.len() as _).ok() + (::windows::core::Interface::vtable(self).GetSortColumns)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rgsortcolumns.as_ptr()), rgsortcolumns.len() as _).ok() } pub unsafe fn GetItem(&self, iitem: i32) -> ::windows::core::Result where @@ -26263,7 +26263,7 @@ impl IFolderViewSettings { #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] pub unsafe fn GetSortColumns(&self, rgsortcolumns: &mut [SORTCOLUMN], pccolumnsout: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSortColumns)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgsortcolumns)), rgsortcolumns.len() as _, ::core::mem::transmute(pccolumnsout)).ok() + (::windows::core::Interface::vtable(self).GetSortColumns)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rgsortcolumns.as_ptr()), rgsortcolumns.len() as _, ::core::mem::transmute(pccolumnsout)).ok() } pub unsafe fn GetGroupSubsetCount(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -26478,7 +26478,7 @@ pub struct IFrameworkInputPaneHandler_Vtbl { #[repr(transparent)] pub struct IGetServiceIds(::windows::core::IUnknown); impl IGetServiceIds { - pub unsafe fn GetServiceIds(&self, serviceidcount: &mut u32, serviceids: &mut *mut ::windows::core::GUID) -> ::windows::core::Result<()> { + pub unsafe fn GetServiceIds(&self, serviceidcount: &mut u32, serviceids: *mut *mut ::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetServiceIds)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(serviceidcount), ::core::mem::transmute(serviceids)).ok() } } @@ -28699,7 +28699,7 @@ impl IKnownFolderManager { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).FolderIdToCsidl)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rfid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetFolderIds(&self, ppkfid: &mut *mut ::windows::core::GUID, pcount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetFolderIds(&self, ppkfid: *mut *mut ::windows::core::GUID, pcount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetFolderIds)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppkfid), ::core::mem::transmute(pcount)).ok() } pub unsafe fn GetFolder(&self, rfid: &::windows::core::GUID) -> ::windows::core::Result { @@ -28734,13 +28734,13 @@ impl IKnownFolderManager { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn Redirect<'a, P0, P1>(&self, rfid: &::windows::core::GUID, hwnd: P0, flags: u32, psztargetpath: P1, pexclusion: &[::windows::core::GUID]) -> ::windows::core::Result<::windows::core::PWSTR> + pub unsafe fn Redirect<'a, P0, P1>(&self, rfid: &::windows::core::GUID, hwnd: P0, flags: u32, psztargetpath: P1, pexclusion: ::core::option::Option<&[::windows::core::GUID]>) -> ::windows::core::Result<::windows::core::PWSTR> where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).Redirect)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rfid), hwnd.into(), flags, psztargetpath.into(), pexclusion.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pexclusion)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) + (::windows::core::Interface::vtable(self).Redirect)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rfid), hwnd.into(), flags, psztargetpath.into(), pexclusion.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pexclusion.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::<::windows::core::PWSTR>(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -30301,7 +30301,7 @@ impl INameSpaceTreeControlEvents { where P0: ::std::convert::Into<::windows::core::InParam<'a, IShellItem>>, { - (::windows::core::Interface::vtable(self).OnGetToolTip)(::windows::core::Interface::as_raw(self), psi.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psztip)), psztip.len() as _).ok() + (::windows::core::Interface::vtable(self).OnGetToolTip)(::windows::core::Interface::as_raw(self), psi.into().abi(), ::core::mem::transmute(psztip.as_ptr()), psztip.len() as _).ok() } pub unsafe fn OnBeforeItemDelete<'a, P0>(&self, psi: P0) -> ::windows::core::Result<()> where @@ -30562,7 +30562,7 @@ impl INamespaceWalk { } #[doc = "*Required features: `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] - pub unsafe fn GetIDArrayResult(&self, pcitems: &mut u32, prgpidl: &mut *mut *mut Common::ITEMIDLIST) -> ::windows::core::Result<()> { + pub unsafe fn GetIDArrayResult(&self, pcitems: &mut u32, prgpidl: *mut *mut *mut Common::ITEMIDLIST) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetIDArrayResult)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcitems), ::core::mem::transmute(prgpidl)).ok() } } @@ -30804,7 +30804,7 @@ impl INetworkFolderInternal { #[doc = "*Required features: `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] pub unsafe fn GetProvider(&self, itemids: &[*const Common::ITEMIDLIST], provider: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetProvider)(::windows::core::Interface::as_raw(self), itemids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(itemids)), provider.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(provider))).ok() + (::windows::core::Interface::vtable(self).GetProvider)(::windows::core::Interface::as_raw(self), itemids.len() as _, ::core::mem::transmute(itemids.as_ptr()), provider.len() as _, ::core::mem::transmute(provider.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -30929,7 +30929,7 @@ impl INewShortcutHookA { (::windows::core::Interface::vtable(self).SetReferent)(::windows::core::Interface::as_raw(self), pcszreferent.into(), hwnd.into()).ok() } pub unsafe fn GetReferent(&self, pszreferent: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetReferent)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszreferent)), pszreferent.len() as _).ok() + (::windows::core::Interface::vtable(self).GetReferent)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszreferent.as_ptr()), pszreferent.len() as _).ok() } pub unsafe fn SetFolder<'a, P0>(&self, pcszfolder: P0) -> ::windows::core::Result<()> where @@ -30938,13 +30938,13 @@ impl INewShortcutHookA { (::windows::core::Interface::vtable(self).SetFolder)(::windows::core::Interface::as_raw(self), pcszfolder.into()).ok() } pub unsafe fn GetFolder(&self, pszfolder: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFolder)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszfolder)), pszfolder.len() as _).ok() + (::windows::core::Interface::vtable(self).GetFolder)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszfolder.as_ptr()), pszfolder.len() as _).ok() } pub unsafe fn GetName(&self, pszname: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), pszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszname.as_ptr()), pszname.len() as _).ok() } pub unsafe fn GetExtension(&self, pszextension: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExtension)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszextension)), pszextension.len() as _).ok() + (::windows::core::Interface::vtable(self).GetExtension)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszextension.as_ptr()), pszextension.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -31010,7 +31010,7 @@ impl INewShortcutHookW { (::windows::core::Interface::vtable(self).SetReferent)(::windows::core::Interface::as_raw(self), pcszreferent.into(), hwnd.into()).ok() } pub unsafe fn GetReferent(&self, pszreferent: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetReferent)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszreferent)), pszreferent.len() as _).ok() + (::windows::core::Interface::vtable(self).GetReferent)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszreferent.as_ptr()), pszreferent.len() as _).ok() } pub unsafe fn SetFolder<'a, P0>(&self, pcszfolder: P0) -> ::windows::core::Result<()> where @@ -31019,13 +31019,13 @@ impl INewShortcutHookW { (::windows::core::Interface::vtable(self).SetFolder)(::windows::core::Interface::as_raw(self), pcszfolder.into()).ok() } pub unsafe fn GetFolder(&self, pszfolder: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetFolder)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszfolder)), pszfolder.len() as _).ok() + (::windows::core::Interface::vtable(self).GetFolder)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszfolder.as_ptr()), pszfolder.len() as _).ok() } pub unsafe fn GetName(&self, pszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), pszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszname.as_ptr()), pszname.len() as _).ok() } pub unsafe fn GetExtension(&self, pszextension: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetExtension)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszextension)), pszextension.len() as _).ok() + (::windows::core::Interface::vtable(self).GetExtension)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszextension.as_ptr()), pszextension.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -31302,7 +31302,7 @@ impl INotifyReplica { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn YouAreAReplica(&self, rgpmkotherreplicas: &mut [::core::option::Option]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).YouAreAReplica)(::windows::core::Interface::as_raw(self), rgpmkotherreplicas.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgpmkotherreplicas))).ok() + (::windows::core::Interface::vtable(self).YouAreAReplica)(::windows::core::Interface::as_raw(self), rgpmkotherreplicas.len() as _, ::core::mem::transmute(rgpmkotherreplicas.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -31809,7 +31809,7 @@ impl IOpenControlPanel { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).GetPath)(::windows::core::Interface::as_raw(self), pszname.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszpath.len() as _).ok() + (::windows::core::Interface::vtable(self).GetPath)(::windows::core::Interface::as_raw(self), pszname.into(), ::core::mem::transmute(pszpath.as_ptr()), pszpath.len() as _).ok() } pub unsafe fn GetCurrentView(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -33814,7 +33814,7 @@ impl IPublishingWizard { #[doc = "*Required features: `\"Win32_UI_Controls\"`*"] #[cfg(feature = "Win32_UI_Controls")] pub unsafe fn AddPages(&self, apages: &mut [super::Controls::HPROPSHEETPAGE], pnpagesadded: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.AddPages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(apages)), apages.len() as _, ::core::mem::transmute(pnpagesadded)).ok() + (::windows::core::Interface::vtable(self).base__.AddPages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(apages.as_ptr()), apages.len() as _, ::core::mem::transmute(pnpagesadded)).ok() } #[doc = "*Required features: `\"Win32_UI_Controls\"`*"] #[cfg(feature = "Win32_UI_Controls")] @@ -35085,12 +35085,12 @@ impl ISearchFolderItemFactory { #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] pub unsafe fn SetVisibleColumns(&self, rgkey: &[PropertiesSystem::PROPERTYKEY]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetVisibleColumns)(::windows::core::Interface::as_raw(self), rgkey.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgkey))).ok() + (::windows::core::Interface::vtable(self).SetVisibleColumns)(::windows::core::Interface::as_raw(self), rgkey.len() as _, ::core::mem::transmute(rgkey.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] pub unsafe fn SetSortColumns(&self, rgsortcolumns: &[SORTCOLUMN]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSortColumns)(::windows::core::Interface::as_raw(self), rgsortcolumns.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgsortcolumns))).ok() + (::windows::core::Interface::vtable(self).SetSortColumns)(::windows::core::Interface::as_raw(self), rgsortcolumns.len() as _, ::core::mem::transmute(rgsortcolumns.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] @@ -35100,7 +35100,7 @@ impl ISearchFolderItemFactory { #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] pub unsafe fn SetStacks(&self, rgstackkeys: &[PropertiesSystem::PROPERTYKEY]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetStacks)(::windows::core::Interface::as_raw(self), rgstackkeys.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgstackkeys))).ok() + (::windows::core::Interface::vtable(self).SetStacks)(::windows::core::Interface::as_raw(self), rgstackkeys.len() as _, ::core::mem::transmute(rgstackkeys.as_ptr())).ok() } pub unsafe fn SetScope<'a, P0>(&self, psiascope: P0) -> ::windows::core::Result<()> where @@ -35551,8 +35551,8 @@ impl IShellBrowser { } #[doc = "*Required features: `\"Win32_UI_Controls\"`*"] #[cfg(feature = "Win32_UI_Controls")] - pub unsafe fn SetToolbarItems(&self, lpbuttons: &[super::Controls::TBBUTTON], uflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetToolbarItems)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(lpbuttons)), lpbuttons.len() as _, uflags).ok() + pub unsafe fn SetToolbarItems(&self, lpbuttons: ::core::option::Option<&[super::Controls::TBBUTTON]>, uflags: u32) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).SetToolbarItems)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpbuttons.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpbuttons.as_deref().map_or(0, |slice| slice.len() as _), uflags).ok() } } #[cfg(feature = "Win32_System_Ole")] @@ -38043,7 +38043,7 @@ impl IShellFolder { #[doc = "*Required features: `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] pub unsafe fn GetAttributesOf(&self, apidl: &[*const Common::ITEMIDLIST], rgfinout: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetAttributesOf)(::windows::core::Interface::as_raw(self), apidl.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(apidl)), ::core::mem::transmute(rgfinout)).ok() + (::windows::core::Interface::vtable(self).GetAttributesOf)(::windows::core::Interface::as_raw(self), apidl.len() as _, ::core::mem::transmute(apidl.as_ptr()), ::core::mem::transmute(rgfinout)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] @@ -38053,7 +38053,7 @@ impl IShellFolder { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).GetUIObjectOf)(::windows::core::Interface::as_raw(self), hwndowner.into(), apidl.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(apidl)), &::IID, ::core::mem::transmute(rgfreserved), &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).GetUIObjectOf)(::windows::core::Interface::as_raw(self), hwndowner.into(), apidl.len() as _, ::core::mem::transmute(apidl.as_ptr()), &::IID, ::core::mem::transmute(rgfreserved), &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] @@ -38215,7 +38215,7 @@ impl IShellFolder2 { #[doc = "*Required features: `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] pub unsafe fn GetAttributesOf(&self, apidl: &[*const Common::ITEMIDLIST], rgfinout: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetAttributesOf)(::windows::core::Interface::as_raw(self), apidl.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(apidl)), ::core::mem::transmute(rgfinout)).ok() + (::windows::core::Interface::vtable(self).base__.GetAttributesOf)(::windows::core::Interface::as_raw(self), apidl.len() as _, ::core::mem::transmute(apidl.as_ptr()), ::core::mem::transmute(rgfinout)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] @@ -38225,7 +38225,7 @@ impl IShellFolder2 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).base__.GetUIObjectOf)(::windows::core::Interface::as_raw(self), hwndowner.into(), apidl.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(apidl)), &::IID, ::core::mem::transmute(rgfreserved), &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).base__.GetUIObjectOf)(::windows::core::Interface::as_raw(self), hwndowner.into(), apidl.len() as _, ::core::mem::transmute(apidl.as_ptr()), &::IID, ::core::mem::transmute(rgfreserved), &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] @@ -39469,7 +39469,7 @@ impl IShellIconOverlayIdentifier { (::windows::core::Interface::vtable(self).IsMemberOf)(::windows::core::Interface::as_raw(self), pwszpath.into(), dwattrib).ok() } pub unsafe fn GetOverlayInfo(&self, pwsziconfile: &mut [u16], pindex: &mut i32, pdwflags: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetOverlayInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwsziconfile)), pwsziconfile.len() as _, ::core::mem::transmute(pindex), ::core::mem::transmute(pdwflags)).ok() + (::windows::core::Interface::vtable(self).GetOverlayInfo)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwsziconfile.as_ptr()), pwsziconfile.len() as _, ::core::mem::transmute(pindex), ::core::mem::transmute(pdwflags)).ok() } pub unsafe fn GetPriority(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -40066,7 +40066,7 @@ impl IShellItem2 { T: ::windows::core::Interface, { let mut result__ = ::core::option::Option::None; - (::windows::core::Interface::vtable(self).GetPropertyStoreForKeys)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgkeys)), rgkeys.len() as _, flags, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) + (::windows::core::Interface::vtable(self).GetPropertyStoreForKeys)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rgkeys.as_ptr()), rgkeys.len() as _, flags, &::IID, &mut result__ as *mut _ as *mut _).and_some(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] @@ -40728,7 +40728,7 @@ impl IShellLinkA { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] pub unsafe fn GetPath(&self, pszfile: &mut [u8], pfd: &mut super::super::Storage::FileSystem::WIN32_FIND_DATAA, fflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszfile)), pszfile.len() as _, ::core::mem::transmute(pfd), fflags).ok() + (::windows::core::Interface::vtable(self).GetPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszfile.as_ptr()), pszfile.len() as _, ::core::mem::transmute(pfd), fflags).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] @@ -40742,7 +40742,7 @@ impl IShellLinkA { (::windows::core::Interface::vtable(self).SetIDList)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pidl)).ok() } pub unsafe fn GetDescription(&self, pszname: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDescription)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), pszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetDescription)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszname.as_ptr()), pszname.len() as _).ok() } pub unsafe fn SetDescription<'a, P0>(&self, pszname: P0) -> ::windows::core::Result<()> where @@ -40751,7 +40751,7 @@ impl IShellLinkA { (::windows::core::Interface::vtable(self).SetDescription)(::windows::core::Interface::as_raw(self), pszname.into()).ok() } pub unsafe fn GetWorkingDirectory(&self, pszdir: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetWorkingDirectory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdir)), pszdir.len() as _).ok() + (::windows::core::Interface::vtable(self).GetWorkingDirectory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszdir.as_ptr()), pszdir.len() as _).ok() } pub unsafe fn SetWorkingDirectory<'a, P0>(&self, pszdir: P0) -> ::windows::core::Result<()> where @@ -40760,7 +40760,7 @@ impl IShellLinkA { (::windows::core::Interface::vtable(self).SetWorkingDirectory)(::windows::core::Interface::as_raw(self), pszdir.into()).ok() } pub unsafe fn GetArguments(&self, pszargs: &mut [u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetArguments)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszargs)), pszargs.len() as _).ok() + (::windows::core::Interface::vtable(self).GetArguments)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszargs.as_ptr()), pszargs.len() as _).ok() } pub unsafe fn SetArguments<'a, P0>(&self, pszargs: P0) -> ::windows::core::Result<()> where @@ -40783,7 +40783,7 @@ impl IShellLinkA { (::windows::core::Interface::vtable(self).SetShowCmd)(::windows::core::Interface::as_raw(self), ishowcmd).ok() } pub unsafe fn GetIconLocation(&self, psziconpath: &mut [u8], piicon: &mut i32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIconLocation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psziconpath)), psziconpath.len() as _, ::core::mem::transmute(piicon)).ok() + (::windows::core::Interface::vtable(self).GetIconLocation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psziconpath.as_ptr()), psziconpath.len() as _, ::core::mem::transmute(piicon)).ok() } pub unsafe fn SetIconLocation<'a, P0>(&self, psziconpath: P0, iicon: i32) -> ::windows::core::Result<()> where @@ -41368,7 +41368,7 @@ impl IShellLinkW { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem"))] pub unsafe fn GetPath(&self, pszfile: &mut [u16], pfd: &mut super::super::Storage::FileSystem::WIN32_FIND_DATAW, fflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszfile)), pszfile.len() as _, ::core::mem::transmute(pfd), fflags).ok() + (::windows::core::Interface::vtable(self).GetPath)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszfile.as_ptr()), pszfile.len() as _, ::core::mem::transmute(pfd), fflags).ok() } #[doc = "*Required features: `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] @@ -41382,7 +41382,7 @@ impl IShellLinkW { (::windows::core::Interface::vtable(self).SetIDList)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pidl)).ok() } pub unsafe fn GetDescription(&self, pszname: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetDescription)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), pszname.len() as _).ok() + (::windows::core::Interface::vtable(self).GetDescription)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszname.as_ptr()), pszname.len() as _).ok() } pub unsafe fn SetDescription<'a, P0>(&self, pszname: P0) -> ::windows::core::Result<()> where @@ -41391,7 +41391,7 @@ impl IShellLinkW { (::windows::core::Interface::vtable(self).SetDescription)(::windows::core::Interface::as_raw(self), pszname.into()).ok() } pub unsafe fn GetWorkingDirectory(&self, pszdir: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetWorkingDirectory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdir)), pszdir.len() as _).ok() + (::windows::core::Interface::vtable(self).GetWorkingDirectory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszdir.as_ptr()), pszdir.len() as _).ok() } pub unsafe fn SetWorkingDirectory<'a, P0>(&self, pszdir: P0) -> ::windows::core::Result<()> where @@ -41400,7 +41400,7 @@ impl IShellLinkW { (::windows::core::Interface::vtable(self).SetWorkingDirectory)(::windows::core::Interface::as_raw(self), pszdir.into()).ok() } pub unsafe fn GetArguments(&self, pszargs: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetArguments)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszargs)), pszargs.len() as _).ok() + (::windows::core::Interface::vtable(self).GetArguments)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszargs.as_ptr()), pszargs.len() as _).ok() } pub unsafe fn SetArguments<'a, P0>(&self, pszargs: P0) -> ::windows::core::Result<()> where @@ -41423,7 +41423,7 @@ impl IShellLinkW { (::windows::core::Interface::vtable(self).SetShowCmd)(::windows::core::Interface::as_raw(self), ishowcmd).ok() } pub unsafe fn GetIconLocation(&self, psziconpath: &mut [u16], piicon: &mut i32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetIconLocation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psziconpath)), psziconpath.len() as _, ::core::mem::transmute(piicon)).ok() + (::windows::core::Interface::vtable(self).GetIconLocation)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psziconpath.as_ptr()), psziconpath.len() as _, ::core::mem::transmute(piicon)).ok() } pub unsafe fn SetIconLocation<'a, P0>(&self, psziconpath: P0, iicon: i32) -> ::windows::core::Result<()> where @@ -48131,7 +48131,7 @@ impl IStorageProviderPropertyHandler { #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] pub unsafe fn RetrieveProperties(&self, propertiestoretrieve: &[PropertiesSystem::PROPERTYKEY]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).RetrieveProperties)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(propertiestoretrieve)), propertiestoretrieve.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).RetrieveProperties)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(propertiestoretrieve.as_ptr()), propertiestoretrieve.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell_PropertiesSystem\"`*"] #[cfg(feature = "Win32_UI_Shell_PropertiesSystem")] @@ -48198,13 +48198,13 @@ pub struct IStreamAsync(::windows::core::IUnknown); impl IStreamAsync { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Read(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread)) + pub unsafe fn Read(&self, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.Read)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] - pub unsafe fn Write(&self, pv: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { - (::windows::core::Interface::vtable(self).base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbwritten)) + pub unsafe fn Write(&self, pv: &[u8], pcbwritten: ::core::option::Option<&mut u32>) -> ::windows::core::HRESULT { + (::windows::core::Interface::vtable(self).base__.base__.Write)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbwritten)) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -48258,13 +48258,13 @@ impl IStreamAsync { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] - pub unsafe fn ReadAsync(&self, pv: *mut ::core::ffi::c_void, cb: u32, pcbread: ::core::option::Option<&mut u32>, lpoverlapped: &super::super::System::IO::OVERLAPPED) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ReadAsync)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv), cb, ::core::mem::transmute(pcbread), ::core::mem::transmute(lpoverlapped)).ok() + pub unsafe fn ReadAsync(&self, pv: &mut [u8], pcbread: ::core::option::Option<&mut u32>, lpoverlapped: &super::super::System::IO::OVERLAPPED) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).ReadAsync)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pv.as_ptr()), pv.len() as _, ::core::mem::transmute(pcbread), ::core::mem::transmute(lpoverlapped)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] - pub unsafe fn WriteAsync(&self, lpbuffer: *const ::core::ffi::c_void, cb: u32, pcbwritten: ::core::option::Option<&mut u32>, lpoverlapped: &super::super::System::IO::OVERLAPPED) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).WriteAsync)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpbuffer), cb, ::core::mem::transmute(pcbwritten), ::core::mem::transmute(lpoverlapped)).ok() + pub unsafe fn WriteAsync(&self, lpbuffer: &[u8], pcbwritten: ::core::option::Option<&mut u32>, lpoverlapped: &super::super::System::IO::OVERLAPPED) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).WriteAsync)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(lpbuffer.as_ptr()), lpbuffer.len() as _, ::core::mem::transmute(pcbwritten), ::core::mem::transmute(lpoverlapped)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_IO\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_IO"))] @@ -48511,7 +48511,7 @@ where #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] #[inline] -pub unsafe fn IStream_Write<'a, P0>(pstm: P0, pv: *const ::core::ffi::c_void, cb: u32) -> ::windows::core::Result<()> +pub unsafe fn IStream_Write<'a, P0>(pstm: P0, pv: &[u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::System::Com::IStream>>, { @@ -48519,7 +48519,7 @@ where extern "system" { fn IStream_Write(pstm: *mut ::core::ffi::c_void, pv: *const ::core::ffi::c_void, cb: u32) -> ::windows::core::HRESULT; } - IStream_Write(pstm.into().abi(), ::core::mem::transmute(pv), cb).ok() + IStream_Write(pstm.into().abi(), ::core::mem::transmute(pv.as_ptr()), pv.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))] @@ -49052,7 +49052,7 @@ impl ISyncMgrConflictStore { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn RemoveConflicts(&self, rgconflictidinfo: &[SYNCMGR_CONFLICT_ID_INFO]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RemoveConflicts)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(rgconflictidinfo)), rgconflictidinfo.len() as _).ok() + (::windows::core::Interface::vtable(self).RemoveConflicts)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rgconflictidinfo.as_ptr()), rgconflictidinfo.len() as _).ok() } pub unsafe fn GetCount<'a, P0, P1>(&self, pszhandlerid: P0, pszitemid: P1) -> ::windows::core::Result where @@ -49137,7 +49137,7 @@ impl ISyncMgrControl { P2: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, P3: ::std::convert::Into<::windows::core::InParam<'a, ISyncMgrSyncResult>>, { - (::windows::core::Interface::vtable(self).StartItemSync)(::windows::core::Interface::as_raw(self), pszhandlerid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppszitemids)), ppszitemids.len() as _, hwndowner.into(), punk.into().abi(), nsynccontrolflags, presult.into().abi()).ok() + (::windows::core::Interface::vtable(self).StartItemSync)(::windows::core::Interface::as_raw(self), pszhandlerid.into(), ::core::mem::transmute(ppszitemids.as_ptr()), ppszitemids.len() as _, hwndowner.into(), punk.into().abi(), nsynccontrolflags, presult.into().abi()).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -49157,7 +49157,7 @@ impl ISyncMgrControl { where P0: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).StopItemSync)(::windows::core::Interface::as_raw(self), pszhandlerid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppszitemids)), ppszitemids.len() as _).ok() + (::windows::core::Interface::vtable(self).StopItemSync)(::windows::core::Interface::as_raw(self), pszhandlerid.into(), ::core::mem::transmute(ppszitemids.as_ptr()), ppszitemids.len() as _).ok() } pub unsafe fn StopSyncAll(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).StopSyncAll)(::windows::core::Interface::as_raw(self)).ok() @@ -49312,7 +49312,7 @@ impl ISyncMgrEnumItems { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] pub unsafe fn Next(&self, rgelt: &mut [SYNCMGRITEM], pceltfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgelt)), ::core::mem::transmute(pceltfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgelt.len() as _, ::core::mem::transmute(rgelt.as_ptr()), ::core::mem::transmute(pceltfetched)).ok() } pub unsafe fn Skip(&self, celt: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Skip)(::windows::core::Interface::as_raw(self), celt).ok() @@ -49569,7 +49569,7 @@ impl ISyncMgrEventStore { (::windows::core::Interface::vtable(self).GetEvent)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rguideventid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn RemoveEvent(&self, pguideventids: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RemoveEvent)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pguideventids)), pguideventids.len() as _).ok() + (::windows::core::Interface::vtable(self).RemoveEvent)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pguideventids.as_ptr()), pguideventids.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -49667,7 +49667,7 @@ impl ISyncMgrHandler { P1: ::std::convert::Into<::windows::core::InParam<'a, ISyncMgrSessionCreator>>, P2: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).Synchronize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppszitemids)), ppszitemids.len() as _, hwndowner.into(), psessioncreator.into().abi(), punk.into().abi()).ok() + (::windows::core::Interface::vtable(self).Synchronize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppszitemids.as_ptr()), ppszitemids.len() as _, hwndowner.into(), psessioncreator.into().abi(), punk.into().abi()).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -50093,7 +50093,7 @@ impl ISyncMgrSessionCreator { P0: ::std::convert::Into<::windows::core::PCWSTR>, { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).CreateSession)(::windows::core::Interface::as_raw(self), pszhandlerid.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppszitemids)), ppszitemids.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).CreateSession)(::windows::core::Interface::as_raw(self), pszhandlerid.into(), ::core::mem::transmute(ppszitemids.as_ptr()), ppszitemids.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -50542,7 +50542,7 @@ pub struct ISyncMgrSyncResult_Vtbl { pub struct ISyncMgrSynchronize(::windows::core::IUnknown); impl ISyncMgrSynchronize { pub unsafe fn Initialize(&self, dwreserved: u32, dwsyncmgrflags: u32, lpcookie: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Initialize)(::windows::core::Interface::as_raw(self), dwreserved, dwsyncmgrflags, lpcookie.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpcookie))).ok() + (::windows::core::Interface::vtable(self).Initialize)(::windows::core::Interface::as_raw(self), dwreserved, dwsyncmgrflags, lpcookie.len() as _, ::core::mem::transmute(lpcookie.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] @@ -50581,7 +50581,7 @@ impl ISyncMgrSynchronize { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).PrepareForSync)(::windows::core::Interface::as_raw(self), pitemids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pitemids)), hwndparent.into(), dwreserved).ok() + (::windows::core::Interface::vtable(self).PrepareForSync)(::windows::core::Interface::as_raw(self), pitemids.len() as _, ::core::mem::transmute(pitemids.as_ptr()), hwndparent.into(), dwreserved).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -50682,7 +50682,7 @@ impl ISyncMgrSynchronizeCallback { (::windows::core::Interface::vtable(self).SynchronizeCompleted)(::windows::core::Interface::as_raw(self), hr).ok() } pub unsafe fn ShowErrorCompleted(&self, hr: ::windows::core::HRESULT, pitemids: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ShowErrorCompleted)(::windows::core::Interface::as_raw(self), hr, pitemids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pitemids))).ok() + (::windows::core::Interface::vtable(self).ShowErrorCompleted)(::windows::core::Interface::as_raw(self), hr, pitemids.len() as _, ::core::mem::transmute(pitemids.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -50768,7 +50768,7 @@ pub struct ISyncMgrSynchronizeCallback_Vtbl { pub struct ISyncMgrSynchronizeInvoke(::windows::core::IUnknown); impl ISyncMgrSynchronizeInvoke { pub unsafe fn UpdateItems(&self, dwinvokeflags: u32, clsid: &::windows::core::GUID, pcookie: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UpdateItems)(::windows::core::Interface::as_raw(self), dwinvokeflags, ::core::mem::transmute(clsid), pcookie.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pcookie))).ok() + (::windows::core::Interface::vtable(self).UpdateItems)(::windows::core::Interface::as_raw(self), dwinvokeflags, ::core::mem::transmute(clsid), pcookie.len() as _, ::core::mem::transmute(pcookie.as_ptr())).ok() } pub unsafe fn UpdateAll(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).UpdateAll)(::windows::core::Interface::as_raw(self)).ok() @@ -51228,7 +51228,7 @@ impl ITaskbarList3 { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).ThumbBarAddButtons)(::windows::core::Interface::as_raw(self), hwnd.into(), pbutton.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbutton))).ok() + (::windows::core::Interface::vtable(self).ThumbBarAddButtons)(::windows::core::Interface::as_raw(self), hwnd.into(), pbutton.len() as _, ::core::mem::transmute(pbutton.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] @@ -51236,7 +51236,7 @@ impl ITaskbarList3 { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).ThumbBarUpdateButtons)(::windows::core::Interface::as_raw(self), hwnd.into(), pbutton.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbutton))).ok() + (::windows::core::Interface::vtable(self).ThumbBarUpdateButtons)(::windows::core::Interface::as_raw(self), hwnd.into(), pbutton.len() as _, ::core::mem::transmute(pbutton.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] @@ -51498,7 +51498,7 @@ impl ITaskbarList4 { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).base__.ThumbBarAddButtons)(::windows::core::Interface::as_raw(self), hwnd.into(), pbutton.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbutton))).ok() + (::windows::core::Interface::vtable(self).base__.ThumbBarAddButtons)(::windows::core::Interface::as_raw(self), hwnd.into(), pbutton.len() as _, ::core::mem::transmute(pbutton.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] @@ -51506,7 +51506,7 @@ impl ITaskbarList4 { where P0: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).base__.ThumbBarUpdateButtons)(::windows::core::Interface::as_raw(self), hwnd.into(), pbutton.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbutton))).ok() + (::windows::core::Interface::vtable(self).base__.ThumbBarUpdateButtons)(::windows::core::Interface::as_raw(self), hwnd.into(), pbutton.len() as _, ::core::mem::transmute(pbutton.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_UI_Controls\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Controls"))] @@ -52266,7 +52266,7 @@ impl ITransferAdviseSink { P0: ::std::convert::Into<::windows::core::InParam<'a, IShellItem>>, P1: ::std::convert::Into<::windows::core::PCWSTR>, { - (::windows::core::Interface::vtable(self).FileFailure)(::windows::core::Interface::as_raw(self), psi.into().abi(), pszitem.into(), hrerror, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszrename)), pszrename.len() as _).ok() + (::windows::core::Interface::vtable(self).FileFailure)(::windows::core::Interface::as_raw(self), psi.into().abi(), pszitem.into(), hrerror, ::core::mem::transmute(pszrename.as_ptr()), pszrename.len() as _).ok() } pub unsafe fn SubStreamFailure<'a, P0, P1>(&self, psi: P0, pszstreamname: P1, hrerror: ::windows::core::HRESULT) -> ::windows::core::Result<()> where @@ -52750,7 +52750,7 @@ impl ITravelLog { where P0: ::std::convert::Into<::windows::core::InParam<'a, ::windows::core::IUnknown>>, { - (::windows::core::Interface::vtable(self).GetToolTipText)(::windows::core::Interface::as_raw(self), punk.into().abi(), ioffset, idstemplate, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwztext)), pwztext.len() as _).ok() + (::windows::core::Interface::vtable(self).GetToolTipText)(::windows::core::Interface::as_raw(self), punk.into().abi(), ioffset, idstemplate, ::core::mem::transmute(pwztext.as_ptr()), pwztext.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] @@ -53127,7 +53127,7 @@ pub struct ITrayDeskBand_Vtbl { pub struct IURLSearchHook(::windows::core::IUnknown); impl IURLSearchHook { pub unsafe fn Translate(&self, pwszsearchurl: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Translate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszsearchurl)), pwszsearchurl.len() as _).ok() + (::windows::core::Interface::vtable(self).Translate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszsearchurl.as_ptr()), pwszsearchurl.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -53176,13 +53176,13 @@ pub struct IURLSearchHook_Vtbl { pub struct IURLSearchHook2(::windows::core::IUnknown); impl IURLSearchHook2 { pub unsafe fn Translate(&self, pwszsearchurl: &mut [u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.Translate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszsearchurl)), pwszsearchurl.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.Translate)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszsearchurl.as_ptr()), pwszsearchurl.len() as _).ok() } pub unsafe fn TranslateWithSearchContext<'a, P0>(&self, pwszsearchurl: &mut [u16], psearchcontext: P0) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, ISearchContext>>, { - (::windows::core::Interface::vtable(self).TranslateWithSearchContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszsearchurl)), pwszsearchurl.len() as _, psearchcontext.into().abi()).ok() + (::windows::core::Interface::vtable(self).TranslateWithSearchContext)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pwszsearchurl.as_ptr()), pwszsearchurl.len() as _, psearchcontext.into().abi()).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -55136,7 +55136,7 @@ impl IWebWizardExtension { #[doc = "*Required features: `\"Win32_UI_Controls\"`*"] #[cfg(feature = "Win32_UI_Controls")] pub unsafe fn AddPages(&self, apages: &mut [super::Controls::HPROPSHEETPAGE], pnpagesadded: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.AddPages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(apages)), apages.len() as _, ::core::mem::transmute(pnpagesadded)).ok() + (::windows::core::Interface::vtable(self).base__.AddPages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(apages.as_ptr()), apages.len() as _, ::core::mem::transmute(pnpagesadded)).ok() } #[doc = "*Required features: `\"Win32_UI_Controls\"`*"] #[cfg(feature = "Win32_UI_Controls")] @@ -55534,7 +55534,7 @@ impl IWizardExtension { #[doc = "*Required features: `\"Win32_UI_Controls\"`*"] #[cfg(feature = "Win32_UI_Controls")] pub unsafe fn AddPages(&self, apages: &mut [super::Controls::HPROPSHEETPAGE], pnpagesadded: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddPages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(apages)), apages.len() as _, ::core::mem::transmute(pnpagesadded)).ok() + (::windows::core::Interface::vtable(self).AddPages)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(apages.as_ptr()), apages.len() as _, ::core::mem::transmute(pnpagesadded)).ok() } #[doc = "*Required features: `\"Win32_UI_Controls\"`*"] #[cfg(feature = "Win32_UI_Controls")] @@ -59090,7 +59090,7 @@ pub unsafe fn PathAddBackslashA(pszpath: &mut [u8; 260]) -> ::windows::core::PST extern "system" { fn PathAddBackslashA(pszpath: ::windows::core::PSTR) -> ::windows::core::PSTR; } - PathAddBackslashA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath))) + PathAddBackslashA(::core::mem::transmute(pszpath.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59099,7 +59099,7 @@ pub unsafe fn PathAddBackslashW(pszpath: &mut [u16; 260]) -> ::windows::core::PW extern "system" { fn PathAddBackslashW(pszpath: ::windows::core::PWSTR) -> ::windows::core::PWSTR; } - PathAddBackslashW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath))) + PathAddBackslashW(::core::mem::transmute(pszpath.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -59112,7 +59112,7 @@ where extern "system" { fn PathAddExtensionA(pszpath: ::windows::core::PSTR, pszext: ::windows::core::PCSTR) -> super::super::Foundation::BOOL; } - PathAddExtensionA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszext.into()) + PathAddExtensionA(::core::mem::transmute(pszpath.as_ptr()), pszext.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -59125,7 +59125,7 @@ where extern "system" { fn PathAddExtensionW(pszpath: ::windows::core::PWSTR, pszext: ::windows::core::PCWSTR) -> super::super::Foundation::BOOL; } - PathAddExtensionW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszext.into()) + PathAddExtensionW(::core::mem::transmute(pszpath.as_ptr()), pszext.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59165,7 +59165,7 @@ where extern "system" { fn PathAppendA(pszpath: ::windows::core::PSTR, pszmore: ::windows::core::PCSTR) -> super::super::Foundation::BOOL; } - PathAppendA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszmore.into()) + PathAppendA(::core::mem::transmute(pszpath.as_ptr()), pszmore.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -59178,7 +59178,7 @@ where extern "system" { fn PathAppendW(pszpath: ::windows::core::PWSTR, pszmore: ::windows::core::PCWSTR) -> super::super::Foundation::BOOL; } - PathAppendW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszmore.into()) + PathAppendW(::core::mem::transmute(pszpath.as_ptr()), pszmore.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59187,7 +59187,7 @@ pub unsafe fn PathBuildRootA(pszroot: &mut [u8; 4], idrive: i32) -> ::windows::c extern "system" { fn PathBuildRootA(pszroot: ::windows::core::PSTR, idrive: i32) -> ::windows::core::PSTR; } - PathBuildRootA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszroot)), idrive) + PathBuildRootA(::core::mem::transmute(pszroot.as_ptr()), idrive) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59196,7 +59196,7 @@ pub unsafe fn PathBuildRootW(pszroot: &mut [u16; 4], idrive: i32) -> ::windows:: extern "system" { fn PathBuildRootW(pszroot: ::windows::core::PWSTR, idrive: i32) -> ::windows::core::PWSTR; } - PathBuildRootW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszroot)), idrive) + PathBuildRootW(::core::mem::transmute(pszroot.as_ptr()), idrive) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -59209,7 +59209,7 @@ where extern "system" { fn PathCanonicalizeA(pszbuf: ::windows::core::PSTR, pszpath: ::windows::core::PCSTR) -> super::super::Foundation::BOOL; } - PathCanonicalizeA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszpath.into()) + PathCanonicalizeA(::core::mem::transmute(pszbuf.as_ptr()), pszpath.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -59222,7 +59222,7 @@ where extern "system" { fn PathCanonicalizeW(pszbuf: ::windows::core::PWSTR, pszpath: ::windows::core::PCWSTR) -> super::super::Foundation::BOOL; } - PathCanonicalizeW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszpath.into()) + PathCanonicalizeW(::core::mem::transmute(pszbuf.as_ptr()), pszpath.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59231,7 +59231,7 @@ pub unsafe fn PathCchAddBackslash(pszpath: &mut [u16]) -> ::windows::core::Resul extern "system" { fn PathCchAddBackslash(pszpath: ::windows::core::PWSTR, cchpath: usize) -> ::windows::core::HRESULT; } - PathCchAddBackslash(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszpath.len() as _).ok() + PathCchAddBackslash(::core::mem::transmute(pszpath.as_ptr()), pszpath.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59240,7 +59240,7 @@ pub unsafe fn PathCchAddBackslashEx(pszpath: &mut [u16], ppszend: ::core::option extern "system" { fn PathCchAddBackslashEx(pszpath: ::windows::core::PWSTR, cchpath: usize, ppszend: *mut ::windows::core::PWSTR, pcchremaining: *mut usize) -> ::windows::core::HRESULT; } - PathCchAddBackslashEx(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszpath.len() as _, ::core::mem::transmute(ppszend), ::core::mem::transmute(pcchremaining)).ok() + PathCchAddBackslashEx(::core::mem::transmute(pszpath.as_ptr()), pszpath.len() as _, ::core::mem::transmute(ppszend), ::core::mem::transmute(pcchremaining)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59252,7 +59252,7 @@ where extern "system" { fn PathCchAddExtension(pszpath: ::windows::core::PWSTR, cchpath: usize, pszext: ::windows::core::PCWSTR) -> ::windows::core::HRESULT; } - PathCchAddExtension(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszpath.len() as _, pszext.into()).ok() + PathCchAddExtension(::core::mem::transmute(pszpath.as_ptr()), pszpath.len() as _, pszext.into()).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59264,7 +59264,7 @@ where extern "system" { fn PathCchAppend(pszpath: ::windows::core::PWSTR, cchpath: usize, pszmore: ::windows::core::PCWSTR) -> ::windows::core::HRESULT; } - PathCchAppend(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszpath.len() as _, pszmore.into()).ok() + PathCchAppend(::core::mem::transmute(pszpath.as_ptr()), pszpath.len() as _, pszmore.into()).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59276,7 +59276,7 @@ where extern "system" { fn PathCchAppendEx(pszpath: ::windows::core::PWSTR, cchpath: usize, pszmore: ::windows::core::PCWSTR, dwflags: u32) -> ::windows::core::HRESULT; } - PathCchAppendEx(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszpath.len() as _, pszmore.into(), dwflags).ok() + PathCchAppendEx(::core::mem::transmute(pszpath.as_ptr()), pszpath.len() as _, pszmore.into(), dwflags).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59288,7 +59288,7 @@ where extern "system" { fn PathCchCanonicalize(pszpathout: ::windows::core::PWSTR, cchpathout: usize, pszpathin: ::windows::core::PCWSTR) -> ::windows::core::HRESULT; } - PathCchCanonicalize(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpathout)), pszpathout.len() as _, pszpathin.into()).ok() + PathCchCanonicalize(::core::mem::transmute(pszpathout.as_ptr()), pszpathout.len() as _, pszpathin.into()).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59300,7 +59300,7 @@ where extern "system" { fn PathCchCanonicalizeEx(pszpathout: ::windows::core::PWSTR, cchpathout: usize, pszpathin: ::windows::core::PCWSTR, dwflags: u32) -> ::windows::core::HRESULT; } - PathCchCanonicalizeEx(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpathout)), pszpathout.len() as _, pszpathin.into(), dwflags).ok() + PathCchCanonicalizeEx(::core::mem::transmute(pszpathout.as_ptr()), pszpathout.len() as _, pszpathin.into(), dwflags).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59313,7 +59313,7 @@ where extern "system" { fn PathCchCombine(pszpathout: ::windows::core::PWSTR, cchpathout: usize, pszpathin: ::windows::core::PCWSTR, pszmore: ::windows::core::PCWSTR) -> ::windows::core::HRESULT; } - PathCchCombine(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpathout)), pszpathout.len() as _, pszpathin.into(), pszmore.into()).ok() + PathCchCombine(::core::mem::transmute(pszpathout.as_ptr()), pszpathout.len() as _, pszpathin.into(), pszmore.into()).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59326,7 +59326,7 @@ where extern "system" { fn PathCchCombineEx(pszpathout: ::windows::core::PWSTR, cchpathout: usize, pszpathin: ::windows::core::PCWSTR, pszmore: ::windows::core::PCWSTR, dwflags: u32) -> ::windows::core::HRESULT; } - PathCchCombineEx(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpathout)), pszpathout.len() as _, pszpathin.into(), pszmore.into(), dwflags).ok() + PathCchCombineEx(::core::mem::transmute(pszpathout.as_ptr()), pszpathout.len() as _, pszpathin.into(), pszmore.into(), dwflags).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59361,7 +59361,7 @@ pub unsafe fn PathCchRemoveBackslash(pszpath: &mut [u16]) -> ::windows::core::Re extern "system" { fn PathCchRemoveBackslash(pszpath: ::windows::core::PWSTR, cchpath: usize) -> ::windows::core::HRESULT; } - PathCchRemoveBackslash(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszpath.len() as _).ok() + PathCchRemoveBackslash(::core::mem::transmute(pszpath.as_ptr()), pszpath.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59400,7 +59400,7 @@ where extern "system" { fn PathCchRenameExtension(pszpath: ::windows::core::PWSTR, cchpath: usize, pszext: ::windows::core::PCWSTR) -> ::windows::core::HRESULT; } - PathCchRenameExtension(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszpath.len() as _, pszext.into()).ok() + PathCchRenameExtension(::core::mem::transmute(pszpath.as_ptr()), pszpath.len() as _, pszext.into()).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59422,7 +59422,7 @@ pub unsafe fn PathCchStripPrefix(pszpath: &mut [u16]) -> ::windows::core::Result extern "system" { fn PathCchStripPrefix(pszpath: ::windows::core::PWSTR, cchpath: usize) -> ::windows::core::HRESULT; } - PathCchStripPrefix(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszpath.len() as _).ok() + PathCchStripPrefix(::core::mem::transmute(pszpath.as_ptr()), pszpath.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59456,7 +59456,7 @@ where extern "system" { fn PathCombineA(pszdest: ::windows::core::PSTR, pszdir: ::windows::core::PCSTR, pszfile: ::windows::core::PCSTR) -> ::windows::core::PSTR; } - PathCombineA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdest)), pszdir.into(), pszfile.into()) + PathCombineA(::core::mem::transmute(pszdest.as_ptr()), pszdir.into(), pszfile.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59469,11 +59469,11 @@ where extern "system" { fn PathCombineW(pszdest: ::windows::core::PWSTR, pszdir: ::windows::core::PCWSTR, pszfile: ::windows::core::PCWSTR) -> ::windows::core::PWSTR; } - PathCombineW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdest)), pszdir.into(), pszfile.into()) + PathCombineW(::core::mem::transmute(pszdest.as_ptr()), pszdir.into(), pszfile.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] -pub unsafe fn PathCommonPrefixA<'a, P0, P1>(pszfile1: P0, pszfile2: P1, achpath: &mut [u8; 260]) -> i32 +pub unsafe fn PathCommonPrefixA<'a, P0, P1>(pszfile1: P0, pszfile2: P1, achpath: ::core::option::Option<&mut [u8; 260]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -59482,11 +59482,11 @@ where extern "system" { fn PathCommonPrefixA(pszfile1: ::windows::core::PCSTR, pszfile2: ::windows::core::PCSTR, achpath: ::windows::core::PSTR) -> i32; } - PathCommonPrefixA(pszfile1.into(), pszfile2.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(achpath))) + PathCommonPrefixA(pszfile1.into(), pszfile2.into(), ::core::mem::transmute(achpath.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] -pub unsafe fn PathCommonPrefixW<'a, P0, P1>(pszfile1: P0, pszfile2: P1, achpath: &mut [u16; 260]) -> i32 +pub unsafe fn PathCommonPrefixW<'a, P0, P1>(pszfile1: P0, pszfile2: P1, achpath: ::core::option::Option<&mut [u16; 260]>) -> i32 where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -59495,7 +59495,7 @@ where extern "system" { fn PathCommonPrefixW(pszfile1: ::windows::core::PCWSTR, pszfile2: ::windows::core::PCWSTR, achpath: ::windows::core::PWSTR) -> i32; } - PathCommonPrefixW(pszfile1.into(), pszfile2.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(achpath))) + PathCommonPrefixW(pszfile1.into(), pszfile2.into(), ::core::mem::transmute(achpath.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -59508,7 +59508,7 @@ where extern "system" { fn PathCompactPathA(hdc: super::super::Graphics::Gdi::HDC, pszpath: ::windows::core::PSTR, dx: u32) -> super::super::Foundation::BOOL; } - PathCompactPathA(hdc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), dx) + PathCompactPathA(hdc.into(), ::core::mem::transmute(pszpath.as_ptr()), dx) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -59521,7 +59521,7 @@ where extern "system" { fn PathCompactPathExA(pszout: ::windows::core::PSTR, pszsrc: ::windows::core::PCSTR, cchmax: u32, dwflags: u32) -> super::super::Foundation::BOOL; } - PathCompactPathExA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszout)), pszsrc.into(), pszout.len() as _, dwflags) + PathCompactPathExA(::core::mem::transmute(pszout.as_ptr()), pszsrc.into(), pszout.len() as _, dwflags) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -59534,7 +59534,7 @@ where extern "system" { fn PathCompactPathExW(pszout: ::windows::core::PWSTR, pszsrc: ::windows::core::PCWSTR, cchmax: u32, dwflags: u32) -> super::super::Foundation::BOOL; } - PathCompactPathExW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszout)), pszsrc.into(), pszout.len() as _, dwflags) + PathCompactPathExW(::core::mem::transmute(pszout.as_ptr()), pszsrc.into(), pszout.len() as _, dwflags) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -59547,7 +59547,7 @@ where extern "system" { fn PathCompactPathW(hdc: super::super::Graphics::Gdi::HDC, pszpath: ::windows::core::PWSTR, dx: u32) -> super::super::Foundation::BOOL; } - PathCompactPathW(hdc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), dx) + PathCompactPathW(hdc.into(), ::core::mem::transmute(pszpath.as_ptr()), dx) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59691,7 +59691,7 @@ pub unsafe fn PathFindOnPathA(pszpath: &mut [u8; 260], ppszotherdirs: ::core::op extern "system" { fn PathFindOnPathA(pszpath: ::windows::core::PSTR, ppszotherdirs: *const *const i8) -> super::super::Foundation::BOOL; } - PathFindOnPathA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), ::core::mem::transmute(ppszotherdirs)) + PathFindOnPathA(::core::mem::transmute(pszpath.as_ptr()), ::core::mem::transmute(ppszotherdirs)) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -59701,7 +59701,7 @@ pub unsafe fn PathFindOnPathW(pszpath: &mut [u16; 260], ppszotherdirs: ::core::o extern "system" { fn PathFindOnPathW(pszpath: ::windows::core::PWSTR, ppszotherdirs: *const *const u16) -> super::super::Foundation::BOOL; } - PathFindOnPathW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), ::core::mem::transmute(ppszotherdirs)) + PathFindOnPathW(::core::mem::transmute(pszpath.as_ptr()), ::core::mem::transmute(ppszotherdirs)) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59713,7 +59713,7 @@ where extern "system" { fn PathFindSuffixArrayA(pszpath: ::windows::core::PCSTR, apszsuffix: *const ::windows::core::PSTR, iarraysize: i32) -> ::windows::core::PSTR; } - PathFindSuffixArrayA(pszpath.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(apszsuffix)), apszsuffix.len() as _) + PathFindSuffixArrayA(pszpath.into(), ::core::mem::transmute(apszsuffix.as_ptr()), apszsuffix.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59725,7 +59725,7 @@ where extern "system" { fn PathFindSuffixArrayW(pszpath: ::windows::core::PCWSTR, apszsuffix: *const ::windows::core::PWSTR, iarraysize: i32) -> ::windows::core::PWSTR; } - PathFindSuffixArrayW(pszpath.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(apszsuffix)), apszsuffix.len() as _) + PathFindSuffixArrayW(pszpath.into(), ::core::mem::transmute(apszsuffix.as_ptr()), apszsuffix.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -59800,7 +59800,7 @@ pub unsafe fn PathGetShortPath(pszlongpath: &mut [u16; 260]) { extern "system" { fn PathGetShortPath(pszlongpath: ::windows::core::PWSTR); } - PathGetShortPath(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszlongpath))) + PathGetShortPath(::core::mem::transmute(pszlongpath.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -60309,7 +60309,7 @@ where extern "system" { fn PathMakeUniqueName(pszuniquename: ::windows::core::PWSTR, cchmax: u32, psztemplate: ::windows::core::PCWSTR, pszlongplate: ::windows::core::PCWSTR, pszdir: ::windows::core::PCWSTR) -> super::super::Foundation::BOOL; } - PathMakeUniqueName(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszuniquename)), pszuniquename.len() as _, psztemplate.into(), pszlongplate.into(), pszdir.into()) + PathMakeUniqueName(::core::mem::transmute(pszuniquename.as_ptr()), pszuniquename.len() as _, psztemplate.into(), pszlongplate.into(), pszdir.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -60400,7 +60400,7 @@ pub unsafe fn PathQuoteSpacesA(lpsz: &mut [u8; 260]) -> super::super::Foundation extern "system" { fn PathQuoteSpacesA(lpsz: ::windows::core::PSTR) -> super::super::Foundation::BOOL; } - PathQuoteSpacesA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpsz))) + PathQuoteSpacesA(::core::mem::transmute(lpsz.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -60410,7 +60410,7 @@ pub unsafe fn PathQuoteSpacesW(lpsz: &mut [u16; 260]) -> super::super::Foundatio extern "system" { fn PathQuoteSpacesW(lpsz: ::windows::core::PWSTR) -> super::super::Foundation::BOOL; } - PathQuoteSpacesW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpsz))) + PathQuoteSpacesW(::core::mem::transmute(lpsz.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -60424,7 +60424,7 @@ where extern "system" { fn PathRelativePathToA(pszpath: ::windows::core::PSTR, pszfrom: ::windows::core::PCSTR, dwattrfrom: u32, pszto: ::windows::core::PCSTR, dwattrto: u32) -> super::super::Foundation::BOOL; } - PathRelativePathToA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszfrom.into(), dwattrfrom, pszto.into(), dwattrto) + PathRelativePathToA(::core::mem::transmute(pszpath.as_ptr()), pszfrom.into(), dwattrfrom, pszto.into(), dwattrto) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -60438,7 +60438,7 @@ where extern "system" { fn PathRelativePathToW(pszpath: ::windows::core::PWSTR, pszfrom: ::windows::core::PCWSTR, dwattrfrom: u32, pszto: ::windows::core::PCWSTR, dwattrto: u32) -> super::super::Foundation::BOOL; } - PathRelativePathToW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszfrom.into(), dwattrfrom, pszto.into(), dwattrto) + PathRelativePathToW(::core::mem::transmute(pszpath.as_ptr()), pszfrom.into(), dwattrfrom, pszto.into(), dwattrto) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -60543,7 +60543,7 @@ where extern "system" { fn PathRenameExtensionA(pszpath: ::windows::core::PSTR, pszext: ::windows::core::PCSTR) -> super::super::Foundation::BOOL; } - PathRenameExtensionA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszext.into()) + PathRenameExtensionA(::core::mem::transmute(pszpath.as_ptr()), pszext.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -60556,7 +60556,7 @@ where extern "system" { fn PathRenameExtensionW(pszpath: ::windows::core::PWSTR, pszext: ::windows::core::PCWSTR) -> super::super::Foundation::BOOL; } - PathRenameExtensionW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszext.into()) + PathRenameExtensionW(::core::mem::transmute(pszpath.as_ptr()), pszext.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -60565,7 +60565,7 @@ pub unsafe fn PathResolve(pszpath: &mut [u16; 260], dirs: ::core::option::Option extern "system" { fn PathResolve(pszpath: ::windows::core::PWSTR, dirs: *const *const u16, fflags: PRF_FLAGS) -> i32; } - PathResolve(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), ::core::mem::transmute(dirs), fflags) + PathResolve(::core::mem::transmute(pszpath.as_ptr()), ::core::mem::transmute(dirs), fflags) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -60578,7 +60578,7 @@ where extern "system" { fn PathSearchAndQualifyA(pszpath: ::windows::core::PCSTR, pszbuf: ::windows::core::PSTR, cchbuf: u32) -> super::super::Foundation::BOOL; } - PathSearchAndQualifyA(pszpath.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszbuf.len() as _) + PathSearchAndQualifyA(pszpath.into(), ::core::mem::transmute(pszbuf.as_ptr()), pszbuf.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -60591,7 +60591,7 @@ where extern "system" { fn PathSearchAndQualifyW(pszpath: ::windows::core::PCWSTR, pszbuf: ::windows::core::PWSTR, cchbuf: u32) -> super::super::Foundation::BOOL; } - PathSearchAndQualifyW(pszpath.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszbuf.len() as _) + PathSearchAndQualifyW(pszpath.into(), ::core::mem::transmute(pszbuf.as_ptr()), pszbuf.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -60694,7 +60694,7 @@ where extern "system" { fn PathUnExpandEnvStringsA(pszpath: ::windows::core::PCSTR, pszbuf: ::windows::core::PSTR, cchbuf: u32) -> super::super::Foundation::BOOL; } - PathUnExpandEnvStringsA(pszpath.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszbuf.len() as _) + PathUnExpandEnvStringsA(pszpath.into(), ::core::mem::transmute(pszbuf.as_ptr()), pszbuf.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -60707,7 +60707,7 @@ where extern "system" { fn PathUnExpandEnvStringsW(pszpath: ::windows::core::PCWSTR, pszbuf: ::windows::core::PWSTR, cchbuf: u32) -> super::super::Foundation::BOOL; } - PathUnExpandEnvStringsW(pszpath.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszbuf.len() as _) + PathUnExpandEnvStringsW(pszpath.into(), ::core::mem::transmute(pszbuf.as_ptr()), pszbuf.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -60786,7 +60786,7 @@ where extern "system" { fn PathYetAnotherMakeUniqueName(pszuniquename: ::windows::core::PWSTR, pszpath: ::windows::core::PCWSTR, pszshort: ::windows::core::PCWSTR, pszfilespec: ::windows::core::PCWSTR) -> super::super::Foundation::BOOL; } - PathYetAnotherMakeUniqueName(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszuniquename)), pszpath.into(), pszshort.into(), pszfilespec.into()) + PathYetAnotherMakeUniqueName(::core::mem::transmute(pszuniquename.as_ptr()), pszpath.into(), pszshort.into(), pszfilespec.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -60799,7 +60799,7 @@ where extern "system" { fn PickIconDlg(hwnd: super::super::Foundation::HWND, psziconpath: ::windows::core::PWSTR, cchiconpath: u32, piiconindex: *mut i32) -> i32; } - PickIconDlg(hwnd.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psziconpath)), psziconpath.len() as _, ::core::mem::transmute(piiconindex)) + PickIconDlg(hwnd.into(), ::core::mem::transmute(psziconpath.as_ptr()), psziconpath.len() as _, ::core::mem::transmute(piiconindex)) } pub const PreviousVersions: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x596ab062_b4d2_4215_9f74_e9109b0a8153); pub const PropertiesUI: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd912f8cf_0396_4915_884e_fb425d32943b); @@ -61417,12 +61417,12 @@ impl ::core::fmt::Debug for RESTRICTIONS { #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn ReadCabinetState(pcs: &mut CABINETSTATE, clength: i32) -> super::super::Foundation::BOOL { +pub unsafe fn ReadCabinetState(pcs: &mut [u8]) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn ReadCabinetState(pcs: *mut CABINETSTATE, clength: i32) -> super::super::Foundation::BOOL; } - ReadCabinetState(::core::mem::transmute(pcs), clength) + ReadCabinetState(::core::mem::transmute(pcs.as_ptr()), pcs.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -62427,12 +62427,12 @@ pub unsafe fn SHAlloc(cb: usize) -> *mut ::core::ffi::c_void { #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SHAllocShared(pvdata: *const ::core::ffi::c_void, dwsize: u32, dwprocessid: u32) -> super::super::Foundation::HANDLE { +pub unsafe fn SHAllocShared(pvdata: ::core::option::Option<&[u8]>, dwprocessid: u32) -> super::super::Foundation::HANDLE { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SHAllocShared(pvdata: *const ::core::ffi::c_void, dwsize: u32, dwprocessid: u32) -> super::super::Foundation::HANDLE; } - SHAllocShared(::core::mem::transmute(pvdata), dwsize, dwprocessid) + SHAllocShared(::core::mem::transmute(pvdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvdata.as_deref().map_or(0, |slice| slice.len() as _), dwprocessid) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -62444,7 +62444,7 @@ where extern "system" { fn SHAnsiToAnsi(pszsrc: ::windows::core::PCSTR, pszdst: ::windows::core::PSTR, cchbuf: i32) -> i32; } - SHAnsiToAnsi(pszsrc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdst)), pszdst.len() as _) + SHAnsiToAnsi(pszsrc.into(), ::core::mem::transmute(pszdst.as_ptr()), pszdst.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -62456,7 +62456,7 @@ where extern "system" { fn SHAnsiToUnicode(pszsrc: ::windows::core::PCSTR, pwszdst: ::windows::core::PWSTR, cwchbuf: i32) -> i32; } - SHAnsiToUnicode(pszsrc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwszdst)), pwszdst.len() as _) + SHAnsiToUnicode(pszsrc.into(), ::core::mem::transmute(pwszdst.as_ptr()), pwszdst.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -63306,7 +63306,7 @@ pub unsafe fn SHCreateAssociationRegistration(riid: &::windows::core::GUID, ppv: #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(all(feature = "Win32_System_Com", feature = "Win32_UI_Shell_Common"))] #[inline] -pub unsafe fn SHCreateDataObject<'a, P0>(pidlfolder: ::core::option::Option<&Common::ITEMIDLIST>, apidl: &[*const Common::ITEMIDLIST], pdtinner: P0, riid: &::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> +pub unsafe fn SHCreateDataObject<'a, P0>(pidlfolder: ::core::option::Option<&Common::ITEMIDLIST>, apidl: ::core::option::Option<&[*const Common::ITEMIDLIST]>, pdtinner: P0, riid: &::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, super::super::System::Com::IDataObject>>, { @@ -63314,7 +63314,7 @@ where extern "system" { fn SHCreateDataObject(pidlfolder: *const Common::ITEMIDLIST, cidl: u32, apidl: *const *const Common::ITEMIDLIST, pdtinner: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - SHCreateDataObject(::core::mem::transmute(pidlfolder), apidl.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(apidl)), pdtinner.into().abi(), ::core::mem::transmute(riid), ::core::mem::transmute(ppv)).ok() + SHCreateDataObject(::core::mem::transmute(pidlfolder), apidl.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(apidl.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pdtinner.into().abi(), ::core::mem::transmute(riid), ::core::mem::transmute(ppv)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry", feature = "Win32_UI_Shell_Common"))] @@ -63471,12 +63471,12 @@ where #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] #[inline] -pub unsafe fn SHCreateMemStream(pinit: ::core::option::Option<&u8>, cbinit: u32) -> ::core::option::Option { +pub unsafe fn SHCreateMemStream(pinit: ::core::option::Option<&[u8]>) -> ::core::option::Option { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SHCreateMemStream(pinit: *const u8, cbinit: u32) -> ::core::option::Option; } - SHCreateMemStream(::core::mem::transmute(pinit), cbinit) + SHCreateMemStream(::core::mem::transmute(pinit.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pinit.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`, `\"Win32_System_Threading\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security", feature = "Win32_System_Threading"))] @@ -63552,7 +63552,7 @@ where #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] #[inline] -pub unsafe fn SHCreateShellItemArray<'a, P0>(pidlparent: ::core::option::Option<&Common::ITEMIDLIST>, psf: P0, ppidl: &[*const Common::ITEMIDLIST]) -> ::windows::core::Result +pub unsafe fn SHCreateShellItemArray<'a, P0>(pidlparent: ::core::option::Option<&Common::ITEMIDLIST>, psf: P0, ppidl: ::core::option::Option<&[*const Common::ITEMIDLIST]>) -> ::windows::core::Result where P0: ::std::convert::Into<::windows::core::InParam<'a, IShellFolder>>, { @@ -63561,7 +63561,7 @@ where fn SHCreateShellItemArray(pidlparent: *const Common::ITEMIDLIST, psf: *mut ::core::ffi::c_void, cidl: u32, ppidl: *const *const Common::ITEMIDLIST, ppsiitemarray: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - SHCreateShellItemArray(::core::mem::transmute(pidlparent), psf.into().abi(), ppidl.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppidl)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + SHCreateShellItemArray(::core::mem::transmute(pidlparent), psf.into().abi(), ppidl.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppidl.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -63585,7 +63585,7 @@ pub unsafe fn SHCreateShellItemArrayFromIDLists(rgpidl: &[*const Common::ITEMIDL fn SHCreateShellItemArrayFromIDLists(cidl: u32, rgpidl: *const *const Common::ITEMIDLIST, ppsiitemarray: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - SHCreateShellItemArrayFromIDLists(rgpidl.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(rgpidl)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + SHCreateShellItemArrayFromIDLists(rgpidl.len() as _, ::core::mem::transmute(rgpidl.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -63621,7 +63621,7 @@ pub unsafe fn SHCreateStdEnumFmtEtc(afmt: &[super::super::System::Com::FORMATETC fn SHCreateStdEnumFmtEtc(cfmt: u32, afmt: *const super::super::System::Com::FORMATETC, ppenumformatetc: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } let mut result__ = ::core::mem::MaybeUninit::zeroed(); - SHCreateStdEnumFmtEtc(afmt.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(afmt)), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + SHCreateStdEnumFmtEtc(afmt.len() as _, ::core::mem::transmute(afmt.as_ptr()), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -64713,7 +64713,7 @@ where extern "system" { fn SHEnumerateUnreadMailAccountsW(hkeyuser: super::super::System::Registry::HKEY, dwindex: u32, pszmailaddress: ::windows::core::PWSTR, cchmailaddress: i32) -> ::windows::core::HRESULT; } - SHEnumerateUnreadMailAccountsW(hkeyuser.into(), dwindex, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszmailaddress)), pszmailaddress.len() as _).ok() + SHEnumerateUnreadMailAccountsW(hkeyuser.into(), dwindex, ::core::mem::transmute(pszmailaddress.as_ptr()), pszmailaddress.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -65315,7 +65315,7 @@ pub unsafe fn SHFormatDateTimeA(pft: &super::super::Foundation::FILETIME, pdwfla extern "system" { fn SHFormatDateTimeA(pft: *const super::super::Foundation::FILETIME, pdwflags: *mut u32, pszbuf: ::windows::core::PSTR, cchbuf: u32) -> i32; } - SHFormatDateTimeA(::core::mem::transmute(pft), ::core::mem::transmute(pdwflags), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszbuf.len() as _) + SHFormatDateTimeA(::core::mem::transmute(pft), ::core::mem::transmute(pdwflags), ::core::mem::transmute(pszbuf.as_ptr()), pszbuf.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -65325,7 +65325,7 @@ pub unsafe fn SHFormatDateTimeW(pft: &super::super::Foundation::FILETIME, pdwfla extern "system" { fn SHFormatDateTimeW(pft: *const super::super::Foundation::FILETIME, pdwflags: *mut u32, pszbuf: ::windows::core::PWSTR, cchbuf: u32) -> i32; } - SHFormatDateTimeW(::core::mem::transmute(pft), ::core::mem::transmute(pdwflags), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszbuf.len() as _) + SHFormatDateTimeW(::core::mem::transmute(pft), ::core::mem::transmute(pdwflags), ::core::mem::transmute(pszbuf.as_ptr()), pszbuf.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -65705,7 +65705,7 @@ where #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] #[inline] -pub unsafe fn SHGetDataFromIDListA<'a, P0>(psf: P0, pidl: &Common::ITEMIDLIST, nformat: SHGDFIL_FORMAT, pv: *mut ::core::ffi::c_void, cb: i32) -> ::windows::core::Result<()> +pub unsafe fn SHGetDataFromIDListA<'a, P0>(psf: P0, pidl: &Common::ITEMIDLIST, nformat: SHGDFIL_FORMAT, pv: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IShellFolder>>, { @@ -65713,12 +65713,12 @@ where extern "system" { fn SHGetDataFromIDListA(psf: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, nformat: SHGDFIL_FORMAT, pv: *mut ::core::ffi::c_void, cb: i32) -> ::windows::core::HRESULT; } - SHGetDataFromIDListA(psf.into().abi(), ::core::mem::transmute(pidl), nformat, ::core::mem::transmute(pv), cb).ok() + SHGetDataFromIDListA(psf.into().abi(), ::core::mem::transmute(pidl), nformat, ::core::mem::transmute(pv.as_ptr()), pv.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] #[inline] -pub unsafe fn SHGetDataFromIDListW<'a, P0>(psf: P0, pidl: &Common::ITEMIDLIST, nformat: SHGDFIL_FORMAT, pv: *mut ::core::ffi::c_void, cb: i32) -> ::windows::core::Result<()> +pub unsafe fn SHGetDataFromIDListW<'a, P0>(psf: P0, pidl: &Common::ITEMIDLIST, nformat: SHGDFIL_FORMAT, pv: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IShellFolder>>, { @@ -65726,7 +65726,7 @@ where extern "system" { fn SHGetDataFromIDListW(psf: *mut ::core::ffi::c_void, pidl: *const Common::ITEMIDLIST, nformat: SHGDFIL_FORMAT, pv: *mut ::core::ffi::c_void, cb: i32) -> ::windows::core::HRESULT; } - SHGetDataFromIDListW(psf.into().abi(), ::core::mem::transmute(pidl), nformat, ::core::mem::transmute(pv), cb).ok() + SHGetDataFromIDListW(psf.into().abi(), ::core::mem::transmute(pidl), nformat, ::core::mem::transmute(pv.as_ptr()), pv.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -65780,7 +65780,7 @@ where #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_FileSystem", feature = "Win32_UI_WindowsAndMessaging"))] #[inline] -pub unsafe fn SHGetFileInfoA<'a, P0>(pszpath: P0, dwfileattributes: super::super::Storage::FileSystem::FILE_FLAGS_AND_ATTRIBUTES, psfi: ::core::option::Option<&mut SHFILEINFOA>, cbfileinfo: u32, uflags: SHGFI_FLAGS) -> usize +pub unsafe fn SHGetFileInfoA<'a, P0>(pszpath: P0, dwfileattributes: super::super::Storage::FileSystem::FILE_FLAGS_AND_ATTRIBUTES, psfi: ::core::option::Option<&mut [u8]>, uflags: SHGFI_FLAGS) -> usize where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -65788,12 +65788,12 @@ where extern "system" { fn SHGetFileInfoA(pszpath: ::windows::core::PCSTR, dwfileattributes: super::super::Storage::FileSystem::FILE_FLAGS_AND_ATTRIBUTES, psfi: *mut SHFILEINFOA, cbfileinfo: u32, uflags: SHGFI_FLAGS) -> usize; } - SHGetFileInfoA(pszpath.into(), dwfileattributes, ::core::mem::transmute(psfi), cbfileinfo, uflags) + SHGetFileInfoA(pszpath.into(), dwfileattributes, ::core::mem::transmute(psfi.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psfi.as_deref().map_or(0, |slice| slice.len() as _), uflags) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Storage_FileSystem\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(all(feature = "Win32_Storage_FileSystem", feature = "Win32_UI_WindowsAndMessaging"))] #[inline] -pub unsafe fn SHGetFileInfoW<'a, P0>(pszpath: P0, dwfileattributes: super::super::Storage::FileSystem::FILE_FLAGS_AND_ATTRIBUTES, psfi: ::core::option::Option<&mut SHFILEINFOW>, cbfileinfo: u32, uflags: SHGFI_FLAGS) -> usize +pub unsafe fn SHGetFileInfoW<'a, P0>(pszpath: P0, dwfileattributes: super::super::Storage::FileSystem::FILE_FLAGS_AND_ATTRIBUTES, psfi: ::core::option::Option<&mut [u8]>, uflags: SHGFI_FLAGS) -> usize where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -65801,7 +65801,7 @@ where extern "system" { fn SHGetFileInfoW(pszpath: ::windows::core::PCWSTR, dwfileattributes: super::super::Storage::FileSystem::FILE_FLAGS_AND_ATTRIBUTES, psfi: *mut SHFILEINFOW, cbfileinfo: u32, uflags: SHGFI_FLAGS) -> usize; } - SHGetFileInfoW(pszpath.into(), dwfileattributes, ::core::mem::transmute(psfi), cbfileinfo, uflags) + SHGetFileInfoW(pszpath.into(), dwfileattributes, ::core::mem::transmute(psfi.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), psfi.as_deref().map_or(0, |slice| slice.len() as _), uflags) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] @@ -65830,7 +65830,7 @@ where extern "system" { fn SHGetFolderPathA(hwnd: super::super::Foundation::HWND, csidl: i32, htoken: super::super::Foundation::HANDLE, dwflags: u32, pszpath: ::windows::core::PSTR) -> ::windows::core::HRESULT; } - SHGetFolderPathA(hwnd.into(), csidl, htoken.into(), dwflags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath))).ok() + SHGetFolderPathA(hwnd.into(), csidl, htoken.into(), dwflags, ::core::mem::transmute(pszpath.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -65845,7 +65845,7 @@ where extern "system" { fn SHGetFolderPathAndSubDirA(hwnd: super::super::Foundation::HWND, csidl: i32, htoken: super::super::Foundation::HANDLE, dwflags: u32, pszsubdir: ::windows::core::PCSTR, pszpath: ::windows::core::PSTR) -> ::windows::core::HRESULT; } - SHGetFolderPathAndSubDirA(hwnd.into(), csidl, htoken.into(), dwflags, pszsubdir.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath))).ok() + SHGetFolderPathAndSubDirA(hwnd.into(), csidl, htoken.into(), dwflags, pszsubdir.into(), ::core::mem::transmute(pszpath.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -65860,7 +65860,7 @@ where extern "system" { fn SHGetFolderPathAndSubDirW(hwnd: super::super::Foundation::HWND, csidl: i32, htoken: super::super::Foundation::HANDLE, dwflags: u32, pszsubdir: ::windows::core::PCWSTR, pszpath: ::windows::core::PWSTR) -> ::windows::core::HRESULT; } - SHGetFolderPathAndSubDirW(hwnd.into(), csidl, htoken.into(), dwflags, pszsubdir.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath))).ok() + SHGetFolderPathAndSubDirW(hwnd.into(), csidl, htoken.into(), dwflags, pszsubdir.into(), ::core::mem::transmute(pszpath.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -65874,7 +65874,7 @@ where extern "system" { fn SHGetFolderPathW(hwnd: super::super::Foundation::HWND, csidl: i32, htoken: super::super::Foundation::HANDLE, dwflags: u32, pszpath: ::windows::core::PWSTR) -> ::windows::core::HRESULT; } - SHGetFolderPathW(hwnd.into(), csidl, htoken.into(), dwflags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath))).ok() + SHGetFolderPathW(hwnd.into(), csidl, htoken.into(), dwflags, ::core::mem::transmute(pszpath.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] @@ -65935,12 +65935,12 @@ pub unsafe fn SHGetInstanceExplorer() -> ::windows::core::Result<::windows::core } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] -pub unsafe fn SHGetInverseCMAP(pbmap: &mut u8, cbmap: u32) -> ::windows::core::Result<()> { +pub unsafe fn SHGetInverseCMAP(pbmap: &mut [u8]) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SHGetInverseCMAP(pbmap: *mut u8, cbmap: u32) -> ::windows::core::HRESULT; } - SHGetInverseCMAP(::core::mem::transmute(pbmap), cbmap).ok() + SHGetInverseCMAP(::core::mem::transmute(pbmap.as_ptr()), pbmap.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -66018,7 +66018,7 @@ where extern "system" { fn SHGetLocalizedName(pszpath: ::windows::core::PCWSTR, pszresmodule: ::windows::core::PWSTR, cch: u32, pidsres: *mut i32) -> ::windows::core::HRESULT; } - SHGetLocalizedName(pszpath.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszresmodule)), pszresmodule.len() as _, ::core::mem::transmute(pidsres)).ok() + SHGetLocalizedName(pszpath.into(), ::core::mem::transmute(pszresmodule.as_ptr()), pszresmodule.len() as _, ::core::mem::transmute(pidsres)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -66054,7 +66054,7 @@ where extern "system" { fn SHGetNewLinkInfoA(pszlinkto: ::windows::core::PCSTR, pszdir: ::windows::core::PCSTR, pszname: ::windows::core::PSTR, pfmustcopy: *mut super::super::Foundation::BOOL, uflags: u32) -> super::super::Foundation::BOOL; } - SHGetNewLinkInfoA(pszlinkto.into(), pszdir.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), ::core::mem::transmute(pfmustcopy), uflags) + SHGetNewLinkInfoA(pszlinkto.into(), pszdir.into(), ::core::mem::transmute(pszname.as_ptr()), ::core::mem::transmute(pfmustcopy), uflags) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -66068,7 +66068,7 @@ where extern "system" { fn SHGetNewLinkInfoW(pszlinkto: ::windows::core::PCWSTR, pszdir: ::windows::core::PCWSTR, pszname: ::windows::core::PWSTR, pfmustcopy: *mut super::super::Foundation::BOOL, uflags: u32) -> super::super::Foundation::BOOL; } - SHGetNewLinkInfoW(pszlinkto.into(), pszdir.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszname)), ::core::mem::transmute(pfmustcopy), uflags) + SHGetNewLinkInfoW(pszlinkto.into(), pszdir.into(), ::core::mem::transmute(pszname.as_ptr()), ::core::mem::transmute(pfmustcopy), uflags) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] @@ -66078,7 +66078,7 @@ pub unsafe fn SHGetPathFromIDListA(pidl: &Common::ITEMIDLIST, pszpath: &mut [u8; extern "system" { fn SHGetPathFromIDListA(pidl: *const Common::ITEMIDLIST, pszpath: ::windows::core::PSTR) -> super::super::Foundation::BOOL; } - SHGetPathFromIDListA(::core::mem::transmute(pidl), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath))) + SHGetPathFromIDListA(::core::mem::transmute(pidl), ::core::mem::transmute(pszpath.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] @@ -66088,7 +66088,7 @@ pub unsafe fn SHGetPathFromIDListEx(pidl: &Common::ITEMIDLIST, pszpath: &mut [u1 extern "system" { fn SHGetPathFromIDListEx(pidl: *const Common::ITEMIDLIST, pszpath: ::windows::core::PWSTR, cchpath: u32, uopts: i32) -> super::super::Foundation::BOOL; } - SHGetPathFromIDListEx(::core::mem::transmute(pidl), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), pszpath.len() as _, uopts) + SHGetPathFromIDListEx(::core::mem::transmute(pidl), ::core::mem::transmute(pszpath.as_ptr()), pszpath.len() as _, uopts) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_Shell_Common"))] @@ -66098,7 +66098,7 @@ pub unsafe fn SHGetPathFromIDListW(pidl: &Common::ITEMIDLIST, pszpath: &mut [u16 extern "system" { fn SHGetPathFromIDListW(pidl: *const Common::ITEMIDLIST, pszpath: ::windows::core::PWSTR) -> super::super::Foundation::BOOL; } - SHGetPathFromIDListW(::core::mem::transmute(pidl), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath))) + SHGetPathFromIDListW(::core::mem::transmute(pidl), ::core::mem::transmute(pszpath.as_ptr())) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] @@ -66174,7 +66174,7 @@ where extern "system" { fn SHGetSpecialFolderPathA(hwnd: super::super::Foundation::HWND, pszpath: ::windows::core::PSTR, csidl: i32, fcreate: super::super::Foundation::BOOL) -> super::super::Foundation::BOOL; } - SHGetSpecialFolderPathA(hwnd.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), csidl, fcreate.into()) + SHGetSpecialFolderPathA(hwnd.into(), ::core::mem::transmute(pszpath.as_ptr()), csidl, fcreate.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -66188,7 +66188,7 @@ where extern "system" { fn SHGetSpecialFolderPathW(hwnd: super::super::Foundation::HWND, pszpath: ::windows::core::PWSTR, csidl: i32, fcreate: super::super::Foundation::BOOL) -> super::super::Foundation::BOOL; } - SHGetSpecialFolderPathW(hwnd.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), csidl, fcreate.into()) + SHGetSpecialFolderPathW(hwnd.into(), ::core::mem::transmute(pszpath.as_ptr()), csidl, fcreate.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_WindowsAndMessaging\"`*"] #[cfg(feature = "Win32_UI_WindowsAndMessaging")] @@ -66227,7 +66227,7 @@ pub unsafe fn SHGetThreadRef() -> ::windows::core::Result<::windows::core::IUnkn #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] #[inline] -pub unsafe fn SHGetUnreadMailCountW<'a, P0, P1>(hkeyuser: P0, pszmailaddress: P1, pdwcount: ::core::option::Option<&mut u32>, pfiletime: ::core::option::Option<&mut super::super::Foundation::FILETIME>, pszshellexecutecommand: &mut [u16]) -> ::windows::core::Result<()> +pub unsafe fn SHGetUnreadMailCountW<'a, P0, P1>(hkeyuser: P0, pszmailaddress: P1, pdwcount: ::core::option::Option<&mut u32>, pfiletime: ::core::option::Option<&mut super::super::Foundation::FILETIME>, pszshellexecutecommand: ::core::option::Option<&mut [u16]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -66236,7 +66236,7 @@ where extern "system" { fn SHGetUnreadMailCountW(hkeyuser: super::super::System::Registry::HKEY, pszmailaddress: ::windows::core::PCWSTR, pdwcount: *mut u32, pfiletime: *mut super::super::Foundation::FILETIME, pszshellexecutecommand: ::windows::core::PWSTR, cchshellexecutecommand: i32) -> ::windows::core::HRESULT; } - SHGetUnreadMailCountW(hkeyuser.into(), pszmailaddress.into(), ::core::mem::transmute(pdwcount), ::core::mem::transmute(pfiletime), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszshellexecutecommand)), pszshellexecutecommand.len() as _).ok() + SHGetUnreadMailCountW(hkeyuser.into(), pszmailaddress.into(), ::core::mem::transmute(pdwcount), ::core::mem::transmute(pfiletime), ::core::mem::transmute(pszshellexecutecommand.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszshellexecutecommand.as_deref().map_or(0, |slice| slice.len() as _)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] @@ -66449,7 +66449,7 @@ where extern "system" { fn SHLoadIndirectString(pszsource: ::windows::core::PCWSTR, pszoutbuf: ::windows::core::PWSTR, cchoutbuf: u32, ppvreserved: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT; } - SHLoadIndirectString(pszsource.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszoutbuf)), pszoutbuf.len() as _, ::core::mem::transmute(ppvreserved)).ok() + SHLoadIndirectString(pszsource.into(), ::core::mem::transmute(pszoutbuf.as_ptr()), pszoutbuf.len() as _, ::core::mem::transmute(ppvreserved)).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -66746,17 +66746,17 @@ where #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] #[inline] -pub unsafe fn SHOpenFolderAndSelectItems(pidlfolder: &Common::ITEMIDLIST, apidl: &[*const Common::ITEMIDLIST], dwflags: u32) -> ::windows::core::Result<()> { +pub unsafe fn SHOpenFolderAndSelectItems(pidlfolder: &Common::ITEMIDLIST, apidl: ::core::option::Option<&[*const Common::ITEMIDLIST]>, dwflags: u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SHOpenFolderAndSelectItems(pidlfolder: *const Common::ITEMIDLIST, cidl: u32, apidl: *const *const Common::ITEMIDLIST, dwflags: u32) -> ::windows::core::HRESULT; } - SHOpenFolderAndSelectItems(::core::mem::transmute(pidlfolder), apidl.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(apidl)), dwflags).ok() + SHOpenFolderAndSelectItems(::core::mem::transmute(pidlfolder), apidl.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(apidl.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dwflags).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Registry"))] #[inline] -pub unsafe fn SHOpenPropSheetW<'a, P0, P1, P2, P3>(pszcaption: P0, ahkeys: &[super::super::System::Registry::HKEY], pclsiddefault: ::core::option::Option<&::windows::core::GUID>, pdtobj: P1, psb: P2, pstartpage: P3) -> super::super::Foundation::BOOL +pub unsafe fn SHOpenPropSheetW<'a, P0, P1, P2, P3>(pszcaption: P0, ahkeys: ::core::option::Option<&[super::super::System::Registry::HKEY]>, pclsiddefault: ::core::option::Option<&::windows::core::GUID>, pdtobj: P1, psb: P2, pstartpage: P3) -> super::super::Foundation::BOOL where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::InParam<'a, super::super::System::Com::IDataObject>>, @@ -66767,7 +66767,7 @@ where extern "system" { fn SHOpenPropSheetW(pszcaption: ::windows::core::PCWSTR, ahkeys: *const super::super::System::Registry::HKEY, ckeys: u32, pclsiddefault: *const ::windows::core::GUID, pdtobj: *mut ::core::ffi::c_void, psb: *mut ::core::ffi::c_void, pstartpage: ::windows::core::PCWSTR) -> super::super::Foundation::BOOL; } - SHOpenPropSheetW(pszcaption.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(ahkeys)), ahkeys.len() as _, ::core::mem::transmute(pclsiddefault), pdtobj.into().abi(), psb.into().abi(), pstartpage.into()) + SHOpenPropSheetW(pszcaption.into(), ::core::mem::transmute(ahkeys.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ahkeys.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pclsiddefault), pdtobj.into().abi(), psb.into().abi(), pstartpage.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Com\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_System_Com", feature = "Win32_System_Registry"))] @@ -67336,7 +67336,7 @@ where extern "system" { fn SHRegGetPathA(hkey: super::super::System::Registry::HKEY, pcszsubkey: ::windows::core::PCSTR, pcszvalue: ::windows::core::PCSTR, pszpath: ::windows::core::PSTR, dwflags: u32) -> super::super::Foundation::WIN32_ERROR; } - SHRegGetPathA(hkey.into(), pcszsubkey.into(), pcszvalue.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), dwflags) + SHRegGetPathA(hkey.into(), pcszsubkey.into(), pcszvalue.into(), ::core::mem::transmute(pszpath.as_ptr()), dwflags) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] @@ -67351,12 +67351,12 @@ where extern "system" { fn SHRegGetPathW(hkey: super::super::System::Registry::HKEY, pcszsubkey: ::windows::core::PCWSTR, pcszvalue: ::windows::core::PCWSTR, pszpath: ::windows::core::PWSTR, dwflags: u32) -> super::super::Foundation::WIN32_ERROR; } - SHRegGetPathW(hkey.into(), pcszsubkey.into(), pcszvalue.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszpath)), dwflags) + SHRegGetPathW(hkey.into(), pcszsubkey.into(), pcszvalue.into(), ::core::mem::transmute(pszpath.as_ptr()), dwflags) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SHRegGetUSValueA<'a, P0, P1, P2>(pszsubkey: P0, pszvalue: P1, pdwtype: ::core::option::Option<&mut u32>, pvdata: *mut ::core::ffi::c_void, pcbdata: ::core::option::Option<&mut u32>, fignorehkcu: P2, pvdefaultdata: *const ::core::ffi::c_void, dwdefaultdatasize: u32) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn SHRegGetUSValueA<'a, P0, P1, P2>(pszsubkey: P0, pszvalue: P1, pdwtype: ::core::option::Option<&mut u32>, pvdata: *mut ::core::ffi::c_void, pcbdata: ::core::option::Option<&mut u32>, fignorehkcu: P2, pvdefaultdata: ::core::option::Option<&[u8]>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -67366,12 +67366,12 @@ where extern "system" { fn SHRegGetUSValueA(pszsubkey: ::windows::core::PCSTR, pszvalue: ::windows::core::PCSTR, pdwtype: *mut u32, pvdata: *mut ::core::ffi::c_void, pcbdata: *mut u32, fignorehkcu: super::super::Foundation::BOOL, pvdefaultdata: *const ::core::ffi::c_void, dwdefaultdatasize: u32) -> super::super::Foundation::WIN32_ERROR; } - SHRegGetUSValueA(pszsubkey.into(), pszvalue.into(), ::core::mem::transmute(pdwtype), ::core::mem::transmute(pvdata), ::core::mem::transmute(pcbdata), fignorehkcu.into(), ::core::mem::transmute(pvdefaultdata), dwdefaultdatasize) + SHRegGetUSValueA(pszsubkey.into(), pszvalue.into(), ::core::mem::transmute(pdwtype), ::core::mem::transmute(pvdata), ::core::mem::transmute(pcbdata), fignorehkcu.into(), ::core::mem::transmute(pvdefaultdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvdefaultdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SHRegGetUSValueW<'a, P0, P1, P2>(pszsubkey: P0, pszvalue: P1, pdwtype: ::core::option::Option<&mut u32>, pvdata: *mut ::core::ffi::c_void, pcbdata: ::core::option::Option<&mut u32>, fignorehkcu: P2, pvdefaultdata: *const ::core::ffi::c_void, dwdefaultdatasize: u32) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn SHRegGetUSValueW<'a, P0, P1, P2>(pszsubkey: P0, pszvalue: P1, pdwtype: ::core::option::Option<&mut u32>, pvdata: *mut ::core::ffi::c_void, pcbdata: ::core::option::Option<&mut u32>, fignorehkcu: P2, pvdefaultdata: ::core::option::Option<&[u8]>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -67381,7 +67381,7 @@ where extern "system" { fn SHRegGetUSValueW(pszsubkey: ::windows::core::PCWSTR, pszvalue: ::windows::core::PCWSTR, pdwtype: *mut u32, pvdata: *mut ::core::ffi::c_void, pcbdata: *mut u32, fignorehkcu: super::super::Foundation::BOOL, pvdefaultdata: *const ::core::ffi::c_void, dwdefaultdatasize: u32) -> super::super::Foundation::WIN32_ERROR; } - SHRegGetUSValueW(pszsubkey.into(), pszvalue.into(), ::core::mem::transmute(pdwtype), ::core::mem::transmute(pvdata), ::core::mem::transmute(pcbdata), fignorehkcu.into(), ::core::mem::transmute(pvdefaultdata), dwdefaultdatasize) + SHRegGetUSValueW(pszsubkey.into(), pszvalue.into(), ::core::mem::transmute(pdwtype), ::core::mem::transmute(pvdata), ::core::mem::transmute(pcbdata), fignorehkcu.into(), ::core::mem::transmute(pvdefaultdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvdefaultdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] @@ -67478,7 +67478,7 @@ pub unsafe fn SHRegQueryInfoUSKeyW(huskey: isize, pcsubkeys: ::core::option::Opt #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SHRegQueryUSValueA<'a, P0, P1>(huskey: isize, pszvalue: P0, pdwtype: ::core::option::Option<&mut u32>, pvdata: *mut ::core::ffi::c_void, pcbdata: ::core::option::Option<&mut u32>, fignorehkcu: P1, pvdefaultdata: *const ::core::ffi::c_void, dwdefaultdatasize: u32) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn SHRegQueryUSValueA<'a, P0, P1>(huskey: isize, pszvalue: P0, pdwtype: ::core::option::Option<&mut u32>, pvdata: *mut ::core::ffi::c_void, pcbdata: ::core::option::Option<&mut u32>, fignorehkcu: P1, pvdefaultdata: ::core::option::Option<&[u8]>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into, @@ -67487,12 +67487,12 @@ where extern "system" { fn SHRegQueryUSValueA(huskey: isize, pszvalue: ::windows::core::PCSTR, pdwtype: *mut u32, pvdata: *mut ::core::ffi::c_void, pcbdata: *mut u32, fignorehkcu: super::super::Foundation::BOOL, pvdefaultdata: *const ::core::ffi::c_void, dwdefaultdatasize: u32) -> super::super::Foundation::WIN32_ERROR; } - SHRegQueryUSValueA(huskey, pszvalue.into(), ::core::mem::transmute(pdwtype), ::core::mem::transmute(pvdata), ::core::mem::transmute(pcbdata), fignorehkcu.into(), ::core::mem::transmute(pvdefaultdata), dwdefaultdatasize) + SHRegQueryUSValueA(huskey, pszvalue.into(), ::core::mem::transmute(pdwtype), ::core::mem::transmute(pvdata), ::core::mem::transmute(pcbdata), fignorehkcu.into(), ::core::mem::transmute(pvdefaultdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvdefaultdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SHRegQueryUSValueW<'a, P0, P1>(huskey: isize, pszvalue: P0, pdwtype: ::core::option::Option<&mut u32>, pvdata: *mut ::core::ffi::c_void, pcbdata: ::core::option::Option<&mut u32>, fignorehkcu: P1, pvdefaultdata: *const ::core::ffi::c_void, dwdefaultdatasize: u32) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn SHRegQueryUSValueW<'a, P0, P1>(huskey: isize, pszvalue: P0, pdwtype: ::core::option::Option<&mut u32>, pvdata: *mut ::core::ffi::c_void, pcbdata: ::core::option::Option<&mut u32>, fignorehkcu: P1, pvdefaultdata: ::core::option::Option<&[u8]>) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into, @@ -67501,7 +67501,7 @@ where extern "system" { fn SHRegQueryUSValueW(huskey: isize, pszvalue: ::windows::core::PCWSTR, pdwtype: *mut u32, pvdata: *mut ::core::ffi::c_void, pcbdata: *mut u32, fignorehkcu: super::super::Foundation::BOOL, pvdefaultdata: *const ::core::ffi::c_void, dwdefaultdatasize: u32) -> super::super::Foundation::WIN32_ERROR; } - SHRegQueryUSValueW(huskey, pszvalue.into(), ::core::mem::transmute(pdwtype), ::core::mem::transmute(pvdata), ::core::mem::transmute(pcbdata), fignorehkcu.into(), ::core::mem::transmute(pvdefaultdata), dwdefaultdatasize) + SHRegQueryUSValueW(huskey, pszvalue.into(), ::core::mem::transmute(pdwtype), ::core::mem::transmute(pvdata), ::core::mem::transmute(pcbdata), fignorehkcu.into(), ::core::mem::transmute(pvdefaultdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvdefaultdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`, `\"Win32_System_Registry\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Registry"))] @@ -67538,7 +67538,7 @@ where #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SHRegSetUSValueA<'a, P0, P1>(pszsubkey: P0, pszvalue: P1, dwtype: u32, pvdata: *const ::core::ffi::c_void, cbdata: u32, dwflags: u32) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn SHRegSetUSValueA<'a, P0, P1>(pszsubkey: P0, pszvalue: P1, dwtype: u32, pvdata: ::core::option::Option<&[u8]>, dwflags: u32) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into<::windows::core::PCSTR>, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -67547,12 +67547,12 @@ where extern "system" { fn SHRegSetUSValueA(pszsubkey: ::windows::core::PCSTR, pszvalue: ::windows::core::PCSTR, dwtype: u32, pvdata: *const ::core::ffi::c_void, cbdata: u32, dwflags: u32) -> super::super::Foundation::WIN32_ERROR; } - SHRegSetUSValueA(pszsubkey.into(), pszvalue.into(), dwtype, ::core::mem::transmute(pvdata), cbdata, dwflags) + SHRegSetUSValueA(pszsubkey.into(), pszvalue.into(), dwtype, ::core::mem::transmute(pvdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvdata.as_deref().map_or(0, |slice| slice.len() as _), dwflags) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SHRegSetUSValueW<'a, P0, P1>(pwzsubkey: P0, pwzvalue: P1, dwtype: u32, pvdata: *const ::core::ffi::c_void, cbdata: u32, dwflags: u32) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn SHRegSetUSValueW<'a, P0, P1>(pwzsubkey: P0, pwzvalue: P1, dwtype: u32, pvdata: ::core::option::Option<&[u8]>, dwflags: u32) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -67561,12 +67561,12 @@ where extern "system" { fn SHRegSetUSValueW(pwzsubkey: ::windows::core::PCWSTR, pwzvalue: ::windows::core::PCWSTR, dwtype: u32, pvdata: *const ::core::ffi::c_void, cbdata: u32, dwflags: u32) -> super::super::Foundation::WIN32_ERROR; } - SHRegSetUSValueW(pwzsubkey.into(), pwzvalue.into(), dwtype, ::core::mem::transmute(pvdata), cbdata, dwflags) + SHRegSetUSValueW(pwzsubkey.into(), pwzvalue.into(), dwtype, ::core::mem::transmute(pvdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvdata.as_deref().map_or(0, |slice| slice.len() as _), dwflags) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SHRegWriteUSValueA<'a, P0>(huskey: isize, pszvalue: P0, dwtype: u32, pvdata: *const ::core::ffi::c_void, cbdata: u32, dwflags: u32) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn SHRegWriteUSValueA<'a, P0>(huskey: isize, pszvalue: P0, dwtype: u32, pvdata: &[u8], dwflags: u32) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -67574,12 +67574,12 @@ where extern "system" { fn SHRegWriteUSValueA(huskey: isize, pszvalue: ::windows::core::PCSTR, dwtype: u32, pvdata: *const ::core::ffi::c_void, cbdata: u32, dwflags: u32) -> super::super::Foundation::WIN32_ERROR; } - SHRegWriteUSValueA(huskey, pszvalue.into(), dwtype, ::core::mem::transmute(pvdata), cbdata, dwflags) + SHRegWriteUSValueA(huskey, pszvalue.into(), dwtype, ::core::mem::transmute(pvdata.as_ptr()), pvdata.len() as _, dwflags) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SHRegWriteUSValueW<'a, P0>(huskey: isize, pwzvalue: P0, dwtype: u32, pvdata: *const ::core::ffi::c_void, cbdata: u32, dwflags: u32) -> super::super::Foundation::WIN32_ERROR +pub unsafe fn SHRegWriteUSValueW<'a, P0>(huskey: isize, pwzvalue: P0, dwtype: u32, pvdata: &[u8], dwflags: u32) -> super::super::Foundation::WIN32_ERROR where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -67587,7 +67587,7 @@ where extern "system" { fn SHRegWriteUSValueW(huskey: isize, pwzvalue: ::windows::core::PCWSTR, dwtype: u32, pvdata: *const ::core::ffi::c_void, cbdata: u32, dwflags: u32) -> super::super::Foundation::WIN32_ERROR; } - SHRegWriteUSValueW(huskey, pwzvalue.into(), dwtype, ::core::mem::transmute(pvdata), cbdata, dwflags) + SHRegWriteUSValueW(huskey, pwzvalue.into(), dwtype, ::core::mem::transmute(pvdata.as_ptr()), pvdata.len() as _, dwflags) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -68093,7 +68093,7 @@ where #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn SHSetValueA<'a, P0, P1, P2>(hkey: P0, pszsubkey: P1, pszvalue: P2, dwtype: u32, pvdata: *const ::core::ffi::c_void, cbdata: u32) -> i32 +pub unsafe fn SHSetValueA<'a, P0, P1, P2>(hkey: P0, pszsubkey: P1, pszvalue: P2, dwtype: u32, pvdata: ::core::option::Option<&[u8]>) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCSTR>, @@ -68103,12 +68103,12 @@ where extern "system" { fn SHSetValueA(hkey: super::super::System::Registry::HKEY, pszsubkey: ::windows::core::PCSTR, pszvalue: ::windows::core::PCSTR, dwtype: u32, pvdata: *const ::core::ffi::c_void, cbdata: u32) -> i32; } - SHSetValueA(hkey.into(), pszsubkey.into(), pszvalue.into(), dwtype, ::core::mem::transmute(pvdata), cbdata) + SHSetValueA(hkey.into(), pszsubkey.into(), pszvalue.into(), dwtype, ::core::mem::transmute(pvdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_System_Registry\"`*"] #[cfg(feature = "Win32_System_Registry")] #[inline] -pub unsafe fn SHSetValueW<'a, P0, P1, P2>(hkey: P0, pszsubkey: P1, pszvalue: P2, dwtype: u32, pvdata: *const ::core::ffi::c_void, cbdata: u32) -> i32 +pub unsafe fn SHSetValueW<'a, P0, P1, P2>(hkey: P0, pszsubkey: P1, pszvalue: P2, dwtype: u32, pvdata: ::core::option::Option<&[u8]>) -> i32 where P0: ::std::convert::Into, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -68118,7 +68118,7 @@ where extern "system" { fn SHSetValueW(hkey: super::super::System::Registry::HKEY, pszsubkey: ::windows::core::PCWSTR, pszvalue: ::windows::core::PCWSTR, dwtype: u32, pvdata: *const ::core::ffi::c_void, cbdata: u32) -> i32; } - SHSetValueW(hkey.into(), pszsubkey.into(), pszvalue.into(), dwtype, ::core::mem::transmute(pvdata), cbdata) + SHSetValueW(hkey.into(), pszsubkey.into(), pszvalue.into(), dwtype, ::core::mem::transmute(pvdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pvdata.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -68258,7 +68258,7 @@ where extern "system" { fn SHUnicodeToAnsi(pwszsrc: ::windows::core::PCWSTR, pszdst: ::windows::core::PSTR, cchbuf: i32) -> i32; } - SHUnicodeToAnsi(pwszsrc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdst)), pszdst.len() as _) + SHUnicodeToAnsi(pwszsrc.into(), ::core::mem::transmute(pszdst.as_ptr()), pszdst.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -68270,7 +68270,7 @@ where extern "system" { fn SHUnicodeToUnicode(pwzsrc: ::windows::core::PCWSTR, pwzdst: ::windows::core::PWSTR, cwchbuf: i32) -> i32; } - SHUnicodeToUnicode(pwzsrc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pwzdst)), pwzdst.len() as _) + SHUnicodeToUnicode(pwzsrc.into(), ::core::mem::transmute(pwzdst.as_ptr()), pwzdst.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -71381,7 +71381,7 @@ where extern "system" { fn StrCatBuffA(pszdest: ::windows::core::PSTR, pszsrc: ::windows::core::PCSTR, cchdestbuffsize: i32) -> ::windows::core::PSTR; } - StrCatBuffA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdest)), pszsrc.into(), pszdest.len() as _) + StrCatBuffA(::core::mem::transmute(pszdest.as_ptr()), pszsrc.into(), pszdest.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -71393,7 +71393,7 @@ where extern "system" { fn StrCatBuffW(pszdest: ::windows::core::PWSTR, pszsrc: ::windows::core::PCWSTR, cchdestbuffsize: i32) -> ::windows::core::PWSTR; } - StrCatBuffW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdest)), pszsrc.into(), pszdest.len() as _) + StrCatBuffW(::core::mem::transmute(pszdest.as_ptr()), pszsrc.into(), pszdest.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -71405,7 +71405,7 @@ where extern "system" { fn StrCatChainW(pszdst: ::windows::core::PWSTR, cchdst: u32, ichat: u32, pszsrc: ::windows::core::PCWSTR) -> u32; } - StrCatChainW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdst)), pszdst.len() as _, ichat, pszsrc.into()) + StrCatChainW(::core::mem::transmute(pszdst.as_ptr()), pszdst.len() as _, ichat, pszsrc.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -71696,7 +71696,7 @@ where extern "system" { fn StrCpyNW(pszdst: ::windows::core::PWSTR, pszsrc: ::windows::core::PCWSTR, cchmax: i32) -> ::windows::core::PWSTR; } - StrCpyNW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdst)), pszsrc.into(), pszdst.len() as _) + StrCpyNW(::core::mem::transmute(pszdst.as_ptr()), pszsrc.into(), pszdst.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -71741,7 +71741,7 @@ pub unsafe fn StrFormatByteSize64A(qdw: i64, pszbuf: &mut [u8]) -> ::windows::co extern "system" { fn StrFormatByteSize64A(qdw: i64, pszbuf: ::windows::core::PSTR, cchbuf: u32) -> ::windows::core::PSTR; } - StrFormatByteSize64A(qdw, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszbuf.len() as _) + StrFormatByteSize64A(qdw, ::core::mem::transmute(pszbuf.as_ptr()), pszbuf.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -71750,7 +71750,7 @@ pub unsafe fn StrFormatByteSizeA(dw: u32, pszbuf: &mut [u8]) -> ::windows::core: extern "system" { fn StrFormatByteSizeA(dw: u32, pszbuf: ::windows::core::PSTR, cchbuf: u32) -> ::windows::core::PSTR; } - StrFormatByteSizeA(dw, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszbuf.len() as _) + StrFormatByteSizeA(dw, ::core::mem::transmute(pszbuf.as_ptr()), pszbuf.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -71759,7 +71759,7 @@ pub unsafe fn StrFormatByteSizeEx(ull: u64, flags: SFBS_FLAGS, pszbuf: &mut [u16 extern "system" { fn StrFormatByteSizeEx(ull: u64, flags: SFBS_FLAGS, pszbuf: ::windows::core::PWSTR, cchbuf: u32) -> ::windows::core::HRESULT; } - StrFormatByteSizeEx(ull, flags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszbuf.len() as _).ok() + StrFormatByteSizeEx(ull, flags, ::core::mem::transmute(pszbuf.as_ptr()), pszbuf.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -71768,7 +71768,7 @@ pub unsafe fn StrFormatByteSizeW(qdw: i64, pszbuf: &mut [u16]) -> ::windows::cor extern "system" { fn StrFormatByteSizeW(qdw: i64, pszbuf: ::windows::core::PWSTR, cchbuf: u32) -> ::windows::core::PWSTR; } - StrFormatByteSizeW(qdw, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszbuf.len() as _) + StrFormatByteSizeW(qdw, ::core::mem::transmute(pszbuf.as_ptr()), pszbuf.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -71777,7 +71777,7 @@ pub unsafe fn StrFormatKBSizeA(qdw: i64, pszbuf: &mut [u8]) -> ::windows::core:: extern "system" { fn StrFormatKBSizeA(qdw: i64, pszbuf: ::windows::core::PSTR, cchbuf: u32) -> ::windows::core::PSTR; } - StrFormatKBSizeA(qdw, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszbuf.len() as _) + StrFormatKBSizeA(qdw, ::core::mem::transmute(pszbuf.as_ptr()), pszbuf.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -71786,7 +71786,7 @@ pub unsafe fn StrFormatKBSizeW(qdw: i64, pszbuf: &mut [u16]) -> ::windows::core: extern "system" { fn StrFormatKBSizeW(qdw: i64, pszbuf: ::windows::core::PWSTR, cchbuf: u32) -> ::windows::core::PWSTR; } - StrFormatKBSizeW(qdw, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszbuf.len() as _) + StrFormatKBSizeW(qdw, ::core::mem::transmute(pszbuf.as_ptr()), pszbuf.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -71795,7 +71795,7 @@ pub unsafe fn StrFromTimeIntervalA(pszout: &mut [u8], dwtimems: u32, digits: i32 extern "system" { fn StrFromTimeIntervalA(pszout: ::windows::core::PSTR, cchmax: u32, dwtimems: u32, digits: i32) -> i32; } - StrFromTimeIntervalA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszout)), pszout.len() as _, dwtimems, digits) + StrFromTimeIntervalA(::core::mem::transmute(pszout.as_ptr()), pszout.len() as _, dwtimems, digits) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -71804,7 +71804,7 @@ pub unsafe fn StrFromTimeIntervalW(pszout: &mut [u16], dwtimems: u32, digits: i3 extern "system" { fn StrFromTimeIntervalW(pszout: ::windows::core::PWSTR, cchmax: u32, dwtimems: u32, digits: i32) -> i32; } - StrFromTimeIntervalW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszout)), pszout.len() as _, dwtimems, digits) + StrFromTimeIntervalW(::core::mem::transmute(pszout.as_ptr()), pszout.len() as _, dwtimems, digits) } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -71846,7 +71846,7 @@ where extern "system" { fn StrNCatA(psz1: ::windows::core::PSTR, psz2: ::windows::core::PCSTR, cchmax: i32) -> ::windows::core::PSTR; } - StrNCatA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psz1)), psz2.into(), psz1.len() as _) + StrNCatA(::core::mem::transmute(psz1.as_ptr()), psz2.into(), psz1.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -71858,7 +71858,7 @@ where extern "system" { fn StrNCatW(psz1: ::windows::core::PWSTR, psz2: ::windows::core::PCWSTR, cchmax: i32) -> ::windows::core::PWSTR; } - StrNCatW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psz1)), psz2.into(), psz1.len() as _) + StrNCatW(::core::mem::transmute(psz1.as_ptr()), psz2.into(), psz1.len() as _) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -71984,7 +71984,7 @@ pub unsafe fn StrRetToBufA(pstr: &mut Common::STRRET, pidl: ::core::option::Opti extern "system" { fn StrRetToBufA(pstr: *mut Common::STRRET, pidl: *const Common::ITEMIDLIST, pszbuf: ::windows::core::PSTR, cchbuf: u32) -> ::windows::core::HRESULT; } - StrRetToBufA(::core::mem::transmute(pstr), ::core::mem::transmute(pidl), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszbuf.len() as _).ok() + StrRetToBufA(::core::mem::transmute(pstr), ::core::mem::transmute(pidl), ::core::mem::transmute(pszbuf.as_ptr()), pszbuf.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] @@ -71994,7 +71994,7 @@ pub unsafe fn StrRetToBufW(pstr: &mut Common::STRRET, pidl: ::core::option::Opti extern "system" { fn StrRetToBufW(pstr: *mut Common::STRRET, pidl: *const Common::ITEMIDLIST, pszbuf: ::windows::core::PWSTR, cchbuf: u32) -> ::windows::core::HRESULT; } - StrRetToBufW(::core::mem::transmute(pstr), ::core::mem::transmute(pidl), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszbuf)), pszbuf.len() as _).ok() + StrRetToBufW(::core::mem::transmute(pstr), ::core::mem::transmute(pidl), ::core::mem::transmute(pszbuf.as_ptr()), pszbuf.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_UI_Shell_Common\"`*"] #[cfg(feature = "Win32_UI_Shell_Common")] @@ -73017,7 +73017,7 @@ where extern "system" { fn UrlFixupW(pcszurl: ::windows::core::PCWSTR, psztranslatedurl: ::windows::core::PWSTR, cchmax: u32) -> ::windows::core::HRESULT; } - UrlFixupW(pcszurl.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(psztranslatedurl)), psztranslatedurl.len() as _).ok() + UrlFixupW(pcszurl.into(), ::core::mem::transmute(psztranslatedurl.as_ptr()), psztranslatedurl.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -73069,7 +73069,7 @@ where } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] -pub unsafe fn UrlHashA<'a, P0>(pszurl: P0, pbhash: &mut u8, cbhash: u32) -> ::windows::core::Result<()> +pub unsafe fn UrlHashA<'a, P0>(pszurl: P0, pbhash: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCSTR>, { @@ -73077,11 +73077,11 @@ where extern "system" { fn UrlHashA(pszurl: ::windows::core::PCSTR, pbhash: *mut u8, cbhash: u32) -> ::windows::core::HRESULT; } - UrlHashA(pszurl.into(), ::core::mem::transmute(pbhash), cbhash).ok() + UrlHashA(pszurl.into(), ::core::mem::transmute(pbhash.as_ptr()), pbhash.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] -pub unsafe fn UrlHashW<'a, P0>(pszurl: P0, pbhash: &mut u8, cbhash: u32) -> ::windows::core::Result<()> +pub unsafe fn UrlHashW<'a, P0>(pszurl: P0, pbhash: &mut [u8]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -73089,7 +73089,7 @@ where extern "system" { fn UrlHashW(pszurl: ::windows::core::PCWSTR, pbhash: *mut u8, cbhash: u32) -> ::windows::core::HRESULT; } - UrlHashW(pszurl.into(), ::core::mem::transmute(pbhash), cbhash).ok() + UrlHashW(pszurl.into(), ::core::mem::transmute(pbhash.as_ptr()), pbhash.len() as _).ok() } #[doc = "*Required features: `\"Win32_UI_Shell\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -75079,7 +75079,7 @@ where extern "system" { fn wnsprintfA(pszdest: ::windows::core::PSTR, cchdest: i32, pszfmt: ::windows::core::PCSTR) -> i32; } - wnsprintfA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdest)), pszdest.len() as _, pszfmt.into()) + wnsprintfA(::core::mem::transmute(pszdest.as_ptr()), pszdest.len() as _, pszfmt.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -75091,7 +75091,7 @@ where extern "system" { fn wnsprintfW(pszdest: ::windows::core::PWSTR, cchdest: i32, pszfmt: ::windows::core::PCWSTR) -> i32; } - wnsprintfW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdest)), pszdest.len() as _, pszfmt.into()) + wnsprintfW(::core::mem::transmute(pszdest.as_ptr()), pszdest.len() as _, pszfmt.into()) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -75103,7 +75103,7 @@ where extern "system" { fn wvnsprintfA(pszdest: ::windows::core::PSTR, cchdest: i32, pszfmt: ::windows::core::PCSTR, arglist: *const i8) -> i32; } - wvnsprintfA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdest)), pszdest.len() as _, pszfmt.into(), ::core::mem::transmute(arglist)) + wvnsprintfA(::core::mem::transmute(pszdest.as_ptr()), pszdest.len() as _, pszfmt.into(), ::core::mem::transmute(arglist)) } #[doc = "*Required features: `\"Win32_UI_Shell\"`*"] #[inline] @@ -75115,7 +75115,7 @@ where extern "system" { fn wvnsprintfW(pszdest: ::windows::core::PWSTR, cchdest: i32, pszfmt: ::windows::core::PCWSTR, arglist: *const i8) -> i32; } - wvnsprintfW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszdest)), pszdest.len() as _, pszfmt.into(), ::core::mem::transmute(arglist)) + wvnsprintfW(::core::mem::transmute(pszdest.as_ptr()), pszdest.len() as _, pszfmt.into(), ::core::mem::transmute(arglist)) } #[cfg(feature = "implement")] ::core::include!("impl.rs"); diff --git a/crates/libs/windows/src/Windows/Win32/UI/TabletPC/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/TabletPC/mod.rs index a34b7ceffd..6fb5665619 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/TabletPC/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/TabletPC/mod.rs @@ -3469,7 +3469,7 @@ impl IGestureRecognizer { (::windows::core::Interface::vtable(self).SetMaxStrokeCount)(::windows::core::Interface::as_raw(self), cstrokes).ok() } pub unsafe fn EnableGestures(&self, pgestures: &[i32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).EnableGestures)(::windows::core::Interface::as_raw(self), pgestures.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pgestures))).ok() + (::windows::core::Interface::vtable(self).EnableGestures)(::windows::core::Interface::as_raw(self), pgestures.len() as _, ::core::mem::transmute(pgestures.as_ptr())).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -11251,8 +11251,8 @@ impl IRealTimeStylus { { (::windows::core::Interface::vtable(self).putref_ChildRealTimeStylusPlugin)(::windows::core::Interface::as_raw(self), pirts.into().abi()).ok() } - pub unsafe fn AddCustomStylusDataToQueue(&self, sq: StylusQueue, pguidid: &::windows::core::GUID, pbdata: &[u8]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddCustomStylusDataToQueue)(::windows::core::Interface::as_raw(self), sq, ::core::mem::transmute(pguidid), pbdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbdata))).ok() + pub unsafe fn AddCustomStylusDataToQueue(&self, sq: StylusQueue, pguidid: &::windows::core::GUID, pbdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> { + (::windows::core::Interface::vtable(self).AddCustomStylusDataToQueue)(::windows::core::Interface::as_raw(self), sq, ::core::mem::transmute(pguidid), pbdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn ClearStylusQueues(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ClearStylusQueues)(::windows::core::Interface::as_raw(self)).ok() @@ -11294,7 +11294,7 @@ impl IRealTimeStylus { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetTabletFromTabletContextId)(::windows::core::Interface::as_raw(self), tcid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetAllTabletContextIds(&self, pctcidcount: &mut u32, pptcids: &mut *mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetAllTabletContextIds(&self, pctcidcount: &mut u32, pptcids: *mut *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetAllTabletContextIds)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pctcidcount), ::core::mem::transmute(pptcids)).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] @@ -11310,12 +11310,12 @@ impl IRealTimeStylus { (::windows::core::Interface::vtable(self).GetStylusForId)(::windows::core::Interface::as_raw(self), sid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn SetDesiredPacketDescription(&self, ppropertyguids: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetDesiredPacketDescription)(::windows::core::Interface::as_raw(self), ppropertyguids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppropertyguids))).ok() + (::windows::core::Interface::vtable(self).SetDesiredPacketDescription)(::windows::core::Interface::as_raw(self), ppropertyguids.len() as _, ::core::mem::transmute(ppropertyguids.as_ptr())).ok() } - pub unsafe fn GetDesiredPacketDescription(&self, pcproperties: &mut u32, pppropertyguids: &mut *mut ::windows::core::GUID) -> ::windows::core::Result<()> { + pub unsafe fn GetDesiredPacketDescription(&self, pcproperties: &mut u32, pppropertyguids: *mut *mut ::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetDesiredPacketDescription)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcproperties), ::core::mem::transmute(pppropertyguids)).ok() } - pub unsafe fn GetPacketDescriptionData(&self, tcid: u32, pfinktodevicescalex: ::core::option::Option<&mut f32>, pfinktodevicescaley: ::core::option::Option<&mut f32>, pcpacketproperties: &mut u32, pppacketproperties: &mut *mut PACKET_PROPERTY) -> ::windows::core::Result<()> { + pub unsafe fn GetPacketDescriptionData(&self, tcid: u32, pfinktodevicescalex: ::core::option::Option<&mut f32>, pfinktodevicescaley: ::core::option::Option<&mut f32>, pcpacketproperties: &mut u32, pppacketproperties: *mut *mut PACKET_PROPERTY) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPacketDescriptionData)(::windows::core::Interface::as_raw(self), tcid, ::core::mem::transmute(pfinktodevicescalex), ::core::mem::transmute(pfinktodevicescaley), ::core::mem::transmute(pcpacketproperties), ::core::mem::transmute(pppacketproperties)).ok() } } @@ -11696,15 +11696,15 @@ impl IStrokeBuilder { #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn CreateStroke(&self, ppackets: &[i32], ppacketproperties: &[PACKET_PROPERTY], finktodevicescalex: f32, finktodevicescaley: f32, ppiinkstroke: &mut ::core::option::Option) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CreateStroke)(::windows::core::Interface::as_raw(self), ppackets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppackets)), ppacketproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppacketproperties)), finktodevicescalex, finktodevicescaley, ::core::mem::transmute(ppiinkstroke)).ok() + (::windows::core::Interface::vtable(self).CreateStroke)(::windows::core::Interface::as_raw(self), ppackets.len() as _, ::core::mem::transmute(ppackets.as_ptr()), ppacketproperties.len() as _, ::core::mem::transmute(ppacketproperties.as_ptr()), finktodevicescalex, finktodevicescaley, ::core::mem::transmute(ppiinkstroke)).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] pub unsafe fn BeginStroke(&self, tcid: u32, sid: u32, ppacket: &i32, ppacketproperties: &[PACKET_PROPERTY], finktodevicescalex: f32, finktodevicescaley: f32, ppiinkstroke: ::core::option::Option<&mut ::core::option::Option>) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).BeginStroke)(::windows::core::Interface::as_raw(self), tcid, sid, ::core::mem::transmute(ppacket), ppacketproperties.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppacketproperties)), finktodevicescalex, finktodevicescaley, ::core::mem::transmute(ppiinkstroke)).ok() + (::windows::core::Interface::vtable(self).BeginStroke)(::windows::core::Interface::as_raw(self), tcid, sid, ::core::mem::transmute(ppacket), ppacketproperties.len() as _, ::core::mem::transmute(ppacketproperties.as_ptr()), finktodevicescalex, finktodevicescaley, ::core::mem::transmute(ppiinkstroke)).ok() } pub unsafe fn AppendPackets(&self, tcid: u32, sid: u32, ppackets: &[i32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AppendPackets)(::windows::core::Interface::as_raw(self), tcid, sid, ppackets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppackets))).ok() + (::windows::core::Interface::vtable(self).AppendPackets)(::windows::core::Interface::as_raw(self), tcid, sid, ppackets.len() as _, ::core::mem::transmute(ppackets.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] @@ -11795,13 +11795,13 @@ impl IStylusAsyncPlugin { where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).base__.RealTimeStylusEnabled)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ptcids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ptcids))).ok() + (::windows::core::Interface::vtable(self).base__.RealTimeStylusEnabled)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ptcids.len() as _, ::core::mem::transmute(ptcids.as_ptr())).ok() } pub unsafe fn RealTimeStylusDisabled<'a, P0>(&self, pirtssrc: P0, ptcids: &[u32]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).base__.RealTimeStylusDisabled)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ptcids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ptcids))).ok() + (::windows::core::Interface::vtable(self).base__.RealTimeStylusDisabled)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ptcids.len() as _, ::core::mem::transmute(ptcids.as_ptr())).ok() } pub unsafe fn StylusInRange<'a, P0>(&self, pirtssrc: P0, tcid: u32, sid: u32) -> ::windows::core::Result<()> where @@ -11821,7 +11821,7 @@ impl IStylusAsyncPlugin { where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).base__.StylusDown)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), ppacket.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppacket)), ::core::mem::transmute(ppinoutpkt)).ok() + (::windows::core::Interface::vtable(self).base__.StylusDown)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), ppacket.len() as _, ::core::mem::transmute(ppacket.as_ptr()), ::core::mem::transmute(ppinoutpkt)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -11829,7 +11829,7 @@ impl IStylusAsyncPlugin { where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).base__.StylusUp)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), ppacket.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppacket)), ::core::mem::transmute(ppinoutpkt)).ok() + (::windows::core::Interface::vtable(self).base__.StylusUp)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), ppacket.len() as _, ::core::mem::transmute(ppacket.as_ptr()), ::core::mem::transmute(ppinoutpkt)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -11853,7 +11853,7 @@ impl IStylusAsyncPlugin { where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).base__.InAirPackets)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), cpktcount, ppackets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppackets)), ::core::mem::transmute(pcinoutpkts), ::core::mem::transmute(ppinoutpkts)).ok() + (::windows::core::Interface::vtable(self).base__.InAirPackets)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), cpktcount, ppackets.len() as _, ::core::mem::transmute(ppackets.as_ptr()), ::core::mem::transmute(pcinoutpkts), ::core::mem::transmute(ppinoutpkts)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -11861,13 +11861,13 @@ impl IStylusAsyncPlugin { where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).base__.Packets)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), cpktcount, ppackets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppackets)), ::core::mem::transmute(pcinoutpkts), ::core::mem::transmute(ppinoutpkts)).ok() + (::windows::core::Interface::vtable(self).base__.Packets)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), cpktcount, ppackets.len() as _, ::core::mem::transmute(ppackets.as_ptr()), ::core::mem::transmute(pcinoutpkts), ::core::mem::transmute(ppinoutpkts)).ok() } - pub unsafe fn CustomStylusDataAdded<'a, P0>(&self, pirtssrc: P0, pguidid: &::windows::core::GUID, pbdata: &[u8]) -> ::windows::core::Result<()> + pub unsafe fn CustomStylusDataAdded<'a, P0>(&self, pirtssrc: P0, pguidid: &::windows::core::GUID, pbdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).base__.CustomStylusDataAdded)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pguidid), pbdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbdata))).ok() + (::windows::core::Interface::vtable(self).base__.CustomStylusDataAdded)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pguidid), pbdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SystemEvent<'a, P0>(&self, pirtssrc: P0, tcid: u32, sid: u32, event: u16, eventdata: SYSTEM_EVENT_DATA) -> ::windows::core::Result<()> where @@ -11971,13 +11971,13 @@ impl IStylusPlugin { where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).RealTimeStylusEnabled)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ptcids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ptcids))).ok() + (::windows::core::Interface::vtable(self).RealTimeStylusEnabled)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ptcids.len() as _, ::core::mem::transmute(ptcids.as_ptr())).ok() } pub unsafe fn RealTimeStylusDisabled<'a, P0>(&self, pirtssrc: P0, ptcids: &[u32]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).RealTimeStylusDisabled)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ptcids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ptcids))).ok() + (::windows::core::Interface::vtable(self).RealTimeStylusDisabled)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ptcids.len() as _, ::core::mem::transmute(ptcids.as_ptr())).ok() } pub unsafe fn StylusInRange<'a, P0>(&self, pirtssrc: P0, tcid: u32, sid: u32) -> ::windows::core::Result<()> where @@ -11997,7 +11997,7 @@ impl IStylusPlugin { where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).StylusDown)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), ppacket.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppacket)), ::core::mem::transmute(ppinoutpkt)).ok() + (::windows::core::Interface::vtable(self).StylusDown)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), ppacket.len() as _, ::core::mem::transmute(ppacket.as_ptr()), ::core::mem::transmute(ppinoutpkt)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12005,7 +12005,7 @@ impl IStylusPlugin { where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).StylusUp)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), ppacket.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppacket)), ::core::mem::transmute(ppinoutpkt)).ok() + (::windows::core::Interface::vtable(self).StylusUp)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), ppacket.len() as _, ::core::mem::transmute(ppacket.as_ptr()), ::core::mem::transmute(ppinoutpkt)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12029,7 +12029,7 @@ impl IStylusPlugin { where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).InAirPackets)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), cpktcount, ppackets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppackets)), ::core::mem::transmute(pcinoutpkts), ::core::mem::transmute(ppinoutpkts)).ok() + (::windows::core::Interface::vtable(self).InAirPackets)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), cpktcount, ppackets.len() as _, ::core::mem::transmute(ppackets.as_ptr()), ::core::mem::transmute(pcinoutpkts), ::core::mem::transmute(ppinoutpkts)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12037,13 +12037,13 @@ impl IStylusPlugin { where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).Packets)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), cpktcount, ppackets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppackets)), ::core::mem::transmute(pcinoutpkts), ::core::mem::transmute(ppinoutpkts)).ok() + (::windows::core::Interface::vtable(self).Packets)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), cpktcount, ppackets.len() as _, ::core::mem::transmute(ppackets.as_ptr()), ::core::mem::transmute(pcinoutpkts), ::core::mem::transmute(ppinoutpkts)).ok() } - pub unsafe fn CustomStylusDataAdded<'a, P0>(&self, pirtssrc: P0, pguidid: &::windows::core::GUID, pbdata: &[u8]) -> ::windows::core::Result<()> + pub unsafe fn CustomStylusDataAdded<'a, P0>(&self, pirtssrc: P0, pguidid: &::windows::core::GUID, pbdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).CustomStylusDataAdded)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pguidid), pbdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbdata))).ok() + (::windows::core::Interface::vtable(self).CustomStylusDataAdded)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pguidid), pbdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SystemEvent<'a, P0>(&self, pirtssrc: P0, tcid: u32, sid: u32, event: u16, eventdata: SYSTEM_EVENT_DATA) -> ::windows::core::Result<()> where @@ -12170,13 +12170,13 @@ impl IStylusSyncPlugin { where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).base__.RealTimeStylusEnabled)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ptcids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ptcids))).ok() + (::windows::core::Interface::vtable(self).base__.RealTimeStylusEnabled)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ptcids.len() as _, ::core::mem::transmute(ptcids.as_ptr())).ok() } pub unsafe fn RealTimeStylusDisabled<'a, P0>(&self, pirtssrc: P0, ptcids: &[u32]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).base__.RealTimeStylusDisabled)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ptcids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ptcids))).ok() + (::windows::core::Interface::vtable(self).base__.RealTimeStylusDisabled)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ptcids.len() as _, ::core::mem::transmute(ptcids.as_ptr())).ok() } pub unsafe fn StylusInRange<'a, P0>(&self, pirtssrc: P0, tcid: u32, sid: u32) -> ::windows::core::Result<()> where @@ -12196,7 +12196,7 @@ impl IStylusSyncPlugin { where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).base__.StylusDown)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), ppacket.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppacket)), ::core::mem::transmute(ppinoutpkt)).ok() + (::windows::core::Interface::vtable(self).base__.StylusDown)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), ppacket.len() as _, ::core::mem::transmute(ppacket.as_ptr()), ::core::mem::transmute(ppinoutpkt)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12204,7 +12204,7 @@ impl IStylusSyncPlugin { where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).base__.StylusUp)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), ppacket.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppacket)), ::core::mem::transmute(ppinoutpkt)).ok() + (::windows::core::Interface::vtable(self).base__.StylusUp)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), ppacket.len() as _, ::core::mem::transmute(ppacket.as_ptr()), ::core::mem::transmute(ppinoutpkt)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12228,7 +12228,7 @@ impl IStylusSyncPlugin { where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).base__.InAirPackets)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), cpktcount, ppackets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppackets)), ::core::mem::transmute(pcinoutpkts), ::core::mem::transmute(ppinoutpkts)).ok() + (::windows::core::Interface::vtable(self).base__.InAirPackets)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), cpktcount, ppackets.len() as _, ::core::mem::transmute(ppackets.as_ptr()), ::core::mem::transmute(pcinoutpkts), ::core::mem::transmute(ppinoutpkts)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -12236,13 +12236,13 @@ impl IStylusSyncPlugin { where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).base__.Packets)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), cpktcount, ppackets.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(ppackets)), ::core::mem::transmute(pcinoutpkts), ::core::mem::transmute(ppinoutpkts)).ok() + (::windows::core::Interface::vtable(self).base__.Packets)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pstylusinfo), cpktcount, ppackets.len() as _, ::core::mem::transmute(ppackets.as_ptr()), ::core::mem::transmute(pcinoutpkts), ::core::mem::transmute(ppinoutpkts)).ok() } - pub unsafe fn CustomStylusDataAdded<'a, P0>(&self, pirtssrc: P0, pguidid: &::windows::core::GUID, pbdata: &[u8]) -> ::windows::core::Result<()> + pub unsafe fn CustomStylusDataAdded<'a, P0>(&self, pirtssrc: P0, pguidid: &::windows::core::GUID, pbdata: ::core::option::Option<&[u8]>) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IRealTimeStylus>>, { - (::windows::core::Interface::vtable(self).base__.CustomStylusDataAdded)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pguidid), pbdata.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pbdata))).ok() + (::windows::core::Interface::vtable(self).base__.CustomStylusDataAdded)(::windows::core::Interface::as_raw(self), pirtssrc.into().abi(), ::core::mem::transmute(pguidid), pbdata.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pbdata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok() } pub unsafe fn SystemEvent<'a, P0>(&self, pirtssrc: P0, tcid: u32, sid: u32, event: u16, eventdata: SYSTEM_EVENT_DATA) -> ::windows::core::Result<()> where @@ -15516,7 +15516,7 @@ where extern "system" { fn SetTextContext(hrc: HRECOCONTEXT, cwcbefore: u32, pwcbefore: ::windows::core::PCWSTR, cwcafter: u32, pwcafter: ::windows::core::PCWSTR) -> ::windows::core::HRESULT; } - SetTextContext(hrc.into(), pwcbefore.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pwcbefore)), pwcafter.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pwcafter))).ok() + SetTextContext(hrc.into(), pwcbefore.len() as _, ::core::mem::transmute(pwcbefore.as_ptr()), pwcafter.len() as _, ::core::mem::transmute(pwcafter.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_UI_TabletPC\"`*"] #[inline] diff --git a/crates/libs/windows/src/Windows/Win32/UI/TextServices/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/TextServices/mod.rs index 2626251539..16c0ffba8c 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/TextServices/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/TextServices/mod.rs @@ -948,7 +948,7 @@ impl IEnumITfCompositionView { (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Next(&self, rgcompositionview: &mut [::core::option::Option], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgcompositionview.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgcompositionview)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgcompositionview.len() as _, ::core::mem::transmute(rgcompositionview.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1010,7 +1010,7 @@ impl IEnumSpeechCommands { (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Next(&self, pspcmds: &mut [*mut u16], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pspcmds.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pspcmds)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pspcmds.len() as _, ::core::mem::transmute(pspcmds.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1072,7 +1072,7 @@ impl IEnumTfCandidates { (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Next(&self, ppcand: &mut [::core::option::Option], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppcand.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppcand)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppcand.len() as _, ::core::mem::transmute(ppcand.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1134,7 +1134,7 @@ impl IEnumTfContextViews { (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Next(&self, rgviews: &mut [::core::option::Option], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgviews.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgviews)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgviews.len() as _, ::core::mem::transmute(rgviews.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1196,7 +1196,7 @@ impl IEnumTfContexts { (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Next(&self, rgcontext: &mut [::core::option::Option], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgcontext.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgcontext)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgcontext.len() as _, ::core::mem::transmute(rgcontext.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1258,7 +1258,7 @@ impl IEnumTfDisplayAttributeInfo { (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Next(&self, rginfo: &mut [::core::option::Option], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rginfo.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rginfo)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rginfo.len() as _, ::core::mem::transmute(rginfo.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1320,7 +1320,7 @@ impl IEnumTfDocumentMgrs { (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Next(&self, rgdocumentmgr: &mut [::core::option::Option], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgdocumentmgr.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgdocumentmgr)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgdocumentmgr.len() as _, ::core::mem::transmute(rgdocumentmgr.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1382,7 +1382,7 @@ impl IEnumTfFunctionProviders { (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Next(&self, ppcmdobj: &mut [::core::option::Option], pcfetch: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppcmdobj.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppcmdobj)), ::core::mem::transmute(pcfetch)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppcmdobj.len() as _, ::core::mem::transmute(ppcmdobj.as_ptr()), ::core::mem::transmute(pcfetch)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1444,7 +1444,7 @@ impl IEnumTfInputProcessorProfiles { (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Next(&self, pprofile: &mut [TF_INPUTPROCESSORPROFILE], pcfetch: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pprofile.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprofile)), ::core::mem::transmute(pcfetch)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pprofile.len() as _, ::core::mem::transmute(pprofile.as_ptr()), ::core::mem::transmute(pcfetch)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1506,7 +1506,7 @@ impl IEnumTfLangBarItems { (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Next(&self, ppitem: &mut [::core::option::Option], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppitem.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppitem)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppitem.len() as _, ::core::mem::transmute(ppitem.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1570,7 +1570,7 @@ impl IEnumTfLanguageProfiles { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn Next(&self, pprofile: &mut [TF_LANGUAGEPROFILE], pcfetch: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pprofile.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprofile)), ::core::mem::transmute(pcfetch)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pprofile.len() as _, ::core::mem::transmute(pprofile.as_ptr()), ::core::mem::transmute(pcfetch)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1637,7 +1637,7 @@ impl IEnumTfLatticeElements { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn Next(&self, rgselements: &mut [TF_LMLATTELEMENT], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgselements.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgselements)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgselements.len() as _, ::core::mem::transmute(rgselements.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1702,7 +1702,7 @@ impl IEnumTfProperties { (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Next(&self, ppprop: &mut [::core::option::Option], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppprop.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppprop)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppprop.len() as _, ::core::mem::transmute(ppprop.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1766,7 +1766,7 @@ impl IEnumTfPropertyValue { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] pub unsafe fn Next(&self, rgvalues: &mut [TF_PROPERTYVAL], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgvalues.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(rgvalues)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), rgvalues.len() as _, ::core::mem::transmute(rgvalues.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1831,7 +1831,7 @@ impl IEnumTfRanges { (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Next(&self, pprange: &mut [::core::option::Option], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pprange.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pprange)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), pprange.len() as _, ::core::mem::transmute(pprange.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -1893,7 +1893,7 @@ impl IEnumTfUIElements { (::windows::core::Interface::vtable(self).Clone)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn Next(&self, ppelement: &mut [::core::option::Option], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelement.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ppelement)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).Next)(::windows::core::Interface::as_raw(self), ppelement.len() as _, ::core::mem::transmute(ppelement.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn Reset(&self) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok() @@ -2037,7 +2037,7 @@ impl ISpeechCommandProvider { (::windows::core::Interface::vtable(self).EnumSpeechCommands)(::windows::core::Interface::as_raw(self), langid, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn ProcessCommand(&self, pszcommand: &[u16], langid: u16) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).ProcessCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pszcommand)), pszcommand.len() as _, langid).ok() + (::windows::core::Interface::vtable(self).ProcessCommand)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pszcommand.as_ptr()), pszcommand.len() as _, langid).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -2112,19 +2112,19 @@ impl ITextStoreACP { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetSelection(&self, ulindex: u32, pselection: &mut [TS_SELECTION_ACP], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSelection)(::windows::core::Interface::as_raw(self), ulindex, pselection.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pselection)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).GetSelection)(::windows::core::Interface::as_raw(self), ulindex, pselection.len() as _, ::core::mem::transmute(pselection.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn SetSelection(&self, pselection: &[TS_SELECTION_ACP]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSelection)(::windows::core::Interface::as_raw(self), pselection.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pselection))).ok() + (::windows::core::Interface::vtable(self).SetSelection)(::windows::core::Interface::as_raw(self), pselection.len() as _, ::core::mem::transmute(pselection.as_ptr())).ok() } pub unsafe fn GetText(&self, acpstart: i32, acpend: i32, pchplain: &mut [u16], pcchplainret: &mut u32, prgruninfo: &mut [TS_RUNINFO], pcruninforet: &mut u32, pacpnext: &mut i32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetText)(::windows::core::Interface::as_raw(self), acpstart, acpend, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pchplain)), pchplain.len() as _, ::core::mem::transmute(pcchplainret), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgruninfo)), prgruninfo.len() as _, ::core::mem::transmute(pcruninforet), ::core::mem::transmute(pacpnext)).ok() + (::windows::core::Interface::vtable(self).GetText)(::windows::core::Interface::as_raw(self), acpstart, acpend, ::core::mem::transmute(pchplain.as_ptr()), pchplain.len() as _, ::core::mem::transmute(pcchplainret), ::core::mem::transmute(prgruninfo.as_ptr()), prgruninfo.len() as _, ::core::mem::transmute(pcruninforet), ::core::mem::transmute(pacpnext)).ok() } pub unsafe fn SetText(&self, dwflags: u32, acpstart: i32, acpend: i32, pchtext: &[u16]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).SetText)(::windows::core::Interface::as_raw(self), dwflags, acpstart, acpend, ::core::mem::transmute(::windows::core::as_ptr_or_null(pchtext)), pchtext.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).SetText)(::windows::core::Interface::as_raw(self), dwflags, acpstart, acpend, ::core::mem::transmute(pchtext.as_ptr()), pchtext.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -2152,7 +2152,7 @@ impl ITextStoreACP { (::windows::core::Interface::vtable(self).InsertEmbedded)(::windows::core::Interface::as_raw(self), dwflags, acpstart, acpend, pdataobject.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn InsertTextAtSelection(&self, dwflags: u32, pchtext: &[u16], pacpstart: &mut i32, pacpend: &mut i32, pchange: &mut TS_TEXTCHANGE) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).InsertTextAtSelection)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pchtext)), pchtext.len() as _, ::core::mem::transmute(pacpstart), ::core::mem::transmute(pacpend), ::core::mem::transmute(pchange)).ok() + (::windows::core::Interface::vtable(self).InsertTextAtSelection)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(pchtext.as_ptr()), pchtext.len() as _, ::core::mem::transmute(pacpstart), ::core::mem::transmute(pacpend), ::core::mem::transmute(pchange)).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -2163,23 +2163,23 @@ impl ITextStoreACP { (::windows::core::Interface::vtable(self).InsertEmbeddedAtSelection)(::windows::core::Interface::as_raw(self), dwflags, pdataobject.into().abi(), ::core::mem::transmute(pacpstart), ::core::mem::transmute(pacpend), ::core::mem::transmute(pchange)).ok() } pub unsafe fn RequestSupportedAttrs(&self, dwflags: u32, pafilterattrs: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RequestSupportedAttrs)(::windows::core::Interface::as_raw(self), dwflags, pafilterattrs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pafilterattrs))).ok() + (::windows::core::Interface::vtable(self).RequestSupportedAttrs)(::windows::core::Interface::as_raw(self), dwflags, pafilterattrs.len() as _, ::core::mem::transmute(pafilterattrs.as_ptr())).ok() } pub unsafe fn RequestAttrsAtPosition(&self, acppos: i32, pafilterattrs: &[::windows::core::GUID], dwflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RequestAttrsAtPosition)(::windows::core::Interface::as_raw(self), acppos, pafilterattrs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pafilterattrs)), dwflags).ok() + (::windows::core::Interface::vtable(self).RequestAttrsAtPosition)(::windows::core::Interface::as_raw(self), acppos, pafilterattrs.len() as _, ::core::mem::transmute(pafilterattrs.as_ptr()), dwflags).ok() } pub unsafe fn RequestAttrsTransitioningAtPosition(&self, acppos: i32, pafilterattrs: &[::windows::core::GUID], dwflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RequestAttrsTransitioningAtPosition)(::windows::core::Interface::as_raw(self), acppos, pafilterattrs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pafilterattrs)), dwflags).ok() + (::windows::core::Interface::vtable(self).RequestAttrsTransitioningAtPosition)(::windows::core::Interface::as_raw(self), acppos, pafilterattrs.len() as _, ::core::mem::transmute(pafilterattrs.as_ptr()), dwflags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn FindNextAttrTransition(&self, acpstart: i32, acphalt: i32, pafilterattrs: &[::windows::core::GUID], dwflags: u32, pacpnext: &mut i32, pffound: &mut super::super::Foundation::BOOL, plfoundoffset: &mut i32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).FindNextAttrTransition)(::windows::core::Interface::as_raw(self), acpstart, acphalt, pafilterattrs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pafilterattrs)), dwflags, ::core::mem::transmute(pacpnext), ::core::mem::transmute(pffound), ::core::mem::transmute(plfoundoffset)).ok() + (::windows::core::Interface::vtable(self).FindNextAttrTransition)(::windows::core::Interface::as_raw(self), acpstart, acphalt, pafilterattrs.len() as _, ::core::mem::transmute(pafilterattrs.as_ptr()), dwflags, ::core::mem::transmute(pacpnext), ::core::mem::transmute(pffound), ::core::mem::transmute(plfoundoffset)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] pub unsafe fn RetrieveRequestedAttrs(&self, paattrvals: &mut [TS_ATTRVAL], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RetrieveRequestedAttrs)(::windows::core::Interface::as_raw(self), paattrvals.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(paattrvals)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).RetrieveRequestedAttrs)(::windows::core::Interface::as_raw(self), paattrvals.len() as _, ::core::mem::transmute(paattrvals.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn GetEndACP(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2345,19 +2345,19 @@ impl ITextStoreACP2 { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetSelection(&self, ulindex: u32, pselection: &mut [TS_SELECTION_ACP], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSelection)(::windows::core::Interface::as_raw(self), ulindex, pselection.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pselection)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).GetSelection)(::windows::core::Interface::as_raw(self), ulindex, pselection.len() as _, ::core::mem::transmute(pselection.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn SetSelection(&self, pselection: &[TS_SELECTION_ACP]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSelection)(::windows::core::Interface::as_raw(self), pselection.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pselection))).ok() + (::windows::core::Interface::vtable(self).SetSelection)(::windows::core::Interface::as_raw(self), pselection.len() as _, ::core::mem::transmute(pselection.as_ptr())).ok() } pub unsafe fn GetText(&self, acpstart: i32, acpend: i32, pchplain: &mut [u16], pcchplainret: &mut u32, prgruninfo: &mut [TS_RUNINFO], pcruninforet: &mut u32, pacpnext: &mut i32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetText)(::windows::core::Interface::as_raw(self), acpstart, acpend, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pchplain)), pchplain.len() as _, ::core::mem::transmute(pcchplainret), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(prgruninfo)), prgruninfo.len() as _, ::core::mem::transmute(pcruninforet), ::core::mem::transmute(pacpnext)).ok() + (::windows::core::Interface::vtable(self).GetText)(::windows::core::Interface::as_raw(self), acpstart, acpend, ::core::mem::transmute(pchplain.as_ptr()), pchplain.len() as _, ::core::mem::transmute(pcchplainret), ::core::mem::transmute(prgruninfo.as_ptr()), prgruninfo.len() as _, ::core::mem::transmute(pcruninforet), ::core::mem::transmute(pacpnext)).ok() } pub unsafe fn SetText(&self, dwflags: u32, acpstart: i32, acpend: i32, pchtext: &[u16]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).SetText)(::windows::core::Interface::as_raw(self), dwflags, acpstart, acpend, ::core::mem::transmute(::windows::core::as_ptr_or_null(pchtext)), pchtext.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).SetText)(::windows::core::Interface::as_raw(self), dwflags, acpstart, acpend, ::core::mem::transmute(pchtext.as_ptr()), pchtext.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -2385,7 +2385,7 @@ impl ITextStoreACP2 { (::windows::core::Interface::vtable(self).InsertEmbedded)(::windows::core::Interface::as_raw(self), dwflags, acpstart, acpend, pdataobject.into().abi(), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn InsertTextAtSelection(&self, dwflags: u32, pchtext: &[u16], pacpstart: &mut i32, pacpend: &mut i32, pchange: &mut TS_TEXTCHANGE) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).InsertTextAtSelection)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pchtext)), pchtext.len() as _, ::core::mem::transmute(pacpstart), ::core::mem::transmute(pacpend), ::core::mem::transmute(pchange)).ok() + (::windows::core::Interface::vtable(self).InsertTextAtSelection)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(pchtext.as_ptr()), pchtext.len() as _, ::core::mem::transmute(pacpstart), ::core::mem::transmute(pacpend), ::core::mem::transmute(pchange)).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -2396,23 +2396,23 @@ impl ITextStoreACP2 { (::windows::core::Interface::vtable(self).InsertEmbeddedAtSelection)(::windows::core::Interface::as_raw(self), dwflags, pdataobject.into().abi(), ::core::mem::transmute(pacpstart), ::core::mem::transmute(pacpend), ::core::mem::transmute(pchange)).ok() } pub unsafe fn RequestSupportedAttrs(&self, dwflags: u32, pafilterattrs: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RequestSupportedAttrs)(::windows::core::Interface::as_raw(self), dwflags, pafilterattrs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pafilterattrs))).ok() + (::windows::core::Interface::vtable(self).RequestSupportedAttrs)(::windows::core::Interface::as_raw(self), dwflags, pafilterattrs.len() as _, ::core::mem::transmute(pafilterattrs.as_ptr())).ok() } pub unsafe fn RequestAttrsAtPosition(&self, acppos: i32, pafilterattrs: &[::windows::core::GUID], dwflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RequestAttrsAtPosition)(::windows::core::Interface::as_raw(self), acppos, pafilterattrs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pafilterattrs)), dwflags).ok() + (::windows::core::Interface::vtable(self).RequestAttrsAtPosition)(::windows::core::Interface::as_raw(self), acppos, pafilterattrs.len() as _, ::core::mem::transmute(pafilterattrs.as_ptr()), dwflags).ok() } pub unsafe fn RequestAttrsTransitioningAtPosition(&self, acppos: i32, pafilterattrs: &[::windows::core::GUID], dwflags: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RequestAttrsTransitioningAtPosition)(::windows::core::Interface::as_raw(self), acppos, pafilterattrs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pafilterattrs)), dwflags).ok() + (::windows::core::Interface::vtable(self).RequestAttrsTransitioningAtPosition)(::windows::core::Interface::as_raw(self), acppos, pafilterattrs.len() as _, ::core::mem::transmute(pafilterattrs.as_ptr()), dwflags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn FindNextAttrTransition(&self, acpstart: i32, acphalt: i32, pafilterattrs: &[::windows::core::GUID], dwflags: u32, pacpnext: &mut i32, pffound: &mut super::super::Foundation::BOOL, plfoundoffset: &mut i32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).FindNextAttrTransition)(::windows::core::Interface::as_raw(self), acpstart, acphalt, pafilterattrs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pafilterattrs)), dwflags, ::core::mem::transmute(pacpnext), ::core::mem::transmute(pffound), ::core::mem::transmute(plfoundoffset)).ok() + (::windows::core::Interface::vtable(self).FindNextAttrTransition)(::windows::core::Interface::as_raw(self), acpstart, acphalt, pafilterattrs.len() as _, ::core::mem::transmute(pafilterattrs.as_ptr()), dwflags, ::core::mem::transmute(pacpnext), ::core::mem::transmute(pffound), ::core::mem::transmute(plfoundoffset)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] pub unsafe fn RetrieveRequestedAttrs(&self, paattrvals: &mut [TS_ATTRVAL], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RetrieveRequestedAttrs)(::windows::core::Interface::as_raw(self), paattrvals.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(paattrvals)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).RetrieveRequestedAttrs)(::windows::core::Interface::as_raw(self), paattrvals.len() as _, ::core::mem::transmute(paattrvals.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn GetEndACP(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -2694,7 +2694,7 @@ impl ITextStoreACPSink { (::windows::core::Interface::vtable(self).OnStatusChange)(::windows::core::Interface::as_raw(self), dwflags).ok() } pub unsafe fn OnAttrsChange(&self, acpstart: i32, acpend: i32, paattrs: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).OnAttrsChange)(::windows::core::Interface::as_raw(self), acpstart, acpend, paattrs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(paattrs))).ok() + (::windows::core::Interface::vtable(self).OnAttrsChange)(::windows::core::Interface::as_raw(self), acpstart, acpend, paattrs.len() as _, ::core::mem::transmute(paattrs.as_ptr())).ok() } pub unsafe fn OnLockGranted(&self, dwlockflags: TEXT_STORE_LOCK_FLAGS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OnLockGranted)(::windows::core::Interface::as_raw(self), dwlockflags).ok() @@ -2771,7 +2771,7 @@ impl ITextStoreACPSinkEx { (::windows::core::Interface::vtable(self).base__.OnStatusChange)(::windows::core::Interface::as_raw(self), dwflags).ok() } pub unsafe fn OnAttrsChange(&self, acpstart: i32, acpend: i32, paattrs: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.OnAttrsChange)(::windows::core::Interface::as_raw(self), acpstart, acpend, paattrs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(paattrs))).ok() + (::windows::core::Interface::vtable(self).base__.OnAttrsChange)(::windows::core::Interface::as_raw(self), acpstart, acpend, paattrs.len() as _, ::core::mem::transmute(paattrs.as_ptr())).ok() } pub unsafe fn OnLockGranted(&self, dwlockflags: TEXT_STORE_LOCK_FLAGS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.OnLockGranted)(::windows::core::Interface::as_raw(self), dwlockflags).ok() @@ -2876,12 +2876,12 @@ impl ITextStoreAnchor { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetSelection(&self, ulindex: u32, pselection: &mut [TS_SELECTION_ANCHOR], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSelection)(::windows::core::Interface::as_raw(self), ulindex, pselection.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pselection)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).GetSelection)(::windows::core::Interface::as_raw(self), ulindex, pselection.len() as _, ::core::mem::transmute(pselection.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn SetSelection(&self, pselection: &[TS_SELECTION_ANCHOR]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSelection)(::windows::core::Interface::as_raw(self), pselection.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pselection))).ok() + (::windows::core::Interface::vtable(self).SetSelection)(::windows::core::Interface::as_raw(self), pselection.len() as _, ::core::mem::transmute(pselection.as_ptr())).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2891,14 +2891,14 @@ impl ITextStoreAnchor { P1: ::std::convert::Into<::windows::core::InParam<'a, IAnchor>>, P2: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).GetText)(::windows::core::Interface::as_raw(self), dwflags, pastart.into().abi(), paend.into().abi(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pchtext)), pchtext.len() as _, ::core::mem::transmute(pcch), fupdateanchor.into()).ok() + (::windows::core::Interface::vtable(self).GetText)(::windows::core::Interface::as_raw(self), dwflags, pastart.into().abi(), paend.into().abi(), ::core::mem::transmute(pchtext.as_ptr()), pchtext.len() as _, ::core::mem::transmute(pcch), fupdateanchor.into()).ok() } pub unsafe fn SetText<'a, P0, P1>(&self, dwflags: u32, pastart: P0, paend: P1, pchtext: &[u16]) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IAnchor>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IAnchor>>, { - (::windows::core::Interface::vtable(self).SetText)(::windows::core::Interface::as_raw(self), dwflags, pastart.into().abi(), paend.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pchtext)), pchtext.len() as _).ok() + (::windows::core::Interface::vtable(self).SetText)(::windows::core::Interface::as_raw(self), dwflags, pastart.into().abi(), paend.into().abi(), ::core::mem::transmute(pchtext.as_ptr()), pchtext.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -2928,19 +2928,19 @@ impl ITextStoreAnchor { (::windows::core::Interface::vtable(self).InsertEmbedded)(::windows::core::Interface::as_raw(self), dwflags, pastart.into().abi(), paend.into().abi(), pdataobject.into().abi()).ok() } pub unsafe fn RequestSupportedAttrs(&self, dwflags: u32, pafilterattrs: &[::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RequestSupportedAttrs)(::windows::core::Interface::as_raw(self), dwflags, pafilterattrs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pafilterattrs))).ok() + (::windows::core::Interface::vtable(self).RequestSupportedAttrs)(::windows::core::Interface::as_raw(self), dwflags, pafilterattrs.len() as _, ::core::mem::transmute(pafilterattrs.as_ptr())).ok() } pub unsafe fn RequestAttrsAtPosition<'a, P0>(&self, papos: P0, pafilterattrs: &[::windows::core::GUID], dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IAnchor>>, { - (::windows::core::Interface::vtable(self).RequestAttrsAtPosition)(::windows::core::Interface::as_raw(self), papos.into().abi(), pafilterattrs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pafilterattrs)), dwflags).ok() + (::windows::core::Interface::vtable(self).RequestAttrsAtPosition)(::windows::core::Interface::as_raw(self), papos.into().abi(), pafilterattrs.len() as _, ::core::mem::transmute(pafilterattrs.as_ptr()), dwflags).ok() } pub unsafe fn RequestAttrsTransitioningAtPosition<'a, P0>(&self, papos: P0, pafilterattrs: &[::windows::core::GUID], dwflags: u32) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::InParam<'a, IAnchor>>, { - (::windows::core::Interface::vtable(self).RequestAttrsTransitioningAtPosition)(::windows::core::Interface::as_raw(self), papos.into().abi(), pafilterattrs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pafilterattrs)), dwflags).ok() + (::windows::core::Interface::vtable(self).RequestAttrsTransitioningAtPosition)(::windows::core::Interface::as_raw(self), papos.into().abi(), pafilterattrs.len() as _, ::core::mem::transmute(pafilterattrs.as_ptr()), dwflags).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2949,12 +2949,12 @@ impl ITextStoreAnchor { P0: ::std::convert::Into<::windows::core::InParam<'a, IAnchor>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IAnchor>>, { - (::windows::core::Interface::vtable(self).FindNextAttrTransition)(::windows::core::Interface::as_raw(self), pastart.into().abi(), pahalt.into().abi(), pafilterattrs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pafilterattrs)), dwflags, ::core::mem::transmute(pffound), ::core::mem::transmute(plfoundoffset)).ok() + (::windows::core::Interface::vtable(self).FindNextAttrTransition)(::windows::core::Interface::as_raw(self), pastart.into().abi(), pahalt.into().abi(), pafilterattrs.len() as _, ::core::mem::transmute(pafilterattrs.as_ptr()), dwflags, ::core::mem::transmute(pffound), ::core::mem::transmute(plfoundoffset)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))] pub unsafe fn RetrieveRequestedAttrs(&self, paattrvals: &mut [TS_ATTRVAL], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RetrieveRequestedAttrs)(::windows::core::Interface::as_raw(self), paattrvals.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(paattrvals)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).RetrieveRequestedAttrs)(::windows::core::Interface::as_raw(self), paattrvals.len() as _, ::core::mem::transmute(paattrvals.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } pub unsafe fn GetStart(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -3002,7 +3002,7 @@ impl ITextStoreAnchor { (::windows::core::Interface::vtable(self).QueryInsertEmbedded)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pguidservice), ::core::mem::transmute(pformatetc), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn InsertTextAtSelection(&self, dwflags: u32, pchtext: &[u16], ppastart: &mut ::core::option::Option, ppaend: &mut ::core::option::Option) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).InsertTextAtSelection)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pchtext)), pchtext.len() as _, ::core::mem::transmute(ppastart), ::core::mem::transmute(ppaend)).ok() + (::windows::core::Interface::vtable(self).InsertTextAtSelection)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(pchtext.as_ptr()), pchtext.len() as _, ::core::mem::transmute(ppastart), ::core::mem::transmute(ppaend)).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -3202,7 +3202,7 @@ impl ITextStoreAnchorSink { P0: ::std::convert::Into<::windows::core::InParam<'a, IAnchor>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IAnchor>>, { - (::windows::core::Interface::vtable(self).OnAttrsChange)(::windows::core::Interface::as_raw(self), pastart.into().abi(), paend.into().abi(), paattrs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(paattrs))).ok() + (::windows::core::Interface::vtable(self).OnAttrsChange)(::windows::core::Interface::as_raw(self), pastart.into().abi(), paend.into().abi(), paattrs.len() as _, ::core::mem::transmute(paattrs.as_ptr())).ok() } pub unsafe fn OnLockGranted(&self, dwlockflags: TEXT_STORE_LOCK_FLAGS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).OnLockGranted)(::windows::core::Interface::as_raw(self), dwlockflags).ok() @@ -3287,7 +3287,7 @@ impl ITextStoreSinkAnchorEx { P0: ::std::convert::Into<::windows::core::InParam<'a, IAnchor>>, P1: ::std::convert::Into<::windows::core::InParam<'a, IAnchor>>, { - (::windows::core::Interface::vtable(self).base__.OnAttrsChange)(::windows::core::Interface::as_raw(self), pastart.into().abi(), paend.into().abi(), paattrs.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(paattrs))).ok() + (::windows::core::Interface::vtable(self).base__.OnAttrsChange)(::windows::core::Interface::as_raw(self), pastart.into().abi(), paend.into().abi(), paattrs.len() as _, ::core::mem::transmute(paattrs.as_ptr())).ok() } pub unsafe fn OnLockGranted(&self, dwlockflags: TEXT_STORE_LOCK_FLAGS) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.OnLockGranted)(::windows::core::Interface::as_raw(self), dwlockflags).ok() @@ -3530,10 +3530,10 @@ impl ITfCandidateListUIElement { (::windows::core::Interface::vtable(self).GetString)(::windows::core::Interface::as_raw(self), uindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetPageIndex(&self, pindex: &mut [u32], pupagecnt: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetPageIndex)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pindex)), pindex.len() as _, ::core::mem::transmute(pupagecnt)).ok() + (::windows::core::Interface::vtable(self).GetPageIndex)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pindex.as_ptr()), pindex.len() as _, ::core::mem::transmute(pupagecnt)).ok() } pub unsafe fn SetPageIndex(&self, pindex: &[u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPageIndex)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pindex)), pindex.len() as _).ok() + (::windows::core::Interface::vtable(self).SetPageIndex)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pindex.as_ptr()), pindex.len() as _).ok() } pub unsafe fn GetCurrentPage(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -3657,10 +3657,10 @@ impl ITfCandidateListUIElementBehavior { (::windows::core::Interface::vtable(self).base__.GetString)(::windows::core::Interface::as_raw(self), uindex, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn GetPageIndex(&self, pindex: &mut [u32], pupagecnt: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetPageIndex)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pindex)), pindex.len() as _, ::core::mem::transmute(pupagecnt)).ok() + (::windows::core::Interface::vtable(self).base__.GetPageIndex)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pindex.as_ptr()), pindex.len() as _, ::core::mem::transmute(pupagecnt)).ok() } pub unsafe fn SetPageIndex(&self, pindex: &[u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetPageIndex)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pindex)), pindex.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetPageIndex)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pindex.as_ptr()), pindex.len() as _).ok() } pub unsafe fn GetCurrentPage(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -3832,10 +3832,10 @@ impl ITfCategoryMgr { (::windows::core::Interface::vtable(self).EnumItemsInCategory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rcatid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn FindClosestCategory(&self, rguid: &::windows::core::GUID, pcatid: &mut ::windows::core::GUID, ppcatidlist: &[*const ::windows::core::GUID]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).FindClosestCategory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rguid), ::core::mem::transmute(pcatid), ::core::mem::transmute(::windows::core::as_ptr_or_null(ppcatidlist)), ppcatidlist.len() as _).ok() + (::windows::core::Interface::vtable(self).FindClosestCategory)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rguid), ::core::mem::transmute(pcatid), ::core::mem::transmute(ppcatidlist.as_ptr()), ppcatidlist.len() as _).ok() } pub unsafe fn RegisterGUIDDescription(&self, rclsid: &::windows::core::GUID, rguid: &::windows::core::GUID, pchdesc: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).RegisterGUIDDescription)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), ::core::mem::transmute(rguid), ::core::mem::transmute(::windows::core::as_ptr_or_null(pchdesc)), pchdesc.len() as _).ok() + (::windows::core::Interface::vtable(self).RegisterGUIDDescription)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), ::core::mem::transmute(rguid), ::core::mem::transmute(pchdesc.as_ptr()), pchdesc.len() as _).ok() } pub unsafe fn UnregisterGUIDDescription(&self, rclsid: &::windows::core::GUID, rguid: &::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).UnregisterGUIDDescription)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), ::core::mem::transmute(rguid)).ok() @@ -4517,12 +4517,12 @@ impl ITfContext { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn GetSelection(&self, ec: u32, ulindex: u32, pselection: &mut [TF_SELECTION], pcfetched: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetSelection)(::windows::core::Interface::as_raw(self), ec, ulindex, pselection.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pselection)), ::core::mem::transmute(pcfetched)).ok() + (::windows::core::Interface::vtable(self).GetSelection)(::windows::core::Interface::as_raw(self), ec, ulindex, pselection.len() as _, ::core::mem::transmute(pselection.as_ptr()), ::core::mem::transmute(pcfetched)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub unsafe fn SetSelection(&self, ec: u32, pselection: &[TF_SELECTION]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetSelection)(::windows::core::Interface::as_raw(self), ec, pselection.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pselection))).ok() + (::windows::core::Interface::vtable(self).SetSelection)(::windows::core::Interface::as_raw(self), ec, pselection.len() as _, ::core::mem::transmute(pselection.as_ptr())).ok() } pub unsafe fn GetStart(&self, ec: u32) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -4554,7 +4554,7 @@ impl ITfContext { } pub unsafe fn TrackProperties(&self, prgprop: &[*const ::windows::core::GUID], prgappprop: &[*const ::windows::core::GUID]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).TrackProperties)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(prgprop)), prgprop.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(prgappprop)), prgappprop.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).TrackProperties)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(prgprop.as_ptr()), prgprop.len() as _, ::core::mem::transmute(prgappprop.as_ptr()), prgappprop.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn EnumProperties(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -5671,7 +5671,7 @@ impl ITfEditRecord { } pub unsafe fn GetTextAndPropertyUpdates(&self, dwflags: GET_TEXT_AND_PROPERTY_UPDATES_FLAGS, prgproperties: &[*const ::windows::core::GUID]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).GetTextAndPropertyUpdates)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(prgproperties)), prgproperties.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).GetTextAndPropertyUpdates)(::windows::core::Interface::as_raw(self), dwflags, ::core::mem::transmute(prgproperties.as_ptr()), prgproperties.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -5841,7 +5841,7 @@ impl ITfFnAdviseText { where P0: ::std::convert::Into<::windows::core::InParam<'a, ITfRange>>, { - (::windows::core::Interface::vtable(self).OnTextUpdate)(::windows::core::Interface::as_raw(self), prange.into().abi(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pchtext)), pchtext.len() as _).ok() + (::windows::core::Interface::vtable(self).OnTextUpdate)(::windows::core::Interface::as_raw(self), prange.into().abi(), ::core::mem::transmute(pchtext.as_ptr()), pchtext.len() as _).ok() } pub unsafe fn OnLatticeUpdate<'a, P0, P1>(&self, prange: P0, plattice: P1) -> ::windows::core::Result<()> where @@ -5913,7 +5913,7 @@ pub struct ITfFnAdviseText_Vtbl { pub struct ITfFnBalloon(::windows::core::IUnknown); impl ITfFnBalloon { pub unsafe fn UpdateBalloon(&self, style: TfLBBalloonStyle, pch: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UpdateBalloon)(::windows::core::Interface::as_raw(self), style, ::core::mem::transmute(::windows::core::as_ptr_or_null(pch)), pch.len() as _).ok() + (::windows::core::Interface::vtable(self).UpdateBalloon)(::windows::core::Interface::as_raw(self), style, ::core::mem::transmute(pch.as_ptr()), pch.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -7476,7 +7476,7 @@ impl ITfInputProcessorProfileMgr { P0: ::std::convert::Into, P1: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).RegisterProfile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), langid, ::core::mem::transmute(guidprofile), ::core::mem::transmute(::windows::core::as_ptr_or_null(pchdesc)), pchdesc.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pchiconfile)), pchiconfile.len() as _, uiconindex, hklsubstitute.into(), dwpreferredlayout, benabledbydefault.into(), dwflags).ok() + (::windows::core::Interface::vtable(self).RegisterProfile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), langid, ::core::mem::transmute(guidprofile), ::core::mem::transmute(pchdesc.as_ptr()), pchdesc.len() as _, ::core::mem::transmute(pchiconfile.as_ptr()), pchiconfile.len() as _, uiconindex, hklsubstitute.into(), dwpreferredlayout, benabledbydefault.into(), dwflags).ok() } pub unsafe fn UnregisterProfile(&self, rclsid: &::windows::core::GUID, langid: u16, guidprofile: &::windows::core::GUID, dwflags: u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).UnregisterProfile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), langid, ::core::mem::transmute(guidprofile), dwflags).ok() @@ -7598,7 +7598,7 @@ impl ITfInputProcessorProfiles { (::windows::core::Interface::vtable(self).Unregister)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid)).ok() } pub unsafe fn AddLanguageProfile(&self, rclsid: &::windows::core::GUID, langid: u16, guidprofile: &::windows::core::GUID, pchdesc: &[u16], pchiconfile: &[u16], uiconindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).AddLanguageProfile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), langid, ::core::mem::transmute(guidprofile), ::core::mem::transmute(::windows::core::as_ptr_or_null(pchdesc)), pchdesc.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pchiconfile)), pchiconfile.len() as _, uiconindex).ok() + (::windows::core::Interface::vtable(self).AddLanguageProfile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), langid, ::core::mem::transmute(guidprofile), ::core::mem::transmute(pchdesc.as_ptr()), pchdesc.len() as _, ::core::mem::transmute(pchiconfile.as_ptr()), pchiconfile.len() as _, uiconindex).ok() } pub unsafe fn RemoveLanguageProfile(&self, rclsid: &::windows::core::GUID, langid: u16, guidprofile: &::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).RemoveLanguageProfile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), langid, ::core::mem::transmute(guidprofile)).ok() @@ -7634,7 +7634,7 @@ impl ITfInputProcessorProfiles { pub unsafe fn ChangeCurrentLanguage(&self, langid: u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).ChangeCurrentLanguage)(::windows::core::Interface::as_raw(self), langid).ok() } - pub unsafe fn GetLanguageList(&self, pplangid: &mut *mut u16, pulcount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetLanguageList(&self, pplangid: *mut *mut u16, pulcount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetLanguageList)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pplangid), ::core::mem::transmute(pulcount)).ok() } pub unsafe fn EnumLanguageProfiles(&self, langid: u16) -> ::windows::core::Result { @@ -7754,7 +7754,7 @@ impl ITfInputProcessorProfilesEx { (::windows::core::Interface::vtable(self).base__.Unregister)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid)).ok() } pub unsafe fn AddLanguageProfile(&self, rclsid: &::windows::core::GUID, langid: u16, guidprofile: &::windows::core::GUID, pchdesc: &[u16], pchiconfile: &[u16], uiconindex: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.AddLanguageProfile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), langid, ::core::mem::transmute(guidprofile), ::core::mem::transmute(::windows::core::as_ptr_or_null(pchdesc)), pchdesc.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pchiconfile)), pchiconfile.len() as _, uiconindex).ok() + (::windows::core::Interface::vtable(self).base__.AddLanguageProfile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), langid, ::core::mem::transmute(guidprofile), ::core::mem::transmute(pchdesc.as_ptr()), pchdesc.len() as _, ::core::mem::transmute(pchiconfile.as_ptr()), pchiconfile.len() as _, uiconindex).ok() } pub unsafe fn RemoveLanguageProfile(&self, rclsid: &::windows::core::GUID, langid: u16, guidprofile: &::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.RemoveLanguageProfile)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), langid, ::core::mem::transmute(guidprofile)).ok() @@ -7790,7 +7790,7 @@ impl ITfInputProcessorProfilesEx { pub unsafe fn ChangeCurrentLanguage(&self, langid: u16) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.ChangeCurrentLanguage)(::windows::core::Interface::as_raw(self), langid).ok() } - pub unsafe fn GetLanguageList(&self, pplangid: &mut *mut u16, pulcount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetLanguageList(&self, pplangid: *mut *mut u16, pulcount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetLanguageList)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pplangid), ::core::mem::transmute(pulcount)).ok() } pub unsafe fn EnumLanguageProfiles(&self, langid: u16) -> ::windows::core::Result { @@ -7826,7 +7826,7 @@ impl ITfInputProcessorProfilesEx { (::windows::core::Interface::vtable(self).base__.SubstituteKeyboardLayout)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), langid, ::core::mem::transmute(guidprofile), hkl.into()).ok() } pub unsafe fn SetLanguageProfileDisplayName(&self, rclsid: &::windows::core::GUID, langid: u16, guidprofile: &::windows::core::GUID, pchfile: &[u16], uresid: u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetLanguageProfileDisplayName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), langid, ::core::mem::transmute(guidprofile), ::core::mem::transmute(::windows::core::as_ptr_or_null(pchfile)), pchfile.len() as _, uresid).ok() + (::windows::core::Interface::vtable(self).SetLanguageProfileDisplayName)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rclsid), langid, ::core::mem::transmute(guidprofile), ::core::mem::transmute(pchfile.as_ptr()), pchfile.len() as _, uresid).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -7889,12 +7889,12 @@ pub struct ITfInputProcessorProfilesEx_Vtbl { #[repr(transparent)] pub struct ITfInputScope(::windows::core::IUnknown); impl ITfInputScope { - pub unsafe fn GetInputScopes(&self, pprginputscopes: &mut *mut InputScope, pccount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetInputScopes(&self, pprginputscopes: *mut *mut InputScope, pccount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetInputScopes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprginputscopes), ::core::mem::transmute(pccount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetPhrase(&self, ppbstrphrases: &mut *mut super::super::Foundation::BSTR, pccount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetPhrase(&self, ppbstrphrases: *mut *mut super::super::Foundation::BSTR, pccount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPhrase)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppbstrphrases), ::core::mem::transmute(pccount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -7977,12 +7977,12 @@ pub struct ITfInputScope_Vtbl { #[repr(transparent)] pub struct ITfInputScope2(::windows::core::IUnknown); impl ITfInputScope2 { - pub unsafe fn GetInputScopes(&self, pprginputscopes: &mut *mut InputScope, pccount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetInputScopes(&self, pprginputscopes: *mut *mut InputScope, pccount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetInputScopes)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pprginputscopes), ::core::mem::transmute(pccount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetPhrase(&self, ppbstrphrases: &mut *mut super::super::Foundation::BSTR, pccount: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetPhrase(&self, ppbstrphrases: *mut *mut super::super::Foundation::BSTR, pccount: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPhrase)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppbstrphrases), ::core::mem::transmute(pccount)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -8075,7 +8075,7 @@ pub struct ITfInsertAtSelection(::windows::core::IUnknown); impl ITfInsertAtSelection { pub unsafe fn InsertTextAtSelection(&self, ec: u32, dwflags: INSERT_TEXT_AT_SELECTION_FLAGS, pchtext: &[u16]) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); - (::windows::core::Interface::vtable(self).InsertTextAtSelection)(::windows::core::Interface::as_raw(self), ec, dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pchtext)), pchtext.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) + (::windows::core::Interface::vtable(self).InsertTextAtSelection)(::windows::core::Interface::as_raw(self), ec, dwflags, ::core::mem::transmute(pchtext.as_ptr()), pchtext.len() as _, ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -8489,13 +8489,13 @@ impl ITfKeystrokeMgr { (::windows::core::Interface::vtable(self).IsPreservedKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rguid), ::core::mem::transmute(pprekey), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } pub unsafe fn PreserveKey(&self, tid: u32, rguid: &::windows::core::GUID, prekey: &TF_PRESERVEDKEY, pchdesc: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).PreserveKey)(::windows::core::Interface::as_raw(self), tid, ::core::mem::transmute(rguid), ::core::mem::transmute(prekey), ::core::mem::transmute(::windows::core::as_ptr_or_null(pchdesc)), pchdesc.len() as _).ok() + (::windows::core::Interface::vtable(self).PreserveKey)(::windows::core::Interface::as_raw(self), tid, ::core::mem::transmute(rguid), ::core::mem::transmute(prekey), ::core::mem::transmute(pchdesc.as_ptr()), pchdesc.len() as _).ok() } pub unsafe fn UnpreserveKey(&self, rguid: &::windows::core::GUID, pprekey: &TF_PRESERVEDKEY) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).UnpreserveKey)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rguid), ::core::mem::transmute(pprekey)).ok() } pub unsafe fn SetPreservedKeyDescription(&self, rguid: &::windows::core::GUID, pchdesc: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetPreservedKeyDescription)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rguid), ::core::mem::transmute(::windows::core::as_ptr_or_null(pchdesc)), pchdesc.len() as _).ok() + (::windows::core::Interface::vtable(self).SetPreservedKeyDescription)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rguid), ::core::mem::transmute(pchdesc.as_ptr()), pchdesc.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9325,21 +9325,21 @@ impl ITfLangBarItemMgr { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetItemFloatingRect)(::windows::core::Interface::as_raw(self), dwthreadid, ::core::mem::transmute(rguid), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetItemsStatus(&self, ulcount: u32, prgguid: &::windows::core::GUID, pdwstatus: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetItemsStatus(&self, ulcount: u32, prgguid: *const ::windows::core::GUID, pdwstatus: *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetItemsStatus)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ulcount), ::core::mem::transmute(prgguid), ::core::mem::transmute(pdwstatus)).ok() } pub unsafe fn GetItemNum(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); (::windows::core::Interface::vtable(self).GetItemNum)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(result__.as_mut_ptr())).from_abi::(result__) } - pub unsafe fn GetItems(&self, ulcount: u32, ppitem: &mut ::core::option::Option, pinfo: &mut TF_LANGBARITEMINFO, pdwstatus: &mut u32, pcfetched: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn GetItems(&self, ulcount: u32, ppitem: *mut ::core::option::Option, pinfo: *mut TF_LANGBARITEMINFO, pdwstatus: *mut u32, pcfetched: &mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetItems)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ulcount), ::core::mem::transmute(ppitem), ::core::mem::transmute(pinfo), ::core::mem::transmute(pdwstatus), ::core::mem::transmute(pcfetched)).ok() } - pub unsafe fn AdviseItemsSink(&self, ulcount: u32, ppunk: &::core::option::Option, pguiditem: &::windows::core::GUID, pdwcookie: &mut u32) -> ::windows::core::Result<()> { + pub unsafe fn AdviseItemsSink(&self, ulcount: u32, ppunk: *const ::core::option::Option, pguiditem: *const ::windows::core::GUID, pdwcookie: *mut u32) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).AdviseItemsSink)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ulcount), ::core::mem::transmute(ppunk), ::core::mem::transmute(pguiditem), ::core::mem::transmute(pdwcookie)).ok() } pub unsafe fn UnadviseItemsSink(&self, pdwcookie: &[u32]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UnadviseItemsSink)(::windows::core::Interface::as_raw(self), pdwcookie.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(pdwcookie))).ok() + (::windows::core::Interface::vtable(self).UnadviseItemsSink)(::windows::core::Interface::as_raw(self), pdwcookie.len() as _, ::core::mem::transmute(pdwcookie.as_ptr())).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -9672,7 +9672,7 @@ impl ITfMenu { P0: ::std::convert::Into, P1: ::std::convert::Into, { - (::windows::core::Interface::vtable(self).AddMenuItem)(::windows::core::Interface::as_raw(self), uid, dwflags, hbmp.into(), hbmpmask.into(), ::core::mem::transmute(::windows::core::as_ptr_or_null(pch)), pch.len() as _, ::core::mem::transmute(ppmenu)).ok() + (::windows::core::Interface::vtable(self).AddMenuItem)(::windows::core::Interface::as_raw(self), uid, dwflags, hbmp.into(), hbmpmask.into(), ::core::mem::transmute(pch.as_ptr()), pch.len() as _, ::core::mem::transmute(ppmenu)).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -10387,10 +10387,10 @@ pub struct ITfQueryEmbedded_Vtbl { pub struct ITfRange(::windows::core::IUnknown); impl ITfRange { pub unsafe fn GetText(&self, ec: u32, dwflags: u32, pchtext: &mut [u16], pcch: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).GetText)(::windows::core::Interface::as_raw(self), ec, dwflags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pchtext)), pchtext.len() as _, ::core::mem::transmute(pcch)).ok() + (::windows::core::Interface::vtable(self).GetText)(::windows::core::Interface::as_raw(self), ec, dwflags, ::core::mem::transmute(pchtext.as_ptr()), pchtext.len() as _, ::core::mem::transmute(pcch)).ok() } pub unsafe fn SetText(&self, ec: u32, dwflags: u32, pchtext: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetText)(::windows::core::Interface::as_raw(self), ec, dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pchtext)), pchtext.len() as _).ok() + (::windows::core::Interface::vtable(self).SetText)(::windows::core::Interface::as_raw(self), ec, dwflags, ::core::mem::transmute(pchtext.as_ptr()), pchtext.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -10593,10 +10593,10 @@ pub struct ITfRange_Vtbl { pub struct ITfRangeACP(::windows::core::IUnknown); impl ITfRangeACP { pub unsafe fn GetText(&self, ec: u32, dwflags: u32, pchtext: &mut [u16], pcch: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.GetText)(::windows::core::Interface::as_raw(self), ec, dwflags, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pchtext)), pchtext.len() as _, ::core::mem::transmute(pcch)).ok() + (::windows::core::Interface::vtable(self).base__.GetText)(::windows::core::Interface::as_raw(self), ec, dwflags, ::core::mem::transmute(pchtext.as_ptr()), pchtext.len() as _, ::core::mem::transmute(pcch)).ok() } pub unsafe fn SetText(&self, ec: u32, dwflags: u32, pchtext: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).base__.SetText)(::windows::core::Interface::as_raw(self), ec, dwflags, ::core::mem::transmute(::windows::core::as_ptr_or_null(pchtext)), pchtext.len() as _).ok() + (::windows::core::Interface::vtable(self).base__.SetText)(::windows::core::Interface::as_raw(self), ec, dwflags, ::core::mem::transmute(pchtext.as_ptr()), pchtext.len() as _).ok() } #[doc = "*Required features: `\"Win32_System_Com\"`*"] #[cfg(feature = "Win32_System_Com")] @@ -11314,7 +11314,7 @@ impl ITfSpeechUIServer { (::windows::core::Interface::vtable(self).ShowUI)(::windows::core::Interface::as_raw(self), fshow.into()).ok() } pub unsafe fn UpdateBalloon(&self, style: TfLBBalloonStyle, pch: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).UpdateBalloon)(::windows::core::Interface::as_raw(self), style, ::core::mem::transmute(::windows::core::as_ptr_or_null(pch)), pch.len() as _).ok() + (::windows::core::Interface::vtable(self).UpdateBalloon)(::windows::core::Interface::as_raw(self), style, ::core::mem::transmute(pch.as_ptr()), pch.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -11482,7 +11482,7 @@ impl ITfSystemLangBarItem { (::windows::core::Interface::vtable(self).SetIcon)(::windows::core::Interface::as_raw(self), hicon.into()).ok() } pub unsafe fn SetTooltipString(&self, pchtooltip: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetTooltipString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pchtooltip)), pchtooltip.len() as _).ok() + (::windows::core::Interface::vtable(self).SetTooltipString)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pchtooltip.as_ptr()), pchtooltip.len() as _).ok() } } impl ::core::convert::From for ::windows::core::IUnknown { @@ -11591,7 +11591,7 @@ pub struct ITfSystemLangBarItemSink_Vtbl { pub struct ITfSystemLangBarItemText(::windows::core::IUnknown); impl ITfSystemLangBarItemText { pub unsafe fn SetItemText(&self, pch: &[u16]) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).SetItemText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(::windows::core::as_ptr_or_null(pch)), pch.len() as _).ok() + (::windows::core::Interface::vtable(self).SetItemText)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pch.as_ptr()), pch.len() as _).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/UI/WindowsAndMessaging/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/WindowsAndMessaging/mod.rs index 287e9166cd..7b72686432 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/WindowsAndMessaging/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/WindowsAndMessaging/mod.rs @@ -1345,7 +1345,7 @@ pub unsafe fn CancelShutdown() -> super::super::Foundation::BOOL { #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CascadeWindows<'a, P0>(hwndparent: P0, whow: CASCADE_WINDOWS_HOW, lprect: ::core::option::Option<&super::super::Foundation::RECT>, lpkids: &[super::super::Foundation::HWND]) -> u16 +pub unsafe fn CascadeWindows<'a, P0>(hwndparent: P0, whow: CASCADE_WINDOWS_HOW, lprect: ::core::option::Option<&super::super::Foundation::RECT>, lpkids: ::core::option::Option<&[super::super::Foundation::HWND]>) -> u16 where P0: ::std::convert::Into, { @@ -1353,7 +1353,7 @@ where extern "system" { fn CascadeWindows(hwndparent: super::super::Foundation::HWND, whow: CASCADE_WINDOWS_HOW, lprect: *const super::super::Foundation::RECT, ckids: u32, lpkids: *const super::super::Foundation::HWND) -> u16; } - CascadeWindows(hwndparent.into(), whow, ::core::mem::transmute(lprect), lpkids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpkids))) + CascadeWindows(hwndparent.into(), whow, ::core::mem::transmute(lprect), lpkids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpkids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1422,7 +1422,7 @@ pub unsafe fn CharLowerBuffA(lpsz: &mut [u8]) -> u32 { extern "system" { fn CharLowerBuffA(lpsz: ::windows::core::PSTR, cchlength: u32) -> u32; } - CharLowerBuffA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpsz)), lpsz.len() as _) + CharLowerBuffA(::core::mem::transmute(lpsz.as_ptr()), lpsz.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] @@ -1431,7 +1431,7 @@ pub unsafe fn CharLowerBuffW(lpsz: &mut [u16]) -> u32 { extern "system" { fn CharLowerBuffW(lpsz: ::windows::core::PWSTR, cchlength: u32) -> u32; } - CharLowerBuffW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpsz)), lpsz.len() as _) + CharLowerBuffW(::core::mem::transmute(lpsz.as_ptr()), lpsz.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] @@ -1541,7 +1541,7 @@ where extern "system" { fn CharToOemBuffA(lpszsrc: ::windows::core::PCSTR, lpszdst: ::windows::core::PSTR, cchdstlength: u32) -> super::super::Foundation::BOOL; } - CharToOemBuffA(lpszsrc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszdst)), lpszdst.len() as _) + CharToOemBuffA(lpszsrc.into(), ::core::mem::transmute(lpszdst.as_ptr()), lpszdst.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1554,7 +1554,7 @@ where extern "system" { fn CharToOemBuffW(lpszsrc: ::windows::core::PCWSTR, lpszdst: ::windows::core::PSTR, cchdstlength: u32) -> super::super::Foundation::BOOL; } - CharToOemBuffW(lpszsrc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszdst)), lpszdst.len() as _) + CharToOemBuffW(lpszsrc.into(), ::core::mem::transmute(lpszdst.as_ptr()), lpszdst.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -1585,7 +1585,7 @@ pub unsafe fn CharUpperBuffA(lpsz: &mut [u8]) -> u32 { extern "system" { fn CharUpperBuffA(lpsz: ::windows::core::PSTR, cchlength: u32) -> u32; } - CharUpperBuffA(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpsz)), lpsz.len() as _) + CharUpperBuffA(::core::mem::transmute(lpsz.as_ptr()), lpsz.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] @@ -1594,7 +1594,7 @@ pub unsafe fn CharUpperBuffW(lpsz: &mut [u16]) -> u32 { extern "system" { fn CharUpperBuffW(lpsz: ::windows::core::PWSTR, cchlength: u32) -> u32; } - CharUpperBuffW(::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpsz)), lpsz.len() as _) + CharUpperBuffW(::core::mem::transmute(lpsz.as_ptr()), lpsz.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] @@ -1681,7 +1681,7 @@ where } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] -pub unsafe fn CopyAcceleratorTableA<'a, P0>(haccelsrc: P0, lpacceldst: &mut [ACCEL]) -> i32 +pub unsafe fn CopyAcceleratorTableA<'a, P0>(haccelsrc: P0, lpacceldst: ::core::option::Option<&mut [ACCEL]>) -> i32 where P0: ::std::convert::Into, { @@ -1689,11 +1689,11 @@ where extern "system" { fn CopyAcceleratorTableA(haccelsrc: HACCEL, lpacceldst: *mut ACCEL, caccelentries: i32) -> i32; } - CopyAcceleratorTableA(haccelsrc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpacceldst)), lpacceldst.len() as _) + CopyAcceleratorTableA(haccelsrc.into(), ::core::mem::transmute(lpacceldst.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpacceldst.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] -pub unsafe fn CopyAcceleratorTableW<'a, P0>(haccelsrc: P0, lpacceldst: &mut [ACCEL]) -> i32 +pub unsafe fn CopyAcceleratorTableW<'a, P0>(haccelsrc: P0, lpacceldst: ::core::option::Option<&mut [ACCEL]>) -> i32 where P0: ::std::convert::Into, { @@ -1701,7 +1701,7 @@ where extern "system" { fn CopyAcceleratorTableW(haccelsrc: HACCEL, lpacceldst: *mut ACCEL, caccelentries: i32) -> i32; } - CopyAcceleratorTableW(haccelsrc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpacceldst)), lpacceldst.len() as _) + CopyAcceleratorTableW(haccelsrc.into(), ::core::mem::transmute(lpacceldst.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpacceldst.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] @@ -1737,7 +1737,7 @@ pub unsafe fn CreateAcceleratorTableA(paccel: &[ACCEL]) -> ::windows::core::Resu extern "system" { fn CreateAcceleratorTableA(paccel: *const ACCEL, caccel: i32) -> HACCEL; } - let result__ = CreateAcceleratorTableA(::core::mem::transmute(::windows::core::as_ptr_or_null(paccel)), paccel.len() as _); + let result__ = CreateAcceleratorTableA(::core::mem::transmute(paccel.as_ptr()), paccel.len() as _); (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] @@ -1747,7 +1747,7 @@ pub unsafe fn CreateAcceleratorTableW(paccel: &[ACCEL]) -> ::windows::core::Resu extern "system" { fn CreateAcceleratorTableW(paccel: *const ACCEL, caccel: i32) -> HACCEL; } - let result__ = CreateAcceleratorTableW(::core::mem::transmute(::windows::core::as_ptr_or_null(paccel)), paccel.len() as _); + let result__ = CreateAcceleratorTableW(::core::mem::transmute(paccel.as_ptr()), paccel.len() as _); (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] @@ -1857,7 +1857,7 @@ where #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CreateIconFromResource<'a, P0>(presbits: &u8, dwressize: u32, ficon: P0, dwver: u32) -> ::windows::core::Result +pub unsafe fn CreateIconFromResource<'a, P0>(presbits: &[u8], ficon: P0, dwver: u32) -> ::windows::core::Result where P0: ::std::convert::Into, { @@ -1865,13 +1865,13 @@ where extern "system" { fn CreateIconFromResource(presbits: *const u8, dwressize: u32, ficon: super::super::Foundation::BOOL, dwver: u32) -> HICON; } - let result__ = CreateIconFromResource(::core::mem::transmute(presbits), dwressize, ficon.into(), dwver); + let result__ = CreateIconFromResource(::core::mem::transmute(presbits.as_ptr()), presbits.len() as _, ficon.into(), dwver); (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn CreateIconFromResourceEx<'a, P0>(presbits: &u8, dwressize: u32, ficon: P0, dwver: u32, cxdesired: i32, cydesired: i32, flags: IMAGE_FLAGS) -> ::windows::core::Result +pub unsafe fn CreateIconFromResourceEx<'a, P0>(presbits: &[u8], ficon: P0, dwver: u32, cxdesired: i32, cydesired: i32, flags: IMAGE_FLAGS) -> ::windows::core::Result where P0: ::std::convert::Into, { @@ -1879,7 +1879,7 @@ where extern "system" { fn CreateIconFromResourceEx(presbits: *const u8, dwressize: u32, ficon: super::super::Foundation::BOOL, dwver: u32, cxdesired: i32, cydesired: i32, flags: IMAGE_FLAGS) -> HICON; } - let result__ = CreateIconFromResourceEx(::core::mem::transmute(presbits), dwressize, ficon.into(), dwver, cxdesired, cydesired, flags); + let result__ = CreateIconFromResourceEx(::core::mem::transmute(presbits.as_ptr()), presbits.len() as _, ficon.into(), dwver, cxdesired, cydesired, flags); (!result__.is_invalid()).then(|| result__).ok_or_else(::windows::core::Error::from_win32) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] @@ -2534,7 +2534,7 @@ where } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] -pub unsafe fn DestroyIndexedResults<'a, P0>(resourceuri: P0, qualifiers: &[IndexedResourceQualifier]) +pub unsafe fn DestroyIndexedResults<'a, P0>(resourceuri: P0, qualifiers: ::core::option::Option<&[IndexedResourceQualifier]>) where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -2542,7 +2542,7 @@ where extern "system" { fn DestroyIndexedResults(resourceuri: ::windows::core::PCWSTR, qualifiercount: u32, qualifiers: *const IndexedResourceQualifier); } - DestroyIndexedResults(resourceuri.into(), qualifiers.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(qualifiers))) + DestroyIndexedResults(resourceuri.into(), qualifiers.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(qualifiers.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3809,7 +3809,7 @@ pub const GW_MAX: u32 = 5u32; #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetAltTabInfoA<'a, P0>(hwnd: P0, iitem: i32, pati: &mut ALTTABINFO, pszitemtext: &mut [u8]) -> super::super::Foundation::BOOL +pub unsafe fn GetAltTabInfoA<'a, P0>(hwnd: P0, iitem: i32, pati: &mut ALTTABINFO, pszitemtext: ::core::option::Option<&mut [u8]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -3817,12 +3817,12 @@ where extern "system" { fn GetAltTabInfoA(hwnd: super::super::Foundation::HWND, iitem: i32, pati: *mut ALTTABINFO, pszitemtext: ::windows::core::PSTR, cchitemtext: u32) -> super::super::Foundation::BOOL; } - GetAltTabInfoA(hwnd.into(), iitem, ::core::mem::transmute(pati), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszitemtext)), pszitemtext.len() as _) + GetAltTabInfoA(hwnd.into(), iitem, ::core::mem::transmute(pati), ::core::mem::transmute(pszitemtext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszitemtext.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn GetAltTabInfoW<'a, P0>(hwnd: P0, iitem: i32, pati: &mut ALTTABINFO, pszitemtext: &mut [u16]) -> super::super::Foundation::BOOL +pub unsafe fn GetAltTabInfoW<'a, P0>(hwnd: P0, iitem: i32, pati: &mut ALTTABINFO, pszitemtext: ::core::option::Option<&mut [u16]>) -> super::super::Foundation::BOOL where P0: ::std::convert::Into, { @@ -3830,7 +3830,7 @@ where extern "system" { fn GetAltTabInfoW(hwnd: super::super::Foundation::HWND, iitem: i32, pati: *mut ALTTABINFO, pszitemtext: ::windows::core::PWSTR, cchitemtext: u32) -> super::super::Foundation::BOOL; } - GetAltTabInfoW(hwnd.into(), iitem, ::core::mem::transmute(pati), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszitemtext)), pszitemtext.len() as _) + GetAltTabInfoW(hwnd.into(), iitem, ::core::mem::transmute(pati), ::core::mem::transmute(pszitemtext.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), pszitemtext.as_deref().map_or(0, |slice| slice.len() as _)) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3985,7 +3985,7 @@ where extern "system" { fn GetClassNameA(hwnd: super::super::Foundation::HWND, lpclassname: ::windows::core::PSTR, nmaxcount: i32) -> i32; } - GetClassNameA(hwnd.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpclassname)), lpclassname.len() as _) + GetClassNameA(hwnd.into(), ::core::mem::transmute(lpclassname.as_ptr()), lpclassname.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3998,7 +3998,7 @@ where extern "system" { fn GetClassNameW(hwnd: super::super::Foundation::HWND, lpclassname: ::windows::core::PWSTR, nmaxcount: i32) -> i32; } - GetClassNameW(hwnd.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpclassname)), lpclassname.len() as _) + GetClassNameW(hwnd.into(), ::core::mem::transmute(lpclassname.as_ptr()), lpclassname.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4135,7 +4135,7 @@ where extern "system" { fn GetDlgItemTextA(hdlg: super::super::Foundation::HWND, niddlgitem: i32, lpstring: ::windows::core::PSTR, cchmax: i32) -> u32; } - GetDlgItemTextA(hdlg.into(), niddlgitem, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstring)), lpstring.len() as _) + GetDlgItemTextA(hdlg.into(), niddlgitem, ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4148,7 +4148,7 @@ where extern "system" { fn GetDlgItemTextW(hdlg: super::super::Foundation::HWND, niddlgitem: i32, lpstring: ::windows::core::PWSTR, cchmax: i32) -> u32; } - GetDlgItemTextW(hdlg.into(), niddlgitem, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstring)), lpstring.len() as _) + GetDlgItemTextW(hdlg.into(), niddlgitem, ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4385,7 +4385,7 @@ where } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] -pub unsafe fn GetMenuStringA<'a, P0>(hmenu: P0, uiditem: u32, lpstring: &mut [u8], flags: MENU_ITEM_FLAGS) -> i32 +pub unsafe fn GetMenuStringA<'a, P0>(hmenu: P0, uiditem: u32, lpstring: ::core::option::Option<&mut [u8]>, flags: MENU_ITEM_FLAGS) -> i32 where P0: ::std::convert::Into, { @@ -4393,11 +4393,11 @@ where extern "system" { fn GetMenuStringA(hmenu: HMENU, uiditem: u32, lpstring: ::windows::core::PSTR, cchmax: i32, flags: MENU_ITEM_FLAGS) -> i32; } - GetMenuStringA(hmenu.into(), uiditem, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstring)), lpstring.len() as _, flags) + GetMenuStringA(hmenu.into(), uiditem, ::core::mem::transmute(lpstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpstring.as_deref().map_or(0, |slice| slice.len() as _), flags) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] -pub unsafe fn GetMenuStringW<'a, P0>(hmenu: P0, uiditem: u32, lpstring: &mut [u16], flags: MENU_ITEM_FLAGS) -> i32 +pub unsafe fn GetMenuStringW<'a, P0>(hmenu: P0, uiditem: u32, lpstring: ::core::option::Option<&mut [u16]>, flags: MENU_ITEM_FLAGS) -> i32 where P0: ::std::convert::Into, { @@ -4405,7 +4405,7 @@ where extern "system" { fn GetMenuStringW(hmenu: HMENU, uiditem: u32, lpstring: ::windows::core::PWSTR, cchmax: i32, flags: MENU_ITEM_FLAGS) -> i32; } - GetMenuStringW(hmenu.into(), uiditem, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstring)), lpstring.len() as _, flags) + GetMenuStringW(hmenu.into(), uiditem, ::core::mem::transmute(lpstring.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), lpstring.as_deref().map_or(0, |slice| slice.len() as _), flags) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4797,7 +4797,7 @@ where extern "system" { fn GetWindowModuleFileNameA(hwnd: super::super::Foundation::HWND, pszfilename: ::windows::core::PSTR, cchfilenamemax: u32) -> u32; } - GetWindowModuleFileNameA(hwnd.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszfilename)), pszfilename.len() as _) + GetWindowModuleFileNameA(hwnd.into(), ::core::mem::transmute(pszfilename.as_ptr()), pszfilename.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4810,7 +4810,7 @@ where extern "system" { fn GetWindowModuleFileNameW(hwnd: super::super::Foundation::HWND, pszfilename: ::windows::core::PWSTR, cchfilenamemax: u32) -> u32; } - GetWindowModuleFileNameW(hwnd.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pszfilename)), pszfilename.len() as _) + GetWindowModuleFileNameW(hwnd.into(), ::core::mem::transmute(pszfilename.as_ptr()), pszfilename.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4849,7 +4849,7 @@ where extern "system" { fn GetWindowTextA(hwnd: super::super::Foundation::HWND, lpstring: ::windows::core::PSTR, nmaxcount: i32) -> i32; } - GetWindowTextA(hwnd.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstring)), lpstring.len() as _) + GetWindowTextA(hwnd.into(), ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4888,7 +4888,7 @@ where extern "system" { fn GetWindowTextW(hwnd: super::super::Foundation::HWND, lpstring: ::windows::core::PWSTR, nmaxcount: i32) -> i32; } - GetWindowTextW(hwnd.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpstring)), lpstring.len() as _) + GetWindowTextW(hwnd.into(), ::core::mem::transmute(lpstring.as_ptr()), lpstring.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5836,7 +5836,7 @@ pub unsafe fn InSendMessageEx(lpreserved: *mut ::core::ffi::c_void) -> u32 { } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] -pub unsafe fn IndexFilePath<'a, P0>(resourceindexer: *const ::core::ffi::c_void, filepath: P0, ppresourceuri: &mut ::windows::core::PWSTR, pqualifiercount: &mut u32, ppqualifiers: &mut *mut IndexedResourceQualifier) -> ::windows::core::Result<()> +pub unsafe fn IndexFilePath<'a, P0>(resourceindexer: *const ::core::ffi::c_void, filepath: P0, ppresourceuri: &mut ::windows::core::PWSTR, pqualifiercount: &mut u32, ppqualifiers: *mut *mut IndexedResourceQualifier) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, { @@ -5958,7 +5958,7 @@ where extern "system" { fn InternalGetWindowText(hwnd: super::super::Foundation::HWND, pstring: ::windows::core::PWSTR, cchmaxcount: i32) -> i32; } - InternalGetWindowText(hwnd.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pstring)), pstring.len() as _) + InternalGetWindowText(hwnd.into(), ::core::mem::transmute(pstring.as_ptr()), pstring.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -8800,7 +8800,7 @@ where } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] -pub unsafe fn MrmCreateResourceIndexerFromPreviousPriData<'a, P0, P1>(projectroot: P0, platformversion: MrmPlatformVersion, defaultqualifiers: P1, pridata: &u8, prisize: u32, indexer: &mut MrmResourceIndexerHandle) -> ::windows::core::Result<()> +pub unsafe fn MrmCreateResourceIndexerFromPreviousPriData<'a, P0, P1>(projectroot: P0, platformversion: MrmPlatformVersion, defaultqualifiers: P1, pridata: &[u8], indexer: &mut MrmResourceIndexerHandle) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -8809,7 +8809,7 @@ where extern "system" { fn MrmCreateResourceIndexerFromPreviousPriData(projectroot: ::windows::core::PCWSTR, platformversion: MrmPlatformVersion, defaultqualifiers: ::windows::core::PCWSTR, pridata: *const u8, prisize: u32, indexer: *mut MrmResourceIndexerHandle) -> ::windows::core::HRESULT; } - MrmCreateResourceIndexerFromPreviousPriData(projectroot.into(), platformversion, defaultqualifiers.into(), ::core::mem::transmute(pridata), prisize, ::core::mem::transmute(indexer)).ok() + MrmCreateResourceIndexerFromPreviousPriData(projectroot.into(), platformversion, defaultqualifiers.into(), ::core::mem::transmute(pridata.as_ptr()), pridata.len() as _, ::core::mem::transmute(indexer)).ok() } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] @@ -8827,7 +8827,7 @@ where } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] -pub unsafe fn MrmCreateResourceIndexerFromPreviousSchemaData<'a, P0, P1>(projectroot: P0, platformversion: MrmPlatformVersion, defaultqualifiers: P1, schemaxmldata: &u8, schemaxmlsize: u32, indexer: &mut MrmResourceIndexerHandle) -> ::windows::core::Result<()> +pub unsafe fn MrmCreateResourceIndexerFromPreviousSchemaData<'a, P0, P1>(projectroot: P0, platformversion: MrmPlatformVersion, defaultqualifiers: P1, schemaxmldata: &[u8], indexer: &mut MrmResourceIndexerHandle) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -8836,7 +8836,7 @@ where extern "system" { fn MrmCreateResourceIndexerFromPreviousSchemaData(projectroot: ::windows::core::PCWSTR, platformversion: MrmPlatformVersion, defaultqualifiers: ::windows::core::PCWSTR, schemaxmldata: *const u8, schemaxmlsize: u32, indexer: *mut MrmResourceIndexerHandle) -> ::windows::core::HRESULT; } - MrmCreateResourceIndexerFromPreviousSchemaData(projectroot.into(), platformversion, defaultqualifiers.into(), ::core::mem::transmute(schemaxmldata), schemaxmlsize, ::core::mem::transmute(indexer)).ok() + MrmCreateResourceIndexerFromPreviousSchemaData(projectroot.into(), platformversion, defaultqualifiers.into(), ::core::mem::transmute(schemaxmldata.as_ptr()), schemaxmldata.len() as _, ::core::mem::transmute(indexer)).ok() } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] @@ -8877,12 +8877,12 @@ pub unsafe fn MrmDestroyIndexerAndMessages(indexer: MrmResourceIndexerHandle) -> } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] -pub unsafe fn MrmDumpPriDataInMemory(inputpridata: &u8, inputprisize: u32, schemapridata: ::core::option::Option<&u8>, schemaprisize: u32, dumptype: MrmDumpType, outputxmldata: &mut *mut u8, outputxmlsize: &mut u32) -> ::windows::core::Result<()> { +pub unsafe fn MrmDumpPriDataInMemory(inputpridata: &[u8], schemapridata: ::core::option::Option<&[u8]>, dumptype: MrmDumpType, outputxmldata: &mut *mut u8, outputxmlsize: &mut u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MrmDumpPriDataInMemory(inputpridata: *const u8, inputprisize: u32, schemapridata: *const u8, schemaprisize: u32, dumptype: MrmDumpType, outputxmldata: *mut *mut u8, outputxmlsize: *mut u32) -> ::windows::core::HRESULT; } - MrmDumpPriDataInMemory(::core::mem::transmute(inputpridata), inputprisize, ::core::mem::transmute(schemapridata), schemaprisize, dumptype, ::core::mem::transmute(outputxmldata), ::core::mem::transmute(outputxmlsize)).ok() + MrmDumpPriDataInMemory(::core::mem::transmute(inputpridata.as_ptr()), inputpridata.len() as _, ::core::mem::transmute(schemapridata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), schemapridata.as_deref().map_or(0, |slice| slice.len() as _), dumptype, ::core::mem::transmute(outputxmldata), ::core::mem::transmute(outputxmlsize)).ok() } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] @@ -8964,7 +8964,7 @@ where } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] -pub unsafe fn MrmIndexEmbeddedData<'a, P0, P1>(indexer: MrmResourceIndexerHandle, resourceuri: P0, embeddeddata: &u8, embeddeddatasize: u32, qualifiers: P1) -> ::windows::core::Result<()> +pub unsafe fn MrmIndexEmbeddedData<'a, P0, P1>(indexer: MrmResourceIndexerHandle, resourceuri: P0, embeddeddata: &[u8], qualifiers: P1) -> ::windows::core::Result<()> where P0: ::std::convert::Into<::windows::core::PCWSTR>, P1: ::std::convert::Into<::windows::core::PCWSTR>, @@ -8973,7 +8973,7 @@ where extern "system" { fn MrmIndexEmbeddedData(indexer: MrmResourceIndexerHandle, resourceuri: ::windows::core::PCWSTR, embeddeddata: *const u8, embeddeddatasize: u32, qualifiers: ::windows::core::PCWSTR) -> ::windows::core::HRESULT; } - MrmIndexEmbeddedData(::core::mem::transmute(indexer), resourceuri.into(), ::core::mem::transmute(embeddeddata), embeddeddatasize, qualifiers.into()).ok() + MrmIndexEmbeddedData(::core::mem::transmute(indexer), resourceuri.into(), ::core::mem::transmute(embeddeddata.as_ptr()), embeddeddata.len() as _, qualifiers.into()).ok() } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] @@ -9116,7 +9116,7 @@ impl ::core::fmt::Debug for MrmPackagingOptions { } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] -pub unsafe fn MrmPeekResourceIndexerMessages(handle: MrmResourceIndexerHandle, messages: &mut *mut MrmResourceIndexerMessage, nummsgs: &mut u32) -> ::windows::core::Result<()> { +pub unsafe fn MrmPeekResourceIndexerMessages(handle: MrmResourceIndexerHandle, messages: *mut *mut MrmResourceIndexerMessage, nummsgs: &mut u32) -> ::windows::core::Result<()> { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MrmPeekResourceIndexerMessages(handle: MrmResourceIndexerHandle, messages: *mut *mut MrmResourceIndexerMessage, nummsgs: *mut u32) -> ::windows::core::HRESULT; @@ -9248,7 +9248,7 @@ impl ::core::fmt::Debug for MrmResourceIndexerMessageSeverity { #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn MsgWaitForMultipleObjects<'a, P0>(phandles: &[super::super::Foundation::HANDLE], fwaitall: P0, dwmilliseconds: u32, dwwakemask: QUEUE_STATUS_FLAGS) -> u32 +pub unsafe fn MsgWaitForMultipleObjects<'a, P0>(phandles: ::core::option::Option<&[super::super::Foundation::HANDLE]>, fwaitall: P0, dwmilliseconds: u32, dwwakemask: QUEUE_STATUS_FLAGS) -> u32 where P0: ::std::convert::Into, { @@ -9256,17 +9256,17 @@ where extern "system" { fn MsgWaitForMultipleObjects(ncount: u32, phandles: *const super::super::Foundation::HANDLE, fwaitall: super::super::Foundation::BOOL, dwmilliseconds: u32, dwwakemask: QUEUE_STATUS_FLAGS) -> u32; } - MsgWaitForMultipleObjects(phandles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(phandles)), fwaitall.into(), dwmilliseconds, dwwakemask) + MsgWaitForMultipleObjects(phandles.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(phandles.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), fwaitall.into(), dwmilliseconds, dwwakemask) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn MsgWaitForMultipleObjectsEx(phandles: &[super::super::Foundation::HANDLE], dwmilliseconds: u32, dwwakemask: QUEUE_STATUS_FLAGS, dwflags: MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS) -> u32 { +pub unsafe fn MsgWaitForMultipleObjectsEx(phandles: ::core::option::Option<&[super::super::Foundation::HANDLE]>, dwmilliseconds: u32, dwwakemask: QUEUE_STATUS_FLAGS, dwflags: MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn MsgWaitForMultipleObjectsEx(ncount: u32, phandles: *const super::super::Foundation::HANDLE, dwmilliseconds: u32, dwwakemask: QUEUE_STATUS_FLAGS, dwflags: MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS) -> u32; } - MsgWaitForMultipleObjectsEx(phandles.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(phandles)), dwmilliseconds, dwwakemask, dwflags) + MsgWaitForMultipleObjectsEx(phandles.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(phandles.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), dwmilliseconds, dwwakemask, dwflags) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9672,7 +9672,7 @@ where extern "system" { fn OemToCharBuffA(lpszsrc: ::windows::core::PCSTR, lpszdst: ::windows::core::PSTR, cchdstlength: u32) -> super::super::Foundation::BOOL; } - OemToCharBuffA(lpszsrc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszdst)), lpszdst.len() as _) + OemToCharBuffA(lpszsrc.into(), ::core::mem::transmute(lpszdst.as_ptr()), lpszdst.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -9685,7 +9685,7 @@ where extern "system" { fn OemToCharBuffW(lpszsrc: ::windows::core::PCSTR, lpszdst: ::windows::core::PWSTR, cchdstlength: u32) -> super::super::Foundation::BOOL; } - OemToCharBuffW(lpszsrc.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(lpszdst)), lpszdst.len() as _) + OemToCharBuffW(lpszsrc.into(), ::core::mem::transmute(lpszdst.as_ptr()), lpszdst.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10084,21 +10084,21 @@ where } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] -pub unsafe fn PrivateExtractIconsA(szfilename: &[u8; 260], niconindex: i32, cxicon: i32, cyicon: i32, phicon: ::core::option::Option<&mut HICON>, piconid: ::core::option::Option<&mut u32>, nicons: u32, flags: u32) -> u32 { +pub unsafe fn PrivateExtractIconsA(szfilename: &[u8; 260], niconindex: i32, cxicon: i32, cyicon: i32, phicon: *mut HICON, piconid: *mut u32, nicons: u32, flags: u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PrivateExtractIconsA(szfilename: ::windows::core::PCSTR, niconindex: i32, cxicon: i32, cyicon: i32, phicon: *mut HICON, piconid: *mut u32, nicons: u32, flags: u32) -> u32; } - PrivateExtractIconsA(::core::mem::transmute(::windows::core::as_ptr_or_null(szfilename)), niconindex, cxicon, cyicon, ::core::mem::transmute(phicon), ::core::mem::transmute(piconid), ::core::mem::transmute(nicons), flags) + PrivateExtractIconsA(::core::mem::transmute(szfilename.as_ptr()), niconindex, cxicon, cyicon, ::core::mem::transmute(phicon), ::core::mem::transmute(piconid), ::core::mem::transmute(nicons), flags) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] #[inline] -pub unsafe fn PrivateExtractIconsW(szfilename: &[u16; 260], niconindex: i32, cxicon: i32, cyicon: i32, phicon: ::core::option::Option<&mut HICON>, piconid: ::core::option::Option<&mut u32>, nicons: u32, flags: u32) -> u32 { +pub unsafe fn PrivateExtractIconsW(szfilename: &[u16; 260], niconindex: i32, cxicon: i32, cyicon: i32, phicon: *mut HICON, piconid: *mut u32, nicons: u32, flags: u32) -> u32 { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn PrivateExtractIconsW(szfilename: ::windows::core::PCWSTR, niconindex: i32, cxicon: i32, cyicon: i32, phicon: *mut HICON, piconid: *mut u32, nicons: u32, flags: u32) -> u32; } - PrivateExtractIconsW(::core::mem::transmute(::windows::core::as_ptr_or_null(szfilename)), niconindex, cxicon, cyicon, ::core::mem::transmute(phicon), ::core::mem::transmute(piconid), ::core::mem::transmute(nicons), flags) + PrivateExtractIconsW(::core::mem::transmute(szfilename.as_ptr()), niconindex, cxicon, cyicon, ::core::mem::transmute(phicon), ::core::mem::transmute(piconid), ::core::mem::transmute(nicons), flags) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] pub const QS_POINTER: u32 = 4096u32; @@ -10301,7 +10301,7 @@ where extern "system" { fn RealGetWindowClassA(hwnd: super::super::Foundation::HWND, ptszclassname: ::windows::core::PSTR, cchclassnamemax: u32) -> u32; } - RealGetWindowClassA(hwnd.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ptszclassname)), ptszclassname.len() as _) + RealGetWindowClassA(hwnd.into(), ::core::mem::transmute(ptszclassname.as_ptr()), ptszclassname.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -10314,7 +10314,7 @@ where extern "system" { fn RealGetWindowClassW(hwnd: super::super::Foundation::HWND, ptszclassname: ::windows::core::PWSTR, cchclassnamemax: u32) -> u32; } - RealGetWindowClassW(hwnd.into(), ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(ptszclassname)), ptszclassname.len() as _) + RealGetWindowClassW(hwnd.into(), ::core::mem::transmute(ptszclassname.as_ptr()), ptszclassname.len() as _) } #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] @@ -12849,7 +12849,7 @@ where #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn SetSysColors(celements: i32, lpaelements: &i32, lpargbvalues: &u32) -> super::super::Foundation::BOOL { +pub unsafe fn SetSysColors(celements: i32, lpaelements: *const i32, lpargbvalues: *const u32) -> super::super::Foundation::BOOL { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SetSysColors(celements: i32, lpaelements: *const i32, lpargbvalues: *const u32) -> super::super::Foundation::BOOL; @@ -13475,7 +13475,7 @@ impl ::core::ops::Not for TRACK_POPUP_MENU_FLAGS { #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] #[inline] -pub unsafe fn TileWindows<'a, P0>(hwndparent: P0, whow: TILE_WINDOWS_HOW, lprect: ::core::option::Option<&super::super::Foundation::RECT>, lpkids: &[super::super::Foundation::HWND]) -> u16 +pub unsafe fn TileWindows<'a, P0>(hwndparent: P0, whow: TILE_WINDOWS_HOW, lprect: ::core::option::Option<&super::super::Foundation::RECT>, lpkids: ::core::option::Option<&[super::super::Foundation::HWND]>) -> u16 where P0: ::std::convert::Into, { @@ -13483,7 +13483,7 @@ where extern "system" { fn TileWindows(hwndparent: super::super::Foundation::HWND, whow: TILE_WINDOWS_HOW, lprect: *const super::super::Foundation::RECT, ckids: u32, lpkids: *const super::super::Foundation::HWND) -> u16; } - TileWindows(hwndparent.into(), whow, ::core::mem::transmute(lprect), lpkids.len() as _, ::core::mem::transmute(::windows::core::as_ptr_or_null(lpkids))) + TileWindows(hwndparent.into(), whow, ::core::mem::transmute(lprect), lpkids.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(lpkids.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))) } #[repr(C)] #[doc = "*Required features: `\"Win32_UI_WindowsAndMessaging\"`*"] diff --git a/crates/libs/windows/src/Windows/Win32/UI/Xaml/Diagnostics/mod.rs b/crates/libs/windows/src/Windows/Win32/UI/Xaml/Diagnostics/mod.rs index 071ef1429f..fd16ab4570 100644 --- a/crates/libs/windows/src/Windows/Win32/UI/Xaml/Diagnostics/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/UI/Xaml/Diagnostics/mod.rs @@ -176,7 +176,7 @@ impl ::core::default::Default for EnumType { pub struct IBitmapData(::windows::core::IUnknown); impl IBitmapData { pub unsafe fn CopyBytesTo(&self, sourceoffsetinbytes: u32, pvbytes: &mut [u8], numberofbytescopied: &mut u32) -> ::windows::core::Result<()> { - (::windows::core::Interface::vtable(self).CopyBytesTo)(::windows::core::Interface::as_raw(self), sourceoffsetinbytes, pvbytes.len() as _, ::core::mem::transmute(::windows::core::as_mut_ptr_or_null(pvbytes)), ::core::mem::transmute(numberofbytescopied)).ok() + (::windows::core::Interface::vtable(self).CopyBytesTo)(::windows::core::Interface::as_raw(self), sourceoffsetinbytes, pvbytes.len() as _, ::core::mem::transmute(pvbytes.as_ptr()), ::core::mem::transmute(numberofbytescopied)).ok() } pub unsafe fn GetStride(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); @@ -263,7 +263,7 @@ impl IVisualTreeService { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] - pub unsafe fn GetEnums(&self, pcount: &mut u32, ppenums: &mut *mut EnumType) -> ::windows::core::Result<()> { + pub unsafe fn GetEnums(&self, pcount: &mut u32, ppenums: *mut *mut EnumType) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetEnums)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcount), ::core::mem::transmute(ppenums)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -278,7 +278,7 @@ impl IVisualTreeService { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetPropertyValuesChain(&self, instancehandle: u64, psourcecount: &mut u32, pppropertysources: &mut *mut PropertyChainSource, ppropertycount: &mut u32, pppropertyvalues: &mut *mut PropertyChainValue) -> ::windows::core::Result<()> { + pub unsafe fn GetPropertyValuesChain(&self, instancehandle: u64, psourcecount: &mut u32, pppropertysources: *mut *mut PropertyChainSource, ppropertycount: &mut u32, pppropertyvalues: *mut *mut PropertyChainValue) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetPropertyValuesChain)(::windows::core::Interface::as_raw(self), instancehandle, ::core::mem::transmute(psourcecount), ::core::mem::transmute(pppropertysources), ::core::mem::transmute(ppropertycount), ::core::mem::transmute(pppropertyvalues)).ok() } pub unsafe fn SetProperty(&self, instancehandle: u64, value: u64, propertyindex: u32) -> ::windows::core::Result<()> { @@ -293,7 +293,7 @@ impl IVisualTreeService { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetCollectionElements(&self, instancehandle: u64, startindex: u32, pelementcount: &mut u32, ppelementvalues: &mut *mut CollectionElementValue) -> ::windows::core::Result<()> { + pub unsafe fn GetCollectionElements(&self, instancehandle: u64, startindex: u32, pelementcount: &mut u32, ppelementvalues: *mut *mut CollectionElementValue) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).GetCollectionElements)(::windows::core::Interface::as_raw(self), instancehandle, startindex, ::core::mem::transmute(pelementcount), ::core::mem::transmute(ppelementvalues)).ok() } pub unsafe fn AddChild(&self, parent: u64, child: u64, index: u32) -> ::windows::core::Result<()> { @@ -388,7 +388,7 @@ impl IVisualTreeService2 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] - pub unsafe fn GetEnums(&self, pcount: &mut u32, ppenums: &mut *mut EnumType) -> ::windows::core::Result<()> { + pub unsafe fn GetEnums(&self, pcount: &mut u32, ppenums: *mut *mut EnumType) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetEnums)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcount), ::core::mem::transmute(ppenums)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -403,7 +403,7 @@ impl IVisualTreeService2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetPropertyValuesChain(&self, instancehandle: u64, psourcecount: &mut u32, pppropertysources: &mut *mut PropertyChainSource, ppropertycount: &mut u32, pppropertyvalues: &mut *mut PropertyChainValue) -> ::windows::core::Result<()> { + pub unsafe fn GetPropertyValuesChain(&self, instancehandle: u64, psourcecount: &mut u32, pppropertysources: *mut *mut PropertyChainSource, ppropertycount: &mut u32, pppropertyvalues: *mut *mut PropertyChainValue) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetPropertyValuesChain)(::windows::core::Interface::as_raw(self), instancehandle, ::core::mem::transmute(psourcecount), ::core::mem::transmute(pppropertysources), ::core::mem::transmute(ppropertycount), ::core::mem::transmute(pppropertyvalues)).ok() } pub unsafe fn SetProperty(&self, instancehandle: u64, value: u64, propertyindex: u32) -> ::windows::core::Result<()> { @@ -418,7 +418,7 @@ impl IVisualTreeService2 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetCollectionElements(&self, instancehandle: u64, startindex: u32, pelementcount: &mut u32, ppelementvalues: &mut *mut CollectionElementValue) -> ::windows::core::Result<()> { + pub unsafe fn GetCollectionElements(&self, instancehandle: u64, startindex: u32, pelementcount: &mut u32, ppelementvalues: *mut *mut CollectionElementValue) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.GetCollectionElements)(::windows::core::Interface::as_raw(self), instancehandle, startindex, ::core::mem::transmute(pelementcount), ::core::mem::transmute(ppelementvalues)).ok() } pub unsafe fn AddChild(&self, parent: u64, child: u64, index: u32) -> ::windows::core::Result<()> { @@ -526,7 +526,7 @@ impl IVisualTreeService3 { } #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_System_Com\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] - pub unsafe fn GetEnums(&self, pcount: &mut u32, ppenums: &mut *mut EnumType) -> ::windows::core::Result<()> { + pub unsafe fn GetEnums(&self, pcount: &mut u32, ppenums: *mut *mut EnumType) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetEnums)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pcount), ::core::mem::transmute(ppenums)).ok() } #[doc = "*Required features: `\"Win32_Foundation\"`*"] @@ -541,7 +541,7 @@ impl IVisualTreeService3 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetPropertyValuesChain(&self, instancehandle: u64, psourcecount: &mut u32, pppropertysources: &mut *mut PropertyChainSource, ppropertycount: &mut u32, pppropertyvalues: &mut *mut PropertyChainValue) -> ::windows::core::Result<()> { + pub unsafe fn GetPropertyValuesChain(&self, instancehandle: u64, psourcecount: &mut u32, pppropertysources: *mut *mut PropertyChainSource, ppropertycount: &mut u32, pppropertyvalues: *mut *mut PropertyChainValue) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetPropertyValuesChain)(::windows::core::Interface::as_raw(self), instancehandle, ::core::mem::transmute(psourcecount), ::core::mem::transmute(pppropertysources), ::core::mem::transmute(ppropertycount), ::core::mem::transmute(pppropertyvalues)).ok() } pub unsafe fn SetProperty(&self, instancehandle: u64, value: u64, propertyindex: u32) -> ::windows::core::Result<()> { @@ -556,7 +556,7 @@ impl IVisualTreeService3 { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn GetCollectionElements(&self, instancehandle: u64, startindex: u32, pelementcount: &mut u32, ppelementvalues: &mut *mut CollectionElementValue) -> ::windows::core::Result<()> { + pub unsafe fn GetCollectionElements(&self, instancehandle: u64, startindex: u32, pelementcount: &mut u32, ppelementvalues: *mut *mut CollectionElementValue) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).base__.base__.GetCollectionElements)(::windows::core::Interface::as_raw(self), instancehandle, startindex, ::core::mem::transmute(pelementcount), ::core::mem::transmute(ppelementvalues)).ok() } pub unsafe fn AddChild(&self, parent: u64, child: u64, index: u32) -> ::windows::core::Result<()> { @@ -847,7 +847,7 @@ impl IXamlDiagnostics { } #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] - pub unsafe fn HitTest(&self, rect: super::super::super::Foundation::RECT, pcount: &mut u32, ppinstancehandles: &mut *mut u64) -> ::windows::core::Result<()> { + pub unsafe fn HitTest(&self, rect: super::super::super::Foundation::RECT, pcount: &mut u32, ppinstancehandles: *mut *mut u64) -> ::windows::core::Result<()> { (::windows::core::Interface::vtable(self).HitTest)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rect), ::core::mem::transmute(pcount), ::core::mem::transmute(ppinstancehandles)).ok() } pub unsafe fn RegisterInstance<'a, P0>(&self, pinstance: P0) -> ::windows::core::Result diff --git a/crates/libs/windows/src/core/bindings.rs b/crates/libs/windows/src/core/bindings.rs index 887229d0b3..771b24587b 100644 --- a/crates/libs/windows/src/core/bindings.rs +++ b/crates/libs/windows/src/core/bindings.rs @@ -1172,7 +1172,7 @@ impl BSTR { if value.is_empty() { return Self(::core::ptr::null_mut()); } - unsafe { SysAllocStringLen(value) } + unsafe { SysAllocStringLen(Some(value)) } } pub fn as_wide(&self) -> &[u16] { if self.0.is_null() { @@ -1374,12 +1374,12 @@ where SysAllocStringByteLen(psz.into(), len) } #[inline] -pub unsafe fn SysAllocStringLen(strin: &[u16]) -> BSTR { +pub unsafe fn SysAllocStringLen(strin: ::core::option::Option<&[u16]>) -> BSTR { #[cfg_attr(windows, link(name = "windows"))] extern "system" { fn SysAllocStringLen(strin: ::windows::core::PCWSTR, ui: u32) -> BSTR; } - SysAllocStringLen(::core::mem::transmute(::windows::core::as_ptr_or_null(strin)), strin.len() as _) + SysAllocStringLen(::core::mem::transmute(strin.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), strin.as_deref().map_or(0, |slice| slice.len() as _)) } #[inline] pub unsafe fn SysFreeString<'a, P0>(bstrstring: P0) diff --git a/crates/libs/windows/src/core/mod.rs b/crates/libs/windows/src/core/mod.rs index 58c9c34413..67f4ea91e1 100644 --- a/crates/libs/windows/src/core/mod.rs +++ b/crates/libs/windows/src/core/mod.rs @@ -85,24 +85,6 @@ extern "C" { #[doc(hidden)] pub extern crate alloc; -#[doc(hidden)] -pub fn as_ptr_or_null(value: &[T]) -> *const T { - if value.is_empty() { - core::ptr::null() - } else { - value.as_ptr() - } -} - -#[doc(hidden)] -pub fn as_mut_ptr_or_null(value: &mut [T]) -> *mut T { - if value.is_empty() { - core::ptr::null_mut() - } else { - value.as_mut_ptr() - } -} - fn wide_trim_end(mut wide: &[u16]) -> &[u16] { while let Some(last) = wide.last() { match last { diff --git a/crates/samples/direct2d/src/main.rs b/crates/samples/direct2d/src/main.rs index 3a557d6991..a474ec7000 100644 --- a/crates/samples/direct2d/src/main.rs +++ b/crates/samples/direct2d/src/main.rs @@ -415,7 +415,7 @@ fn create_factory() -> Result { fn create_style(factory: &ID2D1Factory1) -> Result { let props = D2D1_STROKE_STYLE_PROPERTIES { startCap: D2D1_CAP_STYLE_ROUND, endCap: D2D1_CAP_STYLE_TRIANGLE, ..Default::default() }; - unsafe { factory.CreateStrokeStyle(&props, &[]) } + unsafe { factory.CreateStrokeStyle(&props, None) } } fn create_transition() -> Result { @@ -434,7 +434,7 @@ fn create_device_with_type(drive_type: D3D_DRIVER_TYPE) -> Result let mut device = None; - unsafe { D3D11CreateDevice(None, drive_type, None, flags, &[], D3D11_SDK_VERSION, Some(&mut device), None, None).map(|()| device.unwrap()) } + unsafe { D3D11CreateDevice(None, drive_type, None, flags, None, D3D11_SDK_VERSION, Some(&mut device), None, None).map(|()| device.unwrap()) } } fn create_device() -> Result { diff --git a/crates/samples/direct3d12/src/main.rs b/crates/samples/direct3d12/src/main.rs index a8e17bcd91..b0804ed2ed 100644 --- a/crates/samples/direct3d12/src/main.rs +++ b/crates/samples/direct3d12/src/main.rs @@ -368,7 +368,7 @@ mod d3d12_hello_triangle { // TODO: workaround for https://github.com/microsoft/win32metadata/issues/1006 command_list.ClearRenderTargetView(rtv_handle, &*[0.0_f32, 0.2_f32, 0.4_f32, 1.0_f32].as_ptr(), &[]); command_list.IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); - command_list.IASetVertexBuffers(0, &[resources.vbv]); + command_list.IASetVertexBuffers(0, Some(&[resources.vbv])); command_list.DrawInstanced(3, 1, 0, 0); // Indicate that the back buffer will now be used to present. diff --git a/crates/samples/overlapped/src/main.rs b/crates/samples/overlapped/src/main.rs index d12ca31100..4cb9fac949 100644 --- a/crates/samples/overlapped/src/main.rs +++ b/crates/samples/overlapped/src/main.rs @@ -18,7 +18,7 @@ fn main() -> Result<()> { let mut buffer: [u8; 12] = Default::default(); - let read_ok = ReadFile(file, buffer.as_mut_ptr() as _, 12, None, Some(&mut overlapped)); + let read_ok = ReadFile(file, Some(&mut buffer), None, Some(&mut overlapped)); if !read_ok.as_bool() { assert_eq!(GetLastError(), ERROR_IO_PENDING); diff --git a/crates/tests/bcrypt/Cargo.toml b/crates/tests/bcrypt/Cargo.toml new file mode 100644 index 0000000000..51d3985a10 --- /dev/null +++ b/crates/tests/bcrypt/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "test_bcrypt" +version = "0.0.0" +authors = ["Microsoft"] +edition = "2018" + +[dependencies.windows] +path = "../../libs/windows" +features = [ + "Win32_Foundation", + "Win32_Security_Cryptography", +] diff --git a/crates/tests/bcrypt/src/lib.rs b/crates/tests/bcrypt/src/lib.rs new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/crates/tests/bcrypt/src/lib.rs @@ -0,0 +1 @@ + diff --git a/crates/tests/bcrypt/tests/tests.rs b/crates/tests/bcrypt/tests/tests.rs new file mode 100644 index 0000000000..f25fca778a --- /dev/null +++ b/crates/tests/bcrypt/tests/tests.rs @@ -0,0 +1,64 @@ +use windows::{core::*, Win32::Security::Cryptography::*}; + +#[test] +fn test() -> Result<()> { + unsafe { + let mut rng = Default::default(); + // TODO: workaround for https://github.com/microsoft/win32metadata/issues/1008 + BCryptOpenAlgorithmProvider(&mut rng, w!("RNG"), None, Default::default())?; + + let mut des = Default::default(); + BCryptOpenAlgorithmProvider(&mut des, w!("3DES"), None, Default::default())?; + + let mut object_len = [0; 4]; + let mut bytes_copied = 0; + BCryptGetProperty(des.0 as _, w!("ObjectLength"), Some(&mut object_len), &mut bytes_copied, 0)?; + let object_len = u32::from_le_bytes(object_len); + + let mut shared_secret = vec![0; object_len as _]; + BCryptGenRandom(rng, &mut shared_secret, 0)?; + + let mut encrypt_key = Default::default(); + // TODO: workaround for https://github.com/microsoft/win32metadata/issues/1010 + BCryptGenerateSymmetricKey(des, &mut encrypt_key, None, 0, &shared_secret, 0)?; + + let mut block_len = [0; 4]; + BCryptGetProperty(des.0 as _, w!("BlockLength"), Some(&mut block_len), &mut bytes_copied, 0)?; + let block_len = u32::from_le_bytes(block_len) as usize; + + let send_message = "I ❤️ Rust"; + let mut send_buffer = vec![0; block_len * ((send_message.len() + (block_len - 1)) / block_len)]; + send_buffer[..send_message.len()].copy_from_slice(send_message.as_bytes()); + + let mut encrypted_len = 0; + BCryptEncrypt(encrypt_key, Some(&send_buffer), std::ptr::null(), None, None, &mut encrypted_len, Default::default())?; + + let mut encrypted = vec![0; encrypted_len as _]; + BCryptEncrypt(encrypt_key, Some(&send_buffer), std::ptr::null(), None, Some(&mut encrypted), &mut encrypted_len, Default::default())?; + + let mut decrypt_key = Default::default(); + BCryptGenerateSymmetricKey(des, &mut decrypt_key, None, 0, &shared_secret, 0)?; + + let mut decrypted_len = 0; + BCryptDecrypt(decrypt_key, Some(&encrypted), std::ptr::null(), None, None, &mut decrypted_len, Default::default())?; + + let mut decrypted = vec![0; decrypted_len as _]; + BCryptDecrypt(decrypt_key, Some(&encrypted), std::ptr::null(), None, Some(&mut decrypted), &mut decrypted_len, Default::default())?; + + let receive_message = std::str::from_utf8(trim_null_end(&decrypted)).expect("Not a valid message"); + println!("`{}`", receive_message); + assert_eq!(send_message, receive_message); + } + Ok(()) +} + +pub const fn trim_null_end(mut bytes: &[u8]) -> &[u8] { + while let [rest @ .., last] = bytes { + if *last == 0 { + bytes = rest; + } else { + break; + } + } + bytes +} diff --git a/crates/tests/bstr/tests/bstr.rs b/crates/tests/bstr/tests/bstr.rs index 4c390338a8..8bb25305d7 100644 --- a/crates/tests/bstr/tests/bstr.rs +++ b/crates/tests/bstr/tests/bstr.rs @@ -40,7 +40,7 @@ fn clone() { assert!(a.is_empty()); assert!(a.len() == 0); - let a: BSTR = unsafe { SysAllocStringLen(&[]) }; + let a: BSTR = unsafe { SysAllocStringLen(None) }; assert!(a.is_empty()); assert!(a.len() == 0); } diff --git a/crates/tests/core/tests/hstrings.rs b/crates/tests/core/tests/hstrings.rs index 93e9042a8d..b1553a3426 100644 --- a/crates/tests/core/tests/hstrings.rs +++ b/crates/tests/core/tests/hstrings.rs @@ -166,7 +166,7 @@ fn hstring_compat() -> Result<()> { assert_eq!(WindowsConcatString(&hey, &world)?, "HeyWorld"); - assert_eq!(WindowsCreateString(&hey.as_wide())?, "Hey"); + assert_eq!(WindowsCreateString(Some(&hey.as_wide()))?, "Hey"); assert_eq!(WindowsDuplicateString(&hey)?, "Hey"); diff --git a/crates/tests/ntstatus/tests/ntstatus.rs b/crates/tests/ntstatus/tests/ntstatus.rs index 8e5b93b666..43b8cdc544 100644 --- a/crates/tests/ntstatus/tests/ntstatus.rs +++ b/crates/tests/ntstatus/tests/ntstatus.rs @@ -19,12 +19,12 @@ fn test() -> Result<()> { unsafe { let mut provider = BCRYPT_ALG_HANDLE::default(); - BCryptOpenAlgorithmProvider(&mut provider, w!("RNG"), PCWSTR::null(), BCRYPT_OPEN_ALGORITHM_PROVIDER_FLAGS::default())?; + BCryptOpenAlgorithmProvider(&mut provider, w!("RNG"), None, BCRYPT_OPEN_ALGORITHM_PROVIDER_FLAGS::default())?; let mut random = GUID::zeroed(); + let mut bytes = std::slice::from_raw_parts_mut(&mut random as *mut _ as *mut u8, std::mem::size_of::()); - // TODO: workaround for https://github.com/microsoft/windows-rs/issues/1938 - BCryptGenRandom(provider, std::mem::transmute(&mut random), core::mem::size_of::() as _, 0)?; + BCryptGenRandom(provider, &mut bytes, 0)?; assert_ne!(random, GUID::zeroed()); } diff --git a/crates/tests/win32/tests/win32.rs b/crates/tests/win32/tests/win32.rs index c2398d94ae..cfedb4a1ea 100644 --- a/crates/tests/win32/tests/win32.rs +++ b/crates/tests/win32/tests/win32.rs @@ -10,7 +10,7 @@ use windows::{ Win32::System::{Com::CreateUri, Diagnostics::Debug::*, Threading::*}, Win32::UI::{ Accessibility::UIA_ScrollPatternNoScroll, - Animation::{UIAnimationManager, UIAnimationTransitionLibrary}, + Animation::UIAnimationManager, Controls::Dialogs::CHOOSECOLORW, WindowsAndMessaging::{PROPENUMPROCA, PROPENUMPROCW, WM_KEYUP}, }, @@ -123,30 +123,20 @@ fn bool_as_error() { fn com() -> windows::core::Result<()> { unsafe { let stream = CreateStreamOnHGlobal(0, true)?; - let values = vec![1, 20, 300, 4000]; + let values = vec![1, 2, 3, 4]; let mut copied = 0; - stream.Write(values.as_ptr() as _, (values.len() * core::mem::size_of::()) as u32, Some(&mut copied)).ok()?; - assert!(copied == (values.len() * core::mem::size_of::()) as u32); - - let mut copied = 0; - stream.Write(&UIAnimationTransitionLibrary as *const _ as _, core::mem::size_of::() as u32, Some(&mut copied)).ok()?; - assert!(copied == core::mem::size_of::() as u32); + stream.Write(&values, Some(&mut copied)).ok()?; + assert!(copied == 4); let position = stream.Seek(0, STREAM_SEEK_SET)?; assert!(position == 0); let mut values = vec![0, 0, 0, 0]; let mut copied = 0; - stream.Read(values.as_mut_ptr() as _, (values.len() * core::mem::size_of::()) as u32, Some(&mut copied)).ok()?; - assert!(copied == (values.len() * core::mem::size_of::()) as u32); - assert!(values == vec![1, 20, 300, 4000]); - - let mut value: windows::core::GUID = windows::core::GUID::default(); - let mut copied = 0; - stream.Read(&mut value as *mut _ as _, core::mem::size_of::() as u32, Some(&mut copied)).ok()?; - assert!(copied == core::mem::size_of::() as u32); - assert!(value == UIAnimationTransitionLibrary); + stream.Read(&mut values, Some(&mut copied)).ok()?; + assert!(copied == 4); + assert!(values == vec![1, 2, 3, 4]); } Ok(()) @@ -188,7 +178,7 @@ fn onecore_imports() -> windows::core::Result<()> { let result = MiniDumpWriteDump(None, 0, None, MiniDumpNormal, None, None, None); assert!(!result.as_bool()); - assert!(D3DDisassemble11Trace(core::ptr::null_mut(), 0, None, 0, 0, 0).is_err()); + assert!(D3DDisassemble11Trace(&[], None, 0, 0, 0).is_err()); Ok(()) } diff --git a/crates/tests/win32_arrays/Cargo.toml b/crates/tests/win32_arrays/Cargo.toml index 209418f26d..1f1ffbcfeb 100644 --- a/crates/tests/win32_arrays/Cargo.toml +++ b/crates/tests/win32_arrays/Cargo.toml @@ -17,5 +17,6 @@ features = [ "Win32_Data_Xml_XmlLite", "Win32_System_Com_StructuredStorage", "Win32_UI_ColorSystem", + "Win32_UI_Shell", "Win32_Globalization", ] diff --git a/crates/tests/win32_arrays/tests/fixed.rs b/crates/tests/win32_arrays/tests/fixed.rs index 3b6d4d7eba..49438a3def 100644 --- a/crates/tests/win32_arrays/tests/fixed.rs +++ b/crates/tests/win32_arrays/tests/fixed.rs @@ -1,5 +1,5 @@ use windows::core::{s, w}; -use windows::{Win32::Foundation::*, Win32::Storage::FileSystem::*, Win32::UI::Input::KeyboardAndMouse::*}; +use windows::{Win32::Foundation::*, Win32::Storage::FileSystem::*, Win32::UI::Input::KeyboardAndMouse::*, Win32::UI::Shell::*}; #[test] fn keyboard_state() { @@ -28,6 +28,21 @@ fn temp_file_wide() { let mut buffer: [u16; 260] = std::mem::zeroed(); let a = GetTempFileNameW(w!("."), w!("test"), 0x7b, &mut buffer); assert_eq!(a, 0x7b); - assert_eq!(SysAllocStringLen(&buffer[..12]), ".\\tes7B.tmp\0"); + assert_eq!(SysAllocStringLen(Some(&buffer[..12])), ".\\tes7B.tmp\0"); + } +} + +#[test] +fn common_prefix() { + unsafe { + let count = PathCommonPrefixA(s!("same\\ABC"), s!("same\\DEF"), None); + assert_eq!(count, 4); + + let mut path = [0; 260]; + let count = PathCommonPrefixA(s!("same\\ABC"), s!("same\\DEF"), Some(&mut path)); + assert_eq!(count, 4); + let (left, right) = path.split_at(4); + assert_eq!(left, b"same"); + assert_eq!(right, [0; 260 - 4]); } } diff --git a/crates/tests/win32_arrays/tests/multi_byte.rs b/crates/tests/win32_arrays/tests/multi_byte.rs index f1602a7d73..6c14aaa2c6 100644 --- a/crates/tests/win32_arrays/tests/multi_byte.rs +++ b/crates/tests/win32_arrays/tests/multi_byte.rs @@ -1,16 +1,16 @@ -use windows::{core::*, Win32::Globalization::*}; +use windows::Win32::Globalization::*; #[test] fn test() { unsafe { let a = b"hello"; let mut b: [u16; 5] = [0xFFFF; 5]; - let len = MultiByteToWideChar(CP_UTF8, MULTI_BYTE_TO_WIDE_CHAR_FLAGS::default(), a, &mut b); + let len = MultiByteToWideChar(CP_UTF8, MULTI_BYTE_TO_WIDE_CHAR_FLAGS::default(), a, Some(&mut b)); assert_eq!(len, 5); let mut c: [u8; 5] = [0xFF; 5]; // TODO: workaround for https://github.com/microsoft/win32metadata/issues/820 - let len = WideCharToMultiByte(CP_UTF8, Default::default(), &b, PSTR(c.as_mut_ptr()), c.len() as _, PCSTR::null(), None); + let len = WideCharToMultiByte(CP_UTF8, Default::default(), &b, Some(&mut c), None, None); assert_eq!(len, 5); assert_eq!(&c, b"hello"); diff --git a/crates/tests/win32_arrays/tests/shared_size.rs b/crates/tests/win32_arrays/tests/shared_size.rs index dcb73f33ea..039ca4fac2 100644 --- a/crates/tests/win32_arrays/tests/shared_size.rs +++ b/crates/tests/win32_arrays/tests/shared_size.rs @@ -13,7 +13,7 @@ fn test() -> Result<()> { assert_eq!(results[0], 255); assert_eq!(results[1], 255); - CheckColorsInGamut(dc, &input, results.as_mut_ptr() as _).ok()?; + CheckColorsInGamut(dc, input.as_ptr(), results.as_mut_ptr() as _, 2).ok()?; assert_eq!(results[0], 0); assert_eq!(results[1], 0); diff --git a/crates/tests/win32_arrays/tests/xmllite.rs b/crates/tests/win32_arrays/tests/xmllite.rs index 4d6166f65e..eb68e5d231 100644 --- a/crates/tests/win32_arrays/tests/xmllite.rs +++ b/crates/tests/win32_arrays/tests/xmllite.rs @@ -11,11 +11,11 @@ fn test() -> Result<()> { writer.SetOutput(&stream)?; writer.WriteStartDocument(XmlStandalone_Omit)?; - writer.WriteStartElement(PCWSTR::null(), w!("html"), PCWSTR::null())?; - writer.WriteElementString(PCWSTR::null(), w!("head"), PCWSTR::null(), w!("The quick brown fox jumps over the lazy dog"))?; - writer.WriteStartElement(PCWSTR::null(), w!("body"), PCWSTR::null())?; - writer.WriteChars(&[])?; - writer.WriteChars(&[0x52, 0x75, 0x73, 0x74])?; + writer.WriteStartElement(None, w!("html"), None)?; + writer.WriteElementString(None, w!("head"), None, w!("The quick brown fox jumps over the lazy dog"))?; + writer.WriteStartElement(None, w!("body"), None)?; + writer.WriteChars(None)?; + writer.WriteChars(Some(&[0x52, 0x75, 0x73, 0x74]))?; writer.WriteEndDocument()?; writer.Flush()?; @@ -97,8 +97,8 @@ fn lite() -> Result<()> { writer.SetOutput(&stream)?; writer.WriteStartElement(HSTRING::from("html").as_wide())?; - writer.WriteAttributeString(HSTRING::from("no-value").as_wide(), &[])?; - writer.WriteAttributeString(HSTRING::from("with-value").as_wide(), HSTRING::from("value").as_wide())?; + writer.WriteAttributeString(HSTRING::from("no-value").as_wide(), None)?; + writer.WriteAttributeString(HSTRING::from("with-value").as_wide(), Some(HSTRING::from("value").as_wide()))?; writer.WriteEndElement(HSTRING::from("html").as_wide())?; writer.Flush()?;